采用特征点法做VO存在耗时较大的问题,一般耗时情况:如下
(1) 在图像中提取特征点并计算特征描述, 非常耗时 ~10+ms ORB,shift耗时更多;
(2) 在不同图像中寻找特征匹配, 非常耗时 O(n^2) 暴力匹配
(3) 利用匹配点信息计算相机位姿, 比较快速<1ms
因此,为了速度还有不使用特征匹配计算VO的方法,主要有两大类,分别是:
(1) 通过其他方式寻找配对点; 光流法
稀疏光流法:以Lucas-Kanade(LK)光流为代表
稠密光流法:以Horn-Schunk(HS)光流为代表
本质上是估计像素在不同时刻图像中的运动。
光流法推导过程依赖灰度不变假设:
t时刻位于x,y处像素点的灰度值为
时刻位于x+dx,y+dy处的像素点灰度值为
对t+dt时刻进行泰勒一级展开如下:
,由于灰度值两个时刻相等,所以可得:
,所以这里是希望求解dx/dt和dy/dt。
注意:灰度不变是一种理想假设,对于高光、阴影等情况很可能不成立。
由于上述的光流公式是一个二元一次方程,欠定的,所以需要引入额外的约束。假定一个窗口(w*w)内光度不变,则可以构建矩阵:
通过超定最小二乘求解运动u,v
,