三維特徵算子-PFH,FPFH,VFH

總述

  一堆離散的樣點,只包含相對於某個座標系下的位置參數,雖然能在空間中比較好的顯示出物體的樣子來,但對於視覺來講,這是遠遠不夠的。之因此在文章的題目中提到特徵,就是但願能用特徵的方法,達到視覺識別的功能。
  離散點雲,除了座標信息外,最爲直觀的特徵就是點、法向、曲率,這是最簡單的特徵,也是最忠實於原始點雲的,這些特徵包含了點雲的最爲詳細的數據,雖然不多直接的使用,但在這個特徵的基礎上,能夠實現更高層次的識別。計算簡單,速度快是這些基礎特徵的特色之一,可是在進行物體識別的時候,在大場景中,擁有類似法向或曲率的區域太多了,這就從必定程度上削弱了它的做用。
  下面將會逐步介紹下PFH, FPHF, VFH等特徵的原理與PCL的實現方式:spa

PFH

  FPH(Point Feature Histogram)的目的就是經過多維度直方圖表達樣點曲率,繼而泛化樣點k鄰域的幾何特徵,這種高緯度超空間的方式能提供更多的特徵數據,主要是爲六自由度估計作個鋪墊。翻譯

PFH計算

image.png
  如上圖所示,q表示目標樣點,綠色點表示qr近鄰點,藍色點表示無關點(將局部鄰域做爲有效域),因而,虛線圓內就造成了一個局部區域,構建圖就能夠了(其中的黑色鏈接線條表示邊,即位於同一條邊上的兩個節點,就會產生相互做用)。PFH的計算就是計算圖中節點的相互關係(有本身的公式,時間複雜度是O(k2))。
  介紹下如何計算圖中節點Pi,Pj與法向ni,nj的關係,爲了方便,在某個點上定義一個座標系:
image.png
  由上圖所示,可在以Pi爲原點創建 vuw座標系,則可計算Pj的歐拉角:
image.png
  其中,公式找那個的d表示兩個樣點間的歐式距離。按照上述公式計算,兩個樣點間的關係就能夠用一個四元數(a,b,c,d)描述。
  上述完成了PFH的描述子,下面介紹下如何根據這些特徵描述子繪製直方圖:將每一個特徵值劃分爲b個子區間,並統計每一個區間內樣點的個數,因爲前三個都是角度,是根據法向量計算獲得的,所以可將這三個元素標準化並放到同一區間內。code

FPFH

  PFH能保留比較到信息,但其時間複雜度較高,當遇到大規模數據時,會出現效率低下的現象,所以,在此基礎上,提出了一個fast,到底有多快呢,很差意思,我也不知道,只能說是在儘量不損失PFH信息的前提下,講時間複雜度由O(k2)下降到O(k).blog

  首先介紹下計算過程:it

  1. 計算SPFH(Simplified PFH):S的含義是隻計算目標點q與其緊鄰點的PFH,忽略緊鄰點間的關係。
  2. 加權:目標點q的PFH爲其SPFH(q)及其鄰近點的加權SPFH之和,詳細公式爲:

image.png
其中wk表示p與pk的距離。ast

VFH

  VFH全程Viewpoint Feature Histogram,中文翻譯爲視點特徵直方圖;視點特徵,是根據視點計算的,直方圖,統計結果展現的一種形式,其主要意義就是根據某一個特徵實現樣點的分類(如今用的是三維的點,後期可能會用多維度的點),在這裏主要的應用場景就是聚類與六自由度位姿估計。
  PFH是反映鄰域與法向的關係。簡單說,就是儘量的捕捉法向之間的關係。PS:因爲是基於法向進行的特徵計算,因此,首先要保證法向的正確性,這就比如你給我一顆蘋果樹,但非要吃李子。class

理論

  VFH與FPFH(Fast Point Feature Histograms)有着千絲萬縷的關係,能夠說是站在FPFH的肩膀上發展的(FPFH會在其餘文章中介紹),高效率與高識別力是FPFH的特色,但這些在實際應用中是遠遠不夠的,所以,又追加上了保持尺寸不變性的視角方差,最終獲得VFH.
  VFH存在的主要意義就是要解決目標識別與姿態估計的問題,爲更好的解決此問題,在實現目標簇的FPFH的估計值上,增長了視點方向與法向之間的統計數據,這就是VFH的主要思想。
  視點份量是經過視點與法向夾角的統計計算出來的:須要注意的是,計算的是每一個法線的中心視點方向之間的夾角,而不是計算每一個法向的視角,由於若是是這樣的話,那就不能保證旋轉不變性了。第二個份量就是歐拉角了,是指中心點與法向之間的夾角。
  兩種的組合就時VFH了,主要特色有兩個部分:效率

  • 視角方向相關的份量
  • 擴展FPFH的描述表面特徵的份量

繪圖.png

相關文章
相關標籤/搜索