最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

原創(chuàng)投稿 | ScanContext 論文詳解 - 用途:Lidar SLAM 回環(huán)檢測(cè)、空間描述符

2021-03-18 12:21 作者:深藍(lán)學(xué)院  | 我要投稿


Figure 1. 激光雷達(dá)沿著方位角(淺藍(lán))與放射方向(黃)的Bin分割 [1]
Figure 2. Scan Context示意圖 [1]

1.淺讀文章

Scan Context,從英文字面理解就是“?掃描 上下文 ”。 類比于我們閱讀的時(shí)候,需要理解上下文,才能明白其意,LidarSLAM在進(jìn)行回環(huán)檢測(cè)的時(shí)候,也需要將“上下文” (之前的數(shù)據(jù))進(jìn)行比較,方才知道我們是不是又走到了之前的同一個(gè)地方( 回環(huán) )。

Scan Context這篇文章由韓國KAIST大學(xué)的Giseop Kim和Ayoung Kim所寫,它的主要特點(diǎn)是提出了Scan Context這個(gè)非直方圖的全局描述符 ,來幫助我們對(duì)“上下文”(當(dāng)前/之前的數(shù)據(jù))進(jìn)行更快速、有效地搜索。 典型的應(yīng)用就是在LiDAR SLAM中進(jìn)行回環(huán)檢測(cè)和Place Recognition。

2.提出的方法

?The representation that preserves absolute location information of a point cloud in each bin (如圖2所示)

??Efficient bin encoding function

? Two-step search algorithm

3.算法流程

3.1 Scan Context的創(chuàng)建

(1) 與Shape Context的淵源

Scan Context這個(gè)算法其實(shí)一開始是由Shape Context [2] 所啟發(fā)的,而Shape Context是把點(diǎn)云的 local Keypoint 附近的點(diǎn)云形狀 encode 進(jìn)一個(gè)圖像中。

Scan Context的不同在于,它不僅僅是count the number of points,而是采用了 maximum height of points in each bin(簡單來說,就是取每一個(gè)bin中的所有point的z軸最高點(diǎn)的value作為這個(gè)bin的value)。

(2) 為什么選擇Maximum height?

a. The reason for using the height is to efficiently summarize the vertical shape of surrounding structures.

b. In addition, the maximum height says which part of the surrounding structures is visible from the sensor.

c. This egocentric visibility has been a well-known concept in the urban design literature for Analyzing an identity of a place

(3) Partition a 3D scan

首先,對(duì)每一次Scan進(jìn)行分割:

? Nr: number of rings (黃色圈圈)

? Ns: number of sectors (淺藍(lán)色/綠色? 的格子)

? Lmax: 雷達(dá)每一個(gè)射線的最遠(yuǎn)距離

? Radial Gap beTween rings =?%5Cfrac%7BL_%7Bmax%7D%20%7D%7BN_%7Br%7D%20%7D%20

? Sector弧度 =?%5Cfrac%7B2%5Cpi%20%7D%7BN_%7Bs%7D%20%7D%20

? 文章中: Nr=20, Ns=60

(4) 給每個(gè)Bin進(jìn)行賦值: Bin Encoding


公式解讀:

?P_%7Bij%7D%20就是指the set of points belonging to the bin where the ith ring and jth sector overlapped。

? z(?)?是指?P_%7Bij%7D%20中一個(gè)point? P ?的Z坐標(biāo)。

? 直接使用最大z坐標(biāo)值 z(p),作為這個(gè)bin的value。

(5) Scan Context Matrix

A scan context I is finally represented as a Nr × Ns matrix as:


3.2 Similarity score的計(jì)算

假設(shè)我們得到了一對(duì)Scan Context的矩陣,我們要計(jì)算他們倆(

)之間的相似度,文章中采用了columnwise (按列) 的距離計(jì)算。

I_%7Bq%7D%20:Query Point Cloud (簡言之,我們當(dāng)前用來query的點(diǎn)云)? ? ??

I_%7Bc%7D%20?:Candidate Point Cloud (咱們的“數(shù)據(jù)庫”中儲(chǔ)存的用來匹配的candidate點(diǎn)云)? ? ??

C_%7Bj%7D%5Eq%20?:Column j of Query Point Cloud (列向量)? ? ??

C_%7Bj%7D%5Ec?:Column j of Candidate Point Cloud (列向量)

小紅薯:?且慢,大師兄!

小紅薯:?古希臘哲學(xué)家赫拉克利特說,“人不能兩次踏進(jìn)同一條河流”。

小紅薯:?這樣來比較兩個(gè)點(diǎn)云,而沒考慮每次不可能在exactly同一個(gè)位置和角度觀察,是不是too young, too simple了呢!

大師兄:?恩,這是個(gè)好問題。?假設(shè)咱們回到同一個(gè)地方,那有可能是沿著相反的方向回來的,那咱們的Viewpoint就發(fā)生了變化,這個(gè)Scan Context矩陣就會(huì)發(fā)生偏移!?這樣就會(huì)導(dǎo)致Column順序發(fā)生變化。

大師兄:?所幸的是,只要location是在同一個(gè)地方,不管你的方向朝著哪里,至少row order不會(huì)發(fā)生太大變化。?咱們只需要關(guān)心column shift這個(gè)問題。

在文章中,上面大師兄和小紅薯對(duì)話中的問題,如下圖所示:

Figure 3. Column Shift示意圖 [1]

咱們可以看到在column方向發(fā)生了水平位移,但是豎著的row方向沒有變化。

為了解決這個(gè)問題,文中采用了一個(gè)“地球人都能想到的方法”,那就是不斷嘗試各種角度的column shift。 注意的是,旋轉(zhuǎn)candidate point cloud有個(gè)resolution,那就是之前提到的%5Cfrac%7B2%5Cpi%20%7D%7BN_%7Bs%7D%20%7D%20

。我們使用公式(7)進(jìn)行最佳shift的選擇,找到最好的 n?后,用公式(6)進(jìn)行distance計(jì)算。

注意: 這里咱們通過找最好的 n?,還有一個(gè)意想不到的好處,那就是可以給ICP提供一個(gè)Good initial rotation value! (就是ICP代碼中的predicted pose)

3.3 Two-phase Search Algorithm

文中提到,有三種主流的Place Recognition的Search Algorithm:

? Pairwise Similarity scoring

? Nearest Neighbor Search搜索

? Sparse Optimization

本文中采用了pairwise scoring和nearest search來實(shí)現(xiàn)有效的Hierarchical Search。

(1) Ring Key

在3.2節(jié)中我們提到的公式(6)進(jìn)行最短距離計(jì)算時(shí),要先找到最佳旋轉(zhuǎn)?n? ,計(jì)算量很大,所以在本文中提出了一種" Two-phase Search ",并提出了Ring key 這個(gè)Descriptor(描述子)來進(jìn)行匹配搜索:

Ring key is a rotation-invariant descriptor, which is extracted from a scan context. Each row of a scan context, r, is encoded into a single real value via ring encoding function . The first element of the vector k is from the nearest circle from a sensor, and following elements are from the next rings in order as illustrated in Fig. 4

Figure 4. Ring key示意圖 [1]

由內(nèi)而外,一圈一圈的ring key通過對(duì)Scan Context Matrix的每一行row r 進(jìn)行ψ ( ? )的encoding就變成了一個(gè)N r 維度的Vector k:


The ring encoding function?ψ \psi?ψ?is a occupancy ratio using?L0 norm:?

小紅薯:?大師兄,這里的r0是什么意思呢?

大師兄:?這是L0 norm(范數(shù))的意思,其實(shí)L0 norm并不是一個(gè)真正的norm,它就是the total number of non-zero elements in a vector 。?比如,(2,0,1,0,9)這個(gè)vector的 L0 norm就是3,因?yàn)橛?個(gè)非零數(shù)。

大師兄:?這樣一來,咱們統(tǒng)計(jì)每一圈的row中有多少個(gè)非零數(shù)值,那這就和rotation沒啥關(guān)系啦(也就是原文中所說的rotation invariance)!?這樣就能夠達(dá)到快速的search。

(2) KD-Tree

? 在得到ring key向量 k 之后,文章用了 k 構(gòu)建KD Tree。

? 用ring key of the query到這個(gè)KD Tree中搜索K個(gè)最相似的scan indexex(K是個(gè)heuristic number)

? 得到最相似的K個(gè)scan后,用上文中公式(6)進(jìn)行Similarity score計(jì)算.

? 滿足條件的最近的candidate?c?這個(gè)位置被選為revisited place,也就是loop的地方:

4.Scan Context算法延伸

4.1 ICP Initial Value中的應(yīng)用

由上文3.2節(jié)的公式(7)需要找到一個(gè)n ?? 旋轉(zhuǎn),使得兩個(gè)點(diǎn)云之間的距離最小。 這里其實(shí)也可以作為ICP的一個(gè)初始值,即predicted pose,來加快converge的過程。

文章的Experiment部分對(duì)此進(jìn)行了試驗(yàn),發(fā)現(xiàn)用Scan Context進(jìn)行ICP初始化效果確實(shí)更好:

Figure 5. SC在ICP初始化中的應(yīng)用 [1]

4.2 ScanContext在全局重定位中的應(yīng)用

在深藍(lán)學(xué)院第四章作業(yè)中,我們應(yīng)用了ScanContext在全局重定位中的效果。

如果初始化不在原點(diǎn),且沒有全局重定位,效果如下:

如果加入ScanContext進(jìn)行全局重定位,效果如下圖:


4.3?Future Works
在文章最后,作者提到可以使用更好的bin encoding function (eg., a bin’s segmantic information)來提升性能,目前咱們只是用了一個(gè)很簡單的max Z(p)來找Z軸高度上的最高點(diǎn)。

對(duì)于有夢(mèng)想的讀者,也期待你的貢獻(xiàn)!

參考文獻(xiàn)

[1] G. Kim and A. Kim, “Scan Context: Egocentric Spatial Descriptor for Place Recognition Within 3D Point Cloud Map,” 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Madrid, 2018, pp. 4802-4809, doi: 10.1109/IROS.2018.8593953.

[2] S. Belongie, J. Malik, and J. Puzicha, “Shape matching and object recognition using shape contexts,” IEEE Trans. Pattern Analysis and Machine Intell., vol. 24, no. 4, pp. 509–522, 2002.

作者簡介,夏唯桁,柏林工業(yè)大學(xué)碩士研究生,主要研究方向?yàn)樽詣?dòng)駕駛和移動(dòng)機(jī)器人的SLAM及運(yùn)動(dòng)規(guī)劃。 目前在法國雷諾集團(tuán)擔(dān)任自動(dòng)駕駛SLAM算法實(shí)習(xí)生。

*本文來自作者夏唯桁的原創(chuàng)投稿,如有任問題請(qǐng)及時(shí)留言,我們會(huì)第一時(shí)間處理。


原創(chuàng)投稿 | ScanContext 論文詳解 - 用途:Lidar SLAM 回環(huán)檢測(cè)、空間描述符的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
忻州市| 博湖县| 霍城县| 龙门县| 泗洪县| 化德县| 德钦县| 隆昌县| 类乌齐县| 孝感市| 宝应县| 怀宁县| 深州市| 鲁甸县| 东平县| 台北县| 文登市| 晋州市| 海丰县| 崇礼县| 平顶山市| 曲麻莱县| 莲花县| 错那县| 阳西县| 太保市| 武宁县| 建水县| 方山县| 栾川县| 彝良县| 河源市| 民权县| 商洛市| 乐亭县| 龙江县| 定结县| 科技| 涟水县| 桓台县| 平舆县|