LOAM演算法核心解析之特徵點的提取(一)
LOAM演算法核心解析之特徵點的提取(一)
本篇文章接好LOAM中的特徵點提取演算法,以及其特徵點的定義方法。
LOAM演算法整體的流程與傳統的基於特徵點的視覺SLAM很相似:
第一步、提取點雲中的特徵點;
第二步、使用最近鄰演算法計算匹配點;
第三步、使用梯度下降演算法求解當前幀點雲姿態。
由於LOAM是基於機械掃描式的3D鐳射感測器的SLAM演算法,所以其特徵點提取演算法很大程度上也與機械掃描式鐳射的物理特性相關。
這裡我們假設鐳射的座標系為: x正–向前,y正–向右, z正–向上,這種座標系一般是我們比較常用的車輛座標系,其滿足右手系。
這裡有一個小知識點,如果我們繞某一個軸進行旋轉,怎樣確定哪個方向是正,哪個方向是負呢?
判斷方法:假設我們要繞x軸旋轉,我們用右手握住x軸,大拇指指向x軸的正向,則彎曲四指的方向為旋轉的正向。
一、按鐳射線進行點雲聚類
3D鐳射按線束劃分種類,當前的機械掃描式的鐳射一般包括:16線,32線,64線等。所以LOAM演算法的第一步是將接收到的3D點雲,根據其與水平面的夾角劃分到鐳射的不同線上。
LOAM對點雲的預處理首先會把點按鐳射的線束進行分割,將相同線束上的點劃分到一起。其劃分方式就是依據3D點座標,求得每個點相對與鐳射座標x-y平面的夾角,依據不同夾角劃分道不同的線束上,其公式為:
θ
=
a
r
c
t
a
n
(
z
,
x
2
+
y
2
)
\theta = arctan(z,\sqrt{x^2 + y^2})
θ=arctan(z,x2+y2)
其中 θ \theta θ為夾角,x,y,z為鐳射座標系下點的座標。
二、特徵點篩選條件
為了提取點雲中穩定特徵點,用於定位匹配,作者認為形狀尖銳的角點、形狀平滑的角點和平面點是點雲中的特徵點。所以定義了一種特徵點的劃分演算法,具體演算法為:
計算當前點前後個5個點與當前的點的曲率(實際計算方差),其公式為:
c
=
1
∣
S
∣
⋅
∣
∣
X
(
k
,
i
)
L
∣
∣
∣
∣
∑
j
∈
S
,
j
≠
i
(
X
(
k
,
i
)
L
−
X
(
k
,
j
)
L
)
∣
∣
c = \frac{1}{|S|\cdot ||X^L_{(k,i)}||}||\displaystyle \sum_{j\in S, j \neq i}( X^L_{(k,i)} - X^L_{(k,j)})||
c=∣S∣⋅∣∣X(k,i)L∣∣1∣∣j∈S,j=i∑(X(k,i)L−X(k,j)L)∣∣
實際程式碼中的計算第i個點的曲率的公式:
c
=
1
2
∗
n
∑
j
(
−
n
,
n
)
(
X
(
k
,
i
)
L
−
X
(
k
,
i
−
j
)
L
)
c = \frac{1}{2*n} \displaystyle \sum^{(-n,n)}_{j}( X^L_{(k,i)} - X^L_{(k,i-j)})
c=2∗n1j∑(−n,n)(X(k,i)L−X(k,i−j)L)
其中, c表示計算得到的曲率; n n n 表示計算點雲的區域,是以當前點i為中心,向前後各取n個點;k表示第k幀點,L表示是在鐳射座標下。
-
形狀尖銳的角點
對所有計算曲率進行排序,通過找到n(可以設定)個大麴率的top點,認為是形狀尖銳的點 -
形狀平滑的角點
然後提取m(通過可設定的閾值進行提取)個曲率較大的點作為形狀平滑的角點 -
平面點
然後找到k個(通過可設定的閾值進行提取)曲率小於閾值的點認為是平面點
這樣就可以在一幀中得到有效的點數了。而在論文中是對整個掃描進行化段,分四段,每段各取兩個邊緣點和4個平面點.
三、過濾一些異常點
通過上面的特徵提取的特徵點仍然會存在一些不穩定的點,為了保證演算法的問題去要對其進行識別,並剔除。
異常點定義為:
- 該點的周圍的點儘量不要被再被取到,這樣可以使整體的特徵點分佈更加的平均
- 該點不能與雷達掃描束過於平行,這樣也會出現問題
具體的表現形式如圖:
相關文章
- sift、surf、orb 特徵提取及最優特徵點匹配ORB特徵
- 3.SIFT特徵提取與ransac演算法特徵演算法
- 4.SIFT特徵提取與ransac演算法特徵演算法
- 特徵提取-map特徵
- 影象特徵提取之HoG特徵特徵HOG
- 最核心的特徵工程方法-分箱演算法特徵工程演算法
- SparkML機器學習之特徵工程(一)特徵提取(TF-IDF、Word2Vec、CountVectorizer)Spark機器學習特徵工程
- Yang 提取Cifar-100的特徵特徵
- 流量特徵提取工具NFStream特徵NFS
- 語音的關鍵聲學特徵(語音情感特徵提取)特徵
- 機器學習-特徵提取機器學習特徵
- 【火爐煉AI】機器學習049-提取影象的SIFT特徵點AI機器學習特徵
- 【火爐煉AI】機器學習049-提取影像的SIFT特徵點AI機器學習特徵
- 基於節拍同步的 IF PCP 特徵提取特徵
- librosa 音訊特徵提取的現成文件ROS音訊特徵
- 利用sklearn進行字典&文字的特徵提取特徵
- xenomai核心解析之雙核系統呼叫(一)AI
- 機器學習之良好特徵的特點機器學習特徵
- 原來CNN是這樣提取影像特徵的。。。CNN特徵
- 使用yarGen提取Linux惡意指令碼特徵Linux指令碼特徵
- 爬蟲平臺Crawlab核心原理--自動提取欄位演算法爬蟲演算法
- Vue3 DOM Diff 核心演算法解析Vue演算法
- 特徵工程 特徵選擇 reliefF演算法特徵工程演算法
- 深度學習中的互資訊:無監督提取特徵深度學習特徵
- VUE全家桶之vuex核心原理解析Vue
- XAIGen:自動化攻擊特徵提取的專案開源啦AI特徵
- SEPC:使用3D卷積從FPN中提取尺度不變特徵,漲點神器 | CVPR 20203D卷積特徵
- 達觀OCR首創無錨點文字提取演算法,攻克行業難點演算法行業
- MySQL核心原始碼解讀-SQL解析之解析器淺析MySql原始碼
- LOAM原始碼分析附公式推導原始碼公式
- 螞蟻金服核心技術:百億特徵實時推薦演算法揭祕特徵演算法
- OpenCV特徵提取與影像檢索實現(附程式碼)OpenCV特徵
- 微服務架構的核心要點和實現原理解析微服務架構
- 【火爐煉AI】機器學習050-提取影像的Star特徵AI機器學習特徵
- 使用SAP Cloud Platform Leonardo機器學習提取圖片的特徵向量CloudPlatform機器學習特徵
- 使用SAP Leonardo上的機器學習服務提取圖片的特徵向量機器學習特徵
- 面試筆記之必掌握的java核心技能點面試筆記Java
- MySQL核心原始碼解讀-SQL解析一MySql原始碼