目錄
三維點雲資料處理技術
1. 點雲濾波(資料預處理)
2. 點雲關鍵點
3. 特徵和特徵描述
4. 點雲配準
5. 點雲分割與分類
6. slam圖優化
7. 目標識別檢索
8. 變化檢測
9. 三維重建
10. 點雲資料管理
pcl庫簡介
回到課題上,接下來要面對的就是點雲資料的處理了。這篇部落格主要介紹三維計算機視覺中點雲資料處理面對的問題,主要方法和技術,概述其特點。這篇部落格主要介紹最基本的點雲資料處理技術和概念,不會有任何**。
icp點雲配準就是我們非常熟悉的點雲處理演算法之一。實際上點雲資料在形狀檢測和分類、立體視覺、運動恢復結構、多檢視重建中都有廣泛的使用。點雲的儲存、壓縮、渲染等問題也是研究的熱點。隨著點雲採集裝置的普及、雙目立體視覺技術、vr和ar的發展,點雲資料處理技術正成為最有前景的技術之一。pcl是三維點雲資料處理領域必備的工具和基本技能,這篇部落格也將粗略介紹。
點雲濾波,顧名思義,就是濾掉雜訊。原始採集的點雲資料往往包含大量雜湊點、孤立點,比如下圖為濾波前後的點雲效果對比。
點雲濾波的主要方法有:雙邊濾波、高斯濾波、條件濾波、直通濾波、隨機取樣一致濾波、voxelgrid濾波等,這些演算法都被封裝在了pcl點雲庫中。
我們都知道在二維影象上,有harris、sift、surf、kaze這樣的關鍵點提取演算法,這種特徵點的思想可以推廣到三維空間。從技術上來說,關鍵點的數量相比於原始點雲或影象的資料量減小很多,與區域性特徵描述子結合在一起,組成關鍵點描述子常用來形成原始資料的表示,而且不失代表性和描述性,從而加快了後續的識別,追蹤等對資料的處理了速度,故而,關鍵點技術成為在2d和3d 資訊處理中非常關鍵的技術。
常見的三維點雲關鍵點提取演算法有一下幾種:iss3d、harris3d、narf、sift3d
這些演算法在pcl庫中都有實現,其中narf演算法是博主見過用的比較多的。
如果要對乙個三維點雲進行描述,光有點雲的位置是不夠的,常常需要計算一些額外的引數,比如法線方向、曲率、文理特徵等等。如同影象的特徵一樣,我們需要使用類似的方式來描述三維點雲的特徵。
常用的特徵描述演算法有:法線和曲率計算、特徵值分析、pfh、fpfh、3d shape context、spin image等。
pfh:點特徵直方圖描述子,fpfh:跨蘇點特徵直方圖描述子,fpfh是pfh的簡化形式。這裡不提供具體描述了,具體細節去谷歌吧。
點雲配準的概念也可以模擬於二維影象中的配準,只不過二維影象配準獲取得到的是x,y,alpha,beta等放射變化引數,二三維點雲配準可以模擬三維點雲的移動和對其,也就是會獲得乙個旋轉矩陣和乙個平移向量,通常表達為乙個4×3的矩陣,其中3×3是旋轉矩陣,1*3是平移向量。嚴格說來是6個引數,因為旋轉矩陣也可以通過羅格裡德斯變換轉變成1*3的旋轉向量。
常用的點雲配準演算法有兩種:正太分布變換和著名的icp點雲配準,此外還有許多其它演算法,列舉如下:
icp:穩健icp、point to plane icp、point to line icp、mbicp、gicp
點雲的分割與分類也算是乙個大topic了,這裡因為多了一維就和二維影象比多了許多問題,點雲分割又分為區域提取、線面提取、語義分割與聚類等。同樣是分割問題,點雲分割涉及面太廣,確實是三言兩語說不清楚的。只有從字面意思去理解了,遇到具體問題再具體歸類。一般說來,點雲分割是目標識別的基礎。
分割:區域聲場、ransac線面提取、ndt-ransac、k-means、normalize cut、3d hough transform(線面提取)、連通分析
分類:基於點的分類,基於分割的分類,監督分類與非監督分類
slam又是大topic,slam技術中,在影象前端主要獲取點雲資料,而在後端優化主要就是依靠圖優化工具。而slam技術近年來的發展也已經改變了這種技術策略。在過去的經典策略中,為了求解landmark和location,將它轉化為乙個稀疏圖的優化,常常使用g2o工具來進行圖優化。下面是一些常用的工具和方法。
g2o、lum、elch、toro、spa
slam方法:icp、mbicp、idc、likehood field、 cross correlation、ndt
這是點雲資料處理中乙個偏應用層面的問題,簡單說來就是hausdorff距離常被用來進行深度圖的目標識別和檢索,現在很多三維人臉識別都是用這種技術來做的。
當無序點雲在連續變化中,八叉樹演算法常常被用於檢測變化,這種演算法需要和關鍵點提取技術結合起來,八叉樹演算法也算是經典中的經典了。
我們獲取到的點雲資料都是乙個個孤立的點,如何從乙個個孤立的點得到整個曲面呢,這就是三維重建的topic。
在玩kinectfusion時候,如果我們不懂,會發現曲面漸漸變平緩,這就是重建演算法不斷迭代的效果。我們採集到的點雲是充滿雜訊和孤立點的,三維重建演算法為了重構出曲面,常常要應對這種雜訊,獲得看上去很舒服的曲面。
常用的三維重建演算法和技術有:
泊松重建、delauary triangulatoins
表面重建,人體重建,建築物重建,輸入重建
實時重建:重建紙杯或者龍作物4d生長台式,人體姿勢識別,表情識別
點雲壓縮,點雲索引(kdtree、octree),點雲lod(金字塔),海量點雲的渲染
點雲資料處理中,不僅涉及前段資料的輸入,中間資料和處理,還涉及到後端點雲的渲染顯示,如果這些函式都要我們親自來實現,那麼開發效率必然受到極大影響。在點雲資料處理領域,有乙個不可或缺的助手:pcl (point cloud library)。pcl在點雲資料處理中的地位猶如opencv在影象處理領域的地位,如果你接觸三維點雲資料處理,那麼pcl將大大簡化你的開發。
分割點雲資料 概述 點雲資料處理方法都有哪些?
點雲資料處理方法概述 icp點雲配準就是我們非常熟悉的點雲處理演算法之一。實際上點雲資料在形狀檢測和分類 立體視覺 運動恢復結構 多檢視重建中都有廣泛的使用。點雲的儲存 壓縮 渲染等問題也是研究的熱點。隨著點雲採集裝置的普及 雙目立體視覺技術 vr和ar的發展,點雲資料處理技術正成為最有前景的技術之...
PCL點雲庫概述
pcl點雲概述 點雲處理技術廣泛應用在逆向工程 cad cam 機械人學 雷射遙感測量 機器視覺 虛擬實境 人機互動 立體3d影像等諸多領域。由於其涉及計算機學 圖形學 人工智慧 模式識別 幾何計算 感測器等諸多學科,但一直以來由於點雲獲取手段的昂貴,嚴重阻礙其在各個行業上的廣泛應用,也造成國內點雲...
pcl點雲處理
一 如何實現類似pcl pointcloud ptr和pcl pointcloud的兩個類相互轉換?include include include pcl pointcloud ptr cloudpointer new pcl pointcloud pcl pointcloudcloud cloud...