喬建委,王建軍,許文碩,盧云鵬,胡燕威,王志勇
(山東理工大學 機械工程學院,山東 淄博 255049)
傳統的測繪采用手工測量方式,需投入大量人力物力,獲得的測量結果誤差也較大,不能滿足現階段人們的測繪需求。隨著科技的不斷進步,衛星遙感技術和全球定位系統在測繪中得到了廣泛應用,實現了對各種數據信息的電子采集,測量精度也有了質的提高,但這些測繪技術獲取的數據單一,只能表達二維信息特征,不能表現出直觀的三維信息,極大影響了測繪技術的發展[1]。激光技術的進步,使激光雷達成為一種新的測繪設備,受到人們的廣泛關注。
VLP-16激光雷達是Velodyne公司研制的最小型三維激光雷達,保留了電機轉速可調節功能,其具有100 m的遠程測量距離,每秒高達30萬個點數據輸出,±15°的垂直視場,360°水平視場掃描。在實際掃描過程中,由于掃描視場的限制和掃描環境遮擋等因素,往往很難僅由一站掃描獲取所需的測量區域和建筑物的所有點云數據,一般需分多個站點進行掃描,再將掃描的多組三維點云數據進行拼接,進而得到完整的測量區域和建筑物的三維點云數據。
點云數據處理主要包括點云拼接、點云合并和點云降噪等。處理過程中,首先對各站點云進行拼接,站點間的拼接精度要達到0.05 m;其次是點云合并,相鄰兩站間有10%以上的重疊區,點云合并可以保證結構不變的情況下,有效地減少數據量;最后進行點云降噪,將與對象無關的點云進行刪減剔除,提高點云質量[2]。
三維點云拼接技術一般分兩步[3]:粗拼接和精準拼接。粗拼接大致將不同坐標系下點云對準到同一坐標下,常用的方法有轉臺法[4]、標簽法[5]和曲面特征法[6]。外業掃描得到的點云數據在導入軟件后,首先要進行數據拼接,即把多站掃描的點云數據轉化到同一坐標系中,采用公共重疊區域的點云拼接,形成一個整體。在三維點云數據的自動配準中,運用最為廣泛的是由Besl等提出的最近點迭代(ICP,Iterative Closest Point)算法[7]。但是ICP算法對2個點云的初值要求很高;否則,ICP的收斂方向是不確定的,增加了拼接的不可靠性。Masuda等[8]在點集中隨機采樣,用最小中值平方誤差作為度量準則,該方法在每一次迭代后都需要進行重新采樣。楊杰等[9]提取變化較大的點作為預參考點進行點云拼接,該方法只適用于角度差異較大模型。何文峰[10]提取重合區域中的平面特征,利用平面參數計算坐標系轉換參數,但是這種方法需要平面特征完全重合。本文在保證其中一個站點點云坐標不變的情況下,首先采用手動提取同名點進行點云粗拼接,在此基礎上再采用ICP算法進行點云精準拼接。此方法不需要在被測物體上附加任何標志物,在散亂點云特征較明顯的情況下,可以獲得良好的拼接效果。
本文以山東理工大學機械交通實驗樓天井及其周邊道路為研究對象,采用VLP-16激光雷達進行多站點三維掃描,并利用CloudCompare軟件進行多站點的激光點云拼接、點云合并、點云降噪,從而獲得完整的三維掃描點云。
點云拼接是點云數據處理過程中的關鍵一步,本質上需經過坐標平移和旋轉,把多個掃描站點云(xi,yi,zi)轉換統一到同一坐標系(xT,yT,zT)中[11],需要3個旋轉參數(α,β,γ)和 3 個平移參數(Δx,Δy,Δz)。以其中一個點云的坐標系為參考,根據兩個點云之間的最少3個同名點,通過ICP迭代算法,可以將另一個點云通過旋轉平移矩陣轉換到參考坐標系,從而實現兩個點云的坐標系統一和拼接。點云拼接的坐標轉換關系式為

(1)
式中,
R(α,β,γ)=

點云拼接方法的種類較多,根據拼接時采用的不同基元,可以分為特征點拼接、無特征拼接兩種[12]。其中,特征點拼接又分為靶球(靶標) 拼接、無目標的公共特征點拼接、混合拼接。無特征拼接常采用ICP迭代最近點算法,本文即采用該拼接方法。
很多研究人員設計了簡單可行的拼接方法作為ICP算法的初值,如通過在點云重疊區設置人工標志達到識別并提取同名點[13-14]。拾取同名點可采用 CloudCompare軟件的Registration 模塊進行,分別在兩個站點點云中選取至少3對同名點,通過換算點與點之間的相對位置關系,進行公共點匹配后完成兩個測站之間的點云粗拼接工作。這種拼接方法的優點是在兩個測站之間可以辨認的公共點均可作為點云拼接的連接點使用,不受標靶拼接方法的限制,在測站較少的情況下,點云拼接效率高,通過適當增加匹配的公共點個數,可提高兩測站拼接的精度[15]。其缺點是,在海量點云情況下對公共特征點的選取困難。
ICP算法是最小二乘法迭代優化的過程,以此來求解兩組點云數據最優拼接的剛性轉換。其思路為:根據某種幾何特性對數據進行匹配,并設這些匹配點為假想的對應點,然后根據這種對應關系求解運動參數;再利用這些運動參數對數據進行變換[6]。利用同一幾何特征,確定新的對應關系,重復上述過程進行迭代,使得數據中的重疊部分充分吻合。ICP方法中使用的幾何特性即點在空間中的距離[16]。具體的算法描述如下:
①在兩組點云P和P′中,將P作為目標點云,P′作為參考點云。將P的中心平移至與P′的中心重合,將平移向量記為t0。
②對點云P上的每一點,搜索在點云P′中的空間最近點,建立對應關系。定義誤差函數如式(2)所示,即找到使最近點之間的距離均方差最小的旋轉矩陣R。
(2)
③令Pn=Rn-1·Pn-1,(第n次迭代,n≥2),即將點云P按照式(2)中的最優解旋轉。分析兩片點云對應點之間的協方差矩陣,將協方差矩陣轉化為對角矩陣時所產生的初等變換矩陣,即為所求的旋轉矩陣R,可以使用奇異值分解法進行求解。
④重復迭代②③,直至誤差E(R)小于設定值時迭代終止。此時的P與點云P′位于同一坐標系,它們的全集即為拼接結果。坐標變換參數R,t的計算如下:
(3)
經典ICP算法可以達到很高的拼接精度,但是它每一次迭代都需要蠻力地在全體點云中搜索最近點(步驟②),這種搜索過程會耗費大量的時間[17]。
本實驗以山東理工大學機械交通實驗樓的天井及其周邊道路為研究對象,采用Velodyne激光雷達VLP-16進行三維掃描,首先掃描天井區域,然后對天井外側道路進行掃描,兩組點云經轉換并保存數據為txt格式。
CloudCompare是一款基于GPL(General Public License)開源協議的3D點云處理軟件,將不同站點采集的兩組點云數據導入其中,結果如圖1所示。圖1中,天井點云為綠色,外側道路點云為黃色。

圖1 激光雷達掃描的兩組點云Fig.1 Two sets of point clouds scanned by Lidar
被測區域的衛星俯視圖如圖2所示。圖2中,綠色框內是天井區域,黃色是外部道路區域,紅色部分是公共走廊區域。由圖2可以看出,圖1中所獲得的兩個點云都掃到了紅色的公共區域。

圖2 被測區域的衛星俯視圖Fig.2 Satellite map of down-view for the survey area
激光雷達在掃描物體的過程中是360°全方位、無死角的掃描,因此在掃描距離內,所有的數據都會被記錄并保存下來,這就為之后的數據處理增加了難度,在進行點云數據拼接之前要對其做前期的去噪處理,把與所需建筑物測繪無關的點云去除掉。為便于拼接,減小后續拼接算法運算量,只留下兩站點點云公共部分(天井和外側道路連接之處)進行拼接,結果如圖3所示。

圖3 公共部分點云(剪切以后)Fig.3 Point clouds(after shearing) of common part
由圖3可以看出,降噪和去除多余雜點以后,可以直觀地看到公共部分點云分布情況,方便之后的點云拼接。
對點云進行粗拼接時,采用拾取同名點的方法,手動選取兩組點云中可以辨識的公共特征點,在天井點云中選擇B0、B1、B2為參考點,在外側道路點云中選擇A0、A1、A2為其同名點,至少選取3對同名點后再進行拼接。同名點的選取直接影響配準結果,因此效果較差時需要刪除誤差較大的點。拼接之后會生成一個4×4的矩陣,形式如下:

選擇的參考點、對齊點坐標見表1。
選擇參考點和對齊點之后進行粗拼接。均方誤差(RMS)是一種常用的評價拼接精度的方式,粗拼接之后生成的最終RMS為0.046 205,坐標旋轉平移矩陣參數為
表1 參考點、對齊點坐標
Tab.1 Reference points and alignment points coordinates

選取點X Y Z對齊點A0-23.029-10.898 0005.066 670A1-20.352 -8.178 4447.442 211A2-21.710-10.695 000-0.179 753參考點B0-23.038 -10.421 0005.352 295B1-20.627-7.884 6687.343 203B1-22.042-10.009 000-0.180 344

把點云粗拼接得到的結果作為ICP算法的初值進行點云的精準拼接,在兩組點云中選取7對公共點,仍以天井點云為基準,計算外側道路點到對應參考點的距離,精準拼接生成的最終RMS為0.006 025,坐標旋轉平移矩陣參數為

粗拼接和精準拼接之后對齊點到參考點距離變化情況見表2。經過粗、精拼接之后的點云如圖4所示。
表2 粗拼接與精準拼接的距離變化比較
Tab.2 Comparison of distance change between rough and fine mosaics

點號粗拼接距離變化/m精準拼接距離變化/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 拼接之后的點云Fig.4 Point clouds after splicing
計算可知,選取的控制點的拼接精度均小于10 cm,拼接誤差較低,點云拼接效果較優。精準拼接之后的距離顯示,拼接之后的精度達到了4 mm,較粗拼接的精度更優。通過表2平移參數的對比發現,7個點號相較于基準點的距離,精準拼接明顯比粗拼接的距離要小,2號點和7號點的ΔZ達到了3 mm和1 mm,可以看出拼接精度進一步提高。
采用激光雷達在兩個站點進行了激光掃描,獲得了兩組激光雷達點云。采用CloudCompare軟件進行了手動拾取同名點的點云粗拼接,并進一步采用ICP算法進行了點云的精準拼接。通過手動拾取同名點進行粗拼接的方法,可以完整進行點云的拼接工作,在同名點明顯的情況下,效果較好,然而操作過程繁瑣,而且手動選擇同名點,難免會產生誤差,同時隨著誤差的積累,會影響最終拼接的效果。但是在粗拼接的基礎上,利用ICP算法可以使點云拼接的精度大大提高,拼接效果更好。