天天看點

Scan Context——論文學習0. 前言1. 摘要及引言2. Scan Context建構3. 雙層比對算法與Scan Context相似度打分4. 整體流程

Scan Context——論文學習

  • 0. 前言
  • 1. 摘要及引言
  • 2. Scan Context建構
  • 3. 雙層比對算法與Scan Context相似度打分
    • 3.1 Ring Key
    • 3.2 評分
  • 4. 整體流程

0. 前言

在前一段時間深藍學院課程中,用到了Scan Context。因為時間原因,一直沒有深入了解。這裡重新對論文進行學習。

論文中描述了大量的實驗結果,這也是作者提到的關鍵貢獻之一。本篇文章主要對論文的理論部分進行學習。

在這篇文章中,有一些概念類詞彙在學習論文過程中造成了一些困擾,這裡也提前進行記錄。

perception aliasing(感覺混疊):感覺混疊是一種在不同的地方中産生相似的視覺區域現象1,即不同位置的相似環境産生了定位錯誤。就個人了解,本文中感覺混疊主要指同一位置的因為不同光照、物體不同等産生了定位錯誤。

基于雷達的位置識别需要解決的兩個問題:需要克服

egocentric 2.5D information(自我中心的2.5D 資訊):這個還沒有搞清楚,大概是将3維雷達資訊通過矩陣(也就是提出的Scan Context描述子)表示出來,矩陣内容含有一定的3維資訊(高度),而該描述子是以機器人自身為中心的。

L0範數: 指向量中非0的元素的個數

root shift是啥,為啥可以對平移魯棒

1. 摘要及引言

1.1 摘要

重點提煉了Scan Context 的特點,即基于3D雷射雷達的非直方圖環境描述方法。該方法的比對度計算采用雙層搜尋算法來提高效率,且與現有算法相比有了巨大提升。

1.2 引言

基于雷達的位置識别算法有兩個需要解決的問題,旋轉不變性以及噪聲處理。這也是本文所涉及到的。

本文貢獻主要在四個方面。

  1. 高效的桶編碼函數(Efficient bin encoding function),具有對點雲密度和法線的不變性。
  2. 儲存點雲内部結構(Preservation of internal structure of a point cloud),提高了scan context對不同視角的正确識别能力。
  3. 高效的雙層比對算法(Effective two-phase matching algorithm),先利用Ring key進行快速的上層搜尋,得到少量候選幀。随後對候選幀與目前幀進行距離計算。
  4. 與現有主流算法的徹底比較,大量的實驗。

2. Scan Context建構

Scan Context描述子是将單幀雷射雷達點雲資料轉換為

數值為目前桶内雷射點最大高度的二維矩陣

首先,對Scan Context 桶(區域劃分)進行介紹。如圖1所示,将單幀雷射雷達按兩個方向:徑向與環向進行劃分。其區域數量分别是Nr(徑向)、Ns(環向)。是以,其區域分辨率為 L max ⁡ N r \frac{L_{\max }}{N_{r}} Nr​Lmax​​(徑向), 2 π N s \frac{2 \pi}{N_{s}} Ns​2π​(環向)。

是以,目前幀點雲為劃分的區域的并集。

P = ⋃ i ∈ [ N r ] , j ∈ [ N s ] P i j \mathcal{P}=\bigcup_{i \in\left[N_{r}\right], j \in\left[N_{s}\right]} \mathcal{P}_{i j} P=i∈[Nr​],j∈[Ns​]⋃​Pij​

是以,目前幀點雲的Scan Context描述子可以表達為Nr * Ns的矩陣,其元素值為區域點雲中高度的最大值。

即,

I = ( a i j ) ∈ R N r × N s , a i j = ϕ ( P i j ) I=\left(a_{i j}\right) \in \mathbb{R}^{N_{r} \times N_{s}}, a_{i j}=\phi\left(\mathcal{P}_{i j}\right) I=(aij​)∈RNr​×Ns​,aij​=ϕ(Pij​)

其中, ϕ ( P i j ) = max ⁡ p ∈ P i j z ( p ) \phi\left(\mathcal{P}_{i j}\right)=\max _{\mathbf{p} \in \mathcal{P}_{i j}} z(\mathbf{p}) ϕ(Pij​)=p∈Pij​max​z(p)

Scan Context——論文學習0. 前言1. 摘要及引言2. Scan Context建構3. 雙層比對算法與Scan Context相似度打分4. 整體流程

圖1 Scan context 區域劃分

疑問:因為再次回到同一位置時車道不一樣而導緻的scan context 行順序不同。為了解決這個問題,将原始點雲又放入 N t r a n s N_{trans} Ntrans​鄰域中,并将其與Scan context一起存下來。

3. 雙層比對算法與Scan Context相似度打分

論文中先講了對scan context的相似度評分,而後因其計算量過大,無法對所有矩陣進行評分,故引入了中間描述子Ring Key。首先利用Ring Key進行候選幀的挑選,而後對scan context進行評分。

3.1 Ring Key

将scan context對行進行計算,從矩陣I(scan context)得到向量k,k中每一行表示該圓環區域中的占據率(非空區域與Ns的比值)。另外,通過k建構KD樹,實作快速檢索。

即,

k = ( ψ ( r 1 ) , … , ψ ( r N r ) ) ψ ( r i ) = ∥ r i ∥ 0 N s \mathbf{k}=\left(\psi\left(r_{1}\right), \ldots, \psi\left(r_{N_{r}}\right)\right) \\ \psi\left(r_{i}\right)=\frac{\left\|r_{i}\right\|_{0}}{N_{s}} k=(ψ(r1​),…,ψ(rNr​​))ψ(ri​)=Ns​∥ri​∥0​​

Scan Context——論文學習0. 前言1. 摘要及引言2. Scan Context建構3. 雙層比對算法與Scan Context相似度打分4. 整體流程

圖2 Ring key示意圖

這樣,就可以根據門檻值條件擷取候選幀。

c ∗ = argmin ⁡ c k ∈ C D ( I q , I c k ) ,  s.t  D < c^{*}=\underset{c_{k} \in \mathcal{C}}{\operatorname{argmin}} D\left(I^{q}, I^{c_{k}}\right), \text { s.t } D< c∗=ck​∈Cargmin​D(Iq,Ick​), s.t D<

3.2 評分

在擷取到候選幀的基礎上,分别進行評分,以擷取最終比對結果。對于目前幀Iq和候選幀Ic,其距離可以表示為。

d ( I q , I c ) = 1 N s ∑ j = 1 N s ( 1 − c j q ⋅ c j c ∥ c j q ∥ ∥ c j c ∥ ) d\left(I^{q}, I^{c}\right)=\frac{1}{N_{s}} \sum_{j=1}^{N_{s}}\left(1-\frac{c_{j}^{q} \cdot c_{j}^{c}}{\left\|c_{j}^{q}\right\|\left\|c_{j}^{c}\right\|}\right) d(Iq,Ic)=Ns​1​j=1∑Ns​​(1−∥∥​cjq​∥∥​∥∥​cjc​∥∥​cjq​⋅cjc​​)

其中, c j q c_{j}^{q} cjq​和 c j c c_{j}^{c} cjc​是列向量。

然而,這裡仍然有個問題,就是視角變換(偏航角的改變)會引起scan context中列向量的順序,而行向量卻不變(隻有偏航角改變,隻會在環向發生變化,相對距離不變)。

是以,采用周遊的形式。 這一步也是得益于利用Ring Key找出了較少的候選幀,減少了工作量。而這裡的周遊分辨率,就是每個區域劃分的分辨率,即 2 π N s \frac{2 \pi}{N_{s}} Ns​2π​。

D ( I q , I c ) = min ⁡ n ∈ [ N s ] d ( I q , I n c ) n ∗ = argmin ⁡ n ∈ [ N s ] d ( I q , I n c ) . \begin{aligned} D\left(I^{q}, I^{c}\right) &=\min _{n \in\left[N_{s}\right]} d\left(I^{q}, I_{n}^{c}\right) \\ n^{*} &=\underset{n \in\left[N_{s}\right]}{\operatorname{argmin}} d\left(I^{q}, I_{n}^{c}\right) . \end{aligned} D(Iq,Ic)n∗​=n∈[Ns​]min​d(Iq,Inc​)=n∈[Ns​]argmin​d(Iq,Inc​).​

值得注意的是,該方法還能得到可以用于ICP初始化的偏航角資訊,使ICP的速度和效果均有所提升。

4. 整體流程

對于單幀3D雷射雷達,首先對其提取Scan Context描述子。在此基礎上,利用Ring Key 描述子,通過KD樹這一快速檢索方式,找到最相似的候選幀,而後才将少數候選幀與目前幀進行相似度評分,檢測是否回環。

Scan Context——論文學習0. 前言1. 摘要及引言2. Scan Context建構3. 雙層比對算法與Scan Context相似度打分4. 整體流程
  1. 出自論文:Modeling Perceptual Aliasing in SLAM via Discrete-Continuous Graphical Models ↩︎

繼續閱讀