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