一、三角量测(Triangulation)
已知相机参数和匹配点恢复三维点的坐标
- 第 i 相机投影矩阵:
- 三维点点坐标:
- 在第 i 个视角中投影的图像坐标为:
- 根据投影方程可以得到:
- 上述等式两侧同时叉乘 xi:
- 即:注意 第3个方程与前两个方程线性相关
- 1个观察点提提供2个约束, 有 个自由度,至少2对点
二、3D-2D: PnP问题 (已知三维点和对应二维点求解相机内外参数)
- 直接线性变换法
2. 其他常用方法
- P3P法:需要4对不共面的点 求出2D点在当前相机坐标系中的3D点,然后 进行3D-3D的姿态求解
- https://www.cnblogs.com/mafuqiang/p/8302663.html
- Complete Solution Classification for the Perspective-Three-Point Problem
- A novel parametrization of the perspective-three-point problem for a direct computation of absolute camera position and orientation
- ePnP法:需要(>=4不共面或者3对共面) 点进行求解
- https://www.cnblogs.com/jian-li/p/5689122.html
- EPnP: Efficient Perspective-n-Point Camera Pose Estimation
三、捆绑调整Bundle Adjustment
- 问题阐述:同时对三维点位置和相机参数进行非线性优化
2. 无约束非线性最小优化问题:
-
- 优化上述问题的最优解通常是指它的局部最优解,因此需要一个较好的初始值
3. 最速下降法--假设函数一阶可微
- 假设
在处可微,则在此处有泰勒展开式
- 当
时可保证g 的值是在下降;
- 当
时,可达到最快的下降速度(略去高阶不计)
4. 牛顿法--假设函数二阶可微
- 假设
在处二阶可微,且假定二阶导数总是正定的, 则它在处,以的二阶近似函数
-
的极小值点作为下一次迭代点。
- 对上式求梯度并令其等于0,可以得到
- 特性:
- 1)速度快 最速下降法是局部平面拟合,牛顿法是局部二次曲面拟合
- 2)计算量大 需要计算和保存二阶Hessian矩阵的逆矩阵
- 3)要求初始点离最优点较近 否则无法保证收敛,甚至无法保证下降性
5. Levenberg-Marquardt法-原理与优势
- 原理: 是一种“信赖阈”的方法,当收敛速度较快时,增大信赖域,使算法趋向于牛顿法;当收敛速度较慢时,减小信赖域,使算法趋向于最速梯度法
- 优势:
- 速度快,只用到一阶矩阵
- 可以在距离初始值较远处得到最优解
- 实现
- 算法流程
- 增量规方程的求解
- 正规方程的求解
- 雅阁比矩阵的计算
四、捆绑调整的几种形式
1.同时优化相机和三维点
2. 优化相机:固定三维点坐标,优化相机参数
3.只优化三维点:固定相机参数
4.单目相机——内参数共享
五、运动恢复结构SFM
- 定义:通过相机运动同时恢复相机参数和场景结构
- 特征检测与匹配
- 双视点几何
- 网络连接图
- Tracks
- 捆绑调整(BA)
六、增量运动恢复结构 Incremental SFM
1.初始相机的选取
2.RANSAC三角量测
3.Tracks滤波
4.全局的捆绑调整
- 主要优点
- 将误差均匀分布在连接图上, 没有误差积累
- 不需要考虑初始相机选取和 相机添加顺序问题
- 仅执行一次捆绑调整,重建 效率高
- 主要缺点:
- 鲁棒性不足,相机位置求解时对匹配外点敏感
- 过滤连接图边界,容易造成部分图像丢失
5.重建新的视角
1)选择新的视角:可见的tracks数目最多
2)恢复新建相机姿态:找到3D-2D对应关系;用ransac-pnp算法求解相机姿态
3)单个相机的捆绑调整:相机姿态的非线性优化
4)tracks重建:增加视角之后会产生新的tracks(大于两个视角的匹配点)
5)tracks滤波:对重建的tracks进行外点去除
6)全局捆绑调整:对场景中所有的相机和三维点进行非线性优化;每重建一个视角运行一次,也可以重建多个视角运行一次
1. 增量捆绑调整的优缺点——常用来做算法比较的基准
- 主要优点:
- 对特征匹配外点鲁棒
- 重建精度高
- 捆绑调整不断优化场景结构
- 主要缺点:
- 对初始相机对的选取以及相机添加顺序敏感
- 大场景产生累计误差导致场景漂移
- 重复进行捆绑调整,效率低
- 重建结果:
2.焦距的获取
- 自标定的方法获取初始值,如 VisualSFM
- 从可交换图像文件中读取EXIF初始值 如 Bundler
3.尺度不确定性:需要GPS进行地理标注
4.动态物体:标准的sfm只能重建场景中的动态物体
5.重复结构
6.非朗伯面:找不到足够的匹配特征点