Bundle Adjustment — A Modern Synthesis(一)
文章目录
- Abstract
- 1 Introduction
- References
author: Bill Triggs , Philip F. McLauchlan, Richard I. Hartley, and Andrew W. Fitzgibbon
Abstract
这篇论文是对摄影测量光束平差法/束调整/捆绑调整(bundle adjustment, 以下简称BA)的理论和方法的调查,针对计算机视觉社区中的潜在实施者。BA是以生成联合的最佳结构和查看参数(相机的位置和方向 和/或 标定)估计来改进视觉重建的问题。覆盖的主题包括:成本函数(cost function)和鲁棒性的选择;数值优化包括稀疏牛顿法,线性收敛近似法,更新和递归法;度量(Gauge)(基准)不变性; 和质量控制。该理论是为一般稳健的成本函数开发的,而不是将注意力局限于传统的非线性最小二乘法。
Keywords: Bundle Adjustment, Scene Reconstruction, Gauge Freedom, Sparse Ma-
trices, Optimization.
1 Introduction
本文是面向计算机视觉社区,特别是针对已经对BA方法有所了解的潜在实施者关于BA理论和方法的概述。大多数结果很久以前就出现在摄影测量学和大地测量学文献中,但是许多结果似乎在视觉上鲜为人知,因此逐渐被重新发明。通过提供一种可访问的现代综合方法,我们希望能够避免这种重复工作,纠正一些常见的误解,并通过促进视觉和摄影测量学界之间的互动来加快视觉重建的进度。
BA 是以生成联合的最佳结构和查看参数(相机的位置和方向 和/或 标定)估计来改进视觉重建的问题。最佳意味着通过最小化量化模型拟合误差的某些成本函数来找到参数估计值,并且总的来说,对于结构和相机变化,解决方案同时是最佳的。该名称指的是光线“束”离开每个3D特征点并会聚在每个相机中心,并且对特征点和相机的位置进行了“最佳调整”。 等效地,与独立模型方法(independent model method)不同,独立模型方法合并了部分重建而不更新其内部结构,所有结构和摄影机参数都“在一束中”一起调整。
BA实际上只是一个大的稀疏几何参数估计问题,这些参数是3D特征点坐标,相机姿态和标定的组合。我们将要说的几乎所有内容都可以应用于视觉,摄影测量,工业计量,测量和大地测量学中的许多类似估计问题。调整计算是整个测量科学的重要常见主题,一旦了解了基本理论和方法,它们很容易适配各种问题。适配在很大程度上取决于选择一种利用问题结构和稀疏性的数值优化方案。接下来我们将要考虑一些这样的方案来束调整(BA)。
典型的,是将束调整和类似的调整计算公式化为非线性最小二乘问题1 2 3 4 5 6 7 8 9。它假设成本函数在特征重投影误差中是二次函数,并且通过明确的离群值筛选来提供鲁棒性。尽管它已经非常灵活,但是这种模型还不够通用。现代系统通常使用非二次M估计分布模型(M-estimator-like distributional models, 简称MDL)来更完整地处理离群值,并且包括许多与过度拟合,模型选择和系统性能有关的额外惩罚。因此,我们将不采用最小二乘/二次成本模型。 取而代之的是,将成本建模为来自独立信息源(独立观测,先验分布,过拟惩罚……)的不透明贡献的总和。这些贡献的函数形式及其对固定量(如观测值)的依赖性通常会被隐含。这允许融合许多不同类型的鲁棒和非非鲁棒的成本贡献,而不会过度打乱符号或隐藏基本模型结构。它非常适合现代稀疏优化方法(成本贡献通常是参数的稀疏函数)和以对象为中心的软件组织,并且避免了许多繁琐的链式结果显示。 假定实现者能够选择适当的功能并自己计算派生函数。
本文的目的之一是纠正视觉文献中常见的一些误解:
- "优化/BA 很慢:" 这种陈述经常出现在介绍另一种启发式SFM(Structure from Motion)迭代的论文中。他们声称的速度缓慢几乎总是归因于通用优化例,该例程完全忽略了问题的结构和稀疏性。真正的捆绑(束调整)程序例程比这要有效得多,并且通常比新建议的方法(第6、7节)更加有效和灵活。这就是为什么经过40年的研究之后,束调整仍是实际应用中占主导地位的结构细化技术的原因。
- 仅需要线性代数: 这是上面内容的最新变体,可能意味着新技术特别简单。几乎所有的迭代优化技术都只使用线性代数,并且束调整比许多方法更简单,因为它只求解线性系统:它不使用特征分解或SVD,它们本身就是复杂的迭代方法。
- Any sequence can be used: 许多视觉工作者似乎对应该事先计划好重建问题(第11节),然后检查结果以验证其可靠性(第10节)的想法非常反感。即使应用程序限制使得使用它们变得困难,系统构建者也至少应该意识到这一点。很少有人会体会到几何薄弱和缺乏冗余可以掩盖严重错误的特殊程度,参考10 11 12 13。
- "精确地重建了P点:" 在重建中,就像没有绝对的位置参考一样,也没有不确定性。3D坐标系本身是不确定的,因为它只能相对于不确定的重建特征点或摄像机定位。所有其他特征和相机不确定性均相对于坐标系(帧)表示,并继承其不确定性,因此在指定了坐标系(帧)及其不确定性之前,有关它们的说明无意义。协方差在不同的帧中看起来可能完全不同,尤其是在以对象为中心的帧与以相机为中心的帧中。 参见第9节。
- 灵活性: BA可优雅地处理各种3D特征和相机类型(点,线,曲线,曲面,奇异(exotic)相机),场景类型(包括动态模型和关节模型,场景约束),信息源(2D特征,强度,3D 信息,先验)和误差模型(包括可靠模型)。对于数据丢失也没有问题。
- "准确性:" BA可提供精确且易于解释的结果,因为它使用了精确的数据误差模型并支持完善的质量控制方法
- 效率: 成熟的BA算法即使在非常大的问题上也比较有效。 他们使用经济且快速收敛的数值方法,并最优化地使用问题稀疏性。
通常,随着计算机视觉重建技术的成熟,我们期望束调整将以替代调整方法的方式比摄影测量法更占优势。我们认为这是对优化的更多理解(尤其是对问题结构和稀疏性的更有效利用)以及诸如质量控制和网络设计之类的系统问题的必然结果。
- 范围: 我们将探讨捆绑方法的很多方面。我们以相机投影模型和参数化捆绑问题(第二节),以及误差测量或者成本函数的选择(第三节)开始。第四节给出我们使用的优化理论的概要。第5节讨论了捆绑问题的网络结构(参数相互和稀疏特性)。接下来三节思考了调整计算的三种实现策略。第六节涵盖了类似于牛顿的二阶方法,它们仍然是最常用的调整算法。 第七节涵盖仅具有一阶收敛的方法(大多数ad hoc在此类中); 第八节讨论了解决方案更新策略和递归过滤捆绑方法。第九节返回到度量自由度(基准缺失)的理论问题,包括内部约束理论。第十节详细介绍了用于监视参数估计值的准确性和可靠性的质量控制方法。第十一节简要介绍了网络设计,即如何放置镜头以确保准确,可靠的重建。第十二节通过总结主要结论并为方法提供一些临时建议,从而完善了本文的主体。也有一些附录,附录A简述了捆绑方法发展的概要,并附带了文献。附录B给出了矩阵分解、更新、协方差计算方法的一些技术细节。附录C给了在设计捆绑软件的一些建议和一些网上有用的资源。本文以词汇表和参考文献结尾。
- 一般参考文献: 有时文化的不同使得视觉工作者阅读摄影测量文献变得很困难。Atkinson7编辑的资料集和Karara6的手册都是近距离摄影测量法(而不是航空摄影法)的相对易懂的介绍。其他可获得的教程论文包括2 4 5。 Kraus8可能是使用最广泛的摄影测量学教科书。Brown对捆绑方法的早期调查1值得一读。Slama 3经常引用的手册现在已经过时了,尽管其捆绑调整的介绍仍然很重要。Wolf&Ghiliani 9是致力于调整计算的文献(text),着重于测量。Hartley&Zisserman 14是一本优秀的最新教科书,从计算机视觉的角度介绍了视觉几何。对于非线性优化,Fletcher15和Gill等16是传统文献,而Nocedal&Wright 17是很好的现代介绍。对于线性最小二乘,Björck18是最高级的,而Lawson&Hanson是一个很好的旧版本。对于更通用的数值线性代数,Golub&Van Loan19是标准。 Duff等人20和George&Liu21是稀疏矩阵技术的标准教材。我们将不详细讨论用于束调整的初始化方法,但是适当的重建方法在视觉社区中是丰富且众所周知的。 参见例如14以供参考。
表示: 估计的结构,例如相机,使用单个大状态向量X\mathbf{X}X参数化。通常,状态属于非线性流形,但我们将其局部线性化并使用表示为δx\mathbf{\delta x}δx的较小线性状态位移来work。观测(例如,测量的图像特征点)用Z‾\underline \mathbf{Z}Z表示,与此对应的在参数X\mathbf{X}X处的预测值用Z=Z(X)\mathbf{Z = Z(X)}Z=Z(X),残差(residual prediction error)ΔZ(X)≡Z‾−Z(X)\Delta \mathbf{Z(X)} \equiv \underline \mathbf{Z} - \mathbf{Z(X)}ΔZ(X)≡Z−Z(X)。然而,观测和预测的误差经常仅仅通过它们的影响在成本函数(cost function)f(x)=f(predz(X))\mathbf{f(x) = \mathbf{f}}(predz(\mathbf{X}))f(x)=f(predz(X))上隐含出现。成本函数的梯度是g≡dfdx\mathbf{g} \equiv \mathbf{\frac{df}{dx}}g≡dxdf,它的海塞(Hessian)是H≡d2fdx2\mathbf{H} \equiv \mathbf{\frac{d^2 f}{dx^2}}H≡dx2d2f。观测状态的雅克比是J≡dzdx\mathbf{J} \equiv \mathbf{\frac{dz}{dx}}J≡dxdz。δX,δZ\delta \mathbf{X}, \delta \mathbf{Z}δX,δZ的维数是nX,nZn_\mathbf{X}, n_\mathbf{Z}nX,nZ。
References
D. C. Brown. The bundle adjustment — progress and prospects. Int. Archives Photogrammetry, 21(3), 1976. Paper number 3–03 (33 pages). ↩︎ ↩︎
S. Granshaw. Bundle adjustment methods in engineering photogrammetry. Photogrammetric Record, 10(56):181–207, 1980. ↩︎ ↩︎
C. C. Slama, editor. Manual of Photogrammetry. American Society of Photogrammetry and Remote Sensing, Falls Church, Virginia, USA, 1980. ↩︎ ↩︎
M. A. R. Cooper and P. A. Cross. Statistical concepts and their application in photogrammetry and surveying. Photogrammetric Record, 12(71):637–663, 1988. ↩︎ ↩︎
M. A. R. Cooper and P. A. Cross. Statistical concepts and their application in photogrammetry and surveying (continued). Photogrammetric Record, 13(77):645–678, 1991 ↩︎ ↩︎
H. M. Karara. Non-Topographic Photogrammetry. Americal Society for Photogrammetry and Remote Sensing, 1989. ↩︎ ↩︎
K. B. Atkinson, editor. Close Range Photogrammetry and Machine Vision. Whittles Publishing, Roseleigh House, Latheronwheel, Caithness, Scotland, 1996. ↩︎ ↩︎
K. Kraus. Photogrammetry. Dümmler, Bonn, 1997. Vol.1: Fundamentals and Standard Processes. Vol.2: Advanced Methods and Applications. Available in German, English & several other languages. ↩︎ ↩︎
P. R. Wolf and C. D. Ghilani. Adjustment Computations: Statistics and Least Squares in Surveying and GIS. John Wiley & Sons, 1997. ↩︎ ↩︎
W. Förstner. Reliability analysis of parameter estimation in linear models with applications to mensuration problems in computer vision. Computer Vision, Graphics & Image Processing,40:273–310, 1987. ↩︎
A. Grün.Precision and reliability aspects in close range photogrammetry. Int. Arch. Photogrammetry, 11(23B):378–391, 1980. ↩︎
W. Förstner. Evaluation of block adjustment results. Int. Arch. Photogrammetry, 23-III, 1980. ↩︎
W. Förstner. The reliability of block triangulation. Photogrammetric Engineering & Remote Sensing, 51(8):1137–1149, 1985. ↩︎
R. Hartley and A. Zisserman. Multiple View Geometry in Computer Vision. Cambridge University Press, 2000. ↩︎ ↩︎
R. Fletcher. Practical Methods of Optimization. John Wiley, 1987. ↩︎
P. Gill, W. Murray, and M. Wright. Practical Optimization. Academic Press, 1981. ↩︎
J. Nocedal and S. J. Wright. Numerical Optimization. Springer-Verlag, 1999. ↩︎
Åke Björck. Numerical Methods for Least Squares Problems. SIAM Press, Philadelphia, PA, 1996. ↩︎
G. Golub and C. F. Van Loan. Matrix Computations. Johns Hopkins University Press, 3 rd edition, 1996. ↩︎
I. Duff, A. M. Erisman, and J. K. Reid. Direct Methods for Sparse Matrices. Oxford University Press, 1986. ↩︎
J. A. George and J. W.-H. Liu. Computer Solution of Large Sparse Positive Definite Systems. Prentice-Hall, 1981. ↩︎
Bundle Adjustment — A Modern Synthesis(一)相关推荐
- 矩阵求逆c语言实现_[V-SLAM] Bundle Adjustment 实现
SLAM问题的后端有主要有滤波和优化两种方案.目前,普遍认为优化的方法在精度上要超过滤波方法,因为它可以进行多次的线性化.近年来出现的SLAM算法也大都是基于优化的算法(如ORB-SLAM.DSO等) ...
- SLAM专题(10)- 最小化重投影误差与Bundle Adjustment (BA)
在SFM(structure from motion)的计算中BA(Bundle Adjustment)作为最后一步优化具有很重要的作用,在近几年兴起的基于图的SLAM(simultaneous lo ...
- Bundle Adjustment (BA)简述
笔者到底想讲些啥? 在SFM(structure from motion)的计算中BA(Bundle Adjustment)作为最后一步优化具有很重要的作用,在近几年兴起的基于图的SLAM(simul ...
- 关于sba(sparse bundle adjustment)的30个常见问题
Q1 -- 什么是sba? sba是一个C/C++软件包对广义稀疏光束平差,在GNU公共许可证下分发.sba是通用的,提供关于定义涉及光束法平差的图像投影的参数选择和函数关系增强的灵活性. Q2 -- ...
- ORB_SLAM2代码阅读(5)——Bundle Adjustment
ORB_SLAM2代码阅读(5)--Bundle Adjustment 1. 说明 2. Bundle Adjustment(BA)的物理意义 3. BA的数学表达 4. BA的求解方法 4.1 最速 ...
- SLAM笔记(五)光束平差法(Bundle Adjustment)
1.什么是光束平差法 前边的八点法,五点法等可以求出闭式解的前提是已经知道确切的点对.但实际情况中往往存在大量的噪声,点与点不是精确地对应甚至出现一些错误匹配. 光束平差法由Bundle Adjus ...
- Bundle Adjustment原理及应用(附实战代码)
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 虽然现在的轮子很多,但我们在使用过程中会碰到很多问题,而我们经常不知道从哪里下手,说明轮子不是你造的你 ...
- 史上最简SLAM零基础解读(7) - Jacobian matrix(雅可比矩阵) → 理论分析与应用详解(Bundle Adjustment)
本人讲解关于slam一系列文章汇总链接:史上最全slam从零开始 文末正下方中心提供了本人联系方式,点击本人照片即可显示WX→官方认证{\color{blue}{文末正下方中心}提供了本人 \co ...
- OpenCV实现SfM(四):Bundle Adjustment
http://blog.csdn.net/AIchipmunk/article/details/52433884 OpenCV实现SfM(四):Bundle Adjustment 标签: opencv ...
- [论文笔记|VIO]ICE-BA: Incremental, Consistent and Efficient Bundle Adjustment for Visual-Inertial SLAM
文章目录 摘要 1. 介绍 2. Related Work 3. Framework 3.1. Constraint Functions 3.2. Local and Global Optimizat ...
最新文章
- 【唠叨两句】如何将一张树型结构的Excel表格中的数据导入到多张数据库表中...
- 【Android工具】更新手机视频流媒体客户端播放器OPlayer
- HDU 1495 非常可乐
- micropython固件源码_Micropython加速物联网开发7 - Micropython源码编译与固件更新
- java封装为so,java挪用.so文件
- 一文看懂 BDTC 2018:探秘大数据新应用(附 PPT 下载)
- d2j-dex2jar classes.dex报错
- db9小波包分解matlab,小波包分解 仿真 matlab
- java数字金额大写金额_Java实现 将数字金额转为大写中文金额
- 通信恩仇,5G江湖(转)
- 不同性能测试工具的并发模式
- DataSource和SessionFactory的区别
- 开始→运行→命令 集锦
- FastRule: Efficient Flow Entry Updates for TCAM-based OpenFlow Switches(一)
- 2022-2028年全球冷轧钢卷行业供需分析及发展前景研究报告
- 如何让你的代码变得更优雅?这些代码规范和技巧必须知道(进阶必备,建议收藏)
- 嘉年华回顾丨王涛带你探秘新一代分布式数据库
- DSPTMS320F28335_SCI详解
- python 日历模块_详解Python日历模块的使用
- Iphone 上字体大全
热门文章
- ubuntu不支持安装搜狗_Ubuntu下安装搜狗输入法已经fcitx升级后搜狗输入法不能使用的解决办法...
- Flink 如何管理 Kafka 消费位点
- c语言 gets getc,6.16 C语言,getchar gets getc有什么区别 分别是表示什么的
- gradient设置上下渐变_CSS3中渐变gradient详解
- java毕业设计菜鸟驿站快递分发系统Mybatis+系统+数据库+调试部署
- 一键生成2020年虎年头像
- Redis哨兵原理详解
- c语言项目研发实训,C语言实训项目表V1.0.doc
- 【操作系统】Main Memory
- 小米、华为、一加、OPPO接连入场,电视的魅力在哪里?