很久沒有更新相關內容了,很多朋友過來私信我,但由於時間問題,不能一一為大家解答,本人也不是無所不知的大神,還請各位諒解。
本文主要總結PCL中3D特征點的相關內容,該部分內容在PCL庫中都是已經集成的在pcl_feature模塊中,該模塊包含用於點雲數據進行3D特征估計的數據結構以及原理機制,3D特征點是3D點的三維空間中的位置的表示,該點周圍信息一般具有一定的幾何性質。
舉個例子:廣泛使用的幾何點特征的示例是下圖的表面在查詢點p處的估計曲率和法線。被認為是局部特征,因為它們使用由其k個最近點鄰居提供的信息來表征點。
為了有效地確定這些鄰居,輸入數據集通常使用空間分解技術(例如八叉樹或kD樹)分割成更小的塊( 左:kD-tree,右:八叉樹),然后執行在那個空間里最近點搜索。
本文概述了在PCL中實現的所有特征點算法
這里列出了關於各種特征點性質屬性的表格,以及應用的場景領域,
Feature Name | Supports Texture / Color | Local / Global / Regional | Best Use Case |
---|---|---|---|
PFH | No | L | |
FPFH | No | L | 2.5D Scans (Pseudo single position range images) |
VFH | No | G | Object detection with basic pose estimation |
CVFH | No | R | Object detection with basic pose estimation, detection of partial objects |
RIFT | Yes | L | Real world 3D-Scans with no mirror effects. RIFT is vulnerable against flipping. |
RSD | No | L | |
NARF | No | L | 2.5D (Range Images) |
PFH (Point Feature Histogram)
是一種局部特征點,PFH擴展了先前關於Surflet-Pair-Relation Histograms的工作(Wahl等人)。
- Surflet-pair-relation histograms: a statistical 3D-shape representation for rapid classification
輸入格式:
(1)由一組帶有方向的點P組成的點雲。有方向意味着所有點都具有正常的N(法向量)。
(2)此功能不使用顏色信息。
工作原理:
(1)迭代點雲P中的點。
(2)對於輸入雲中的每個點Pi(i是迭代索引),收集具有半徑r的Pi周圍的球體內的所有相鄰點。 這個集合稱為Pik(k為k個鄰居)
(3)循環關於Pik中的兩對點,比如p1和p2。 法線與矢量p1-p2的角度較小的點是源點ps,另一個是目標點pt。
(4)計算四個特征,它們一起表示目標點pt處的平均曲率。 將它們組合並放入等效的直方圖箱中。 有關特征計算的更多詳細信息,請參閱原始論文:http://www.willowgarage.com/papers/learning-informative-point-classes-acquisition-object-model-maps
簡短概述:
(1)為P中的所有的點雲計算法線
(2)估計P中的點Pi的特征:獲取圍繞點Pi(Pik)的半徑r中的k個鄰居的集合。在兩點之間計算四個特征。相應的bin增加1.生成點特征直方圖(PFH)。
(3)將得到的直方圖組與其他點雲的組進行比較,以便找到對應關系。
FPFH (Fast Point Feature Histogram)
FPFH也是一種局部特征點,且是PFH(Point Feature Histogram)的一種擴展描述
輸入格式:
(1)由一組定向點P組成的點雲。定向意味着所有點都具有正常的n(法向量)。
(2)此功能不使用顏色信息。(這些都和PFH一樣的要求)
工作原理:
由於FPFH來自PFH,因此它的工作方式非常相似。但是有一些優化步驟使FPFH更快。
(1)迭代點雲集 P 中的所有點雲。
(2)對於輸入點雲中的每個點Pi(i是迭代索引),收集具有半徑r的Pi周圍的球體內的所有相鄰點。這個集合稱為Pik(k為k個鄰居)
(3)該循環僅將點Pi與其每個鄰居相關聯(記住在PFH中,循環將生成Pi對及其鄰居以及_Pi_s鄰居之間!)。在這樣的一對中,法線與矢量p1-p2的角度小的點是源點ps,另一個是目標點pt。
(3)計算三個特征(PFH中的四個,Ps和Pt之間的距離被遺漏),它們一起表示目標點pt處的平均曲率。將它們組合並放入等效的直方圖箱中。
(4)與FPFH中一樣,僅考慮查詢點Pi與其鄰居之間的直接對(計算量少得多),得到的直方圖稱為SPFH(簡單點特征直方圖)。
(5)最后一步是新的:要重新補償“丟失”連接,相鄰的SPFH將根據其空間距離添加到Pi的SPFH中。有關特征計算的更多詳細信息,請參閱原始論文:http://files.rbrusu.com/publications/Rusu09ICRA.pdf
簡短概述:
(1)為P中的所有點計算法線
(2)估計P中的點Pi的特征:獲取圍繞點Pi(Pik)的半徑r中的k個鄰居的集合。在兩點之間計算三個特征(僅在Pi與其鄰居之間!)。相應的bin增加1.生成簡單的點特征直方圖(SPFH)。
(3)為了達到更多的點和連接(最多2次r),鄰居的SPFH根據它們的空間距離加以加權作為最后一步。
(4)可以將得到的直方圖組與其他點雲的組進行比較,以便找到對應關系。
VFH (Viewpoint Feature Histogram)
VFH是一種全局特征點,擴展了FPFH的一種方法。
輸入格式:
(1)由一組定向點P組成的點雲。定向意味着所有點都具有正常的n法向量。
(2)此功能不使用顏色信息。
工作原理:
(1)計算點雲的質心pc及其法向量nc。計算視點和質心之間的向量vc並對其進行標准化。
(2)VFH由兩部分組成:視點部分和擴展的FPFH模塊。
(3)要映射視點分量,迭代P中的所有點雲,並計算它們的法線以及vc之間的角度。增加相應的直方圖bin。
(4)對於擴展的FPFH組件,只需計算質心pc處的FPFH,將整個周圍點雲P設置為鄰居。
(5)將兩個直方圖一起添加。
(6)有關特征計算的更多詳細信息,請參閱原始論文:http://www.willowgarage.com/sites/default/files/Rusu10IROS.pdf
簡短概述:
(1)估算點雲中的質心及其法線。計算視點和視點之間的歸一化矢量vc。
(2)對於所有點,計算它們的法線和vc之間的角度。
(3)估算質心的FPFH,將所有剩余點設置為鄰居。
CVFH (Clustered Viewpoint Feature Histogram)
CVFH是一種基於區域描述的特征點,也是基於VHF擴展的方法。
輸入格式:(和上述一樣的輸入)
(1)由一組定向點P組成的點雲。定向意味着所有點都具有正常的法向量n。
(2)此功能不使用顏色信息。
工作原理:
(1)由於遮擋和傳感器限制,我們使用傳感器獲取的是物體的2.5D點雲數據,一旦缺失部分點雲,計算整個點雲的點和正常質心的結果可能完全不同。這就是為什么一旦點雲中缺少必要點,VFH描述符也就會完全不同。
(2)CVFH創建穩定的集群區域。從點雲P開始,新的簇Ci從尚未分配給任何簇的隨機點Pr開始。如果Ci中存在點Pj,則P中的每個點Pi被分配給該簇,使得它們的法線類似並且它們處於直接鄰域中(比較角度和距離閾值)。聚類簇群太少的集群被拒絕或忽略。
(3)計算每個群集上的VFH。
(4)為每個直方圖添加形狀分布,表示點如何圍繞質心分布。
(5)有關特征計算的更多詳細信息,請參閱原始論文:http://ieeexplore.ieee.org/xpl/articleDetails.jsp?numumber = 6130296
簡短概述
(1)將點雲細分為具有相似法線的相鄰點的聚類(穩定區域)。
(2)計算每個群集的VFH。
(3)將形狀分布組件(SDC)添加到每個直方圖。
RIFT (Rotation-Invariant Feature Transform)
RIFT是一種局部特征描述法,且該方法擴展於SIFT。參考論文
- Object recognition from local scale-invariant features (http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=790410&tag=1)
輸入格式:
(1)由一組紋理點組成的點雲P. 沒有紋理,此功能不會產生任何可用的結果。
(2)強度梯度計算,參考:
http://docs.pointclouds.org/trunk/classpcl_1_1_intensity_gradient_estimation.html
工作原理:
(1)迭代點雲P中的所有點。
(2)對於輸入點雲中的每個點Pi(i是迭代索引),收集具有半徑r的Pi周圍的球體內的所有相鄰點。這個集合稱為Pik(k為k個鄰居)
(3)具有n個片段的假想圓(球體的垂直於Pi的法線的投影)適合於表面。這里n對應於實現中的距離 bin 的數量。
(4)Pi的所有鄰居根據它們的距離d <n和梯度角位置θ<g(g表示實現中的梯度區的數量)被分配給直方圖區間。 θ是梯度方向和從中心向外指向圓的矢量之間的角度。
有關特征計算的更多詳細信息,請參閱原始論文:http://hal.inria.fr/docs/00/54/85/30/PDF/lana_pami_final.pdf
簡短概述
(1)對於P樣本中的每個點Pi,Pi周圍的所有k個鄰居。
(2)根據距離d和它們的梯度角θ將所有鄰居分配給直方圖。
(3)可以將得到的直方圖組與其他點雲的組進行比較,以便找到對應關系。
未完待續。。。
注意:以上內容如有錯誤或者需要補充的,請留言!同時歡迎大家關注微信公眾號,積極分享投稿,做到大家一起分享,拒絕只做個伸手黨!或者加入3D視覺微信或QQ交流群,一起交流分享! 投稿或聯系群主郵箱:dianyunpcl@163.com
原創不易,轉載請聯系群主,注明出處