PL-SVO: Semi-Direct Monocular Visual Odometry by Combining Points and Line Segments

IROS2016 西班牙马拉加大学
首先看系统流程图
在这里插入图片描述
主要分为跟踪线程和建图线程两大部分。

跟踪线程

1.基于稀疏模型的图像对齐
在这里插入图片描述
设定一个初始位姿 T k , k − 1 T_{k,k-1} Tk,k1,且已经存在一些空间点线,然后把空间点线投影到当前帧,然后优化当前帧位姿 T k , k − 1 T_{k,k-1} Tk,k1使得当前帧与参考帧的光度误差最小。关于线特征需要早端点pq之间等距采样多个图像块,表示如下
L : = { p , q , w n ∣ p , q ∈ L k − 1 ∧ π ( T ( ξ ) ⋅ π − 1 ( p , d p ) ) ∈ Ω k ∧ π ( T ( ξ ) ⋅ π − 1 ( q , d q ) ) ∈ Ω k } \begin{aligned} \mathcal{L}:=\{& \mathbf{p}, \mathbf{q}, \mathbf{w}_{n} | \mathbf{p}, \mathbf{q} \in \mathcal{L}_{k-1} \\ & \wedge \boldsymbol{\pi}\left(\mathbf{T}(\boldsymbol{\xi}) \cdot \boldsymbol{\pi}^{-1}\left(\mathbf{p}, d_{\mathbf{p}}\right)\right) \in \boldsymbol{\Omega}_{k} \\ &\left.\wedge \boldsymbol{\pi}\left(\mathbf{T}(\boldsymbol{\xi}) \cdot \boldsymbol{\pi}^{-1}\left(\mathbf{q}, d_{\mathbf{q}}\right)\right) \in \boldsymbol{\Omega}_{k}\right\} \end{aligned} L:={p,q,wnp,qLk1π(T(ξ)π1(p,dp))Ωkπ(T(ξ)π1(q,dq))Ωk}
然后对于线特征的光度误差优化函数如下式所示
δ I l ( ξ , l ) = 1 N l ∑ n = 0 N l ∣ I k ( π ( T ( ξ ) ⋅ w n ) ) − I k − 1 ( w n ) ∣ \delta I_{l}(\boldsymbol{\xi}, \mathbf{l})=\frac{1}{N_{l}} \sum_{n=0}^{N_{l}}\left|I_{k}\left(\boldsymbol{\pi}\left(\mathbf{T}(\boldsymbol{\xi}) \cdot \mathbf{w}_{n}\right)\right)-I_{k-1}\left(\mathbf{w}_{n}\right)\right| δIl(ξ,l)=Nl1n=0NlIk(π(T(ξ)wn))Ik1(wn)
最后得到总的光度误差优化函数如下
ξ k − 1 , k ∗ = argmin ⁡ ξ { ∑ i ∈ P ∥ δ I p ( ξ , x i ) ∥ 2 + ∑ j ∈ L ∥ δ I l ( ξ , l j ) ∥ 2 } \boldsymbol{\xi}_{k-1, k}^{*}=\underset{\boldsymbol{\xi}}{\operatorname{argmin}}\left\{\sum_{i \in \mathcal{P}}\left\|\delta I_{p}\left(\boldsymbol{\xi}, \mathbf{x}_{i}\right)\right\|^{2}+\sum_{j \in \mathcal{L}}\left\|\delta I_{l}\left(\boldsymbol{\xi}, \mathbf{l}_{j}\right)\right\|^{2}\right\} ξk1,k=ξargminiPδIp(ξ,xi)2+jLδIl(ξ,lj)2
线特征误差对位姿的雅克比计算可以按成采样点光度误差对位姿的雅克比来求和得到,如下所示
∂ δ I l ( ξ , l j ) ∂ ξ ∣ ξ = 0 = 1 N l ∑ m = 0 N l ∂ δ I p ( ξ , w n ) ∂ ξ ∣ ξ = 0 \left.\frac{\partial \delta I_{l}\left(\boldsymbol{\xi}, \mathbf{l}_{j}\right)}{\partial \boldsymbol{\xi}}\right|_{\boldsymbol{\xi}=\mathbf{0}}=\left.\frac{1}{N_{l}} \sum_{m=0}^{N_{l}} \frac{\partial \delta I_{p}\left(\boldsymbol{\xi}, \mathbf{w}_{n}\right)}{\partial \boldsymbol{\xi}}\right|_{\boldsymbol{\xi}=\mathbf{0}} ξδIl(ξ,lj)ξ=0=Nl1m=0NlξδIp(ξ,wn)ξ=0
有了误差的定义,有了雅克比矩帧那么就开始优化求解了,文中使用的高斯牛顿法。
2.特征对齐
在这里插入图片描述
使用Lucas-Kanade光流跟踪算法利用前面多个参考帧的约束关系来对当前帧的图像块的像素位置进行修正,这里的误差函数定义如下
w j ′ = argmin ⁡ w j ′ ∥ I k ( w j ′ ) − I r ( A j ⋅ w j ) ∥ 2 , ∀ j \mathbf{w}_{j}^{\prime}=\underset{\mathbf{w}_{j}^{\prime}}{\operatorname{argmin}}\left\|I_{k}\left(\mathbf{w}_{j}^{\prime}\right)-I_{r}\left(\mathbf{A}_{j} \cdot \mathbf{w}_{j}\right)\right\|^{2}, \forall j wj=wjargminIk(wj)Ir(Ajwj)2,j
这里误差的定义虽然也是光度误差,但是这里和上面的图像对齐算法不同的是LK算法仅在2D的像素块上进行操作,因为不涉及到优化相机位姿,因此不会进行投影操作,而只是根据上一步的图像块位置作为初始位姿然后进行优化求精。
3.位姿和空间点线优化
在这里插入图片描述
上面两步,第一步获取了当前帧的初始位姿,第二步对当前帧的图像块位置进行了优化求精,然后第三步就是利用重投影误差来对共视窗口内对应的空间点线和当前帧位姿进行优化。下面是整体的优化函数
ξ k , w ∗ = argmin ⁡ ξ { ∑ i ∈ P ∥ r p ( T k , w , X i , k ) ∥ 2 + ∑ j ∈ L ∥ r l ( T k , w , P j , k , Q j , k , l j ) ∥ 2 } \begin{aligned} \xi_{k, w}^{*}=\underset{\xi}{\operatorname{argmin}} &\left\{\sum_{i \in \mathcal{P}}\left\|r_{p}\left(\mathbf{T}_{k, w}, \mathbf{X}_{i, k}\right)\right\|^{2}\right.\\ &\left.+\sum_{j \in \mathcal{L}}\left\|r_{l}\left(\mathbf{T}_{k, w}, \mathbf{P}_{j, k}, \mathbf{Q}_{j, k}, \mathbf{l}_{j}\right)\right\|^{2}\right\} \end{aligned} ξk,w=ξargmin{iPrp(Tk,w,Xi,k)2+jLrl(Tk,w,Pj,k,Qj,k,lj)2
这里线段的投影误差,使用线段端点到直线的距离来定义,如下所示
r l ( T k , w , P j , k , Q j , k , 1 j ) = [ 1 j ⋅ π ( T k , w ⋅ P j , k ) 1 j ⋅ π ( T k , w ⋅ Q j , k ) ] r_{l}\left(T_{k, w}, \mathbf{P}_{j, k}, \mathbf{Q}_{j, k}, 1_{j}\right)=\left[\begin{array}{c}{1_{j} \cdot \boldsymbol{\pi}\left(\mathbf{T}_{k, w} \cdot \mathbf{P}_{j, k}\right)} \\ {1_{j} \cdot \boldsymbol{\pi}\left(\mathbf{T}_{k, w} \cdot \mathbf{Q}_{j, k}\right)}\end{array}\right] rl(Tk,w,Pj,k,Qj,k,1j)=[1jπ(Tk,wPj,k)1jπ(Tk,wQj,k)]
在优化的过程更加鲁棒,使用了柯西鲁棒核函数,且优化过程使用高斯-牛顿法进行迭代优化。
ρ ( s ) = log ⁡ ( 1 + s ) \rho(s)=\log (1+s) ρ(s)=log(1+s)

建图线程

这一块儿主要进行关键帧的筛选和地图点逆深度滤波。论文没细讲参照SVO即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值