Motion Estimation for Self-Driving Cars With a Generalized Camera

Motion Estimation for Self-Driving Cars With a Generalized Camera

摘要

本文提出了基于非完整约束的2-point法计算本质矩阵。提出了至少一对inter-camera匹配即可计算2-point的方法,以及只有intra-camera匹配的特例求解。

通用相机模型

在这里插入图片描述

图2为车上的通用相机排布,其中车体坐标系为V,记相机的内参为 K i K_i Ki,外参为 T C i = [ R C i , t C i ] T_{C_i}=[R_{C_i},t_{C_i}] TCi=[RCi,tCi],归一化相机坐标为 x ^ i j = K i − 1 x i j \hat{x}_{ij}=K^{-1}_ix_{ij} x^ij=Ki1xij。使用6维的Plucker线消除单一相机投影中心描述3D点 X j X_j Xj的依赖:

在这里插入图片描述

它描述了连接 x i j x_{ij} xij X j X_j Xj的光线, u i j = R C i x ^ j u_{ij}=R_{C_i}\hat{x}_j uij=RCix^j为在V系下该光线的单位方向。(1) 将两个图像坐标系的点关联变为两条光线相交,极限约束变为:

在这里插入图片描述

其中, l i j , k , l i j , k + 1 l_{ij,k},l_{ij,k+1} lij,k,lij,k+1为第k帧和k+1帧的Plucker线关联。 E G C E_{GC} EGC为通用本质矩阵, R R R为通用相机系的相对旋转, E = [ t ] × R E=[t]_{\times}R E=[t]×R为原来的本质矩阵。

运动估计

在这里插入图片描述

图3为运动估计流程图。2-point RANSAC使用intra-camera关联计算相对运动,对于2-point RANSAC估计出来的yaw角 θ \theta θ接近于0时,使用inter-camera关联通过1-point法计算尺度 ρ \rho ρ,使用1-point法计算时 θ \theta θ是固定住的。最后,估计得到的 θ , ρ \theta,\rho θ,ρ会经过非线性优化和Kalman滤波。

匹配关联

在这里插入图片描述

本文的运动估计算法依赖两种关联——intra-camera和inter-camera,前者为同一相机在时序上的关联,后者为不同相机在时序上的关联,如图4所示。在实际中,inter-camera关联会远少于intra-camera,因此我们使用intra-camera关联作为默认case,而在直行case时使用inter-camera关联来恢复尺度。

2-point solution

在这里插入图片描述

图5描述了k时刻到k+1时刻的阿克曼转向模型, V k V_k Vk V k + 1 V_{k+1} Vk+1间的相对运动 R , t R,t R,t为待估计量,由该模型可得:

在这里插入图片描述

其中, θ \theta θ为yaw角变化量, ρ \rho ρ为尺度, ϕ = θ / 2 \phi=\theta/2 ϕ=θ/2。可以看出,两帧之间的相对运动只有2个自由度——尺度和yaw角。将(3) 代入 (2) 的 E G C E_{GC} EGC,有:

在这里插入图片描述

为书写方便,记k时刻的Plucker线为 l = [ u T , ( t C × u ) T ] T l=[u^T,(t_C\times u)^T]^T l=[uT,(tC×u)T]T k + 1 k+1 k+1时刻为 l ′ = [ u ′ T , ( t C ′ × u ′ ) T ] T l'=[u'^T,(t_{C'}\times u')^T]^T l=[uT,(tC×u)T]T,则公式 (2) 可写为:

在这里插入图片描述

其中,

在这里插入图片描述

式 (5) 为新的GEC约束,需要2组Plucker线关联求解。记Plucker线的系数分别为 ( a 1 , b 1 , c 1 , d 1 , e 1 ) (a_1,b_1,c_1,d_1,e_1) (a1,b1,c1,d1,e1) ( a 2 , b 2 , c 2 , d 2 , e 2 ) (a_2,b_2,c_2,d_2,e_2) (a2,b2,c2,d2,e2),根据三角形半角公式:

在这里插入图片描述

我们有:

在这里插入图片描述

其中, α = cos ⁡ θ 2 \alpha=\cos \frac{\theta}{2} α=cos2θ β = sin ⁡ θ 2 \beta=\sin\frac{\theta}{2} β=sin2θ,联立(7a)(7b)消除 ρ \rho ρ,我们有:

在这里插入图片描述

由于 α 2 + β 2 = 1 \alpha^2+\beta^2=1 α2+β2=1,将其代入(8)消除 α \alpha α,并令 γ = β 2 \gamma=\beta^2 γ=β2,则(8)可以简化为:

在这里插入图片描述

A , B , C , D A,B,C,D A,B,C,D为由 ( a , b , c , d , e ) (a,b,c,d,e) (a,b,c,d,e)组成的系数,其中D具有特殊性质:

在这里插入图片描述

对于intra-camera关联有 t C = t C ′ t_C=t_C' tC=tC,此时最后两项关于a的系数会被消掉,并且有 a = − e a=-e a=e,由此可得 D = 0 D=0 D=0,因此(10b)变为:

在这里插入图片描述

其中一个解为 γ = 0 \gamma=0 γ=0,另外两解为 γ = − B ± B 2 − 4 A C 2 A \gamma=\frac{-B\pm\sqrt{B^2-4AC}}{2A} γ=2AB±B24AC 。将 γ \gamma γ带回 γ = β 2 \gamma=\beta^2 γ=β2,可得 β \beta β最多有6组解,其中两组为0。最终 θ \theta θ可由 β = sin ⁡ θ 2 \beta=\sin\frac{\theta}{2} β=sin2θ解出, ρ \rho ρ由公式(7)解出。

退化case

当直行时,只有intra-camera关联无法确定尺度,但是至少只要一组inter-camera关联就可以确定尺度。对于inter-camera关联,有 t C = t C ′ t_C=t'_C tC=tC,此时 a ≠ − e a\ne -e a=e,因此 ρ \rho ρ可以由公式(7)确定。这表明,当使用intra-camera关联估计出的内点解为 ( ρ = 1 , θ = 0 ) (\rho=1,\theta=0) (ρ=1,θ=0)时,可使用inter-camera关联来求解尺度。

鲁棒估计

使用2-point RANSAC剔除外点,对于每个相机,使用估计的R、t和相机外参 T C i T_{C_i} TCi来计算本质矩阵,通过检查Sampson 误差来计算内点比例。RANSAC的迭代次数为 m = ln ⁡ ( 1 − p ) ln ⁡ ( 1 − v n ) m=\frac{\ln(1-p)}{\ln(1-v^n)} m=ln(1vn)ln(1p),其中 n n n为关联对数, p p p为期望内点比例, v v v为所有关联都是内点的概率,假设 p = 0.99 , v = 0.5 p=0.99,v=0.5 p=0.99,v=0.5,则总共需要16次迭代。

非线性优化

在外点剔除后,进行一次非线性优化来得到准确的 ρ , θ \rho,\theta ρ,θ,损失函数为:

在这里插入图片描述

其中, ( x i j ↔ x i ′ j ) (x_{ij}\leftrightarrow x_{i'j}) (xijxij)为前后帧的关联, X j X_j Xj为三角化的3D点, C C C包括了intra-camera和inter-camera的关联。 P i , P i ′ P_i,P_{i'} Pi,Pi为相机投影矩阵:

在这里插入图片描述

优化的初值由上一部RANSAC的估计得到。

卡尔曼滤波

我们基于恒速模型实现了对 ρ , θ \rho,\theta ρ,θ的卡尔曼滤波,由于车体运动由转向和速度两者控制,因此我们分别对尺度和yaw角实现1D卡尔曼滤波,图6对比了直接估计和卡尔曼滤波的结果,其中蓝色线为直接2-point估计,绿色线为卡尔曼滤波结果。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值