位姿估计
代码主框架在 FrameHandlerMono::processFrame()。
稀疏图像对齐(直接法)
代码主要在 SparseImgAlign。
使用稀疏直接法计算两帧之间的初始相机位姿T_cur_from_ref:根据last_frame_的特征点 和last_frame_与new_frame_的相对位姿,建立损失函数(两帧之间稀疏的 4x4 的 patch 的光度误差)SparseImgAlign::computeResiduals,使用 G-N 优化算法获得两帧之间的位姿变换,没有特征匹配过程,效率较高。
其中,
- patch 选取了 4x4 的大小,忽略 patch 的变形,并且没有做仿射变换(affine warp),加快了计算速度
- 在几个图像金字塔层之间迭代优化,从金字塔的最顶层(默认是第五层klt_max_level)逐层计算(默认计算到第 3 层klt_min_level)
- 广泛使用指针,比直接取值速度更快
- 逆向组合(inverse compositional)算法,预先计算雅克比矩阵precomputeReferencePatches,节省计算量
- 几处双线性插值方法对提高精度有帮助
最后,cur_frame_-&g