喬建委,王建軍,許文碩,盧云鵬,胡燕威,王志勇
(山東理工大學(xué) 機(jī)械工程學(xué)院,山東 淄博 255049)
傳統(tǒng)的測繪采用手工測量方式,需投入大量人力物力,獲得的測量結(jié)果誤差也較大,不能滿足現(xiàn)階段人們的測繪需求。隨著科技的不斷進(jìn)步,衛(wèi)星遙感技術(shù)和全球定位系統(tǒng)在測繪中得到了廣泛應(yīng)用,實(shí)現(xiàn)了對各種數(shù)據(jù)信息的電子采集,測量精度也有了質(zhì)的提高,但這些測繪技術(shù)獲取的數(shù)據(jù)單一,只能表達(dá)二維信息特征,不能表現(xiàn)出直觀的三維信息,極大影響了測繪技術(shù)的發(fā)展[1]。激光技術(shù)的進(jìn)步,使激光雷達(dá)成為一種新的測繪設(shè)備,受到人們的廣泛關(guān)注。
VLP-16激光雷達(dá)是Velodyne公司研制的最小型三維激光雷達(dá),保留了電機(jī)轉(zhuǎn)速可調(diào)節(jié)功能,其具有100 m的遠(yuǎn)程測量距離,每秒高達(dá)30萬個點(diǎn)數(shù)據(jù)輸出,±15°的垂直視場,360°水平視場掃描。在實(shí)際掃描過程中,由于掃描視場的限制和掃描環(huán)境遮擋等因素,往往很難僅由一站掃描獲取所需的測量區(qū)域和建筑物的所有點(diǎn)云數(shù)據(jù),一般需分多個站點(diǎn)進(jìn)行掃描,再將掃描的多組三維點(diǎn)云數(shù)據(jù)進(jìn)行拼接,進(jìn)而得到完整的測量區(qū)域和建筑物的三維點(diǎn)云數(shù)據(jù)。
點(diǎn)云數(shù)據(jù)處理主要包括點(diǎn)云拼接、點(diǎn)云合并和點(diǎn)云降噪等。處理過程中,首先對各站點(diǎn)云進(jìn)行拼接,站點(diǎn)間的拼接精度要達(dá)到0.05 m;其次是點(diǎn)云合并,相鄰兩站間有10%以上的重疊區(qū),點(diǎn)云合并可以保證結(jié)構(gòu)不變的情況下,有效地減少數(shù)據(jù)量;最后進(jìn)行點(diǎn)云降噪,將與對象無關(guān)的點(diǎn)云進(jìn)行刪減剔除,提高點(diǎn)云質(zhì)量[2]。
三維點(diǎn)云拼接技術(shù)一般分兩步[3]:粗拼接和精準(zhǔn)拼接。粗拼接大致將不同坐標(biāo)系下點(diǎn)云對準(zhǔn)到同一坐標(biāo)下,常用的方法有轉(zhuǎn)臺法[4]、標(biāo)簽法[5]和曲面特征法[6]。外業(yè)掃描得到的點(diǎn)云數(shù)據(jù)在導(dǎo)入軟件后,首先要進(jìn)行數(shù)據(jù)拼接,即把多站掃描的點(diǎn)云數(shù)據(jù)轉(zhuǎn)化到同一坐標(biāo)系中,采用公共重疊區(qū)域的點(diǎn)云拼接,形成一個整體。在三維點(diǎn)云數(shù)據(jù)的自動配準(zhǔn)中,運(yùn)用最為廣泛的是由Besl等提出的最近點(diǎn)迭代(ICP,Iterative Closest Point)算法[7]。但是ICP算法對2個點(diǎn)云的初值要求很高;否則,ICP的收斂方向是不確定的,增加了拼接的不可靠性。Masuda等[8]在點(diǎn)集中隨機(jī)采樣,用最小中值平方誤差作為度量準(zhǔn)則,該方法在每一次迭代后都需要進(jìn)行重新采樣。楊杰等[9]提取變化較大的點(diǎn)作為預(yù)參考點(diǎn)進(jìn)行點(diǎn)云拼接,該方法只適用于角度差異較大模型。何文峰[10]提取重合區(qū)域中的平面特征,利用平面參數(shù)計(jì)算坐標(biāo)系轉(zhuǎn)換參數(shù),但是這種方法需要平面特征完全重合。本文在保證其中一個站點(diǎn)點(diǎn)云坐標(biāo)不變的情況下,首先采用手動提取同名點(diǎn)進(jìn)行點(diǎn)云粗拼接,在此基礎(chǔ)上再采用ICP算法進(jìn)行點(diǎn)云精準(zhǔn)拼接。此方法不需要在被測物體上附加任何標(biāo)志物,在散亂點(diǎn)云特征較明顯的情況下,可以獲得良好的拼接效果。
本文以山東理工大學(xué)機(jī)械交通實(shí)驗(yàn)樓天井及其周邊道路為研究對象,采用VLP-16激光雷達(dá)進(jìn)行多站點(diǎn)三維掃描,并利用CloudCompare軟件進(jìn)行多站點(diǎn)的激光點(diǎn)云拼接、點(diǎn)云合并、點(diǎn)云降噪,從而獲得完整的三維掃描點(diǎn)云。
點(diǎn)云拼接是點(diǎn)云數(shù)據(jù)處理過程中的關(guān)鍵一步,本質(zhì)上需經(jīng)過坐標(biāo)平移和旋轉(zhuǎn),把多個掃描站點(diǎn)云(xi,yi,zi)轉(zhuǎn)換統(tǒng)一到同一坐標(biāo)系(xT,yT,zT)中[11],需要3個旋轉(zhuǎn)參數(shù)(α,β,γ)和 3 個平移參數(shù)(Δx,Δy,Δz)。以其中一個點(diǎn)云的坐標(biāo)系為參考,根據(jù)兩個點(diǎn)云之間的最少3個同名點(diǎn),通過ICP迭代算法,可以將另一個點(diǎn)云通過旋轉(zhuǎn)平移矩陣轉(zhuǎn)換到參考坐標(biāo)系,從而實(shí)現(xiàn)兩個點(diǎn)云的坐標(biāo)系統(tǒng)一和拼接。點(diǎn)云拼接的坐標(biāo)轉(zhuǎn)換關(guān)系式為
(1)
式中,
R(α,β,γ)=
點(diǎn)云拼接方法的種類較多,根據(jù)拼接時采用的不同基元,可以分為特征點(diǎn)拼接、無特征拼接兩種[12]。其中,特征點(diǎn)拼接又分為靶球(靶標(biāo)) 拼接、無目標(biāo)的公共特征點(diǎn)拼接、混合拼接。無特征拼接常采用ICP迭代最近點(diǎn)算法,本文即采用該拼接方法。
很多研究人員設(shè)計(jì)了簡單可行的拼接方法作為ICP算法的初值,如通過在點(diǎn)云重疊區(qū)設(shè)置人工標(biāo)志達(dá)到識別并提取同名點(diǎn)[13-14]。拾取同名點(diǎn)可采用 CloudCompare軟件的Registration 模塊進(jìn)行,分別在兩個站點(diǎn)點(diǎn)云中選取至少3對同名點(diǎn),通過換算點(diǎn)與點(diǎn)之間的相對位置關(guān)系,進(jìn)行公共點(diǎn)匹配后完成兩個測站之間的點(diǎn)云粗拼接工作。這種拼接方法的優(yōu)點(diǎn)是在兩個測站之間可以辨認(rèn)的公共點(diǎn)均可作為點(diǎn)云拼接的連接點(diǎn)使用,不受標(biāo)靶拼接方法的限制,在測站較少的情況下,點(diǎn)云拼接效率高,通過適當(dāng)增加匹配的公共點(diǎn)個數(shù),可提高兩測站拼接的精度[15]。其缺點(diǎn)是,在海量點(diǎn)云情況下對公共特征點(diǎn)的選取困難。
ICP算法是最小二乘法迭代優(yōu)化的過程,以此來求解兩組點(diǎn)云數(shù)據(jù)最優(yōu)拼接的剛性轉(zhuǎn)換。其思路為:根據(jù)某種幾何特性對數(shù)據(jù)進(jìn)行匹配,并設(shè)這些匹配點(diǎn)為假想的對應(yīng)點(diǎn),然后根據(jù)這種對應(yīng)關(guān)系求解運(yùn)動參數(shù);再利用這些運(yùn)動參數(shù)對數(shù)據(jù)進(jìn)行變換[6]。利用同一幾何特征,確定新的對應(yīng)關(guān)系,重復(fù)上述過程進(jìn)行迭代,使得數(shù)據(jù)中的重疊部分充分吻合。ICP方法中使用的幾何特性即點(diǎn)在空間中的距離[16]。具體的算法描述如下:
①在兩組點(diǎn)云P和P′中,將P作為目標(biāo)點(diǎn)云,P′作為參考點(diǎn)云。將P的中心平移至與P′的中心重合,將平移向量記為t0。
②對點(diǎn)云P上的每一點(diǎn),搜索在點(diǎn)云P′中的空間最近點(diǎn),建立對應(yīng)關(guān)系。定義誤差函數(shù)如式(2)所示,即找到使最近點(diǎn)之間的距離均方差最小的旋轉(zhuǎn)矩陣R。
(2)
③令Pn=Rn-1·Pn-1,(第n次迭代,n≥2),即將點(diǎn)云P按照式(2)中的最優(yōu)解旋轉(zhuǎn)。分析兩片點(diǎn)云對應(yīng)點(diǎn)之間的協(xié)方差矩陣,將協(xié)方差矩陣轉(zhuǎn)化為對角矩陣時所產(chǎn)生的初等變換矩陣,即為所求的旋轉(zhuǎn)矩陣R,可以使用奇異值分解法進(jìn)行求解。
④重復(fù)迭代②③,直至誤差E(R)小于設(shè)定值時迭代終止。此時的P與點(diǎn)云P′位于同一坐標(biāo)系,它們的全集即為拼接結(jié)果。坐標(biāo)變換參數(shù)R,t的計(jì)算如下:
(3)
經(jīng)典ICP算法可以達(dá)到很高的拼接精度,但是它每一次迭代都需要蠻力地在全體點(diǎn)云中搜索最近點(diǎn)(步驟②),這種搜索過程會耗費(fèi)大量的時間[17]。
本實(shí)驗(yàn)以山東理工大學(xué)機(jī)械交通實(shí)驗(yàn)樓的天井及其周邊道路為研究對象,采用Velodyne激光雷達(dá)VLP-16進(jìn)行三維掃描,首先掃描天井區(qū)域,然后對天井外側(cè)道路進(jìn)行掃描,兩組點(diǎn)云經(jīng)轉(zhuǎn)換并保存數(shù)據(jù)為txt格式。
CloudCompare是一款基于GPL(General Public License)開源協(xié)議的3D點(diǎn)云處理軟件,將不同站點(diǎn)采集的兩組點(diǎn)云數(shù)據(jù)導(dǎo)入其中,結(jié)果如圖1所示。圖1中,天井點(diǎn)云為綠色,外側(cè)道路點(diǎn)云為黃色。
圖1 激光雷達(dá)掃描的兩組點(diǎn)云Fig.1 Two sets of point clouds scanned by Lidar
被測區(qū)域的衛(wèi)星俯視圖如圖2所示。圖2中,綠色框內(nèi)是天井區(qū)域,黃色是外部道路區(qū)域,紅色部分是公共走廊區(qū)域。由圖2可以看出,圖1中所獲得的兩個點(diǎn)云都掃到了紅色的公共區(qū)域。
圖2 被測區(qū)域的衛(wèi)星俯視圖Fig.2 Satellite map of down-view for the survey area
激光雷達(dá)在掃描物體的過程中是360°全方位、無死角的掃描,因此在掃描距離內(nèi),所有的數(shù)據(jù)都會被記錄并保存下來,這就為之后的數(shù)據(jù)處理增加了難度,在進(jìn)行點(diǎn)云數(shù)據(jù)拼接之前要對其做前期的去噪處理,把與所需建筑物測繪無關(guān)的點(diǎn)云去除掉。為便于拼接,減小后續(xù)拼接算法運(yùn)算量,只留下兩站點(diǎn)點(diǎn)云公共部分(天井和外側(cè)道路連接之處)進(jìn)行拼接,結(jié)果如圖3所示。
圖3 公共部分點(diǎn)云(剪切以后)Fig.3 Point clouds(after shearing) of common part
由圖3可以看出,降噪和去除多余雜點(diǎn)以后,可以直觀地看到公共部分點(diǎn)云分布情況,方便之后的點(diǎn)云拼接。
對點(diǎn)云進(jìn)行粗拼接時,采用拾取同名點(diǎn)的方法,手動選取兩組點(diǎn)云中可以辨識的公共特征點(diǎn),在天井點(diǎn)云中選擇B0、B1、B2為參考點(diǎn),在外側(cè)道路點(diǎn)云中選擇A0、A1、A2為其同名點(diǎn),至少選取3對同名點(diǎn)后再進(jìn)行拼接。同名點(diǎn)的選取直接影響配準(zhǔn)結(jié)果,因此效果較差時需要刪除誤差較大的點(diǎn)。拼接之后會生成一個4×4的矩陣,形式如下:
選擇的參考點(diǎn)、對齊點(diǎn)坐標(biāo)見表1。
選擇參考點(diǎn)和對齊點(diǎn)之后進(jìn)行粗拼接。均方誤差(RMS)是一種常用的評價拼接精度的方式,粗拼接之后生成的最終RMS為0.046 205,坐標(biāo)旋轉(zhuǎn)平移矩陣參數(shù)為
表1 參考點(diǎn)、對齊點(diǎn)坐標(biāo)
Tab.1 Reference points and alignment points coordinates
選取點(diǎn)X Y Z對齊點(diǎn)A0-23.029-10.898 0005.066 670A1-20.352 -8.178 4447.442 211A2-21.710-10.695 000-0.179 753參考點(diǎn)B0-23.038 -10.421 0005.352 295B1-20.627-7.884 6687.343 203B1-22.042-10.009 000-0.180 344
把點(diǎn)云粗拼接得到的結(jié)果作為ICP算法的初值進(jìn)行點(diǎn)云的精準(zhǔn)拼接,在兩組點(diǎn)云中選取7對公共點(diǎn),仍以天井點(diǎn)云為基準(zhǔn),計(jì)算外側(cè)道路點(diǎn)到對應(yīng)參考點(diǎn)的距離,精準(zhǔn)拼接生成的最終RMS為0.006 025,坐標(biāo)旋轉(zhuǎn)平移矩陣參數(shù)為
粗拼接和精準(zhǔn)拼接之后對齊點(diǎn)到參考點(diǎn)距離變化情況見表2。經(jīng)過粗、精拼接之后的點(diǎn)云如圖4所示。
表2 粗拼接與精準(zhǔn)拼接的距離變化比較
Tab.2 Comparison of distance change between rough and fine mosaics
點(diǎn)號粗拼接距離變化/m精準(zhǔn)拼接距離變化/mΔXΔYΔZΔXΔYΔZ1-0.026 5070.048 6190.021 1400.016 4600.008 3100.018 34620.017 9320.046 2380.023 4500.029 4060.013 4600.003 49430.095 4250.013 1200.048 4560.063 5070.035 3860.024 88840.093 2620.003 8320.054 7760.062 9960.087 2330.023 15250.042 1380.055 6720.007 3560.029 3660.068 9960.038 42260.032 9490.077 1500.027 3000.079 3210.011 7920.015 27670.054 912-0.069 553-0.008 4740.053 5330.015 0960.001 072
圖4 拼接之后的點(diǎn)云Fig.4 Point clouds after splicing
計(jì)算可知,選取的控制點(diǎn)的拼接精度均小于10 cm,拼接誤差較低,點(diǎn)云拼接效果較優(yōu)。精準(zhǔn)拼接之后的距離顯示,拼接之后的精度達(dá)到了4 mm,較粗拼接的精度更優(yōu)。通過表2平移參數(shù)的對比發(fā)現(xiàn),7個點(diǎn)號相較于基準(zhǔn)點(diǎn)的距離,精準(zhǔn)拼接明顯比粗拼接的距離要小,2號點(diǎn)和7號點(diǎn)的ΔZ達(dá)到了3 mm和1 mm,可以看出拼接精度進(jìn)一步提高。
采用激光雷達(dá)在兩個站點(diǎn)進(jìn)行了激光掃描,獲得了兩組激光雷達(dá)點(diǎn)云。采用CloudCompare軟件進(jìn)行了手動拾取同名點(diǎn)的點(diǎn)云粗拼接,并進(jìn)一步采用ICP算法進(jìn)行了點(diǎn)云的精準(zhǔn)拼接。通過手動拾取同名點(diǎn)進(jìn)行粗拼接的方法,可以完整進(jìn)行點(diǎn)云的拼接工作,在同名點(diǎn)明顯的情況下,效果較好,然而操作過程繁瑣,而且手動選擇同名點(diǎn),難免會產(chǎn)生誤差,同時隨著誤差的積累,會影響最終拼接的效果。但是在粗拼接的基礎(chǔ)上,利用ICP算法可以使點(diǎn)云拼接的精度大大提高,拼接效果更好。