Paper--3d reconstruction:Photo Tourism: Exploring Photo Collections in 3D

三维重建系列文章

Paper–3d reconstruction:Photo Tourism: Exploring Photo Collections in 3D https://blog.csdn.net/qq_41102371/article/details/116901177
Paper–3d reconstruction:Open Source Structure-from-Motion for Aerial Video https://blog.csdn.net/qq_41102371/article/details/116953992

写在前面

论文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

在这里插入图片描述

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

4.1 Keypoint detection and matching

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

4.2 Structure from motion

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

future work

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

附录

在这里插入图片描述
焦距 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_1<f_2<1.4f_1 0.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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诺有缸的高飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值