java 点云数据处理_概述 | 点云数据处理方法都有哪些?
點云數據處理方法概述
ICP點云配準就是我們非常熟悉的點云處理算法之一。實際上點云數據在形狀檢測和分類、立體視覺、運動恢復結構、多視圖重建中都有廣泛的使用。點云的存儲、壓縮、渲染等問題也是研究的熱點。隨著點云采集設備的普及、雙目立體視覺技術、VR和AR的發展,點云數據處理技術正成為最有前景的技術之一。PCL是三維點云數據處理領域必備的工具和基本技能,這篇文章也將粗略介紹。
三維點云數據處理技術
1. 點云濾波(數據預處理)
點云濾波,顧名思義,就是濾掉噪聲。原始采集的點云數據往往包含大量散列點、孤立點,比如下圖為濾波前后的點云效果對比。
點云濾波的主要方法有:雙邊濾波、高斯濾波、條件濾波、直通濾波、隨機采樣一致濾波、VoxelGrid濾波等,這些算法都被封裝在了PCL點云庫中。
2. 點云關鍵點
我們都知道在二維圖像上,有Harris、SIFT、SURF、KAZE這樣的關鍵點提取算法,這種特征點的思想可以推廣到三維空間。從技術上來說,關鍵點的數量相比于原始點云或圖像的數據量減小很多,與局部特征描述子結合在一起,組成關鍵點描述子常用來形成原始數據的表示,而且不失代表性和描述性,從而加快了后續的識別,追蹤等對數據的處理了速度,故而,關鍵點技術成為在2D和3D 信息處理中非常關鍵的技術。
常見的三維點云關鍵點提取算法有一下幾種:ISS3D、Harris3D、NARF、SIFT3D
這些算法在PCL庫中都有實現,其中NARF算法是博主見過用的比較多的。
3. 特征和特征描述
如果要對一個三維點云進行描述,光有點云的位置是不夠的,常常需要計算一些額外的參數,比如法線方向、曲率、文理特征等等。如同圖像的特征一樣,我們需要使用類似的方式來描述三維點云的特征。
常用的特征描述算法有:法線和曲率計算、特征值分析、PFH、FPFH、3D Shape Context、Spin Image等。
PFH:點特征直方圖描述子,FPFH:跨蘇點特征直方圖描述子,FPFH是PFH的簡化形式。這里不提供具體描述了,具體細節去谷歌吧。
4. 點云配準
點云配準的概念也可以類比于二維圖像中的配準,只不過二維圖像配準獲取得到的是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
NDT 3D、Multil-Layer NDT
FPCS、KFPSC、SAC-IA
Line Segment Matching、ICL
5. 點云分割與分類
點云的分割與分類也算是一個大Topic了,這里因為多了一維就和二維圖像比多了許多問題,點云分割又分為區域提取、線面提取、語義分割與聚類等。同樣是分割問題,點云分割涉及面太廣,確實是三言兩語說不清楚的。只有從字面意思去理解了,遇到具體問題再具體歸類。一般說來,點云分割是目標識別的基礎。
分割:區域聲場、Ransac線面提取、NDT-RANSAC、K-Means、Normalize Cut、3D Hough Transform(線面提取)、連通分析
分類:基于點的分類,基于分割的分類,監督分類與非監督分類
6. SLAM圖優化
SLAM又是大Topic,SLAM技術中,在圖像前端主要獲取點云數據,而在后端優化主要就是依靠圖優化工具。而SLAM技術近年來的發展也已經改變了這種技術策略。在過去的經典策略中,為了求解LandMark和Location,將它轉化為一個稀疏圖的優化,常常使用g2o工具來進行圖優化。下面是一些常用的工具和方法。
g2o、LUM、ELCH、Toro、SPA
SLAM方法:ICP、MBICP、IDC、likehood Field、 Cross Correlation、NDT
7. 目標識別檢索
這是點云數據處理中一個偏應用層面的問題,簡單說來就是Hausdorff距離常被用來進行深度圖的目標識別和檢索,現在很多三維人臉識別都是用這種技術來做的。
8. 變化檢測
當無序點云在連續變化中,八叉樹算法常常被用于檢測變化,這種算法需要和關鍵點提取技術結合起來,八叉樹算法也算是經典中的經典了。
9. 三維重建
我們獲取到的點云數據都是一個個孤立的點,如何從一個個孤立的點得到整個曲面呢,這就是三維重建的topic。
在玩kinectFusion時候,如果我們不懂,會發現曲面漸漸變平緩,這就是重建算法不斷迭代的效果。我們采集到的點云是充滿噪聲和孤立點的,三維重建算法為了重構出曲面,常常要應對這種噪聲,獲得看上去很舒服的曲面。
常用的三維重建算法和技術有:
泊松重建、Delauary triangulatoins
表面重建,人體重建,建筑物重建,輸入重建
實時重建:重建紙杯或者龍作物4D生長臺式,人體姿勢識別,表情識別
10. 點云數據管理
點云壓縮,點云索引(KDtree、Octree),點云LOD(金字塔),海量點云的渲染
PCL庫簡介
點云數據處理中,不僅涉及前段數據的輸入,中間數據和處理,還涉及到后端點云的渲染顯示,如果這些函數都要我們親自來實現,那么開發效率必然受到極大影響。在點云數據處理領域,有一個不可或缺的助手:PCL (Point Cloud Library)。PCL在點云數據處理中的地位猶如OpenCV在圖像處理領域的地位,如果你接觸三維點云數據處理,那么PCL將大大簡化你的開發。
聲明:本文系網絡轉載,版權歸原。如涉版權,請聯系刪!
總結
以上是生活随笔為你收集整理的java 点云数据处理_概述 | 点云数据处理方法都有哪些?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hdu 1505 City Game
- 下一篇: Unity设置为中文