三维重建论文阅读:Photo Tourism: Exploring Photo Collections in 3D

目录

  • 三维重建系列文章
  • 写在前面
  • 4 Reconstructing Cameras and Sparse Geometry
    • 4.1 Keypoint detection and matching
    • 4.2 Structure from motion
  • future work
  • 附录
  • 参考

三维重建系列文章

待完成…

写在前面

论文Photo Tourism: Exploring Photo Collections in 3D阅读笔记
下载地址:share_noel/papers/sfm-Photo Tourism Exploring Photo Collections in 3D.pdf
https://pan.baidu.com/s/1IsN2Ze2FNts-3v4ZH1m-9A 提取码: mack
本篇博客只对论文中sfm(structure from motion)的关键部分进行记录,并未全文翻译,且未记录3D photo browsing system的部分。

4 Reconstructing Cameras and Sparse Geometry

三维重建论文阅读:Photo Tourism: Exploring Photo Collections in 3D_第1张图片

我们的系统(3D photo browsing system)需要诸如相对位置、方向、相机内参(比如焦距)等的准确信息,以及稀疏的三维几何场景。系统的一些特点功能需要相机在地理坐标系下的绝对位置,这些信息可以由GPS和compass提供,但是大量现有的图像缺失这些信息。许多数码相机在EXIF标签中包含了焦距信息,这些信息对sfm的初始化是很有用的,但是有时不太准确。
我们的系统不依赖相机或者任何其他设备提供的位置、方向或地理信息,二是使用计算机视觉和图像本身来计算出这些信息。
首先检测每张图像中的特征点,接着在每个相对之间匹配特征点,最后迭代地使用鲁棒的sfm方法来恢复相机参数(内参、外参)。sfm只估计每个相机的相对位姿,我们还对绝对坐标(例如纬度和经度)感兴趣,因此我们使用交互式技术将恢复的摄像机配准到俯视图上。

4.1 Keypoint detection and matching

三维重建论文阅读:Photo Tourism: Exploring Photo Collections in 3D_第2张图片
使用SIFT特征点检测:SFIT检测算子不受图像变换的影响,提供每个特征点的特征描述子;一张图像通常包含几千个特征点,其他特征检测算子也可能会使用。
特征匹配:使用最近邻方法来匹配特征描述子。
基础矩阵:使用鲁棒的估计方法RANSAC来估计像对之间基础矩阵,在每次RANSAC迭代时使用8点法求基础矩阵并剔除误匹配点对,再进行非线性优化,剔除误匹配后,剩下的不少于20个匹配点对,否则弃用该像对
在完成没个图像对的匹配之后,我们把匹配加入track,每个track连接多个图像中匹配的特征点,一个track一个在一个图像中只能有一个对应的特征点。每个track保证至少两个关键点

4.2 Structure from motion

三维重建论文阅读:Photo Tourism: Exploring Photo Collections in 3D_第3张图片
三维重建论文阅读:Photo Tourism: Exploring Photo Collections in 3D_第4张图片
三维重建论文阅读:Photo Tourism: Exploring Photo Collections in 3D_第5张图片
接下来,为每个track恢复相机参数以及3d位姿。
恢复的参数应该是一致的,因为重投影误差最小,即每个轨迹的重投影与其对应的图像特征之间的距离之和最小。这是一个非线性最小二乘问题,通常使用列文伯格马夸尔特方法求解,但是结果只能保证找到局部最优解。
大规模的sfm很容易局部最优,因此提供一个良好的初始参数是很重要的,我们使用增量的方法,每次增加一张图像而不是一次性估计估计所有相机的和tracks的参数。
我们以估计一个相机对的参数作为开始;初始相机对应该包含大量的匹配点,并且有相对更大的摄影基线,让观察点的三维位置比较良好。因此我们选择匹配点数量多的像对,并且这些匹配不能满足单应性,以此避免退化问题(满足单应性说明特征点位于同一平面,这对结果是不好的)。
添加新的相机并优化,新加的相机要能够观察到 大部分已经被估计了的 三维点(之前重建了的点,要尽可能多地在新相机中被看到)。
在RANSAC过程中使用直接线性变换估计新相机的外参,直接线性变换也会得到一个上三角形式的内参矩阵K,使用K以及从EXIF标签中得到的焦距来初始化新相机的焦距。
最后,我们将新相机中观察到的tracks添加到优化中。如果一个track至少在一个已经恢复的相机中被观察到,并且这个track的三角化能很好地估计它的位置,那么这个track会被添加;每添加一个相机就重复这个过程,直到没有剩余的相机能看到已经重建的三维点;为了在每次迭代最小化目标函数,我们使用lourakis的bundle adjustment(BA)库;在重建一个场景之后,我们选择性地执行后处理步骤来检测3d直线(没明白这是做什么)。
为了提升鲁棒性和速度,在上述的基础上作出一些小的修改。
鲁棒性:每次优化以后,有些track包含至少一个重投影误差很大的特征点,将这些track作为外点剔除,继续优化,继续剔除,直到没有可以被剔除的。
速度:每次添加不止一个相机:首先找到与已有三维点匹配最多的相机,匹配点数量为M,其他在匹配点数量达到0.75M的相机也会被添加进来。

future work

三维重建论文阅读:Photo Tourism: Exploring Photo Collections in 3D_第6张图片
未来工作中待解决的问题:
图像增加,速度变慢:选择更好的顺序来配准图像,更有效的方法是用少量视角重建大场景,接着用局部优化方法加入剩下的视角,另外可以使用分区的方法提升效率
我们的sfm不能得到度量重建结果因为没有地面控制点,这让获取精确的模型更困难,但如果有更多的地理数据,这个问题就会减轻很多
相机模型没有进行畸变校正,因此会产生很多误差,未来将使用更复杂的模型
一些重复结构以及弱纹理的地方的重建是比较有挑战的。

附录

三维重建论文阅读:Photo Tourism: Exploring Photo Collections in 3D_第7张图片
焦距 f f f的初始化:
使用估计出来的K, f 1 = ( K 11 + K 22 ) / 2 f_1=(K_{11}+K_{22})/2 f1=(K11+K22)/2
如果有EXIF,则使用里面的焦距作为 f 2 f_2 f2,但是要满足 0.7 f 1 < f 2 < 1.4 f 1 0.7f_10.7f1<f2<1.4f1,以保证 f 2 f_2 f2是合理的,如果不满足,使用 f 1 f_1 f1

参考

papers:
Snavely N , Seitz S M , Szeliski R . Photo tourism: Exploring photo collections in 3D[J]. ACM Transactions on Graphics (TOG), 2006, 25(3):págs. 835-846.

如有错漏,敬请指正
--------------------------------------------------------------------------------------------诺有缸的高飞鸟202105

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