正在读SVO代码,这里一边读一边记录。
因为SVO算法中对于位姿估计部分有较多的工作,所以首先学习一下准备知识,入门VO的分类,帮助理解SVO算法。
VO分类
如果泛泛来分,VO可以分为2类:特征点法和直接法,可以参考《十四讲》的分类方法;细分的话,可以把SVO算作第三类,但其实SVO可以算作直接法的特殊形式或者将特征点和直接法相结合的结果。这三种方法各有什么特点?如何区分?
我一直喜欢通俗的方式理解一件事情,公式的方式虽然也能说明问题,但不实战往往不能明白一个命题,尤其是对于VO,也是迷糊了很久。以下是我的理解:
特征点法:
它的步骤很确定,特征提取(包括角点+描述子)、特征匹配、剔除外点(RANSAC)、对极约束求变换矩阵(基础矩阵或单应矩阵)、分解得到R和t;
直接法:
稠密直接法
最原始的直接法,需要利用所有像素构造残差,残差是整个图像的光度误差,然后这个残差对位姿求导,这个时候就需要非线性最小二乘的算法求解,GN或LM等,涉及链式法则求导,经典的残差关于位姿的Jacobian( 2