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