陶 謙,熊風(fēng)光,劉 濤,況立群,韓 燮,梁振斌,常 敏
(1.中北大學(xué) 大數(shù)據(jù)學(xué)院,太原 030051; 2.上海海事大學(xué) 交通運(yùn)輸學(xué)院,上海 201306)
近年來,隨著傳感器技術(shù)及相關(guān)算法的快速發(fā)展,激光雷達(dá)測量技術(shù)在不同領(lǐng)域得到廣泛應(yīng)用,如激光掃描儀以自動高效的方式提供精確的測量服務(wù),激光攝像機(jī)收集大量的光譜信息數(shù)據(jù)。激光掃描儀數(shù)據(jù)和數(shù)碼相機(jī)數(shù)據(jù)的特性互補(bǔ),這對于集成數(shù)據(jù)處理方案的設(shè)計(jì)具有重要價(jià)值。
目前,國內(nèi)外學(xué)者提出了不同的方法來配準(zhǔn)掃描儀和相機(jī)中的2種異源數(shù)據(jù)。文獻(xiàn)[1]利用圖像建模的方法,基于單個(gè)圖像進(jìn)行激光掃描儀和未校準(zhǔn)數(shù)碼相機(jī)的自動配準(zhǔn),其中,通過2D圖像和3D點(diǎn)云對應(yīng)自動解決配準(zhǔn)的問題,2D和3D點(diǎn)云通過距離和角度的空間不變量搜索進(jìn)行匹配。但是,文獻(xiàn)[1]方法必須考慮若干輸入因素,如特殊目標(biāo)、消失點(diǎn)和幾何約束等,導(dǎo)致其算法復(fù)雜度高,時(shí)間效率低。文獻(xiàn)[2]針對研究對象的編碼目標(biāo)提出一種配準(zhǔn)策略,該目標(biāo)由校準(zhǔn)的數(shù)碼相機(jī)記錄,剛性連接到激光掃描儀中,使用全自動的處理方法解決激光掃描儀坐標(biāo)系內(nèi)相機(jī)的空間位置和方向問題,被識別的編碼目標(biāo)則被應(yīng)用到3D相似性變換中。然而,文獻(xiàn)[2]方法需要一臺連接到激光掃描儀的相機(jī)和放置在研究對象上的一些編碼目標(biāo),導(dǎo)致算法的魯棒性較差。文獻(xiàn)[3]提出一種激光雷達(dá)和相機(jī)系統(tǒng)的自動、無目標(biāo)、外部校準(zhǔn)算法,其適用于現(xiàn)場校準(zhǔn),并且使用基于互信息(Mutual Information,MI)的框架來交叉記錄由相機(jī)和激光模態(tài)測量的強(qiáng)度和反射率信息,但是,該算法對硬件的要求高,時(shí)間效率低。文獻(xiàn)[4]提出一種基于MI的車載激光雷達(dá)點(diǎn)云數(shù)據(jù)與全景圖配準(zhǔn)算法,通過使用統(tǒng)一的球面全景成像模型,將車載激光雷達(dá)點(diǎn)云數(shù)據(jù)生成的深度圖與MI提取的全景圖進(jìn)行匹配。但是,該方法采用球面全景成像模式,導(dǎo)致其配準(zhǔn)精度較低。
上述針對2種異源數(shù)據(jù)配準(zhǔn)的研究并未對多幅局部點(diǎn)云與多張紋理影像的自動配準(zhǔn)進(jìn)行深入探討。為了解決地面激光掃描儀在大場景掃描中無法一次性采集到完整點(diǎn)云數(shù)據(jù),以及點(diǎn)云數(shù)據(jù)與單張紋理影像配準(zhǔn)難以得到完整RGB信息的問題,本文提出一種多幅點(diǎn)云數(shù)據(jù)與紋理序列間的自動配準(zhǔn)方法。對局部點(diǎn)云進(jìn)行3D-3D配準(zhǔn)以得到完整的點(diǎn)云數(shù)據(jù),采用中心投影方式生成強(qiáng)度圖像,利用SIFT算法將強(qiáng)度圖像與矯正過的紋理影像進(jìn)行匹配,在此基礎(chǔ)上,對紋理影像進(jìn)行融合預(yù)處理操作,以解決配準(zhǔn)過程中的紋理重疊問題并保證算法的穩(wěn)健性和可靠性。
如圖1所示,本文方法的步驟如下:
圖1 本文方法系統(tǒng)框架Fig.1 System framework of the method in this paper
1)進(jìn)行多幅局部點(diǎn)云數(shù)據(jù)的預(yù)處理及局部點(diǎn)云數(shù)據(jù)的配準(zhǔn)。
2)采用中心投影的方法將配準(zhǔn)后的點(diǎn)云投影生成強(qiáng)度圖像并對強(qiáng)度圖像進(jìn)行處理。
3)對紋理序列進(jìn)行畸變矯正并實(shí)現(xiàn)強(qiáng)度圖像與紋理序列的特征匹配與優(yōu)化。
4)采用融合預(yù)處理方法解決多張紋理影像與強(qiáng)度圖像匹配過程中的紋理重疊問題,通過共線方程得到帶有紋理的點(diǎn)云數(shù)據(jù),最終實(shí)現(xiàn)多幅點(diǎn)云數(shù)據(jù)與紋理影像序列間的自動配準(zhǔn)。
為了得到完整的點(diǎn)云,對采集獲得的旋轉(zhuǎn)錯位、平移錯位以及不完整的局部點(diǎn)云進(jìn)行配準(zhǔn)。因?yàn)榧す鈷呙鑳x采集數(shù)據(jù)量大、掃描范圍廣,為了加快實(shí)驗(yàn)中的數(shù)據(jù)處理速度,在點(diǎn)云數(shù)據(jù)配準(zhǔn)之前,需要對局部點(diǎn)云進(jìn)行預(yù)處理操作以獲得更有效的數(shù)據(jù),該過程的主要方法有點(diǎn)云數(shù)據(jù)的去噪、抽稀和濾波等。
1.2.1 點(diǎn)云數(shù)據(jù)的預(yù)處理
本文利用PCL(Point Cloud Library)中的體素濾波器[5]對每一幅點(diǎn)云數(shù)據(jù)進(jìn)行濾波處理,即對實(shí)驗(yàn)輸入的三維局部點(diǎn)云數(shù)據(jù)創(chuàng)建一個(gè)三維的體素柵格,然后在每個(gè)體素柵格內(nèi)用體素中可以近似表示其他點(diǎn)的重心點(diǎn)來描述該體素內(nèi)的所有點(diǎn)。相對于其他方法,該方法不僅減少了點(diǎn)云數(shù)據(jù),還保持了點(diǎn)云的形狀特性,可以更準(zhǔn)確地表示采樣點(diǎn)對應(yīng)的曲面。本文實(shí)驗(yàn)對采集到的3幅局部點(diǎn)云進(jìn)行研究,其中,第1幅局部點(diǎn)云在經(jīng)過體素濾波前后的效果如圖2所示。
圖2 體素濾波前后的局部點(diǎn)云效果Fig.2 Effect of local point cloud before and after voxel filtering
1.2.2 點(diǎn)云配準(zhǔn)
多幅點(diǎn)云數(shù)據(jù)配準(zhǔn)是計(jì)算機(jī)技術(shù)中一個(gè)重要問題,迭代最近點(diǎn)(Iterative Closest Point,ICP)是圖形圖像領(lǐng)域的經(jīng)典算法,在科學(xué)研究中使用較為廣泛。但是,經(jīng)過濾波去噪后的點(diǎn)云數(shù)據(jù)仍然十分復(fù)雜,僅使用ICP算法會陷入局部最優(yōu)。因此,本文采用NDT(Normal Distributions Transform)與ICP相結(jié)合的方法進(jìn)行多幅點(diǎn)云匹配。
NDT算法[6]將參考點(diǎn)云所占空間劃分成指定大小的網(wǎng)格或者體素,并計(jì)算每個(gè)網(wǎng)格的多維正態(tài)分布參數(shù),利用這些參數(shù)計(jì)算出配準(zhǔn)點(diǎn)云變換到參考點(diǎn)云網(wǎng)格中的變換矩陣,然后將變換矩陣作為一個(gè)良好的迭代初值提供給ICP。ICP算法[7]則利用NDT算法得到的初值,經(jīng)過多次迭代得到最優(yōu)的匹配結(jié)果。配準(zhǔn)后的效果如圖3所示。
圖3 配準(zhǔn)后的點(diǎn)云效果Fig.3 Effect of point cloud after registration
點(diǎn)云數(shù)據(jù)與紋理影像的自動配準(zhǔn)主要通過地面激光掃描儀的反射強(qiáng)度圖像與紋理的匹配來完成。雖然地面激光掃描儀大多采用球面投影[8]方法獲取三維點(diǎn)云數(shù)據(jù),但是,直接利用球面投影方法生成強(qiáng)度圖像,會在之后的特征匹配中造成較大的形變,最終導(dǎo)致2種異源數(shù)據(jù)配準(zhǔn)失敗。而中心投影[9]方法和數(shù)碼相機(jī)的投影方法相同,減少了2種非同源數(shù)據(jù)間的差別,提高了配準(zhǔn)成功概率,因此,本文采用中心投影的方法生成強(qiáng)度圖像。
1.3.1 基于中心投影的強(qiáng)度圖像生成
為了實(shí)現(xiàn)3D點(diǎn)云的2D表示,采用中心投影的方式將每個(gè)激光掃描儀點(diǎn)的笛卡爾坐標(biāo)投影到虛擬圖像平面。虛擬攝像機(jī)的坐標(biāo)系定義如圖4所示。
圖4 虛擬攝像機(jī)的坐標(biāo)系定義Fig.4 Definition of coordinate system of virtual camera
3D相機(jī)的坐標(biāo)系由幀{i,j,k,O}定義,投影中心則依賴于激光掃描儀坐標(biāo)系{X,Y,Z,O}的原點(diǎn),虛擬圖像平面由向量i和k決定。通過具有最小和最大水平角度的激光掃描儀的點(diǎn)來計(jì)算攝像機(jī)坐標(biāo)系的Z軸(矢量k),使得它指向點(diǎn)云的水平中心。計(jì)算過程如式(1)所示:
(1)
在通常情況下,Y軸的方向被定義為攝像機(jī)坐標(biāo)系(矢量j)的向上方向,可以將近似向上方向設(shè)置為激光掃描儀坐標(biāo)系的Z軸,攝像機(jī)坐標(biāo)系的其余幀矢量如式(2)所示:
(2)
利用應(yīng)用矩陣V使點(diǎn)p=(X,Y,Z)T從激光掃描儀坐標(biāo)系變換到3D相機(jī)坐標(biāo)系,如式(3)所示:
(3)
(4)
(5)
通過對投影坐標(biāo)的最小值和最大值的計(jì)算得到圖像的大小,或者使用用戶自定義的像素大小Δpx計(jì)算圖像高度Ih和寬度Iw,結(jié)果如式(6)所示:
Iw=(x′max-x′min)/Δpx
Ih=(y′max-y′min)/Δpx
(6)
最后,計(jì)算配準(zhǔn)后點(diǎn)云數(shù)據(jù)左上角的點(diǎn)的投影坐標(biāo),如式(7)所示:
xp=(x′-x′min)/Δpx
yp=Ik-(y′-y′min)/Δpx
(7)
1.3.2 強(qiáng)度圖像處理
本文方法在生成強(qiáng)度圖像后,采用消隱算法解決同一束光線上存在2個(gè)或多個(gè)三維激光點(diǎn)投影在同一個(gè)圖像格網(wǎng)上的問題,即遍歷生成的強(qiáng)度圖像,距離掃描儀掃描中心偏近的原始激光點(diǎn)作為該圖像格網(wǎng)的投影點(diǎn),并且記錄每一個(gè)格網(wǎng)點(diǎn)對應(yīng)的三維激光點(diǎn)坐標(biāo)。另外,本文采用反權(quán)距離插值(Inverse Distance Weighted,IDW)[10]方法來解決生成的強(qiáng)度圖像中有像素值為0的問題。
在圖像配準(zhǔn)前,需要對紋理影像進(jìn)行畸變矯正處理[11-12]。畸變矯正處理本質(zhì)上是對一幅退化圖像進(jìn)行恢復(fù),包括空間坐標(biāo)變換、像素灰度級確定2個(gè)主要部分??臻g坐標(biāo)變換是使像素落在正確的位置,灰度級確定則是對紋理影像進(jìn)行視覺上的修正。在兩者的特征匹配過程中,為了降低錯誤匹配對對配準(zhǔn)結(jié)果的影響,本文對匹配結(jié)果進(jìn)行優(yōu)化與評估處理。
1.4.1 特征匹配
本文采用SIFT算法[13-14]實(shí)現(xiàn)強(qiáng)度圖像和紋理影像的匹配。首先,實(shí)現(xiàn)SIFT特征檢測要通過連續(xù)應(yīng)用高斯低通濾波器構(gòu)建圖像尺度空間金字塔,在被檢測的圖像中,金字塔局部極值被檢測為關(guān)鍵點(diǎn),使用泰勒展開來計(jì)算它們的準(zhǔn)確位置;隨后,分析所選關(guān)鍵點(diǎn)的2個(gè)穩(wěn)定性標(biāo)準(zhǔn),如果校正位置處的泰勒展開小于峰值閾值,則丟棄具有低對比度的關(guān)鍵點(diǎn),相反,則丟棄位于邊緣上的極值。最后,通過手動優(yōu)化這些閾值來檢索最佳候選對應(yīng)集。部分特征檢測結(jié)果如圖5所示。
圖5 強(qiáng)度圖像與紋理序列1的特征檢測效果Fig.5 Feature detection effect of intensity image and texture sequence 1
1.4.2 匹配優(yōu)化與評估
本文引入極線幾何[15-16]并采用RANSAC算法對SIFT提供的候選對應(yīng)點(diǎn)進(jìn)行評估與優(yōu)化。從不同攝像機(jī)和視角拍攝的相同場景的圖像與它們的極線幾何相關(guān),3×3的同質(zhì)矩陣F是2個(gè)圖像中對應(yīng)點(diǎn)之間映射的代數(shù)表示??紤]到一對同質(zhì)圖像的坐標(biāo)p1=(x1,y1,l)T∈I1和p2=(x2,y2,l)T∈I2,兩者都表示同質(zhì)世界坐標(biāo)下的點(diǎn)Q=(X,Y,Z,l)T的投影,如式(8)所示:
(x′1,y′1,w′1)T=P1Q,x1=x′1/w′1,y1=y′1/w′1
(x′2,y′2,w′2)T=P2Q,x2=x′2/w′2,y2=y′2/w′2
(8)
其中,Pi=Ki[Ri|ti],Pi是點(diǎn)pi的投影矩陣,Ki是相機(jī)的內(nèi)參,Ri、ti分別為點(diǎn)pi的旋轉(zhuǎn)、平移矩陣。在世界坐標(biāo)系中的攝像機(jī)位置為C1,t1=-R1C1將點(diǎn)從世界坐標(biāo)系變換到攝像機(jī)坐標(biāo)系,如果p1和p2確實(shí)顯示相同的場景點(diǎn)P,則p2位于表示p1的極線的同質(zhì)線I2上,如圖6所示,其中,I2由式(9)表示:
圖6 紋理影像、強(qiáng)度圖像的效果以及誤差值直方圖Fig.6 Effect of texture image and intensity image and error histogram
I2=C′×p′2
(9)
其中,p′2=P2P+p1,C′=P2C1∈I2,P+是P1的廣義逆矩陣。相反,如果p1和p2顯示的是不同的場景點(diǎn),式(10)則表示以|I2|為單位的p2與I2的距離,其中,基本矩陣F具有7個(gè)自由度,且det(F)=0。
(10)
圖6(a)、圖6(b)中的直線表示極線,白色粗正交線表示在假定的F下產(chǎn)生的誤差e56。
在RANSAC算法[17]中,將F作為模型參數(shù),目的是識別正確的匹配子集及其相關(guān)的F。RANSAC依次選擇7個(gè)匹配(共識集),并使用式(10)中的條件擬合模型矩陣F對其余部分進(jìn)行評估,RANSAC是一種迭代的概率優(yōu)化算法,該算法會在完成預(yù)定義的迭代次數(shù)或者模型很好地?cái)M合預(yù)定數(shù)量的匹配之后終止。誤差函數(shù)E(F)通過模型F來描述匹配對(p1,p2)的準(zhǔn)確率,如式(11)所示:
(11)
圖6(c)中的直方圖表示候選對應(yīng)集中的誤差值分布。
采用多張紋理影像的主要目的是使點(diǎn)云數(shù)據(jù)獲得完整的RGB信息,解決單張紋理影像不能滿足大場景點(diǎn)云數(shù)據(jù)對RGB信息的需求問題。然而,在紋理影像序列與強(qiáng)度圖像的配準(zhǔn)過程中存在紋理重疊問題,因此,本文采用融合算法[18]對紋理影像序列進(jìn)行預(yù)處理操作。采用SIFT算法對紋理序列進(jìn)行特征檢測,得到對應(yīng)的不變矩陣,利用加權(quán)融合方法得到加權(quán)系數(shù),再通過加權(quán)系數(shù)對待處理的紋理序列進(jìn)行融合預(yù)處理。本文的融合預(yù)處理并非文獻(xiàn)[18]中真正意義上實(shí)現(xiàn)2張紋理影像的拼接,而是極大地減少紋理影像序列之間的重疊,進(jìn)而解決在紋理影像序列與強(qiáng)度圖像配準(zhǔn)過程中存在的紋理重疊問題[19]。
將特征匹配得到的參數(shù)值代入共線方程[20]中,即將紋理影像序列的紋理信息賦給點(diǎn)云數(shù)據(jù),實(shí)現(xiàn)點(diǎn)云數(shù)據(jù)與紋理序列的配準(zhǔn)。共線方程如式(12)所示:
(12)
其中,x、y是已知的圖像坐標(biāo),X、Y、Z表示構(gòu)成對象的相應(yīng)的已知激光掃描儀坐標(biāo),rij是組成未知的3×3旋轉(zhuǎn)矩陣的元素,X0、Y0、Z0表示未知的相機(jī)位置,f表示主焦距。
本文利用VS2015開發(fā)平臺并結(jié)合PCL類庫、OPENCV類庫編程進(jìn)行實(shí)驗(yàn)。采用Trimble公司生產(chǎn)的TX6三維地面激光掃描儀獲取點(diǎn)云數(shù)據(jù),實(shí)驗(yàn)場景是中北大學(xué)教學(xué)樓主樓。實(shí)驗(yàn)總共采集到3幅局部點(diǎn)云,總計(jì)7 306 818個(gè)點(diǎn),局部點(diǎn)云數(shù)據(jù)效果如圖7所示,點(diǎn)云配準(zhǔn)結(jié)果見前文圖3。
圖7 3幅局部點(diǎn)云數(shù)據(jù)效果Fig.7 Effect of three local point clouds data
為了驗(yàn)證采用中心投影的方法生成的強(qiáng)度圖像與紋理影像匹配點(diǎn)對的準(zhǔn)確性與可靠性,本文還對利用球面投影生成的強(qiáng)度圖像和紋理影像的匹配進(jìn)行了實(shí)驗(yàn)。2種投影方法生成的強(qiáng)度圖像對比如圖8所示。
圖8 2種投影方法生成的強(qiáng)度圖像對比Fig.8 Comparison of intensity images generated by two projection methods
第1次實(shí)驗(yàn)將2種投影方法生成的強(qiáng)度圖像分別直接和紋理序列1進(jìn)行匹配,匹配結(jié)果如圖9所示。第2次實(shí)驗(yàn)將2種投影方法生成的強(qiáng)度圖像分別直接和紋理序列2進(jìn)行匹配,匹配結(jié)果如圖10所示。表1所示為2種投影方法特征匹配的結(jié)果對比,從表1可以看出,與球面投影方法相比,采用中心投影方法得到的強(qiáng)度圖像與紋理序列匹配的可靠性和穩(wěn)定性更高,中心投影方法在很大程度上減少了2種異源數(shù)據(jù)的差異性,提高了2種數(shù)據(jù)自動配準(zhǔn)的準(zhǔn)確率。
圖9 強(qiáng)度圖像和紋理序列1的匹配效果Fig.9 Matching effect of intensity image and texture sequence 1
圖10 強(qiáng)度圖像和紋理序列2的匹配效果Fig.10 Matching effect of intensity image and texture sequence 2
表1 2種投影方法的匹配結(jié)果對比Table 1 Comparison of matching results of two projection methods
球面投影生成的強(qiáng)度圖像與紋理影像匹配效果較差,將其得到的參數(shù)代入共線方程后得不到完整的帶RGB信息的點(diǎn)云數(shù)據(jù),而采用本文方法則可以獲得很好的配準(zhǔn)效果,如圖11所示。
圖11 2種方法的點(diǎn)云數(shù)據(jù)與紋理影像配準(zhǔn)效果Fig.11 Registration effect of point cloud data and texture image of two methods
如表2所示,將本文方法與文獻(xiàn)[4,20]方法的配準(zhǔn)結(jié)果進(jìn)行對比。從表2可以看出,本文方法縮短了計(jì)算時(shí)間,提高了算法的執(zhí)行效率,均方根誤差為3.4個(gè)像素,配準(zhǔn)精度得到提升。
表2 3種方法的配準(zhǔn)結(jié)果對比Table 2 Comparison of registration results of three methods
綜合表1、表2及圖11可以看出,在多幅點(diǎn)云數(shù)據(jù)與紋理序列間的配準(zhǔn)問題中,本文方法可以獲得較好的配準(zhǔn)結(jié)果。
本文提出一種點(diǎn)云數(shù)據(jù)與紋理序列的自動配準(zhǔn)方法。為解決ICP配準(zhǔn)方法容易陷入局部最優(yōu)的問題,結(jié)合NDT與ICP算法來配準(zhǔn)局部點(diǎn)云,利用SIFT算法對紋理影像和配準(zhǔn)后的點(diǎn)云進(jìn)行特征匹配,同時(shí)采用融合預(yù)處理方法解決紋理重疊問題。在此基礎(chǔ)上,通過共線方程實(shí)現(xiàn)多幅點(diǎn)云數(shù)據(jù)與紋理序列的自動配準(zhǔn)。實(shí)驗(yàn)結(jié)果驗(yàn)證了該方法的高效性。在點(diǎn)云數(shù)據(jù)轉(zhuǎn)換成強(qiáng)度圖像的過程中存在數(shù)據(jù)丟失的現(xiàn)象,對本文方法進(jìn)行改進(jìn)以解決該問題將是下一步的研究方向。