VGGSfM: 开源三维重建项目教程
1. 项目介绍
VGGSfM(Visual Geometry Grounded Deep Structure From Motion)是一个由Meta AI Research和牛津大学VGG团队合作开发的开源项目。该项目利用深度学习技术,从一系列静态或动态图像中恢复出三维结构和相机姿态。VGGSfM在多个方面表现出色,包括静态场景的三维重建、动态场景的相机跟踪以及稠密点云的生成。
2. 项目快速启动
环境安装
首先,需要安装Python 3.10、PyTorch 2.1和CUDA 12.1。可以使用以下安装脚本:
source install.sh
python -m pip install -e .
该脚本会自动创建一个conda环境,并安装必要的依赖库,包括pytorch3d
、lightglue
、pycolmap
、poselib
和visdom
。
运行示例
以下是运行项目的基本命令,这里以examples/kitchen
场景为例:
python demo.py SCENE_DIR=examples/kitchen
可以根据需要调整参数,例如:
- 指定查询方法:
query_method=sp+sift
- 增加查询点数:
max_query_pts=4096
- 假设所有帧共享相机模型:
shared_camera=True
- 使用
SIMPLE_RADIAL
相机模型:camera_type=SIMPLE_RADIAL
- 增加查询帧数:
query_frame_num=6
- 禁用精细跟踪:
fine_tracking=False
所有默认设置都定义在cfgs/demo.yaml
文件中,可以根据需要调整。
结果保存
重建结果(相机参数和3D点)会自动保存在SCENE_DIR/sparse
目录下,格式为COLMAP的cameras.bin
、images.bin
和points3D.bin
。
3. 应用案例和最佳实践
使用自定义数据
如果使用自己的数据,只需指定数据地址:
python demo.py SCENE_DIR=/YOUR_FOLDER camera_type=SIMPLE_RADIAL gr_visualize=True make_reproj_video=True
确保图像存储在YOUR_FOLDER/images
目录下。
生成稠密点云
要生成稠密点云,可以通过设置extra_pt_pixel_interval
参数进行三角测量:
python demo.py extra_pt_pixel_interval=2
4. 典型生态项目
VGGSfM的开源生态中,包括了多个相关的项目,例如用于可视化重建结果的COLMAP GUI,以及用于生成稠密点云的NeRF和Gaussian Splatting代码库。这些项目相互补充,共同推进三维重建技术的发展。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考