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特徵
- 特徵提取之Haar特徵特徵
- 機器學習之資料清洗與特徵提取機器學習特徵
- 經典演算法研究系列:九、影象特徵提取與匹配之SIFT演算法演算法特徵
- 機器學習-特徵提取機器學習特徵
- 特徵提取-map特徵
- 3.SIFT特徵提取與ransac演算法特徵演算法
- 4.SIFT特徵提取與ransac演算法特徵演算法
- 影象特徵提取之HoG特徵特徵HOG
- SparkML機器學習之特徵工程(一)特徵提取(TF-IDF、Word2Vec、CountVectorizer)Spark機器學習特徵工程
- 最核心的特徵工程方法-分箱演算法特徵工程演算法
- 【火爐煉AI】機器學習049-提取影像的SIFT特徵點AI機器學習特徵
- 【火爐煉AI】機器學習049-提取影象的SIFT特徵點AI機器學習特徵
- 機器學習之良好特徵的特點機器學習特徵
- 流量特徵提取工具NFStream特徵NFS
- Yang 提取Cifar-100的特徵特徵
- caffe之提取任意層特徵並進行視覺化特徵視覺化
- 語音的關鍵聲學特徵(語音情感特徵提取)特徵
- 基於節拍同步的 IF PCP 特徵提取特徵
- 利用sklearn進行字典&文字的特徵提取特徵
- 資訊增益(IG)特徵提取例項特徵
- xenomai核心解析之雙核系統呼叫(一)AI
- 機器學習之特徵工程(一)機器學習特徵工程
- librosa 音訊特徵提取的現成文件ROS音訊特徵
- 原來CNN是這樣提取影像特徵的。。。CNN特徵
- 影象特徵提取:Sobel邊緣檢測特徵
- 卷積濾波器如何提取影象特徵卷積特徵
- 深度學習中的互資訊:無監督提取特徵深度學習特徵
- 【火爐煉AI】機器學習050-提取影像的Star特徵AI機器學習特徵
- 語音識別的特徵提取中的相關引數特徵
- 資料探勘一般流程(資料清洗,特徵提取,建模,調參)特徵
- Vue3 DOM Diff 核心演算法解析Vue演算法
- 使用yarGen提取Linux惡意指令碼特徵Linux指令碼特徵
- 特徵工程 特徵選擇 reliefF演算法特徵工程演算法
- 編譯核心的一點點經驗(轉)編譯
- HBase的特徵和優點特徵
- SLAM入門之視覺里程計(1):特徵點的匹配SLAM視覺特徵
- 乾貨|一文讀懂影象區域性特徵點檢測演算法特徵演算法