Bundle Adjustment光束平差法概述
来源:互联网 发布:mac下载爱奇艺视频 编辑:程序博客网 时间:2024/05/11 12:50
http://blog.csdn.net/abcjennifer/article/details/7588865
http://blog.csdn.net/ximenchuixuezijin/article/details/7246663
http://blog.csdn.net/peterli_xue/article/details/7528624
给出从不同视角拍摄的,描述同一个场景的一系列图片,bundle adjustment可以根据所有点在图像中的投影作为标准,同时提炼出描述场景结构的3D点坐标、相对运动参数和相机的光学参数。
通常在每个基于feature的3D场景重建算法中都要用到Bundle Adjustment,作为每个基于特征的多视重建视觉算法的最后一步,它是基于3D结构和视角参数(即相机位置,朝向,固有标定和径向畸变)的优化问题,用来获得最佳的三维结构和运动(如相机矩阵)参数估计。提供初始估计,BA同时精化运动和结构参数,通过最小化观测和预测的图像点之间的投影误差。在假定所获得的图像特征中有一些noise的基础上获得最佳重构效果:如果图像feature error服从标准高斯分布,那么Bundle Adjustment就基于最大似然估计。Bundle Adjustment的名字由来于每个3D特征和相机光学中心“发射”出的光束,而这些光束可以根据结构和视角参数进行最佳调节。
径向畸变:
BundleAdjustment可以将所观测的图像位置和预测的图像位置点进行最小error的映射(匹配),由很多非线性函数的平方和表示(error)。因此,最小化error由非线性最小二乘法实现,Levenberg-Marquardt由其简单实现性和阻尼策略(这样就能使其从初始假设值很快converge到稳定状态)成为最好的方法。通过迭代observed image和predicted image之间的最小距离,L-M方法在线性系统中通过正态方程解决了该问题。
用下式表示BundleAdjustment的工作过程:
其中假设:
n个3D点在m个view(拍摄场景)中,
向量Xij:imgj上的第i个点projection(坐标)这个是实际点坐标
值vij:如果点i在imgj上有映射,则vij=1; elsevij=0;
每个imgj由向量aj参数化 每个3D点由bi参数化
Q(ai,bj):点i在imgj上的predicted projection 这个是理想点坐标
d(x,y):向量x,y的欧式距离
可见,BundleAdjustment可以容忍特征点的丢失。
这个公式的意义就是最小化n个点在两幅图上投影的误差
光束平差法的最终目的归结为:减少观测图像的点和参考图像(预测图像)的点之间位置投影变换(再投影)误差。这最小化误差算法使用的是最小二乘算法,目前使用最为成功是Levenberg-Marquardt, 它具有易于实现,对大范围的初始估计能够快速收敛的优点。
光束法平差(BA)最小化一般通过Levenberg-Marquardt (LM)算法来辅助完成。然而,由于许多未知的因素作用于最小投影误差,一个通用的LM算法的实现(如MINPACK的 lmder)当应用于BA背景下的定义的最小化问题时,会带来极高的计算代价。
在基本的法方程中不同的三维点和相机参数相互之间影响较小,呈现一种稀疏的块结构(如图)。
一个基于Levenberg-Marquardt(LM)算法的通用稀疏光束法平差Sba利用这种稀疏的特性,使用LM算法的简化的稀疏变量来降低计算的复杂度。Sba是通用的,因为它保证了用户对于相机和三维结构的描述参数的定义的完全控制。因此,它事实上可以支持任何多视重建问题的显示和参数化。比如任意投影相机,部分的或完全标定的相机,由固定的三维点进行外方位元素(即姿态)的估计,精化本征参数,等等。用户要想在这类问题中使用sba,只需要提供合适的程序对这些问题和参数来计算估计的图像投影和他们的函数行列式(Jacobian)。sba包含了检查用户提供的函数行列式的一致性的程序。
- Bundle Adjustment光束平差法概述
- Bundle Adjustment光束平差法概述
- bundle adjustment 光束平差法介绍及其应用
- Bundle Adjustment——光束平差法
- bundle adjustment 光束平差法介绍及其应用
- DGAP - bundle adjustment 光束法平差
- Bundle Adjustment 光束法平差详解
- Bundle Adjustment 光束法平差详解
- Bundle adjustment-光束法平差介绍
- SLAM笔记(五)光束平差法(Bundle Adjustment)
- 光束平差(Bundle Adjustment)算法
- 三维重建(三)相机参数标定与光束平差法(Bundle Adjustment)
- sparse bundle adjustment 摄影测量光束法平差程序库------编译
- 光束平差法(Bundle Adjust)
- sparse bundle adjustment(sba) 摄影测量光束法平差程序库------程序库简介
- bundle adjustment
- Bundle Adjustment
- sba(sparse bundle adjustment):一个基于Levenberg-Marquardt(LM)算法的通用稀疏光束法平差C/C++软件包
- UART、IIC、SPI串行通信协议小结
- 分治法写划分数
- Appnium各种查找元素的封装及保存截图及判定元素是否存在
- 文本编辑工具 vim
- MFC六大核心机制之一:MFC程序的初始化
- Bundle Adjustment光束平差法概述
- 常用牛人主页链接(计算机视觉、模式识别、机器学习相关方向,陆续更新)
- matlab 的legend的任意标注
- hdu 1527
- 1602液晶显示实验报告
- Lambda表达式详解
- stm32 SSD1325驱动及UI迭代库
- 时间管理的七句话
- QT中QWidget、QDialog及QMainWindow的区别