【三维重建工具】NeRFStudio、3D GaussianSplatting、Colmap安装与使用指南(更新中)

本文主要是介绍【三维重建工具】NeRFStudio、3D GaussianSplatting、Colmap安装与使用指南(更新中),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 一、NeRFStudio安装
    • 1.安装(ubuntu系统)
    • 2.安装(windows系统)
  • 二、安装tinycudann
  • 三、Colmap安装与使用
    • 1. 安装依赖
    • 2. 安装colmap
    • 3.使用colmap
    • 3.1 可视化界面使用
    • 3.2 Nerfstudio命令行调用Colmap
  • 四、使用NeRFStudio进行三维重建
  • 五、3D GaussianSplatting安装与使用(即将到来)
  • 五* CUDA安装(附C++编译器说明)

场景/物体三维重建过程:首先用colmap估计图像位姿,而后以图像和位姿作为出入,用NeRF或Gaussian Splatting进行三维重建

一、NeRFStudio安装

  简介:Nerfstudio,一个用于NeRF开发的模块化PyTorch框架。框架中用于实现基于NeRF的方法的组件即插即用,使得研究人员和相关从业者可以轻松地将NeRF集成到自己的项目中。框架的模块化设计支持实时可视化工具,导入用户真实世界捕获的数据集外(in-the-wild)数据,以及导出为视频,点云和网格表示的工具。近期,还导入了InstantNGP、3D Gaussian Splatting等最新重建算法。

在这里插入图片描述

1.安装(ubuntu系统)

  下载项目代码到本地:

git clone https://github.com/nerfstudio-project/nerfstudio.git

  可以去github直接下载zip文件,也可以按照以上命令git。网络不好可以去gitee(码云)加速。

cd nerfstudio
pip install --upgrade pip setuptools
pip install -e .

2.安装(windows系统)

2.1.安装vs2019 + cuda 11.6;
2.2.通过conda创建虚拟环境nerfstudio,依次执行如下命令:

conda create --name nerfstudio -y python=3.8
conda activate nerfstudio
python -m pip install --upgrade pip

3.3.安装依赖:
  (1).pytorch 1.13.1, 执行如下命令:

pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 -f https://download.pytorch.org/whl/torch_stable.html

  (2).tinycudann, 执行如下命令:

pip install ninja git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch

3.4.安装nerfstudio,依次执行如下命令:

git clone git@github.com:nerfstudio-project/nerfstudio.git
cd nerfstudio
pip install --upgrade pip setuptools
pip install -e .

5.安装ffmpeg, 执行如下命令:

conda install -c conda-forge ffmpeg

6.安装colmap, 执行如下命令:

conda install -c conda-forge colmap
conda install -c conda-forge mpir

7.安装hloc,依次执行如下命令: 可选,windwos上不支持pycolmap

cd ..
git clone --recursive https://github.com/cvg/Hierarchical-Localization/
cd Hierarchical-Localization/
pip install pycolmap # windows不支持
python -m pip install -e .

二、安装tinycudann

pip install git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch

  这句命令不成功的,请切换gcc与g++版本,方法见最后

三、Colmap安装与使用

   colmap是用来对一系列图像进行位姿匹配,从而生成场景的三维模型(点云)。也就是你对一个场景拍摄了很多照片,colmap可以估计出每张照片的相机位置(pose,是NeRF的输入),并利用SFM算法生成三维模型。使用NeRF和Gaussian Splatting进行三维重建必备的工具。

1. 安装依赖

sudo apt-get install \git \cmake \ninja-build \build-essential \libboost-program-options-dev \libboost-filesystem-dev \libboost-graph-dev \libboost-system-dev \libeigen3-dev \libflann-dev \libfreeimage-dev \libmetis-dev \libgoogle-glog-dev \libgtest-dev \libsqlite3-dev \libglew-dev \qtbase5-dev \libqt5opengl5-dev \libcgal-dev \libceres-dev

2. 安装colmap

git clone https://github.com/colmap/colmap.git
cd colmap
mkdir build
cd build
sudo cmake .. \-D CMAKE_CUDA_COMPILER="/usr/local/cuda-11.3/bin/nvcc" ../CMakeLists.txt \-D CMAKE_CUDA_ARCHITECTURES='89'    
cd ..
sudo make -j24 
sudo make install

  注意:
  更改以上命令中cuda路径,以及最后的显卡算力(75代表Turing架构,如RTX 20系列;80代表Ampere架构,如RTX 30系列;89为RTX4080 显卡等)

3.使用colmap

3.1 可视化界面使用

使用命令打开colmap

colmap gui

打开界面如下:

在这里插入图片描述1.创建 project_cat 文件夹,把图片放 project_cat/images 下
2.执行 Automatic reconstruction 重建,如下:‘
在这里插入图片描述
在这里插入图片描述
  需要等待比较久的时间,最开始比较占用CPU,大概执行的是特征点计算和匹配一类的,后面会占用比较大的GPU使用率,GPU内存占用大概2G.

  到下面的界面后表明完成。

在这里插入图片描述
  同时介绍了可视化sparse, dense, mesh 模型结果的方法。最终效果如下:

在这里插入图片描述
一些参数说明:

Rotate model: Left-click and drag.
Shift model: Right-click or -click (-click) and drag.
Zoom model: Scroll.
Change point size: -scroll (-scroll).
Change camera size: -scroll. (红色的表示相机拍摄位置的符号)
Adjust clipping plane: -scroll. (距离观察视点一定距离的点会被 clipped)
Select point: Double-left-click point (change point size if too small). The green lines visualize the projections into the images that see the point. The opening window shows the projected locations of the point in all images.

3.2 Nerfstudio命令行调用Colmap

  除以上可视化界面直接计算图片的pose以外,还可以用Nerfstudio调用colmap:

ns-process-data images --sfm-tool hloc --feature-type superpoint --matcher-type superglue --data '/path/to/IMG'  --output-dir '/path/to/IMG' 

  其优点是利用superpoint 和 superglue深度特征,替代原始的sift提取特征

四、使用NeRFStudio进行三维重建

4.1.通过colmap生成数据集,也可从网上,如https://data.nerf.studio/nerfstudio/ 下载lego 乐高玩具测试集,并拷贝到nerfstudio的data/nerfstudio目录下,data/nerfstudio需自己创建;

4.2.采用colmap生成数据集时,需执行如下命令生成transforms.json:

ns-process-data images --data data/nerfstudio/lego/train --output-dir data/nerfstudio/lego --camera-type perspective --matching-method exhaustive --sfm-tool colmap --crop-factor 0.0 0.0 0.0 0.0

4.3.训练命令如下:迭代产生的checkpoint存储在outputs/lego/nerfacto目录下

ns-train nerfacto --data data/nerfstudio/lego --vis viewer --max-num-iterations 50000

参数为数据路路径,迭代次数等。还可添加其他参数,用命令ns-render --help查看官方文档

  训练进度如下图所示:

在这里插入图片描述
训练结束后,会显示本地浏览地址。打开web实时预览: https://viewer.nerf.studio/versions/23-04-10-0/?websocket_url=ws://localhost:7007 ,如下图所示:

在这里插入图片描述加载预训练模型,继续训练命令为:

ns-train nerfacto --data data/nerfstudio/person --load-dir outputs/person/nerfacto/2023-08-23_152364/nerfstudio_models

加载预训练模型进行可视化查看:

ns-viewer --load-config outputs/person/nerfacto/2023-04-23_152364/config.yml

训练结果可以导出为 (1).渲染视频; (2).点云;(3).mesh.

支持的自定义数据集类型:https://docs.nerf.studio/en/latest/quickstart/custom_dataset.html
ns-process-data各参数说明:https://docs.nerf.studio/en/latest/reference/cli/ns_process_data.html
官方提供的数据集:https://drive.google.com/drive/folders/19TV6kdVGcmg3cGZ1bNIUnBBMD-iQjRbG

五、3D GaussianSplatting安装与使用(即将到来)

  一周内将更新此部分内容

五* CUDA安装(附C++编译器说明)

提示:安装cuda前,首先要确保gcc与g++编译器的版本,与cuda版本相匹配。不确定的先看第5节

1、查看已安装的CUDA版本

  所有已安装的CUDA版本默认保存在/usr/local路径下,cd到该路径下通过ls命令查看:

在这里插入图片描述

2、查看当前使用的CUDA版本

  在/usr/local路径下通过 stat cuda 命令查看当前使用的CUDA版本:

3、安装新的CUDA版本——CUDA11.3为例

3.1、下载对应版本的CUDA安装包: 链接(选择下载runfile文件)

3.2、在下载文件的目录下,通过命令进行安装:

sudo sh cuda_10.0.130_410.48_linux.run
## 安装时去掉对显卡驱动的安装,如下图中去掉第一行

在这里插入图片描述
3.3、修改环境变量
  系统环境中修改cuda版本。执行以下命令,打开环境路径,在最后添加并保存:

gedit ~/.bashrc
## 默认为以上软连接的路径
export PATH=/usr/local/cuda/bin:$PATH  
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda## 也可以指定具体路径
export PATH=/usr/local/cuda-11.3/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.3/lib64:$LD_LIBRARY_PATH

保存环境变量:

source ~/.bashrc

4、CUDA版本的切换

4.1、删除原版本的cuda软连接

sudo rm -rf /usr/local/cuda

4.2、建立新的指向cuda-10.0的软连接

sudo ln -s /usr/local/cuda-10.0 /usr/local/cuda

5.切换gcc与g++版本

  cuda支持的最高版gcc与g++如下表,大部分人都需要降级gcc:

在这里插入图片描述

  安装对应版本gcc与g++(这里以cuda11.3对应的9.5为例):

sudo apt-get install gcc-9
sudo apt-get install g++-9

  随后,进入/usr/bin目录下删除旧版本gcc/g++文件(这里只是删除了软连接):

cd /usr/bin
sudo rm gcc g++

  最后,将gcc/g++和新安装的gcc-9/g+±9关联起来:

sudo ln -s gcc-9 gcc
sudo ln -s g++-9 g++

  查看最新版本:

gcc -V

  其他切换版本方法:gcc版,默认使用优先级最高的版本。设置gcc 10优先级为100,设置gcc 9优先级为70。那么默认使用gcc10。

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10 --slave /usr/bin/gcov gcov /usr/bin/gcov-10
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 70 --slave /usr/bin/g++ g++ /usr/bin/g++-9 --slave /usr/bin/gcov gcov /usr/bin/gcov-9

  随后,使用以下命令来选择版本(默认选择第1行的,序号为0)

sudo update-alternatives --config gcc

这篇关于【三维重建工具】NeRFStudio、3D GaussianSplatting、Colmap安装与使用指南(更新中)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/887275

相关文章

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

基于C#实现PDF文件合并工具

《基于C#实现PDF文件合并工具》这篇文章主要为大家详细介绍了如何基于C#实现一个简单的PDF文件合并工具,文中的示例代码简洁易懂,有需要的小伙伴可以跟随小编一起学习一下... 界面主要用于发票PDF文件的合并。经常出差要报销的很有用。代码using System;using System.Col

Redis缓存问题与缓存更新机制详解

《Redis缓存问题与缓存更新机制详解》本文主要介绍了缓存问题及其解决方案,包括缓存穿透、缓存击穿、缓存雪崩等问题的成因以及相应的预防和解决方法,同时,还详细探讨了缓存更新机制,包括不同情况下的缓存更... 目录一、缓存问题1.1 缓存穿透1.1.1 问题来源1.1.2 解决方案1.2 缓存击穿1.2.1

redis-cli命令行工具的使用小结

《redis-cli命令行工具的使用小结》redis-cli是Redis的命令行客户端,支持多种参数用于连接、操作和管理Redis数据库,本文给大家介绍redis-cli命令行工具的使用小结,感兴趣的... 目录基本连接参数基本连接方式连接远程服务器带密码连接操作与格式参数-r参数重复执行命令-i参数指定命

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

Linux Mint Xia 22.1重磅发布: 重要更新一览

《LinuxMintXia22.1重磅发布:重要更新一览》Beta版LinuxMint“Xia”22.1发布,新版本基于Ubuntu24.04,内核版本为Linux6.8,这... linux Mint 22.1「Xia」正式发布啦!这次更新带来了诸多优化和改进,进一步巩固了 Mint 在 Linux 桌面

LinuxMint怎么安装? Linux Mint22下载安装图文教程

《LinuxMint怎么安装?LinuxMint22下载安装图文教程》LinuxMint22发布以后,有很多新功能,很多朋友想要下载并安装,该怎么操作呢?下面我们就来看看详细安装指南... linux Mint 是一款基于 Ubuntu 的流行发行版,凭借其现代、精致、易于使用的特性,深受小伙伴们所喜爱。对

Linux(Centos7)安装Mysql/Redis/MinIO方式

《Linux(Centos7)安装Mysql/Redis/MinIO方式》文章总结:介绍了如何安装MySQL和Redis,以及如何配置它们为开机自启,还详细讲解了如何安装MinIO,包括配置Syste... 目录安装mysql安装Redis安装MinIO总结安装Mysql安装Redis搜索Red

python安装完成后可以进行的后续步骤和注意事项小结

《python安装完成后可以进行的后续步骤和注意事项小结》本文详细介绍了安装Python3后的后续步骤,包括验证安装、配置环境、安装包、创建和运行脚本,以及使用虚拟环境,还强调了注意事项,如系统更新、... 目录验证安装配置环境(可选)安装python包创建和运行Python脚本虚拟环境(可选)注意事项安装