当前位置:   article > 正文

视觉SLAM十四讲学习5 位姿估计(8)直接法_slam直接法原理

slam直接法原理

视觉SLAM十四讲学习5 位姿估计(8)直接法

前言

本篇是SLAM前端的最后一节,直接法。

直接法原理

上篇提到的光流法,用于特征点的快速匹配,然后再通过重投影误差优化估计位姿。这是一种“两步走”的位姿估计法,即先匹配,再优化

直接法基于光度不变假设,将匹配步骤省略,直接构建重投影误差优化位姿。首先给出相机模型,假设空间中某点 P P P
P ′ = ( T P ) [ 1 : 3 ] p = 1 Z ′ K P ′ P'=(TP)_{[1:3]} \\ p= \frac{1}{Z'} KP' P=(TP)[1:3]p=Z1KP

对于相邻两帧图像,如果上一帧 P P P与关键点 p ′ p' p对应,与当前帧上的关键点 p p p对应,直接法认为两点理论上的灰度值应当相同:
I 1 ( p ′ ) = I 2 ( p ) I_1(p')=I_2(p) I1(p)=I2(p)
因此,就可以构建光度误差进行优化:
e = I 1 ( p ) − I 2 ( p ′ ) min ⁡ T ∑ i = 1 n = min ⁡ T ∑ i = 1 n ∣ ∣ I 1 ( p i ) − I 2 ( p i ′ ) ∣ ∣ 2 2 e=I_1(p)-I_2(p') \\ \quad \\ \min_T \sum_{i=1}^n = \min_T \sum_{i=1}^n ||I_1(p_i) - I_2(p_i')||^2_2 \\ e=I1(p)I2(p)Tmini=1n=Tmini=1nI1(pi)I2(pi)22

那么问题就变成了如何优化上面的非线性最小二乘问题。首先还是求优化函数的梯度:
e = I 1 ( p ) − I 2 ( 1 s K ( e δ ∧ P ) [ 1 : 3 ] ) = I 1 ( p ) − I 2 ( 1 s K P ′ ) ∇ e = − ∂ I 2 ∂ p ′ ∂ p ′ ∂ P ′ ∂ P ′ ∂ Δ δ e= I_1(p) - I_2(\frac {1}{s} K(e^{\delta^\land}P)_{[1:3]}) = I_1(p) - I_2(\frac {1}{s} KP') \\ \quad \\ \nabla e = -\frac {\partial I_2}{\partial p'} \frac {\partial p'}{\partial P'} \frac {\partial P'}{\partial \Delta \delta} \\ e=I1(p)I2(s1K(eδP)[1:3])=I1(p)I2(s1KP)e=pI2PpΔδP
梯度的后两项,与BA中的梯度是相同的:
∂ p ′ ∂ P ′ ∂ P ′ ∂ Δ δ = − [ 1 Z ′ f x 0 − 1 Z ′ 2 f x X ′ 0 1 Z ′ f y − 1 Z ′ 2 f y Y ′ ] [ I − P ′ ∧ ] ∇ e = ∂ I 2 ∂ p ′ [ 1 Z ′ f x 0 − 1 Z ′ 2 f x X ′ 0 1 Z ′ f y − 1 Z ′ 2 f y Y ′ ] [ I − P ′ ∧ ] \frac {\partial p'}{\partial P'} \frac {\partial P'}{\partial \Delta \delta} = -

[1Zfx01Z2fxX01Zfy1Z2fyY]
[IP]
\\ \quad \\ \nabla e = \frac {\partial I_2}{\partial p'}
[1Zfx01Z2fxX01Zfy1Z2fyY]
[IP]
\\ \quad \\ PpΔδP=[Z1fx00Z1fyZ21fxXZ21fyY][IP]e=pI2[Z1fx00Z1fyZ21fxXZ21fyY][IP]

最后,使用高斯牛顿法或者LM法做非线性优化,就能得到位姿结果。

直接法优缺点

优点:从以上步骤可以看出,实际上直接法并不依赖特征点,甚至可以随机取点做优化,非常省时;可以实现半稠密,稠密建图。

缺点:只适合小运动的位姿估计;光度不变假设实际很难满足;图像非凸,优化容易陷入局部最小。使用时通常采用更多的像素点进行优化。

后记

下篇开始,进入代码学习,Ceres+g2o

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号