無序點(diǎn)云三維重建方法
【專利摘要】本發(fā)明提供一種無序點(diǎn)云三維重建方法,包括以下步驟:S1、分區(qū):根據(jù)研究內(nèi)容,將采集到的點(diǎn)云分為變形區(qū)的點(diǎn)云和非變形區(qū)的點(diǎn)云;S2、點(diǎn)云數(shù)據(jù)壓縮:對非變形區(qū)的點(diǎn)云,進(jìn)行點(diǎn)云數(shù)據(jù)壓縮;壓縮比為預(yù)設(shè)的設(shè)定值;S3、三維重建:將變形區(qū)中的點(diǎn)云,和壓縮后的非變形區(qū)的點(diǎn)云,放在一起進(jìn)行三維重建。在三維重建之前,先根據(jù)研究內(nèi)容將點(diǎn)云分區(qū),將非關(guān)鍵內(nèi)容的區(qū)域先進(jìn)行壓縮,從而減少重建時需要處理的數(shù)據(jù)量,另外在重建時將非變形區(qū)域的數(shù)據(jù)和變形區(qū)域的數(shù)據(jù)融合在一起進(jìn)行三角網(wǎng)重建,減少海量點(diǎn)云數(shù)據(jù)的三角網(wǎng)生成時間,最終實現(xiàn)提高算法效率的目的。
【專利說明】
無序點(diǎn)云三維重建方法
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及三維場景重現(xiàn)領(lǐng)域,具體涉及一種無序點(diǎn)云三維重建方法。
【背景技術(shù)】
[0002]三維激光測量技術(shù)是一種快速、準(zhǔn)確獲取真實地物空間信息的技術(shù)。采用三維激光掃描儀對被測量地物進(jìn)行掃描,操作簡單而且精度高。由于獲取的三維點(diǎn)云數(shù)據(jù)量龐大、散亂,無組織,如何組織龐大的點(diǎn)云數(shù)據(jù),使得三維點(diǎn)云數(shù)據(jù)通過計算機(jī)虛擬的呈現(xiàn)出來,成為了空間信息處理、計算機(jī)圖形學(xué)、計算機(jī)視覺等領(lǐng)域研究的熱點(diǎn)。
點(diǎn)云按照排列方式的不同可以分為有序點(diǎn)云和無序點(diǎn)云。有序點(diǎn)云的點(diǎn)與點(diǎn)的拓?fù)浣Y(jié)構(gòu)完整,相鄰點(diǎn)之間存在連續(xù)關(guān)系,領(lǐng)域操作高效。無序點(diǎn)云由于點(diǎn)與點(diǎn)之間缺乏拓?fù)潢P(guān)系,因此常采用八叉樹,空間單元格,Kd-tree數(shù)對其進(jìn)行管理。
[0003]根據(jù)重建曲面和數(shù)據(jù)點(diǎn)云之間的關(guān)系可將曲面重建分為兩大類:插值法和逼近法。前者得到的曲面重建完全通過原始數(shù)據(jù)點(diǎn),而后者則是通過分片線性曲面或者其它形式的曲面類逼近原始數(shù)據(jù)點(diǎn),從而是的得到的重建曲面是原始點(diǎn)集的一個逼近。
[0004]插值法常用的算法有Delaunay三角網(wǎng)重構(gòu)法,該方法將三維點(diǎn)云數(shù)據(jù)的空間坐標(biāo)投影到二維平面上,然后針對二維投影平面進(jìn)行缺失補(bǔ)充,將投影的二維平面三角網(wǎng)格化,再利用反向映射的思想得到三維網(wǎng)格重建模型,最后完成點(diǎn)云數(shù)據(jù)的重建。由于該算法需要構(gòu)造三角網(wǎng)格,因此具有很好的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),然而在兩次投影轉(zhuǎn)化計算過程中存在維數(shù)的壓縮,這樣很可能導(dǎo)致點(diǎn)云數(shù)據(jù)空間深度信息的改變或者丟失,這種兩次轉(zhuǎn)化投影的方式很難處理封閉或者點(diǎn)云模型表面被遮擋的情況。后來在點(diǎn)云重建方面也出現(xiàn)了基于Delaunay空間區(qū)域增長方法的改進(jìn)算法,即選取一個三角面片作為種子面片,在保證拓?fù)浣Y(jié)構(gòu)正確和幾何結(jié)構(gòu)正確的前提下,對種子面片進(jìn)行擴(kuò)張,最后形成完整三角網(wǎng)格曲面,改進(jìn)算法有最小內(nèi)角最大等優(yōu)秀特性,但對點(diǎn)云當(dāng)數(shù)據(jù)中的三維點(diǎn)進(jìn)行三角網(wǎng)格剖分的時間復(fù)雜度較大。如果點(diǎn)云數(shù)據(jù)達(dá)到千百萬數(shù)量級,Delaunay三角網(wǎng)格剖分算法的點(diǎn)云數(shù)據(jù)重建時間過長,因而此方法并不適合大規(guī)模點(diǎn)云數(shù)據(jù)的重建操作。
[0005]逼近法常用的算法有泊松重建、MC重建、EarChipping重建。即通過最優(yōu)化的插值方法,對點(diǎn)云數(shù)據(jù)進(jìn)行處理,進(jìn)而獲得到點(diǎn)云模型的近似曲面。
【發(fā)明內(nèi)容】
[0006]本發(fā)明要解決的技術(shù)問題是:提供一種無序點(diǎn)云三維重建方法,解決現(xiàn)有的De Iaunay三角網(wǎng)重建算法中存在的算法效率低下的問題。
[0007]本發(fā)明為解決上述技術(shù)問題所采取的技術(shù)方案為:一種無序點(diǎn)云三維重建方法,其特征在于:它包括以下步驟:
51、分區(qū):
根據(jù)研究內(nèi)容,將采集到的點(diǎn)云分為變形區(qū)的點(diǎn)云和非變形區(qū)的點(diǎn)云;
52、點(diǎn)云數(shù)據(jù)壓縮: 對非變形區(qū)的點(diǎn)云,進(jìn)行點(diǎn)云數(shù)據(jù)壓縮;壓縮比為預(yù)設(shè)的設(shè)定值;
S3、三維重建:
將變形區(qū)中的點(diǎn)云,和壓縮后的非變形區(qū)的點(diǎn)云,放在一起進(jìn)行三維重建。
[0008]按上述方法,所述的SI先將采集到的點(diǎn)云按照pcd格式進(jìn)行轉(zhuǎn)化,再根據(jù)研究內(nèi)容進(jìn)行分區(qū)。
[0009]按上述方法,所述的S2采用包圍盒壓縮算法進(jìn)行點(diǎn)云數(shù)據(jù)壓縮,每個包圍盒只保留一個數(shù)據(jù)點(diǎn),所保留的數(shù)據(jù)點(diǎn)最靠近所在包圍盒中點(diǎn)云的重心。
[0010]按上述方法,所述的S2首先對非變形區(qū)的點(diǎn)云采用八叉樹數(shù)據(jù)結(jié)構(gòu)進(jìn)行數(shù)據(jù)管理,構(gòu)造點(diǎn)云的最小空間包圍盒,再采用包圍盒壓縮算法進(jìn)行點(diǎn)云數(shù)據(jù)壓縮;其中最小空間包圍盒的邊長為預(yù)設(shè)的點(diǎn)距。
[0011]按上述方法,所述的S3采用貪婪三角網(wǎng)算法進(jìn)行三維重建。
[0012]本發(fā)明的有益效果為:在三維重建之前,先根據(jù)研究內(nèi)容將點(diǎn)云分區(qū),將非關(guān)鍵內(nèi)容的區(qū)域先進(jìn)行壓縮,從而減少重建時需要處理的數(shù)據(jù)量,另外在重建時將非變形區(qū)域的數(shù)據(jù)和變形區(qū)域的數(shù)據(jù)融合在一起進(jìn)行三角網(wǎng)重建,減少海量點(diǎn)云數(shù)據(jù)的三角網(wǎng)生成時間,最終實現(xiàn)提尚算法效率的目的。
【附圖說明】
[0013]圖1為本發(fā)明一實施例按壓縮比為0.25%壓縮后的點(diǎn)云三維圖,。
[0014]圖2為本發(fā)明一實施例按壓縮比為4.5%壓縮后的點(diǎn)云三維圖。
[0015]圖3為pcd格式。
[0016]圖4為本發(fā)明一實施例的一個重建效果圖。
[0017]圖5為本發(fā)明一實施例的又一個重建效果圖。
【具體實施方式】
[0018]下面結(jié)合具體實例和附圖對本發(fā)明做進(jìn)一步說明。
[0019]本發(fā)明提供一種無序點(diǎn)云三維重建方法,包括以下步驟:
S1、分區(qū):根據(jù)研究內(nèi)容,將采集到的點(diǎn)云分為變形區(qū)的點(diǎn)云和非變形區(qū)的點(diǎn)云。
[0020]優(yōu)選的,所述的SI先將采集到的點(diǎn)云按照pcd格式進(jìn)行轉(zhuǎn)化,再根據(jù)研究內(nèi)容進(jìn)行分區(qū)。
[0021]S2、點(diǎn)云數(shù)據(jù)壓縮:對非變形區(qū)的點(diǎn)云,采用包圍盒壓縮算法進(jìn)行點(diǎn)云數(shù)據(jù)壓縮(也可以用其它的方式進(jìn)行點(diǎn)云數(shù)據(jù)壓縮),每個包圍盒只保留一個數(shù)據(jù)點(diǎn),所保留的數(shù)據(jù)點(diǎn)最靠近所在包圍盒中點(diǎn)云的重心。
[0022]首先對非變形區(qū)的點(diǎn)云采用八叉樹數(shù)據(jù)結(jié)構(gòu)進(jìn)行數(shù)據(jù)管理,構(gòu)造點(diǎn)云的最小空間包圍盒,再采用包圍盒壓縮算法進(jìn)行點(diǎn)云數(shù)據(jù)壓縮;其中最小空間包圍盒的邊長為預(yù)設(shè)的點(diǎn)距。
[0023]S3、三維重建:將變形區(qū)中的點(diǎn)云,和壓縮后的非變形區(qū)的點(diǎn)云,放在一起進(jìn)行三維重建。優(yōu)選的,所述的S3采用貪婪三角網(wǎng)算法進(jìn)行三維重建。
[0024]基于包圍盒的點(diǎn)云數(shù)據(jù)壓縮原理:根據(jù)點(diǎn)云中數(shù)據(jù)點(diǎn)的分布特點(diǎn),可將點(diǎn)云分為有序點(diǎn)云和無序點(diǎn)云(也稱為散亂點(diǎn)云),對于有序點(diǎn)云的數(shù)據(jù)壓縮,常用的采樣方法有均勻采樣法、倍率縮減法和柵格法,等量縮減法、最小包圍盒區(qū)域法、等分密度法等。散亂點(diǎn)云數(shù)據(jù)壓縮中,常用的方法有隨機(jī)采樣法、最短距離法、包圍盒法、均勻格網(wǎng)法、三角網(wǎng)格法、曲率米樣法等。
[0025]目前,針對點(diǎn)云的壓縮大致可以分為三類:基于概率的數(shù)據(jù)精簡(隨機(jī)采樣法)、基于格網(wǎng)的數(shù)據(jù)精簡法(包圍盒法、均勻格網(wǎng)法等)和基于曲率的數(shù)據(jù)精簡法(最短距離法、曲率米樣法)。
[0026]包圍盒重心法是點(diǎn)云處理中較為常見的方法,其核心思想是用包圍盒中點(diǎn)云的重心來代替點(diǎn)云中的點(diǎn)實現(xiàn)數(shù)據(jù)精簡。其實現(xiàn)方法為:先采用一個最小外包長方體來約束點(diǎn)云,然后將長方體根據(jù)一定的數(shù)量或者大小分割成若干個小立方體包圍盒,最后選取小包圍盒中離點(diǎn)集的重心點(diǎn)最近的點(diǎn)作為特征點(diǎn),即每個包圍盒中最多只保留一個數(shù)據(jù)點(diǎn)。
[0027]下面提供某一具體實例,進(jìn)行試驗驗證。
[0028]1、數(shù)據(jù)處理
由于現(xiàn)有的數(shù)據(jù)格式(*.ply,*.stl,*.0b j,*.x3d)格式不支持pci庫,pcd格式能支持pel數(shù)據(jù)庫引進(jìn)的η維點(diǎn)類型機(jī)制處理中的某些擴(kuò)展。因此,需要將采集到的數(shù)據(jù)按照pcd格式進(jìn)行轉(zhuǎn)化,pcd格式如圖3所示。其中,vers 1n表示pcd文件版本,f i e Ids表示一個點(diǎn)可以有的每一個維度和字段的名字,size表示每一個維度的大小,type表示每一個維度的類型,count表示每一個維度包含的元素數(shù)目,width表示點(diǎn)云數(shù)據(jù)集的寬度,height表示點(diǎn)云數(shù)據(jù)集的高度,Viewpoint表示數(shù)據(jù)集中點(diǎn)云獲取的視點(diǎn),data表示存儲的點(diǎn)云的數(shù)據(jù)類型。
[0029]2、數(shù)據(jù)壓縮
PCL提供了兩種點(diǎn)云數(shù)據(jù)管理方式,一種是Kd-tree數(shù)據(jù)結(jié)構(gòu),一種是octree數(shù)據(jù)結(jié)構(gòu),也稱八叉樹。其中,kd-tree樹用來對點(diǎn)云數(shù)據(jù)進(jìn)行檢索,octree樹在PCL中用于點(diǎn)云數(shù)據(jù)壓縮。因此,本發(fā)明采用八叉樹對點(diǎn)云數(shù)據(jù)進(jìn)行管理和壓縮。
[0030]對非變形區(qū)的點(diǎn)云采用八叉樹進(jìn)行數(shù)據(jù)管理,構(gòu)造點(diǎn)云數(shù)據(jù)的最小空間包圍盒,并把它作為數(shù)據(jù)點(diǎn)云拓?fù)潢P(guān)系的根模型;再將外界立方體分割成大小系統(tǒng)的8個子?xùn)鸥?,每個自柵格均視為根節(jié)點(diǎn)的子節(jié)點(diǎn);如此遞歸分割,直到最小子?xùn)鸥竦倪呴L等于給定的點(diǎn)距,將點(diǎn)云空間劃分成為2的冪次方個子?xùn)鸥瘛?br>[0031]由于pci庫中提供了十幾個基于八叉樹(Octree)的點(diǎn)云高效管理、檢索、空間處理算法庫,因此,本研究將采集到的數(shù)據(jù)點(diǎn)將數(shù)據(jù)分為變形區(qū)和非變形區(qū),將非變形區(qū)的數(shù)據(jù)采用八叉樹進(jìn)行組織,在此基礎(chǔ)上采用基于最小包圍盒的方式對數(shù)據(jù)進(jìn)行壓縮,壓縮比可以認(rèn)為預(yù)設(shè),如圖1和圖2所示,圖1中數(shù)據(jù)的壓縮比為0.25%,壓縮后的數(shù)據(jù)點(diǎn)為2928;圖2中數(shù)據(jù)的壓縮比為4.5%,壓縮后的數(shù)據(jù)點(diǎn)為52374。在實際應(yīng)用中,可以根據(jù)壓縮后的效果比較,重新調(diào)節(jié)壓縮比。
[0032]3、三維重建
為了減少海量點(diǎn)云數(shù)據(jù)的三角網(wǎng)生成時間,本發(fā)明將壓縮后的非變形區(qū)的點(diǎn)云和變形區(qū)的點(diǎn)云融合在一起進(jìn)行三角網(wǎng)重建,由于貪婪三角網(wǎng)算法原理處理一系列可以使網(wǎng)格“生長擴(kuò)大”的點(diǎn),延伸這些點(diǎn)直到所有符合幾何正確性和拓?fù)湫缘狞c(diǎn)都參與構(gòu)網(wǎng)。其具體做法是將點(diǎn)云投影到某一局部二維坐標(biāo)平面內(nèi),再在坐標(biāo)平面內(nèi)進(jìn)行平面內(nèi)的三角化,根據(jù)平面內(nèi)的拓?fù)溥B接關(guān)系獲得一個三角網(wǎng)格模型?;谏鲜鏊枷耄景l(fā)明將壓縮后的非變形區(qū)的點(diǎn)云和變形區(qū)的點(diǎn)云放在一起進(jìn)行了三角網(wǎng)重建,其中變形區(qū)域觀測點(diǎn)為12,470,691 個。
[0033]效果圖如圖4所示,在圖4中的程序參數(shù)設(shè)置如下: 連接點(diǎn)之間的最大距離設(shè)置為300,8口3.86丨36&10111^1(1;[118(300);樣本點(diǎn)搜索其鄰近點(diǎn)的最遠(yuǎn)距離為40,gp3.serMu(40);三角化后得到的三角形最小角度為10度,gp 3.setMinimumAngle( 10);三角化后得到的三角形最大角度為120度,gp3.SetMaxmumAngle(1);點(diǎn)的法線方向便宜樣本點(diǎn)法線方向的最大角度為45度,當(dāng)某一待選點(diǎn)的法線方向偏離某一樣本點(diǎn)超過4 5度時,該點(diǎn)不連接到樣本點(diǎn)上,g P 3.setMaximumSurfaceAngle(45);樣本可搜索的領(lǐng)域個數(shù)為100個,gp3.setMaximumNearestneighbors(100)。
[0034]對程序參數(shù)做以下修改,得到效果圖如圖5所示:連接點(diǎn)之間的最大距離設(shè)置為300,gp3.setSearchRadius(300);樣本點(diǎn)搜索其鄰近點(diǎn)的最遠(yuǎn)距離為60,gp3.serMu(60);三角化后得到的三角形最小角度為10度,gp3.SetMinimumAngle(1);三角化后得到的三角形最大角度為120度,gp3.SetMaxmumAngle(1);點(diǎn)的法線方向便宜樣本點(diǎn)法線方向的最大角度為45度,當(dāng)某一待選點(diǎn)的法線方向偏離某一樣本點(diǎn)超過45度時,該點(diǎn)不連接到樣本點(diǎn)上,gp3.setMaximumSurfaceAngle(45);樣本可搜索的領(lǐng)域個數(shù)為100個,gp3.setMaximumNearestneighbors(100)。
[0035]利用pcd格式支持?jǐn)?shù)據(jù)擴(kuò)展的優(yōu)勢,提出根據(jù)研究內(nèi)容來對點(diǎn)云進(jìn)行壓縮,采用三角網(wǎng)算法對壓縮之后的無向點(diǎn)云進(jìn)行重建,實驗結(jié)果證明該方法能完整的呈現(xiàn)三維場景中的地物,同時也能減少三維場景重建的時間,這為三維點(diǎn)云的重建提供了新的思路。
[0036]以上實施例僅用于說明本發(fā)明的設(shè)計思想和特點(diǎn),其目的在于使本領(lǐng)域內(nèi)的技術(shù)人員能夠了解本發(fā)明的內(nèi)容并據(jù)以實施,本發(fā)明的保護(hù)范圍不限于上述實施例。所以,凡依據(jù)本發(fā)明所揭示的原理、設(shè)計思路所作的等同變化或修飾,均在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項】
1.一種無序點(diǎn)云三維重建方法,其特征在于:它包括以下步驟: 51、分區(qū): 根據(jù)研究內(nèi)容,將采集到的點(diǎn)云分為變形區(qū)的點(diǎn)云和非變形區(qū)的點(diǎn)云; 52、點(diǎn)云數(shù)據(jù)壓縮: 對非變形區(qū)的點(diǎn)云,進(jìn)行點(diǎn)云數(shù)據(jù)壓縮;壓縮比為預(yù)設(shè)的設(shè)定值; 53、三維重建: 將變形區(qū)中的點(diǎn)云,和壓縮后的非變形區(qū)的點(diǎn)云,放在一起進(jìn)行三維重建。2.根據(jù)權(quán)利要求1所述的無序點(diǎn)云三維重建方法,其特征在于:所述的SI先將采集到的點(diǎn)云按照pcd格式進(jìn)行轉(zhuǎn)化,再根據(jù)研究內(nèi)容進(jìn)行分區(qū)。3.根據(jù)權(quán)利要求1所述的無序點(diǎn)云三維重建方法,其特征在于:所述的S2采用包圍盒壓縮算法進(jìn)行點(diǎn)云數(shù)據(jù)壓縮,每個包圍盒只保留一個數(shù)據(jù)點(diǎn),所保留的數(shù)據(jù)點(diǎn)最靠近所在包圍盒中點(diǎn)云的重心。4.根據(jù)權(quán)利要求3所述的無序點(diǎn)云三維重建方法,其特征在于:所述的S2首先對非變形區(qū)的點(diǎn)云采用八叉樹數(shù)據(jù)結(jié)構(gòu)進(jìn)行數(shù)據(jù)管理,構(gòu)造點(diǎn)云的最小空間包圍盒,再采用包圍盒壓縮算法進(jìn)行點(diǎn)云數(shù)據(jù)壓縮;其中最小空間包圍盒的邊長為預(yù)設(shè)的點(diǎn)距。5.根據(jù)權(quán)利要求1所述的無序點(diǎn)云三維重建方法,其特征在于:所述的S3采用貪婪三角網(wǎng)算法進(jìn)行三維重建。
【文檔編號】G06T7/00GK105844691SQ201610234539
【公開日】2016年8月10日
【申請日】2016年4月15日
【發(fā)明人】龔珍
【申請人】武漢理工大學(xué)