Colmap算法pipeline

传统办法Colmap进行三维重建实践(GUI|指令行)

Colmap设备

在Ubuntu Docker中设备Colmap


数据收集

开源数据集

  1. DTU数据集:针对MVS而专门拍摄并处理的室内数github中文官网网页据集
    运用一docker容器个搭载可调度亮度灯的工业机器臂对docker容器一个物体进行多视角的拍摄,每个物体所拍的视角都经过严格操控,所以能够获取每个视角的相机内、外参数。

数据集组成:124个不同的物体或场景,每个物体共拍摄49个视角,开源众包每个视角共有7种不同的亮度。每个物体或场景文件夹内docker装置部共有343个图片。每张形象的分辨率为16001200。(该数据集还包含带有深度图真值的操练形象集,可用于操练神经网络)

传统办法Colmap进行三维重建实践(GUI|指令行)

传统办法Colmap进行三维重建实践(GUI|指令行)

MVS Data开源阅览app下载装置 Set – 2014 | DTU Robot Image Data Sets

  1. T开源众包anks and Temples数据集:室外dockers场景数据集

首要用于验证我们运用的网型和开源软件泛化才能,验证其是否对光照改变大、存在动态方针的场景仍具有较为精确地重建才能

传统办法Colmap进行三维重建实践(GUI|指令行)

自采数据集

  • 尽量运用单反相机或专业数码相机进行数据搜github直播渠道永久回家集,如果要用手机进行收集,请运用单摄像头的手机进行数据收集。
  • 尽量挑选纹理丰厚的外界环境进行数据收集,避免玻璃围墙、瓷砖和打蜡地板等强反光材料环境
  • 尽量挑选光照亮堂,且光照docker是干什么的条件改变不剧烈的docker菜鸟教程环境,最好挑选室内环境。如室内客厅,打开客厅大灯进行灯火补偿。
  • 尽量环绕重建物体或环境收集较多的形象,且在收集进程中操控快门速度,避免含糊。

Colmap GUI操作

稀疏重建

选用增量SfM技能

其间SfM技能出自GitHub – openMVG/openMVG: open Mulubuntu20.04装置教程tiple View Geomepython123渠道登录try library. Basis for 3D computer vigithub中文官网网页sion and Structure from Motion.

1. 准备作业

  1. 创建工程目录TestScan
  2. 在其间创建images目录并docker面试题存放原始图画
  3. 作业colmap gui,点击file - New Project弹出Project窗口
  4. UbuntuDatabase行点击New,在TestScan目录中创建TestScan.db文件用于存储原始图片地址、特征匹配等数据
  5. Images行点击Select挑选场景原始图片地点目录
  6. 毕竟点击save

初始的目录结构为:

.ubuntu怎样读
|-- TestScan.db
`-- images
|-- 00000000.jpg
|-- 00000001.jpg
|-- ...
`-- 00000048.jpg

2. 特征提取

此进程进行对应点查找,能够理解为大局特征匹配
点击processing - Featu开源re Extraction

  • 挑选相机模型为Pinhole
  • 挑选Parameters from EXIF:从EXIF中提取相机内参(一般收集到的影响都带着EXIF文件)
  • 其他参数暂时默许

然后点击Extract进行特征提取

传统办法Colmap进行三维重建实践(GUI|指令行)

3. 特征匹配Docker

点击processing - Feature Matching,参数悉数选用默许,然后点python下载装置教程Run进行特征python下载装置教程匹配

这个进程结束之后会主动生成场景图开源配矩阵(以不同视图之间同名特征数为权重,以不同视图为图节点的图结构)

从右侧的Log中能够看到这两步的输出
传统办法Colmap进行三维重建实践(GUI|指令行)

4. 增量式建模

点击reconstruction - start reconstruction进行一键式增量迭代重建

此进程逐渐增加视角,并进行迭代优化重投影差错
意图是核算不同视ubuntu怎样读图的相机参数、得到场景的稀疏点云和确认不同视图与点云间的可视联系
毕竟能够得到场景的稀疏点云和各个视角的相机姿态

传统办法Colmap进行三维重建实践(GUI|指令行)

以第49张图画(39个视角)为例

  • 已有点云576个
  • 首要进行姿态估量(Pose Refinement Report)
  • 再进行BA优化:整体稀疏点云融合丈量点149个,滤除丈量点32个
  • 再进行python编程三角丈量(Retriangulation)
  • 毕竟再进行迭代大局的BA优化,优化已有相机的姿态和三维稀疏Docker点云坐标
==============================================================================
Registering image #39 (49)
============================================================python保留字===python123渠道登录===============开源阅览app下载装置
=> Image seesubuntu指令 576 / 991 points
Pose refinement report
----------------------
Residuals : 1132
Paradocker指令meters : 8
Iterations : 7
Time : 0.0134351 [s]
Initial cost : 0.535158 [px]
Final cost : 0.462099 [px]
Termination : Convergence
=> Continued observations: 540
=> Added observations: 73
Bundle adjustment report
------------------------
Residuals : 24684
Parameters : 2030
Iterations : 21
Time : 0.501python能够做什么作业096 [s]
Initial cost : 0.374389 [px]
Final cost : 0.367663 [px]
Termination : C开源矿工onvubuntu怎样设置中文ergence
=> Merged observations: 149
=> Completed obsegithub下载rvations:ubuntu体系菜鸟入门 27
=> Filtered observations: 32
=> Changed observationsdocker容器: 0.016853
Bundle adjustment report
------------------------
Residuals : 24690
Parameters : 2000
Iterations : 3
Time : 0.0764892 [s]
Initial cost : 0.430376 [pxGitHub]
Fubuntu指令inal cost : 0.4ubuntu体系菜鸟入门27614 [px]
Terminatiodockersn : Convergence
=> Merged observatiogithub打不开ns: 10
=> Completed observations: 1
=> Filtered obgithub怎样下载文件servations: 0
=> Changed observations: 0.000891
=====================================docker菜鸟教程=======================================github下载==
Retriangulation
======================dockerfile========================================================
=&g开源是什么意思t; Completed observations: 9python下载装置教程
=> Merged observations: 186
=> Retriangulated observationPythons: 0

深度图估量与优化

Colmap中价值结构、累积、估量和优化是封装在一起的,运用python能够做什么作业GEM模型进行求解
首要分为四个进程:匹配python下载装置教程价值结构 -> 价值累积 -> 深度估量 -> 深度图估量

这儿的原理暂时省掉,多视图几许三维重建docker和虚拟机的差异实战系列之COLMAP

1ubuntu换源. 图画去畸变

点击recoUbuntunstruction - dense reconstruction,在稠密重建窗口中点击select挑选文件存放位置,然后点击undistortion即可去除图画畸变

带有畸变的图画会导致边际有较大的时差估量差错,因此在深度图估量之前,运python保留字用光学一致性和几许一致性联合束缚结构价值匹配

dtu数据集和之docker面试题前装备成针孔模型开源现已隐含无畸变
如果运用自收集数据集需求更改相机模型为带畸变参数的相机模型

2. 深度估量

在稠密重建窗口中点击stereo进行场景深度估量
深度估量结束后能够得到pdocker容器hotometricgeometric下的深度图和法向量图

这一步很慢并且资源耗费特别大python123渠道登录

Cpython123渠道登录olmap会运用光学一致性一起估量视角的深度值和法向量值,并运用几许一致性进行深度图优化


稠密重建

点击Fusion即可进行根据深度图融合的稠密重建

重建后会在dense中生成ply模型文件
ubuntu怎样设置中文以设备MeshLab进行闪现

sudo snap install meshlab

【报错:meshlab无法翻开ply文件】

传统办法Colmap进行三维重建实践(GUI|指令行)

问题剖析:用文本浏github直播渠道永久回家览器翻开ply文件发现header之后悉数问乱码

传统办法Colmap进行三维重建实践(GUI|指令行)

找了许多python保留字材料仍是没有找到解决方案,毕竟找师兄要了一个闪现ply的python脚本,首要是用的是open3d库就成功了开源众包,这个故事奉告我们 听老师和师兄的一句主张就能够节省一整个下午debuggithub敞开私库的时间
脚本放在github上,暂未开源,如果有需求能够留言哈~

传统办法Colmap进行三维重建实践(GUI|指令行)

传统办法Colmap进行三维重建实践(GUI|指令行)

Colmap指令行操作

准备好带有images图画目录的文件

  1. 特征提取
colmap feature_extractor 
--database_path ./database.db 
--image_path ./images

输出:database.db中保存特征开源软件
2. 特征点匹配

colmap exhaustive_matcher 
--database_path ./database.db
  1. 稀疏重建
mkdir sparse
colmap mapper 
--database_path ./database.db 
--image_path ./images 
--output_path ./sparse

输出sparse文件夹,目录结构如下:

└── sparse
└── 0
├── cameras.bpython123渠道登录in        # 相ubuntu装置教程机内参
├── images.bin         # 相机位姿
├── points3D.bin       # 稀疏Ubuntu3D点
└── project.ini
  1. 图画去畸变
mkdir dense
colmap iubuntu装置教程magUbuntue_undistorter 
--image_path ./images 
--input_path ./sparse/0 
--output_path ./dense 
-python保留字-outgithub怎样下载文件put_type COLMAP 

输出dense文件夹,目录结构如下:

└── dense
├── images
│   ├── 0.JPG
│   ├── ...
│   └── 48.JPG
├── run-colmap-geometric.sh
├── run-colmap-python是什么意思photometridocker指令c.sh
├── sparse
│   ├──Python camerpython123as.bin
│   ├── images.bin
│   └── points3D.bin
└── stereo
├── consistency_graphs
├── depth_maps
├── fusion.cfg
├── normal_maps
└── pgithub敞开私库atch-match.cfg
  1. 稠密重建
colmap patch_match_stereo 
--workspace开源阅览app下载装置_path ./dense 
--workspython编程pace_format Cdocker是干什么的OLMAP 
--PatchMubuntu指令atchSterepython是什么意思o.geom_consistency true

输出dense/stereo文件夹,为每张图画估量depth_mapnormalubuntu下载_map

└── dense
├── images
│   ├── 0.JPG
│   ├── ...
│   └── 48.JPG
├─docker装置─ run-colmap-geometric.sh
├── run-colmap-开源阅览photometric.sh
├── sparsGitHube
│   ├── cameras.bin
│   ├── images.bin
│   └── points3D.github下载bin
└──github是干什么的 stereo
├── consistency_graphs
├── depth_maps
│   ├── 0.JPG.geometric.bin
│   ├── 0.JPG.phoubuntu指令tometric.bin
│   ├── ...
│   ├── ...docker装置
│   ├── 48.JPG.geometric.bin
│   └── 48.JPG.photometric.bin
├── fusion.cfg
├── normal_maps
│   ├── 0.JPG.geometridockerfilec.bin
│   ├─开源中国─ 0.JPG.photometric.bin
│   ├── ...
│   ├── ...
│   ├── 48.JPG.geometric.bin
│   └── 48.JPG.photodocker是干什么的metric.bin
└── patch-match.cfg
  1. 融合ubuntu20.04装置教程
./colmap stereo_fusion 
--workspace_path ./dense 
--workspace_format COLMAP 
--dockerfileinpu开源中国t_type geometric 
--output_path ./dense/result.ply

输出result.ply点云模型文件

Resources

  • 多视图几许github官网三维重建实战系列之COLMAP
  • 三维重github永久回家地址建_COLMAP设备、运用和参数说明(翻译自官方文档)_一步一足迹-CSDN博客
  • 三维重建:colmap设备与运用 – 学而时嘻之HUST – 博客园