日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

PCL点云特征描述与提取(2)

發布時間:2023/11/27 生活经验 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PCL点云特征描述与提取(2) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
點特征直方圖(PFH)描述子

??? 正如點特征表示法所示,表面法線和曲率估計是某個點周圍的幾何特征基本表示法。雖然計算非常快速容易,但是無法獲得太多信息,因為它們只使用很少的幾個參數值來近似表示一個點的k鄰域的幾何特征。然而大部分場景中包含許多特征點,這些特征點有相同的或者非常相近的特征值,因此采用點特征表示法,其直接結果就減少了全局的特征信息。那么三維特征描述子中一位成員:點特征直方圖(Point Feature Histograms),我們簡稱為PFH,從PCL實現的角度討論其實施細節。PFH特征不僅與坐標軸三維數據有關,同時還與表面法線有關。

?

???? PFH計算方式通過參數化查詢點與鄰域點之間的空間差異,并形成一個多維直方圖對點的k鄰域幾何屬性進行描述。直方圖所在的高維超空間為特征表示提供了一個可度量的信息空間,對點云對應曲面的6維姿態來說它具有不變性,并且在不同的采樣密度或鄰域的噪音等級下具有魯棒性。點特征直方圖(PFH)表示法是基于點與其k鄰域之間的關系以及它們的估計法線,簡言之,它考慮估計法線方向之間所有的相互作用,試圖捕獲最好的樣本表面變化情況,以描述樣本的幾何特征。因此,合成特征超空間取決于每個點的表面法線估計的質量。如圖所示,表示的是一個查詢點(Pq) 的PFH計算的影響區域,Pq?用紅色標注并放在圓球的中間位置,半徑為r, (Pq)的所有k鄰元素(即與點Pq的距離小于半徑r的所有點)全部互相連接在一個網絡中。最終的PFH描述子通過計算鄰域內所有兩點之間關系而得到的直方圖,因此存在一個O(k) 的計算復雜性。

??????????????????????????????????????????????????????????

?????????????????????????????????????????????????????????????????????????????????????? 查詢點 的PFH計算的影響區域

為了計算兩點Pi和Pj及與它們對應的法線Ni和Nj之間的相對偏差,在其中的一個點上定義一個固定的局部坐標系,如圖2所示。

?????????????????????????????????????????

使用上圖中uvw坐標系,法線 之間的偏差可以用一組角度來表示,如下所示:

?????????????????????????????????????????????????????????????????

d是兩點Ps和Pt之間的歐氏距離, 。計算k鄰域內的每一對點的四組值,這樣就把兩點和它們法線相關的12個參數(xyz坐標值和法線信息)減少到4個

?為查詢點創建最終的PFH表示,所有的四元組將會以某種統計的方式放進直方圖中,這個過程首先把每個特征值范圍劃分為b個子區間,并統計落在每個子區間的點數目,因為四分之三的特征在上述中為法線之間的角度計量,在三角化圓上可以將它們的參數值非常容易地歸一到相同的區間內。一個統計的例子是:把每個特征區間劃分成等分的相同數目,為此在一個完全關聯的空間內創建有 個區間的直方圖。在這個空間中,一個直方圖中某一區間統計個數的增一對應一個點的四個特征值。如圖3所示,就是點云中不同點的點特征直方圖表示法的一個例子,在某些情況下,第四個特征量d在通常由機器人捕獲的2.5維數據集中的并不重要,因為臨近點間的距離從視點開始是遞增的,而并非不變的,在掃描中局部點密度影響特征時,實踐證明省略d是有益的。

?????????????????????????????????????????

更詳細的解釋:pointclouds.org/documentation/tutorials/how_features_work.php#rusudissertation

? 估計PFH特征

點特征直方圖(PFH)在PCL中的實現是pcl_features模塊的一部分。默認PFH的實現使用5個區間分類(例如:四個特征值中的每個都使用5個區間來統計),

以下代碼段將對輸入數據集中的所有點估計其對應的PFH特征。

 #include <pcl/point_types.h>                  //點類型頭文件

#include <pcl/features/pfh.h>                 //pfh特征估計類頭文件

...//其他相關操作

pcl::PointCloud<pcl::PointXYZ>::Ptrcloud(new pcl::PointCloud<pcl::PointXYZ>);pcl::PointCloud<pcl::Normal>::Ptrnormals(new pcl::PointCloud<pcl::Normal>());...//打開點云文件估計法線等//創建PFH估計對象pfh,并將輸入點云數據集cloud和法線normals傳遞給它

pcl::PFHEstimation<pcl::PointXYZ,pcl::Normal,pcl::PFHSignature125> pfh;pfh.setInputCloud(cloud);pfh.setInputNormals(normals);//如果點云是類型為PointNormal,則執行pfh.setInputNormals (cloud);//創建一個空的kd樹表示法,并把它傳遞給PFH估計對象。//基于已給的輸入數據集,建立kdtree

pcl::KdTreeFLANN<pcl::PointXYZ>::Ptrtree(new pcl::KdTreeFLANN<pcl::PointXYZ>());pfh.setSearchMethod(tree);//輸出數據集

pcl::PointCloud<pcl::PFHSignature125>::Ptrpfhs(new pcl::PointCloud<pcl::PFHSignature125>());//使用半徑在5厘米范圍內的所有鄰元素。//注意:此處使用的半徑必須要大于估計表面法線時使用的半徑!!!

pfh.setRadiusSearch(0.05);//計算pfh特征值

pfh.compute(*pfhs);// pfhs->points.size ()應該與input cloud->points.size ()有相同的大小,即每個點都有一個pfh特征向量

PFHEstimation類的實際計算程序內部只執行以下:

對點云P中的每個點p

1.得到p點的最近鄰元素

2.對于鄰域內的每對點,計算其三個角度特征參數值

3.將所有結果統計到一個輸出直方圖中

?

微信公眾號號可掃描二維碼一起共同學習交流

總結

以上是生活随笔為你收集整理的PCL点云特征描述与提取(2)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。