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