目录

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

三维重建系列文章

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不能得到度量重建结果因为没有地面控制点,这让获取精确的模型更困难,但如果有更多的地理数据,这个问题就会减轻很多
相机模型没有进行畸变校正,因此会产生很多误差,未来将使用更复杂的模型
一些重复结构以及弱纹理的地方的重建是比较有挑战的。

附录


焦距fff的初始化:
使用估计出来的K,f1=(K11+K22)/2f_1=(K_{11}+K_{22})/2f1​=(K11​+K22​)/2
如果有EXIF,则使用里面的焦距作为f2f_2f2​,但是要满足0.7f1<f2<1.4f10.7f_1<f_2<1.4f_10.7f1​<f2​<1.4f1​,以保证f2f_2f2​是合理的,如果不满足,使用f1f_1f1​

参考

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

Paper--3d reconstruction:Photo Tourism: Exploring Photo Collections in 3D相关推荐

  1. Paper--3d reconstruction:Open Source Structure-from-Motion for Aerial Video

    目录 三维重建系列文章 写在前面 Abstract Introduction 2 Related Work 3 System Architecture 4 Algorithms 4.1. Featur ...

  2. Occupancy Networks: Learning 3D Reconstruction in Function Space论文笔记

    Contribution Occupancy networks implicitly represent the 3D surface as the continuous decision bound ...

  3. (1)课程简介-CS231A:Computer Vision, From 3D Reconstruction to Recognition

    斯坦福大学-源地址: CS231A: Computer Vision, From 3D Reconstruction to Recognition CS231AGitHub笔记:https://git ...

  4. 行为识别阅读笔记(paper + parted code):Beyond Frame-level CNN Saliency-Aware 3-D CNN with LSTM for Video Acti

    行为识别阅读笔记(paper+ parted code):Beyond Frame-level CNN Saliency-Aware 3-DCNN with LSTM for Video Action ...

  5. 三维重建 3D reconstruction 有哪些实用算法?

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 三维重建 3D reconstruction 有哪些实用算法? https://www.zhihu.c ...

  6. flash 与3D笔记:图片墙(1)

    一: 方形的图片墙 对3D还是一点也不熟悉,东拿西拿才把这个拼合的图片墙拼起来了,但是涉及到很多细节方面比较多.特别是rotationX rotationY之后的偏移问题,对构建存在一点问题.初步有一 ...

  7. 三维重建 几何方法 深度学习_三维重建 3D reconstruction 有哪些实用算法?

    主要的深度学习系列算法有DBN, ConvNets, RNN等,基本上经典的深度学习算法都用过. 详细请看唐路路(研究方向 深度学习 3D重建)在专栏 机器学习&深度学习--学术水准的理解 总 ...

  8. Paper之BigGAN:《Large Scale Gan Training For High Fidelity Natural Image Synthesis》翻译与解读

    Paper之BigGAN:<Large Scale Gan Training For High Fidelity Natural Image Synthesis>翻译与解读 目录 效果 1 ...

  9. Deep Non-Line-of-Sight Reconstruction:深度非视域重建

    点击上方"视学算法",选择"星标" 干货第一时间送达 作者:坐化 | 来源:知乎 https://zhuanlan.zhihu.com/p/157348690 ...

  10. 自动驾驶领域大佬在CVPR2020中 关于3D Reconstruction Learning的报告

    点击上方"视学算法",选择"星标" 干货第一时间送达 作者:黄浴 https://zhuanlan.zhihu.com/p/150948693 本文仅做学术分享 ...

最新文章

  1. linux 用户和权限管理
  2. title: bat批处理简介:Windows自动化之道
  3. linux grep和正则表达式
  4. 与华为交换机用access_学校机房项目交换机的配置,理解这篇,交换机配置不再难...
  5. webpack 读取文件夹下的文件_webpack基本介绍及使用
  6. count(*),count(1),count(0)效率
  7. python继承问题_Python类的继承问题
  8. 注解@controller的作用_@controller和@Restontroller区别
  9. 滴滴怒怼美团;阿里麻吉宝刷屏;B站、爱奇艺上市 | CSDN 极客头条
  10. css3中的zoom属性以及jquery中css()方法操作元素的属性
  11. 微信小程序云开发教程-云函数操作数据库-排序查询、指令查询
  12. wordpress修改mysql端口_wordpress更改默认端口的方法
  13. d2j-dex2jar classes.dex报错
  14. 概率论与随机过程难题整理复习
  15. 内置式永磁同步电机IPMSM,基于虚拟信号注入法最大转矩电流比MTPA控制仿真模型
  16. ArcGIS使用DEM数据划定汇水区具体步骤过程
  17. C# 拼图游戏(超详细)
  18. Go语言核心之美 1.5-作用域
  19. BDD100K:大规模、多样化的驾驶视频数据集
  20. Win7开启休眠功能的两种方法(步骤)

热门文章

  1. 教你用VC6写热血江湖小外挂
  2. 递归算法php,PHP递归算法的详细示例分析
  3. POI 读取word (word2003 和 word2007)
  4. 字符图形自动生成(C语言)
  5. nds android7.0模拟器,nds最佳MD模拟器jEnesisDS 0.7更新
  6. 计算机的英语音标是什么,英语音标怎么打出来,怎样在电脑上输入英语音标?...
  7. github windows系统监控_windows快速制作U盘启动工具Rufus
  8. 下载并安装 J2SDK以及运行第一个java程序
  9. [AHOI2007]密码箱
  10. 自然语言处理(NLP):08-05 TextCNN短文本分类案例分享