1. 程式人生 > >3D點雲目標識別和抓取

3D點雲目標識別和抓取

1、點雲目標識別流程

點雲目標識別,顧名思義,需要有標準的目標點雲或者標準的點雲特徵描述向量;對實時採集的點雲資料,在裡面尋找與目標點雲相似度最高的點雲塊。

 

2、圓環工件的識別和抓取

圖2.1 點雲在XY平面的投影影象

圖2.2 圓環點雲採集影象

2.1濾波

常用點雲濾波有帶通濾波、統計濾波、半徑濾波、去除背景平面、去除邊緣。

帶通濾波:就是設定一個x、y、z方向的一個取值範圍,以過濾掉明顯不在測試距離範圍的點雲;比如在kinect資料採集中,由於其成像範圍Z軸方向比較大,因此會出現很多明顯我們不需要的背景噪聲資訊,這是可以設定一個合理的Z座標閾值;

半徑濾波:就是搜尋給定半徑R內的相鄰點雲個數,當個數少於給定閾值時,去除點雲;主要用在去除孤立點;

 統計濾波:對每個點,計算最近鄰K個點雲距離的均值;假設最近鄰距離均值符合高斯分佈,則剔除距離在一個sigma外的點雲;主要用於去除不合群離散點。

去除背景平面:對放在平面上的物體,背景通常會有一個較大的平面;採用Ransac擬合平面,剔除平面。

 

圖2.3 統計濾波閾值選取方式 

圖2.4 圓環濾波後

2.2降取樣

三維點雲資料一般資料量都很大,為了提高程式的速度,可以對濾波後的資料進行降取樣;降取樣的原則是保證點雲的整體分佈情況,又不能破壞邊緣資訊(類似於影象處理的邊緣保留Edge-preserving)。均勻降取樣使用體素格的重心來表示給定半徑範圍內點的整體資訊,來實現降取樣和濾波的目的。

圖2.5 體素格降取樣

圖2.6 單一圓環體素格降取樣(藍色是原始點雲資料,紅色是降取樣資料)

2.3 點雲分割

通過濾波後,點雲被分成了很多基本不相鄰的塊,可以採用聚類的方法來進行分割(類似於二維影象的連通域標記)。

圖2.7 點雲分割 

2.4 特徵向量計算和匹配

當資料量不大的時候,可以直接計算降取樣資料的特徵向量;資料量很大時,最好先計算特徵點(滿足旋轉、平移、尺度、仿射不變性),然後計算特徵點處的特徵向量。

類似於二維影象,3d點雲也可以計算每個點的特徵,常用的特徵描述子有SHOT(signature histogram of orientation)、FPFH(Fast Point of Histogram)等;

匹配找到對應特徵點對後,存在很多誤匹配特徵點對,需要採用Ransac對點對進行提純,找到內點Inliners,採用ICP方法計算點對之間的旋轉變換關係;

圖2.8 識別的圓環(藍色點是原始的圓環資料,紅色的是識別後經過旋轉、平移變化的圓環)

視訊資訊已經上傳Youtube,附網址:

機器人抓取視訊 https://www.youtube.com/watch?v=9UaWKWEigXo&feature=youtu.be