论文阅读:SuMa++
论文:《SuMa++: Efficient LiDAR-based Semantic SLAM》
SuMa++是建立在SuMa基础上的方法,该方法使用了基于RangeNet++的语义分割技术,在ICP的基础上增加的语义约束。
发布本文的时候,网上还没有找到对SuMa++语义ICP的翻译讲解的文章。于是自己翻译出来,以供同样需要语义ICP算法的同学参考。
语义ICP部分
公式如下:
E ( V D , V M , N M ) = ∑ u ∈ V D ω u n u T ( T C t − 1 C t ( k ) u − v u ) 2 E(\mathcal{V}_D,\mathcal{V}_M,\mathcal{N}_M)=\sum\limits_{\mathbf{u}\in V_D}\omega_\mathbf{u}\mathbf{n_u}^T\biggl(T_{C_{t-1}C_t}^{(k)}u-\mathbf{v}_\mathbf{u}\biggr)^2 E(VD,VM,NM)=u∈VD∑ωunuT(TCt−1Ct(k)u−vu)2
其中残差 r u = n u T ( T C t − 1 C t ( k ) u − v u ) 2 r_{\mathbf{u}}=\mathbf{n_u}^T\biggl(T_{C_{t-1}C_t}^{(k)}u-\mathbf{v}_\mathbf{u}\biggr)^2 ru=nuT(TCt−1Ct(k)u−vu)2 为ICP算法部分, ω u \omega_\mathbf{u} ωu 为语义权重
其中每个顶点 u ∈ V D \mathbf{u}\in V_D u∈VD 与其参考顶点 v u ∈ V M \mathbf{v}_\mathbf{u}\in \mathcal{V}_M vu∈VM 和它的法向量 n u ∈ N M \mathbf{n}_\mathbf{u}\in \mathcal{N}_M nu∈NM 关联。
u \mathbf{u} u 对应的 v u \mathbf{v}_\mathbf{u} vu 和 n u \mathbf{n}_\mathbf{u} nu 为:
v u = V M ( Π ( T C t − 1 C t ( k ) u ) ) n u = N M ( Π ( T C t − 1 C t ( k ) u ) ) \begin{aligned} \mathbf{v}_{\mathbf{u}} &=\mathcal{V}_{M}\left(\Pi\left(\mathbf{T}_{C_{t-1} C_{t}}^{(k)} \mathbf{u}\right)\right) \\ \mathbf{n}_{\mathbf{u}} &=\mathcal{N}_{M}\left(\Pi\left(\mathbf{T}_{C_{t-1} C_{t}}^{(k)} \mathbf{u}\right)\right) \end{aligned} vunu=VM(Π(TCt−1Ct(k)u))=NM(Π(TCt−1Ct(k)u))
为了实现最小化,我们使用高斯牛顿,定义增量 δ \delta δ 如下:
δ = ( J ⊤ W J ) − 1 J ⊤ W r \delta=\left(\mathbf{J}^{\top} \mathbf{W} \mathbf{J}\right)^{-1} \mathbf{J}^{\top} \mathbf{W} \mathbf{r} δ=(J⊤WJ)−1J⊤Wr
其中 W ∈ R n × n \mathbf{W} \in \mathbb{R}^{n \times n} W∈Rn×n 是由与 r u r_{\mathbf{u}} ru 对应的 w u w_{\mathbf{u}} wu 组成的, r ∈ R n \mathbf{r}\in\mathbb{R}^n r∈Rn r u r_{\mathbf{u}} ru 的向量,
J ∈ R n × 6 \mathbf{J}\in\mathbb{R}^{n \times 6} J∈Rn×6 是 r ∈ R n \mathbf{r}\in \mathbb{R}^n r∈Rn 的Jacobian。
W \mathbf{W} W 中的 w u w_{\mathbf{u}} wu 的计算是这样的:
w u ( k ) = ρ Huber ( r u ( k ) ) C semantic ( S D ( u ) , S M ( u ) ) w_{\mathbf{u}}^{(k)}=\rho_{\text {Huber }}\left(r_{\mathbf{u}}^{(k)}\right) C_{\text {semantic }}\left(\mathcal{S}_{D}(\mathbf{u}), \mathcal{S}_{M}(\mathbf{u})\right) wu(k)=ρHuber (ru(k))Csemantic (SD(u),SM(u))
使用了Huber:
ρ
Huber
(
r
)
=
{
1
,
if
∣
r
∣
<
δ
δ
∣
r
∣
−
1
,
otherwise
\rho_{\text {Huber }}(r)=\left\{\begin{array}{cl}1 & , \text { if }|r|<\delta \\ \delta|r|^{-1} & , \text {otherwise }\end{array}\right.
ρHuber (r)={1δ∣r∣−1, if ∣r∣<δ,otherwise
C semantic ( ( y u , P u ) , ( y v u , P v u ) ) C_{\text {semantic }}\left(\left(y_{\mathbf{u}}, P_{\mathbf{u}}\right),\left(y_{v_{\mathbf{u}}}, P_{v_{\mathbf{u}}}\right)\right) Csemantic ((yu,Pu),(yvu,Pvu))
C semantic ( ⋅ , ⋅ ) = { P ( y u ∣ u ) , if y u = y v u 1 − P ( y u ∣ u ) , otherwise C_{\text {semantic }}(\cdot, \cdot)=\left\{\begin{array}{cl}P\left(y_{\mathbf{u}} \mid \mathbf{u}\right) & , \text { if } y_{\mathbf{u}}=y_{v_{\mathbf{u}}} \\ 1-P\left(y_{\mathbf{u}} \mid \mathbf{u}\right) & , \text { otherwise }\end{array}\right. Csemantic (⋅,⋅)={P(yu∣u)1−P(yu∣u), if yu=yvu, otherwise
其中 y u y_\mathbf{u} yu 对应 u \mathbf{u} u 的label, y v u y_{v_u} yvu 对应 v u v_\mathbf{u} vu 的label
更新中…