colmap+openMVS稠密重建

简要记录一下colmap+openMVS稠密重建相关使用

openMVS的sample使用

  1. 测试数据集下载
    链接:https://pan.baidu.com/s/13T04aKJ2OB6_RX7IMMGhpg 提取码:oxkp
  2. 运行测试
    将data放在OPENMVS/路径下。
cd ~/Documents/OPENMVS/openMVS/openMVS_build
./bin/DensifyPointCloud -w ../../data/ -i scene.mvs -o test_dense.mvs

生成的稠密点云结果如下所示:
colmap+openMVS稠密重建_第1张图片

colmap稀疏重建导出SFM参数

windows下的稠密重建教程:colmap稠密三维重建

colmap进行稀疏重建主要有以下几个步骤:

  • 项目文件夹下包括images文件夹、sparse文件夹、dense文件夹
  • 新建项目、db文件、选择images文件夹
  • Feature extraction:其中默认相机模型为SIMPLE_RADIAL,修改成PINHOLE,openMVS只支持PINHOLE模型。
  • Feature matching:默认
  • Start Reconstuction:进行稀疏重建
  • 导出txt文件:File→Export model as txt→选择sparse文件夹,可以看到sparse文件夹下有cameras.txt、images.txt、points3D.txt这三个文件,即为所需的位姿参数。

稀疏重建结束,可以看到SFM的结果如下:
colmap+openMVS稠密重建_第2张图片

注:我使用SIMPLE_RADIAL相机模型导出了cameras.txt,在cameras.txt中将所有SIMPLE_RADIAL直接修改为PINHOLE后保存,再使用openMVS重建,得到的效果非常奇怪,最后重新跑了一遍稀疏重建,相机模型选择PINHOLE,得到的重建结果正常。

openMVS稠密重建

  1. 将colmap位姿转换成openMVS格式
  • 项目目录结构:
    colmap+openMVS稠密重建_第3张图片

  • openMVS/openMVS_build/bin,有InterfaceCOLMAP接口。

  • box文件夹下有images和sparse两个文件夹,其中images为图片,sparse下为SFM生成的3个txt文件。

  • cd openMVS/openMVS_build

  • ./bin/InterfaceCOLMAP -i /home/juling/Documents/OPENMVS/box -o box.mvs

  • -i 是包含images和sparse文件夹的目录。

  • -o 是生成.mvs文件保存的路径。-o box.mvs表示在openMVS_build目录下生成box.mvs。

注:生成.mvs文件的路径貌似不能设置保存到自定义路径,设置保存到自定义路径是可以保存成功的,但在进行稠密点云重建时会出现路径错误,无法读取图片。所以默认设置-o box.mvs在openMVS_build目录下生成box.mvs,然后将这个文件复制到box下使用,就不会出现稠密重建读不到图像的问题。

  1. openMVS稠密重建
  • cd ~/Documents/OPENMVS/openMVS/openMVS_build
  • 稠密重建:./bin/DensifyPointCloud -w ../../box/ -i box.mvs -o box_dense.mvs,会在box目录下生成深度图、box_dense.mvs、box_dense.ply文件。查看稠密重建的结果可用MeshLab打开ply文件,也可使用openMVS提供的Viewer接口查看./bin/Viewer ../../box/box_dense.mvs
  • 曲面重建:./bin/ReconstructMesh -w ../../box/ -i box.mvs -o box_mesh.mvs生成box_mesh.mvs以及box_mesh.ply。
  • 网格细化:
  • 纹理贴图:

稠密重建结果如下:
参考:
[1] MVS三维重建概述与OpenMVS开源框架配置

你可能感兴趣的:(三维重建,三维重建)