李文浩,賈同*,呂朝輝,孫小鈞,黃俊文,張松娜
(1.東北大學(xué)信息科學(xué)與工程學(xué)院,沈陽 110819;2.中國傳媒大學(xué)信息與通信工程學(xué)院,北京 100024)
隨著計(jì)算機(jī)視覺的快速發(fā)展,三維視覺相比二維視覺具有“降維打擊”優(yōu)勢,已在觀演空間舞臺(tái)效果展示[1]、虛擬看房[2]、文物保護(hù)[3]等多領(lǐng)域進(jìn)行應(yīng)用。根據(jù)成像方式分類,目前獲取場景三維信息可分為主動(dòng)視覺與被動(dòng)視覺兩類方法。主動(dòng)視覺主要包括結(jié)構(gòu)光[4][7]與TOF(Time of flight)[5]技術(shù)等。被動(dòng)視覺主要包括雙目與多目視覺技術(shù)[6]等。
近年來,結(jié)構(gòu)光已成為三維視覺的主流技術(shù)。其主要原理為將編碼光投射至物體表面,再使用相機(jī)接收該物體表面反射的結(jié)構(gòu)光圖案。由于接收?qǐng)D案必會(huì)因物體的立體形狀而發(fā)生變形,故可以通過該圖案在相機(jī)上的位置和形變程度來計(jì)算物體表面的空間信息。結(jié)構(gòu)光與TOF、雙目視覺[32]等技術(shù)比較而言,具有精度高、非接觸等特點(diǎn),在三維掃描、精準(zhǔn)識(shí)別以及形狀測量等方面表現(xiàn)出了優(yōu)異效果。
根據(jù)時(shí)空編碼方式,結(jié)構(gòu)光可分為時(shí)間編碼和空間編碼。時(shí)間編碼方式主要包括多步相移法和格雷碼法等??臻g編碼主要包括點(diǎn)、線、面結(jié)構(gòu)光等。其中,點(diǎn)和線結(jié)構(gòu)光[8]可以直接通過相似三角形進(jìn)行測距。面結(jié)構(gòu)光[9]需要進(jìn)行編解碼后,才能進(jìn)一步算出距離,主要有M陣列[9]、隨機(jī)散斑編碼[10]等。
獲取場景三維信息后,即可轉(zhuǎn)化為空間點(diǎn)云信息。由于現(xiàn)有技術(shù)不能單次獲取大場景的全部點(diǎn)云信息,因此需要對(duì)多幀點(diǎn)云進(jìn)行配準(zhǔn)與重建[3]。點(diǎn)云配準(zhǔn)分為粗配準(zhǔn)和精配準(zhǔn)兩步,粗配準(zhǔn)算法可分為兩類,一種是基于窮舉的配準(zhǔn)算法,如RANSAC(Random Sample Consensus)配準(zhǔn)算法[11]、四點(diǎn)一致集配準(zhǔn)算法(4-Point Congruent Set,4PCS)[12]、Super4PCS 算法[13]等;另一種是基于特征匹配的配準(zhǔn)算法,如基于點(diǎn) FPFH(Fast Point Feature Histograms)特征的SAC-IA(Sample Consensus Initial Aligment)[14]、以及基于線特征的 ICL(Iterative Closest Line)[15]算法等。精配準(zhǔn)主要采用 PNP(Perspective N Point)[16]、ICP(Iterative Closest Point)[17]及其改進(jìn)算法等。
ICP可分為閾值法和單向鄰近匹配法。閾值法是通過設(shè)定的閾值對(duì)點(diǎn)云篩選的一種方法,原理相對(duì)簡單。單向鄰近匹配是一種比較常用的匹配算法,同時(shí)也是ICP算法在搜尋點(diǎn)對(duì)過程中的主要方法。
點(diǎn)云配準(zhǔn)之后,需要對(duì)點(diǎn)云進(jìn)行建模才能獲得完整的大場景模型。三維點(diǎn)云建模通常有兩種方式,一種是三維建模軟件主動(dòng)建模,即將點(diǎn)云導(dǎo)入軟件中進(jìn)行建模,如Geomagic軟件系統(tǒng)等;另一種是點(diǎn)云逆向建模,主要有泊松算法[18]及其改進(jìn)算法、Delaunay Triangulation[19]、Slicing-based method[20]等算法。
本文對(duì)大場景掃描、點(diǎn)云配準(zhǔn)和點(diǎn)云建模的相關(guān)技術(shù)進(jìn)行了介紹,并采用改進(jìn)算法實(shí)現(xiàn)大場景三維掃描與建模,獲得了高精度、高魯棒性的三維重建結(jié)果。
如前所述,結(jié)構(gòu)光是主動(dòng)深度感知視覺的主要方法。本文提出一種基于全向環(huán)結(jié)構(gòu)光[21]的深度感知方法,可歸類為線結(jié)構(gòu)光范疇[8][9][10]。
如圖1所示為全向環(huán)結(jié)構(gòu)光深度測量模型[21]。圖中顯示了由全景相機(jī)和全向環(huán)結(jié)構(gòu)光組成的深度測量單元,其中S為雙曲面焦距到激光平面的垂心距離,下面簡稱為基線距離S。基線距離由機(jī)械測量確定,決定了最終的測量精度。
圖1 全向環(huán)結(jié)構(gòu)光深度測量模型
圖中描述了空間點(diǎn)與圖像平面的映射關(guān)系,給出了不同空間測量點(diǎn)在平面內(nèi)的成像情況,以及測量深度與各參數(shù)之間的關(guān)系。圖中OM為雙曲面鏡的焦點(diǎn),如果能在相機(jī)平面內(nèi)成像則所有入射光線都交于焦點(diǎn)OM[21]。圖中省略了相機(jī)的鏡頭,使用透視投影的方式來描述空間幾何關(guān)系,ImageSensor表示相機(jī)內(nèi)的感光元件,Camera所指位置表示感光元件所在位置,感光元件所成圖像如ImageSensor Topview所示,其中H表示圖像的行像素,W表示圖像的列像素。
空間中的點(diǎn)P1,P2,P3在激光平面中的測量深度分別為q1,q2,q3,α1,α2,α3為測量點(diǎn)P1,P2,P3到雙曲面焦距與激光所在平面的夾角。
當(dāng)測量物體擋住激光的通路時(shí),物體表面反射激光光線到雙曲面鏡,通過相機(jī)鏡頭將圖像聚焦在圖像傳感器上。如圖中可以看到不同的測量位置P1,P2,P3在相平面上對(duì)應(yīng)位置為P′1,P′2,P′3。其中OM為雙曲面鏡的焦點(diǎn),O′M為過雙曲面鏡焦點(diǎn)垂直于傳感器平面的交點(diǎn),后面稱為中心投影。由圖可知,測量深度q可由S和cosα的乘積得到。
由此關(guān)系式可以得出測量深度q、基線距離S和激光平面與被測點(diǎn)和雙曲面鏡焦距連線的夾角α之間的關(guān)系,由此關(guān)系可以明顯看出,測量距離與基線長度和光斑在傳感器平面內(nèi)坐標(biāo)相關(guān)。
式(1)中b為雙曲面鏡短軸,c為雙曲面鏡的長軸,f為雙曲面鏡的焦距。其中f為攝像機(jī)鏡頭的焦距,通過求得α可以求出三維空間中點(diǎn)P(X,Y,Z)在圖像傳感器中的映射點(diǎn)p(x,y)。當(dāng)使用的雙曲面鏡參數(shù)已知,α只與相機(jī)平面內(nèi)參θ有關(guān),則只要標(biāo)定出全景相機(jī)中心在相平面內(nèi)的投影中心,再通過激光點(diǎn)定位算法進(jìn)行激光點(diǎn)定位,則可以求出圖2中的角度α,帶入公式就可以求出測量深度:
圖2 深度測量幾何模型俯視圖
根據(jù)圖像坐標(biāo)和空間坐標(biāo)的對(duì)應(yīng)關(guān)系,可以計(jì)算出空間點(diǎn)的三維坐標(biāo)信息。全向環(huán)感知系統(tǒng)[22]是一種以觀察者為中心的單視點(diǎn)全景視覺感知系統(tǒng),因此在點(diǎn)云計(jì)算過程中采用笛卡爾坐標(biāo)系[23],坐標(biāo)系如圖3所示。以單目的中心作為坐標(biāo)系的原點(diǎn),以中心軸沿著雙曲面鏡方向作為Z軸正方向在空間中建立三維坐標(biāo)系。其中,q為空間中點(diǎn)到攝像頭的距離,zeta為舵機(jī)旋轉(zhuǎn)角度,phi為全向環(huán)結(jié)構(gòu)光中每一點(diǎn)相對(duì)于像素坐標(biāo)系的角度。
圖3 點(diǎn)云三維測量原理圖
根據(jù)像素坐標(biāo)系到空間坐標(biāo)系的轉(zhuǎn)換,即可以得到空間坐標(biāo)系中點(diǎn)的三維坐標(biāo)公式如下式(5):
大場景空間大,且空間場景相對(duì)復(fù)雜。因此,本文首先聯(lián)合多種點(diǎn)云濾波模型完成對(duì)初始點(diǎn)云數(shù)據(jù)的精簡;其次提取點(diǎn)云關(guān)鍵點(diǎn)并進(jìn)行多維度特征化描述;然后以特征向量為索引單位,在最鄰近搜索的基礎(chǔ)上,結(jié)合比率抑制和雙向篩選完成對(duì)應(yīng)點(diǎn)對(duì)搜索,以達(dá)到快速收斂;最后根據(jù)對(duì)應(yīng)點(diǎn)構(gòu)建點(diǎn)云變換模型,求出最優(yōu)解,實(shí)現(xiàn)點(diǎn)云配準(zhǔn)。
大場景三維點(diǎn)云地圖的點(diǎn)云數(shù)據(jù)量較大,點(diǎn)的數(shù)量一般在十萬到百萬級(jí)別,如果對(duì)所有的點(diǎn)進(jìn)行點(diǎn)云配準(zhǔn)操作勢必產(chǎn)生過高的計(jì)算負(fù)荷。為了能夠在保留原有點(diǎn)云特征的情況下有效減少點(diǎn)的數(shù)量,最終提高點(diǎn)云配準(zhǔn)效率,本文采用聯(lián)合多種濾波方法對(duì)點(diǎn)云進(jìn)行精簡操作。
3.1.1 點(diǎn)云體素網(wǎng)格濾波
體素網(wǎng)格的重心P近似地表示了該網(wǎng)格中其他所有空間點(diǎn),邊長L決定了體素網(wǎng)格濾波的尺度。
3.1.2 點(diǎn)云離群點(diǎn)剔除
點(diǎn)云分布較為密集的地方信息量就越大,相反點(diǎn)云分布稀疏地方信息量較少。因此離群點(diǎn)所表達(dá)的信息量較少,同時(shí)離群點(diǎn)容易影響當(dāng)前點(diǎn)云的呈現(xiàn)效果,而且還可能影響整個(gè)點(diǎn)云的配準(zhǔn)過程。為了能夠最大限度降低離群噪點(diǎn)產(chǎn)生的上述不良影響,本文采用統(tǒng)計(jì)濾波算法[25]對(duì)離群噪點(diǎn)進(jìn)行剔除。
統(tǒng)計(jì)濾波算法是一種對(duì)每個(gè)點(diǎn)的鄰域都進(jìn)行統(tǒng)計(jì)分析的算法。具體流程為:計(jì)算每個(gè)點(diǎn)到其最近的K個(gè)點(diǎn)的平均距離di,其中i=1,2,3…N。假設(shè)所有平均距離di滿足高斯分布,則均值μ代表了點(diǎn)云的平均密度,標(biāo)準(zhǔn)差σ代表了點(diǎn)云的密度分布。將平均距離小于設(shè)定范圍的點(diǎn)定義為離群點(diǎn),從點(diǎn)云數(shù)據(jù)中去除,保留絕大部分滿足設(shè)定范圍的點(diǎn)。
3.2.1 ISS關(guān)鍵點(diǎn)提取
ISS(Intrinsic Shape Signatures)[26]關(guān)鍵點(diǎn)是一種通過點(diǎn)云局部空間幾何信息加權(quán)確定的關(guān)鍵點(diǎn)。遍歷點(diǎn)云中所有點(diǎn),以每個(gè)點(diǎn)Pc為中心,建立空間局部坐標(biāo)系,以r為半徑,搜索r鄰域內(nèi)的球形空間所有點(diǎn),假設(shè)鄰域中所有點(diǎn)的個(gè)數(shù)為n,可以根據(jù)下式(7)確定每個(gè)點(diǎn)所對(duì)應(yīng)的權(quán)值wij:
根據(jù)式(7)計(jì)算得出的權(quán)值構(gòu)建球形鄰域內(nèi)所有點(diǎn)的協(xié)方差矩陣cov(Pi),見式(8):
根據(jù)協(xié)方差矩陣計(jì)算特征值λi,其中i∈{0,1,2},如下式(9)所示:
3.2.2 SIFT關(guān)鍵點(diǎn)提取
點(diǎn)云的3D SIFT(Scale-invariant Feature Transform)[27]特征點(diǎn)是從圖像SIFT二維特征點(diǎn)到3D空間的拓展。SIFT是在不同的尺度空間中提取得到的特征點(diǎn),SIFT特征點(diǎn)具有較強(qiáng)的抗光照、噪聲干擾能力,同時(shí)也不會(huì)因點(diǎn)云仿射變換而發(fā)生變化。SIFT關(guān)鍵點(diǎn)提取可歸納為以下兩個(gè)主要步驟。
1.尺度空間極值檢測
要在尺度空間中進(jìn)行極值檢測首先需要構(gòu)造高斯差分金字塔模型。三維空間中的尺度信息L(x,y,z,σ)定義如下式(10):
為了能夠高效檢測出三維空間中的特征點(diǎn),采用高斯差分DoG(Difference of Gaussian)算子[28]進(jìn)行尺度空間極值點(diǎn)檢測。
式(11)中,k為乘法因子,利用k可以得到不同尺度。
每個(gè)空間點(diǎn)都要在其鄰域內(nèi)進(jìn)行篩選比較從而得到極值,包括極大值和極小值。二維圖像中的中間點(diǎn)需要和鄰域內(nèi)的8個(gè)點(diǎn)進(jìn)行比較,三維空間中的中間點(diǎn)則需要和周圍26個(gè)點(diǎn)進(jìn)行比較。如下圖4所示:
圖4 多維空間鄰域檢測
2.極值點(diǎn)方向確定
極值點(diǎn)方向角θ確定如下式(12)所示:
式(12)中,(xc,yc)為三維空間中心點(diǎn)P坐標(biāo)。
3.2.3 關(guān)鍵點(diǎn)對(duì)比與分析
前兩小節(jié)分別介紹了最常用的兩種3D特征點(diǎn)檢測算法,本小節(jié)對(duì)這兩種3D特征點(diǎn)進(jìn)行對(duì)比實(shí)驗(yàn)。
圖5為斯坦福大學(xué)利用三維掃描儀構(gòu)建的兔子點(diǎn)云模型,該模型包含14806個(gè)點(diǎn)。本文對(duì)該模型進(jìn)行了點(diǎn)云的兩種關(guān)鍵點(diǎn)提取實(shí)驗(yàn),實(shí)驗(yàn)效果圖如下圖6所示。
圖5 斯坦福點(diǎn)云模型
圖6 兩種特征點(diǎn)效果提取圖
表1 兩種關(guān)鍵點(diǎn)數(shù)據(jù)分析
從外觀上看,ISS關(guān)鍵點(diǎn)在所有區(qū)域的分布更為均勻,而SIFT關(guān)鍵點(diǎn)在平坦區(qū)域特征點(diǎn)分布相對(duì)較少,在輪廓區(qū)域分布更為充分。在表達(dá)點(diǎn)云空間結(jié)構(gòu)信息的過程中,輪廓信息尤為重要,因此SIFT關(guān)鍵點(diǎn)能夠更為良好地表達(dá)出點(diǎn)云的空間結(jié)構(gòu)信息。
從統(tǒng)計(jì)數(shù)據(jù)上比較,在同樣閾值限定的情況下,SIFT關(guān)鍵點(diǎn)的數(shù)據(jù)量更多,這也正是SIFT關(guān)鍵點(diǎn)耗時(shí)較長的原因。但是大規(guī)模點(diǎn)云配準(zhǔn)問題的核心在于配準(zhǔn)結(jié)果的準(zhǔn)確性,而不是配準(zhǔn)過程的實(shí)時(shí)性。因此本文可以在犧牲時(shí)間的基礎(chǔ)上來提升結(jié)果的準(zhǔn)確性。
綜上所述,本文選取3D SIFT關(guān)鍵點(diǎn)作為后續(xù)過程中的特征點(diǎn)。
點(diǎn)云特征描述符是對(duì)點(diǎn)云特征點(diǎn)的信息表達(dá),一種好的描述符能夠充分表達(dá)特征點(diǎn)自身以及特征點(diǎn)周圍的空間信息,同時(shí)具備較強(qiáng)的魯棒性。點(diǎn)云特征描述符最終以特征向量的形式進(jìn)行表達(dá)。
一種合格的點(diǎn)云描述符需要滿足以下四點(diǎn)準(zhǔn)則:一是點(diǎn)云經(jīng)過任意三維變換,特征向量不發(fā)生任何變化;二是點(diǎn)云經(jīng)過不同的密度采樣,特征向量保持不變;三是當(dāng)點(diǎn)云存在部分噪點(diǎn)時(shí),特征向量基本保持不變。四是特征向量本身能夠全面化表述特征點(diǎn)的多維信息。本文依據(jù)上述準(zhǔn)則對(duì)點(diǎn)云的特征描述符進(jìn)行了分析與選取。
3.3.1 點(diǎn)云固有特征信息
(1)顏色信息
點(diǎn)云中的每個(gè)點(diǎn)除了包含對(duì)應(yīng)的XYZ空間位置信息之外,往往包含了彩色信息RGB三種分量。由于相機(jī)彩色攝像頭精度較高,在同一時(shí)間和同一場景下,物體顏色信息不會(huì)發(fā)生較大變化,同一個(gè)物體會(huì)在不同角度采集得到的點(diǎn)云中表現(xiàn)出相同且穩(wěn)定的RGB分量。因此每個(gè)點(diǎn)的RGB分量能夠?yàn)楹罄m(xù)點(diǎn)云匹配提供相應(yīng)的約束。
(2)曲率信息
曲率描述了點(diǎn)及其局部點(diǎn)的彎曲程度,形狀不同的點(diǎn)云曲率信息相差較大,因此曲率是點(diǎn)云中比較重要的幾何特征。曲率的計(jì)算依賴于該點(diǎn)及其周圍點(diǎn)的坐標(biāo),但是并不會(huì)因?yàn)辄c(diǎn)云旋轉(zhuǎn)平移而發(fā)生變化,因此曲率信息是點(diǎn)云的固有內(nèi)在特征??梢圆捎弥苯佑?jì)算的方式求取任意特征點(diǎn)P(X,Y,Z)的曲率,具體的計(jì)算過程為:
2)計(jì)算出協(xié)方差矩陣C。
3)根據(jù)特征向量與特征值計(jì)算公式(8)計(jì)算得出協(xié)方差矩陣C的三個(gè)特征值λ1、λ2、λ3。式中,λj表示第j個(gè)特征值,vj表示第j個(gè)特征值對(duì)應(yīng)的特征向量。
4)取λ1、λ2、λ3中的最小特征值λmin=min(λ1,min(λ2,λ3))。
5)根據(jù)式(12)計(jì)算特征點(diǎn)P(X,Y,Z)對(duì)應(yīng)的曲率ρP,見式(13)。
3.3.2 PFH特征描述
顏色信息和曲率信息只能描述當(dāng)前點(diǎn)的特征信息,當(dāng)點(diǎn)云相對(duì)復(fù)雜時(shí),上述特征信息不夠全面,對(duì)于相似性較高區(qū)域或者對(duì)稱區(qū)域容易出現(xiàn)較大的誤差。為了更好地描述該點(diǎn)和周圍點(diǎn)更深層次的空間位置關(guān)系,從而得到置信度更高的匹配點(diǎn)對(duì),本文采用PFH特征描述符。
PFH[30]特征描述實(shí)質(zhì)上是對(duì)曲率特征更加進(jìn)一步的表達(dá)。它描述了中心點(diǎn)和周圍點(diǎn)之間的法線方向差異,同時(shí)建立統(tǒng)計(jì)直方圖來表述中心點(diǎn)和周圍點(diǎn)之間的幾何特征。
(1)為了計(jì)算兩點(diǎn)之間的法線差異,需要選取兩點(diǎn)連線與法向量夾角較小的一點(diǎn)構(gòu)建uvw坐標(biāo)系。計(jì)算公式為式(14):
(2)兩點(diǎn)的信息包括各自的位置坐標(biāo)(x,y,z)和法線方向信息(nx,ny,nz)。
如圖7所示,兩點(diǎn)之間的相互關(guān)系可以用一組角度α?θ以及兩點(diǎn)之間距離d共四個(gè)元素進(jìn)行表示。如式(15)所示:
圖7 局部空間坐標(biāo)系
(3)構(gòu)建中心點(diǎn)P的統(tǒng)計(jì)分布直方圖。
首先計(jì)算查詢點(diǎn)Pq近鄰內(nèi)對(duì)應(yīng)的所有四個(gè)元素,如圖8所示,表示的是一個(gè)查詢點(diǎn)Pq的PFH計(jì)算的影響區(qū)域,Pq用紅色標(biāo)注并放在圓球的中間位置,半徑為r,Pq的所有k鄰元素(即與點(diǎn)Pq的距離小于半徑r的所有點(diǎn))全部互相連接在一個(gè)網(wǎng)絡(luò)中。最終的PFH描述子通過計(jì)算鄰域內(nèi)所有兩點(diǎn)之間關(guān)系而得到直方圖,計(jì)算復(fù)雜度為O(k)。為了創(chuàng)建最終的直方圖,將所有四元素組以統(tǒng)計(jì)的方式放入一個(gè)直方圖中,這個(gè)過程首先把每個(gè)特征值范圍劃分為b個(gè)子區(qū)間,并統(tǒng)計(jì)落在每個(gè)子區(qū)間的點(diǎn)數(shù)量,前三個(gè)元素均是角度,都和法向量有關(guān),可以將三個(gè)元素標(biāo)準(zhǔn)化并放到同一個(gè)區(qū)間內(nèi)。
圖8 空間結(jié)構(gòu)示意圖
本文將點(diǎn)云顏色、曲率以及PFH特征相結(jié)合,具體包含兩個(gè)分量。第一個(gè)分量表達(dá)了點(diǎn)云中點(diǎn)的自身信息,包括顏色信息以及曲率信息,是一個(gè)4維度分量。第二個(gè)分量表達(dá)了點(diǎn)云關(guān)鍵點(diǎn)的PFH特征,是一個(gè)125維度分量。
3.4.1 ICP算法中所用到的匹配方法與不足
ICP[17]算法用到的匹配方法可以細(xì)分為兩種,分別為閾值法和單向鄰近匹配法。
(1)閾值法
閾值法是通過設(shè)定的閾值進(jìn)行篩選的一種方法。主要思想為:假設(shè)得到了兩個(gè)待配準(zhǔn)點(diǎn)云的特征描述子集合DP和DQ,對(duì)于源點(diǎn)云的特征描述子集合DP中的任意一個(gè)特征描述子pi,從目標(biāo)點(diǎn)云的特征描述子集合DQ中通過閾值判斷找到滿足閾值的描述子pj。由于閾值的限定,滿足閾值的描述子數(shù)量可能是一個(gè)也可能是一個(gè)集合。
閾值的設(shè)定和實(shí)驗(yàn)結(jié)果密切相關(guān),對(duì)于不同密度、不同大小、原始空間位置相差較大的點(diǎn)云,事先設(shè)定的閾值需要?jiǎng)討B(tài)變化才能滿足實(shí)驗(yàn)要求,否則會(huì)出現(xiàn)錯(cuò)誤的匹配。同時(shí),由于點(diǎn)云特征點(diǎn)數(shù)量較為繁多,滿足閾值要求的點(diǎn)可能較多,巨大的信息干擾使得ICP算法的迭代次數(shù)不斷增多。因此閾值法通常只適用于點(diǎn)云空間結(jié)構(gòu)較為簡單、點(diǎn)云匹配步驟較少的情況。
(2)單向鄰近匹配
單向鄰近匹配是ICP算法在搜尋點(diǎn)對(duì)過程中的主要方法。單向鄰近匹配的過程為:假設(shè)得到了兩個(gè)待配準(zhǔn)點(diǎn)云的特征描述子集合DP和DQ。遍歷源點(diǎn)云的特征描述子集合DP中的每一個(gè)元素pi,在目標(biāo)點(diǎn)云的特征描述子集合DQ中找到與pi歐式距離最近的描述子pj,得到一對(duì)匹配的描述子(pi,pj)。與閾值法不同的是,pj具有唯一性。
單向鄰近匹配算法在尋找對(duì)應(yīng)點(diǎn)過程中是一種單向的搜索,只能滿足從源點(diǎn)云到目標(biāo)點(diǎn)云之間的搜索。假設(shè)利用單向鄰近匹配尋找得到了一組對(duì)應(yīng)點(diǎn)對(duì)(pi,pj),pi對(duì)應(yīng)于pj點(diǎn),但是并無法證明pj對(duì)應(yīng)于pi點(diǎn),很可能pj與其他點(diǎn)相對(duì)應(yīng)。因此從原理上分析可知,單向的搜索過程容易出現(xiàn)更多的潛在錯(cuò)誤點(diǎn)對(duì)。
3.4.2 基于雙向匹配與比率篩選的ICP配準(zhǔn)
不論是利用閾值法進(jìn)行特征點(diǎn)對(duì)的篩選,或者利用單向鄰近搜索策略進(jìn)行特征點(diǎn)對(duì)篩選,以上策略均會(huì)出現(xiàn)大量潛在的誤匹配,因此會(huì)造成搜索過程的效率低下。造成效率低下的原因主要有三:
1)閾值的設(shè)定較為單一,匹配結(jié)果無法令人滿意。
2)單向搜索無法保證匹配點(diǎn)之間的雙向?qū)?yīng)。
3)特征維度較高,只利用最鄰近歐氏距離進(jìn)行比較,相似的結(jié)果可能包含有其它大量錯(cuò)誤的匹配,數(shù)據(jù)干擾較大。
(1)雙向篩選
ICP[17]方法中單向搜索的基本原理如圖9所示。由于單向的搜索方式無法保證特征點(diǎn)對(duì)之間的相互對(duì)應(yīng),為了能夠最大限度地提升對(duì)應(yīng)點(diǎn)對(duì)正確性,本文將原有的單向搜索策略改為雙向搜索策略,原理示意圖如圖10所示:
圖9 單向搜索示意圖
圖10 雙向搜索示意圖
圖10中,左側(cè)區(qū)域紅色標(biāo)記點(diǎn)和右側(cè)區(qū)域藍(lán)色標(biāo)記點(diǎn)分別為源點(diǎn)云P和目標(biāo)點(diǎn)云Q中提取得到的3D關(guān)鍵點(diǎn)。在遍歷源點(diǎn)云P的所有3D關(guān)鍵點(diǎn)過程中,紅色標(biāo)記點(diǎn)P3在目標(biāo)點(diǎn)云Q中尋找得到了距離最近的點(diǎn)Q5。在ICP的單向搜索過程中,正向匹配點(diǎn)對(duì)(P3,Q5)被認(rèn)定為最佳匹配點(diǎn)對(duì)。但是在本文雙向篩選過程中,在得到正向匹配點(diǎn)對(duì)(P3,Q5)后,需要對(duì)點(diǎn)Q5反向從源點(diǎn)云P中繼續(xù)尋找最佳匹配點(diǎn)對(duì)。如果在反向搜索過程中,P3是源點(diǎn)云P中距離Q5點(diǎn)歐氏距離最近的點(diǎn),則反向匹配點(diǎn)對(duì)(Q5,P3)被判定為最佳反向點(diǎn)對(duì)。由于正向和反向的搜索結(jié)果相吻合,因此(Q5,P3)為最佳匹配點(diǎn)對(duì)。反之,重新遍歷源點(diǎn)云P中的下一個(gè)關(guān)鍵點(diǎn)。
(2)比率抑制
由于特征描述維度較高,當(dāng)特征點(diǎn)存在疑似點(diǎn)時(shí),如果直接利用閾值法,很容易得出錯(cuò)誤的結(jié)果。如圖11所示:
圖11 存在干擾時(shí)的特征匹配
圖11中的Pi為源點(diǎn)云中的待匹配特征點(diǎn),Q1,Q2,Q3,Q4皆為目標(biāo)點(diǎn)云中距離Pi點(diǎn)最近的四個(gè)特征點(diǎn)。根據(jù)閾值法可以計(jì)算得出,Pi的匹配點(diǎn)為Q1,而其他點(diǎn)Q2,Q3,Q4因到Pi點(diǎn)距離大于Q1到Pi的距離,皆被舍棄。但是閾值法計(jì)算結(jié)果不具有可靠性,由于特征點(diǎn)對(duì)應(yīng)的特征描述具有高維度性質(zhì),歐氏距離最近的點(diǎn)不一定是最佳匹配點(diǎn)。而在干擾點(diǎn)中可能存在最佳的對(duì)應(yīng)點(diǎn)。閾值法的處理過程很容易將潛在的目標(biāo)點(diǎn)當(dāng)作干擾點(diǎn)去除。
為了能夠使得計(jì)算結(jié)果具有可靠性,本文提出比率抑制的方法。對(duì)于源點(diǎn)云中的待匹配點(diǎn)Pi,在尋找對(duì)應(yīng)點(diǎn)過程中,計(jì)算最鄰近點(diǎn)Qf和次鄰近點(diǎn)Qs分別到原始特征點(diǎn)之間的距離比,如式(16)所示:
設(shè)定閾值ε,Lowe[10]在文章中已經(jīng)給出了閾值ε的經(jīng)驗(yàn)閾值為0.8。比較距離比di與閾值ε之間的大小關(guān)系。如果di<ε則認(rèn)為次臨近點(diǎn)的干擾性較弱,最臨近點(diǎn)的可靠性較高。否則舍棄待匹配特征點(diǎn)Pi,繼續(xù)對(duì)源點(diǎn)云其它特征點(diǎn)進(jìn)行查找。比率抑制的示意圖如下圖12所示。
圖12 基于比率抑制的提取效果圖
圖12中,Pj和Q1為經(jīng)過比率抑制得到的匹配點(diǎn)對(duì),而Q2因?yàn)榫嚯x遠(yuǎn)遠(yuǎn)小于Q1,認(rèn)為Q2在特征匹配過程中的干擾性較弱,舍棄掉Q2點(diǎn)。
三維點(diǎn)云建模方法主要是以軟件主動(dòng)建模為主,通過CloudCompare[30]和Geomagic軟件[31],對(duì)大場景點(diǎn)云進(jìn)行建模。如圖13(a)所示為實(shí)驗(yàn)室的三維點(diǎn)云圖,以實(shí)驗(yàn)室為對(duì)象,對(duì)實(shí)驗(yàn)室進(jìn)行三維建模。
如圖13所示,將實(shí)驗(yàn)室點(diǎn)云文件加載到Cloud-Compare內(nèi)。首先通過軟件中的裁剪功能,手動(dòng)將原始點(diǎn)云中的離群點(diǎn)和噪點(diǎn)去除掉,去除后的點(diǎn)云圖如圖13(b)所示;然后將實(shí)驗(yàn)室分成若干部分,分類時(shí)可按照物品種類進(jìn)行分類,比如墻面、地板、桌椅等,通過手動(dòng)裁剪,將點(diǎn)云進(jìn)行裁剪,被裁剪后的點(diǎn)云文件如圖13(c)所示,并將裁剪后的點(diǎn)云保存成pts點(diǎn)云文件;將裁剪后的點(diǎn)云加載到Geomagic軟件中,對(duì)點(diǎn)云進(jìn)行去噪、修補(bǔ)漏點(diǎn)和優(yōu)化點(diǎn)云后,進(jìn)行封裝并轉(zhuǎn)為obj三角面片格式,如圖13(d)所示;最后將封裝后的模型導(dǎo)入到3DMax中,并進(jìn)行拼接,拼接后將其保存為max模型文件。如圖13(e)所示為建模后的實(shí)驗(yàn)室三維模型。
圖13 三維點(diǎn)云建模方法。(a)通過三維掃描與點(diǎn)云配準(zhǔn)生成實(shí)驗(yàn)室原始點(diǎn)云;(b)將原始點(diǎn)云加載到CloudCompare;(c)去除離群點(diǎn)和噪點(diǎn);(d)對(duì)實(shí)驗(yàn)室進(jìn)行分類并裁剪;(e)加載到Geomagic中進(jìn)行封裝;(f)通過3DMax對(duì)封裝后的三角面片進(jìn)行拼接,生成完整的實(shí)驗(yàn)室模型。
通過CloudCompare、Geomagic和3DMax軟件,可以快速的對(duì)原始點(diǎn)云進(jìn)行建模。同時(shí)Geomagic軟件中本身自帶點(diǎn)云去噪、漏洞補(bǔ)全優(yōu)化功能;3Dmax軟件也可以對(duì)模型進(jìn)行渲染,進(jìn)一步對(duì)模型進(jìn)行優(yōu)化,從而達(dá)到更好的效果。
本文面向大場景三維掃描與建模關(guān)鍵問題,首先采用全向環(huán)結(jié)構(gòu)光深度感知方法獲取場景的三維點(diǎn)云信息;然后采用基于雙向匹配與比率篩選的ICP配準(zhǔn)算法對(duì)掃描獲得的點(diǎn)云進(jìn)行配準(zhǔn),從而獲得完整的大場景點(diǎn)云;最后采用CloudCompare和Geomagic三維軟件對(duì)點(diǎn)云進(jìn)行主動(dòng)建模,獲得高精度、高魯棒性的大場景三維點(diǎn)云掃描與建模結(jié)果。