本章说
题头诗:
第八讲主要介绍光流法和直接法,光流法仅仅给出两幅图之间的特征点匹配结果;而直接法是图像级的优化,给出两幅图之间的相对位姿变换
讲内容
光流法(LK光流)
前提假设:随相机位姿的变换,对应点的灰度不变假设
具体实现:
- 首先依照特征点找寻方法找到特征点(例如角点)
- 然后选取角点附近某个大小的窗口,利用像素梯度迭代,找到窗口总光度误差最小的匹配点
原理说明:
对于LK光流,知道了目标函数怎么写,也就知道了具体的原理和代码实现:
m i n Δ x , Δ y ∣ ∣ I 1 ( x , y ) − I 2 ( x + Δ x , y + Δ y ) ∣ ∣ 2 2 min_{\Delta x,\Delta y}||I_1(x,y)-I_2(x+\Delta x,y+\Delta y) ||_2^2 minΔx,Δy∣∣I1(x,y)−I2(x+Δx,y+Δy)∣∣22
该目标函数的雅可比矩阵为在图2中在 x + Δ x , y + Δ y x+\Delta x,y+\Delta y x+Δx,y+Δy的像素梯度(可以直接用导数定义给出),该雅可比矩阵是1*2维的
直接法
区别:
光流法给出的是特征点匹配结果,还需要应用对极约束去计算相机相对运动,而直接法是将两步合二为一,内含假设是已知一点P在相机1下的空间位置
p
1
p_1
p1
原理说明:
目标函数仍然是光度误差,但是求导对象变成了相机相对运动位姿T
m i n T J ( T ) = ∑ e i T e , e i = I 1 ( p 1 , i ) − I 2 ( p 2 , i ) min_T J(T)=\sum e_i^Te, e_i = I_1(p_1,i)-I_2(p_2,i) minTJ(T)=∑eiTe,ei=I1(p1,i)−I2(p2,i)
由于 p 2 = g ( f ( T , p 1 ) ) p_2 = g(f(T,p_1)) p2=g(f(T,p1)),通过链式法则可确定误差项关于T的导数,再应用非线性优化方法求解