岳坤明,周大偉
(200093 上海市 上海理工大學(xué) 機(jī)械工程學(xué)院)
近年來,隨著激光雷達(dá)探測技術(shù)的不斷發(fā)展,其在工程測量領(lǐng)域得到了更為廣泛的應(yīng)用,基于激光雷達(dá)探測技術(shù)高效率、高精準(zhǔn)度、遠(yuǎn)距離、大范圍以及強(qiáng)抗干擾性的獨特優(yōu)勢[1],在電力線巡檢、文物古跡保護(hù)、地形測量[2]、礦區(qū)勘探[3]、無人駕駛、逆向工程等多領(lǐng)域發(fā)揮著重要作用。
目前在利用激光雷達(dá)探測技術(shù)測體積的研究方面,孔德明等[4]利用激光掃描儀對列車車廂載貨體進(jìn)行測量,通過滿載-空載車廂點云獲得載貨點云,進(jìn)而通過構(gòu)建Delaunay 三角網(wǎng)利用投影法[5]計算運載煤堆的體積;朱慶等[6]通過Lidar 點云對船舶運載砂石體積的測量,通過改進(jìn)點云粗配準(zhǔn)方法,并通過構(gòu)建高程數(shù)字模型(DEM)[7],利用滿載-空載高程差對船載砂石體積進(jìn)行測算;胡燕威等[8]通過激光雷達(dá)對教室體積的測量,主要通過隱式曲面重建算法構(gòu)建三維點云的mesh 網(wǎng)格模型,利用網(wǎng)格模型測算體積。
利用激光雷達(dá)對貨車載貨體積進(jìn)行測算,由于掃描場景較為復(fù)雜,面臨以下問題,(1)如何架設(shè)激光雷達(dá)快速獲取整車的點云數(shù)據(jù);(2)激光掃描整車及地面的大面積點云,如何快速地對車廂內(nèi)貨物的點云進(jìn)行自動提?。唬?)如何快速對車廂點云進(jìn)行自動矯正;(4)如何對體積計算進(jìn)行優(yōu)化,提高計算結(jié)果的精準(zhǔn)度。通過分析并解決以上問題,旨在提高對貨車載貨體積的自動化、精準(zhǔn)化測量。
在研究貨車車廂貨物體積測算方案中,選用高精度的三維激光雷達(dá)作為測量原件。在進(jìn)行測量時,當(dāng)發(fā)射的激光束照射到被檢測物表面,通過激光接收系統(tǒng)進(jìn)行接收,激光內(nèi)部的計時電路計算發(fā)射激光以及接收激光的時間差,通過式(1)計算得到激光雷達(dá)與被測物之間的距離 。
每個激光雷達(dá)都有一個自身的坐標(biāo)系,接收反射回來的激光束包含檢測物在當(dāng)前坐標(biāo)系的方位信息,通過距離以及方位信息得到被檢測物的位置坐標(biāo)。激光雷達(dá)探測原理如圖1 所示。
圖1 激光探測技術(shù)原理圖Fig.1 Schematic diagram of laser detection technology
通過分析激光探測的原理,進(jìn)而根據(jù)式(2)輸出被檢測物在激光雷達(dá)坐標(biāo)系的三維點云數(shù)據(jù)。
式中:α——激光在XY 平面投影之間的夾角;β——為XY 面投影邊與Y 軸之間夾角。
基于三維點云數(shù)據(jù)求不規(guī)則物理模型體積的計算方法主要分為4 種:(1)凸包法[9]:主要適用于凸包模型,采用正投影法求取體積,對于非凸包模型計算體積誤差較大;(2)切片法[10]:主要將物理模型沿某一坐標(biāo)系進(jìn)行切片,計算每一片的面積,通過積分求取模型的體積,計算的精度與切片的厚薄密切相關(guān);(3)模型重建法:通過使用三角片面的方法構(gòu)建物理模型,計算的精度受點云密度、構(gòu)建的三角面片數(shù)量以及點精度影響較大,容易產(chǎn)生孔洞;(4)投影法:通過對點云進(jìn)行三角剖分,根據(jù)投影點和對應(yīng)點之間構(gòu)建五面體,累加五面體的體積即為模型的體積,體積計算精度與三角剖分質(zhì)量密切相關(guān)。
采用第4 種投影法對貨車貨物進(jìn)行體積計算,首先利用目標(biāo)區(qū)域的自動提取獲得貨物點云,進(jìn)而對貨物點云進(jìn)行構(gòu)建Delaunay 三角網(wǎng),然后將目標(biāo)區(qū)域處的三角網(wǎng)向車廂底部進(jìn)行投影,貨物的體積由大量投影得到的五面體組成,投影得到的集合體如圖2 所示。
圖2 投影集合體示意圖Fig.2 Schematic diagram of projection assembly
本文采用的是Livox Mid-70 激光探測傳感器,該傳感器是以高性價比、安全可靠、寬視場、小盲區(qū)的獨特優(yōu)勢,被廣泛應(yīng)用于機(jī)器人、無人駕駛等眾多領(lǐng)域。該款激光探測傳感器最小測量距離為0.05 m,最大為260 m,詳細(xì)參數(shù)如表1 所示。
表1 Livox Mid-70 詳細(xì)參數(shù)表Tab.1 Detailed parameters of Livox Mid-70
通過架設(shè)6 臺激光探測傳感器進(jìn)行多站點的數(shù)據(jù)掃描,以獲得全車的點云數(shù)據(jù),因此要求對激光的位置以及傾角進(jìn)行合理布置。布置激光的原則如下:(1)激光安裝在視野開闊的位置,減少視野中其他物體的干擾。(2)根據(jù)車輛的大小范圍確定激光設(shè)置的方位,確??梢詫Χ喾N尺寸的車輛進(jìn)行掃描。(3)激光安裝在穩(wěn)定的桁架上,保證儀器的安全以及數(shù)據(jù)采集的穩(wěn)定性。
由于架設(shè)場地的限制,安裝激光雷達(dá)支架的長為18 m,寬為5.2 m,高為5.8 m,livox Mid-70的視場范圍是70.4°的圓錐區(qū)域,利用MATLAB 對安裝的傾角以及方位進(jìn)行模擬仿真,以確保對長達(dá)16 m 的掛車也可以進(jìn)行全車的點云采集。激光雷達(dá)安裝仿真模擬示意圖如圖3 所示。
圖3 多站式激光雷達(dá)布設(shè)圖Fig.3 Layout of multi-station lidar
通過激光雷達(dá)掃描獲取到全車的點云數(shù)據(jù),獲取到的點云數(shù)據(jù)較為密集,并且存在噪點及離散點等缺陷,嚴(yán)重影響體積計算的準(zhǔn)確度,因此需對獲取的點云進(jìn)行一系列預(yù)處理,提高點云后續(xù)處理的效率,同時減小體積計算誤差。
通過激光雷達(dá)的多站點掃描獲取全車點云數(shù)據(jù),需對各站點的點云進(jìn)行配準(zhǔn),各站點的數(shù)據(jù)通過坐標(biāo)系的轉(zhuǎn)換到單一坐標(biāo)系下,方便對點云進(jìn)行后續(xù)的處理。坐標(biāo)系通過旋轉(zhuǎn)平移矩陣進(jìn)行空間變換,旋轉(zhuǎn)平移矩陣由3×3 的旋轉(zhuǎn)矩陣以及3×1 的平移矩陣組成,坐標(biāo)系轉(zhuǎn)換示意圖如圖4 所示。
圖4 激光雷達(dá)實物及坐標(biāo)系轉(zhuǎn)換示意圖Fig.4 Schematic diagram of physical object and coordinate system conversion of lidar
將激光雷達(dá)自身的坐標(biāo)系O-XYZ 進(jìn)行空間坐標(biāo)系變換,變換之后的坐標(biāo)系為O-XYZ 的水平坐標(biāo)系。激光安裝的角度位置已確定激光自身坐標(biāo)系,根據(jù)激光自身坐標(biāo)系以及目標(biāo)坐標(biāo)系,可以獲得旋轉(zhuǎn)平移矩陣,用作精配準(zhǔn)的輸入。
通過激光的安裝位置可以確定旋轉(zhuǎn)平移矩陣,但是由于人工安裝時有較小的安裝誤差,在進(jìn)行點云拼接時出現(xiàn)點云團(tuán)疊加或間隙的現(xiàn)象,現(xiàn)利用ICP 算法對點云的坐標(biāo)系轉(zhuǎn)換進(jìn)行修正,確保多站掃描的點云實現(xiàn)精確銜接,提高體積計算的準(zhǔn)確性。ICP 算法的核心思想為最近鄰迭代算法,算法的主要步驟如下:
(1)確定目標(biāo)函數(shù)。對于兩個點云中的Np對對應(yīng)點,求取對應(yīng)點之間的歐氏距離的最小平方和,即求取的最小值。
(2)尋找對應(yīng)點。通過設(shè)定距離閾值,由安裝時獲得的旋轉(zhuǎn)平移矩陣的初值去計算2 個點云之間存在的距離,若計算的距離小于設(shè)定的距離閾值,則兩者為對應(yīng)點對。
(3)對旋轉(zhuǎn)平移矩陣進(jìn)行優(yōu)化。通過最小二乘法求解最優(yōu)的旋轉(zhuǎn)平移矩陣。優(yōu)化得到新的R、T,最鄰近點也會發(fā)生改變,這時利用迭代的思想返回第2 步進(jìn)行計算。當(dāng)R、T 或目標(biāo)函數(shù)的變化量小于設(shè)定的閾值時,則將最終的旋轉(zhuǎn)平移矩陣進(jìn)行輸出,終止迭代。
坐標(biāo)系的空間轉(zhuǎn)換主要是對激光自身坐標(biāo)系測到的點云進(jìn)行旋轉(zhuǎn)平移,通過精配準(zhǔn)迭代出的旋轉(zhuǎn)矩陣R 與平移矩陣T,利用點云坐標(biāo)變換公式(3)求得點云變換后的新坐標(biāo)。
式中:Pt,Ps——一對對應(yīng)點;R——3×3 的矩陣;T——3×1 的平移向量。
采集過程中由于自身硬件以及外界環(huán)境影響,采集的點云包含噪點以及離散點,在這里統(tǒng)一稱為冗余點,冗余點對點云計算體積產(chǎn)生很大影響,因此要去除冗余點。通過采用統(tǒng)計濾波,對冗余點進(jìn)行過濾。
由于激光雷達(dá)采集到的點云的密度較大,對點云做處理時占用內(nèi)存較大,處理效率低,因此采用體素柵格降采樣的方法進(jìn)行精簡數(shù)據(jù),在減少數(shù)據(jù)量的同時,盡可能保留原數(shù)據(jù)的明顯特征。體素濾波器是通過對輸入的點云創(chuàng)建三維體素柵格(微小的空間三維立方體),在微小的體素柵格中通過求取每個體素中所有點的重心,以該重心的坐標(biāo)代表體素內(nèi)的其他點,以此來達(dá)到數(shù)據(jù)精簡的目的。
在對貨車載貨體積的測量中,主要根據(jù)車廂內(nèi)貨物的點云進(jìn)行體積測量,由于多站點的激光掃描獲取的是全車的點云數(shù)據(jù),因此要設(shè)計出針對于貨車車廂內(nèi)貨物的自動提取算法,以此提高體積測算效率。對目標(biāo)區(qū)域的自動提取主要包括以下步驟:
(1)對大面積點云進(jìn)行分割,獲取整車的點云。在建立的坐標(biāo)系下,通過過濾獲得整車的點云,整車點云可視化如圖5(a)所示。
(2)去除車頭的點云,采用歐式聚類算法的點云分割,首先從車的高度1.5 m 高度處進(jìn)行分割,分割之后形成兩部分不連續(xù)的點云,根據(jù)點云之間的歐式距離確定點云的分類。設(shè)定的閾值小于車頭與車廂之間點云的歐式距離,利用歐式聚類算法分類,占比大的點云類別是車廂點云,則另一部分就是車頭點云,將車頭點云過濾,如圖5(b)所示。
圖5 點云預(yù)處理后可視化Fig.5 Visualization after point cloud preprocessing
(3)車廂點云坐標(biāo)矯正,由于車輛點云采集時停放位置存在角度差別,為方便下一步對點云進(jìn)行車廂的分割,需要進(jìn)行車廂點云坐標(biāo)矯正。利用主成分分析法(PCA),對點云進(jìn)行主方向的確定,根據(jù)主方向與設(shè)定的坐標(biāo)軸之間的夾角,對車廂點云進(jìn)行旋轉(zhuǎn),得到矯正坐標(biāo)后的車廂點云可視化,如圖5(c)所示。
(4)獲取車廂內(nèi)貨物點云,校正后的車廂點云對車廂進(jìn)行過濾,通過遍歷貨物點云,找到貨物點云的邊界,將邊界過濾,最終得到貨物點云可視化,如圖5(d)所示。
點云的前期預(yù)處理階段可以獲取到車廂內(nèi)貨物的點云,但采集到的點云數(shù)據(jù)存在少量的孔洞,對貨物體積的計算有著一定的影響,因此要對貨物點云進(jìn)行插補(bǔ)。貨物點云已進(jìn)行過體素柵格降采樣,通過設(shè)定3×3的柵格數(shù)據(jù)來預(yù)測中間柵格的數(shù)據(jù),通過遍歷所有柵格的數(shù)據(jù),對于沒有數(shù)據(jù)的柵格的取其周圍3×3 點的平均值代替,實現(xiàn)缺失值插補(bǔ)。點云含有孔洞可視化如圖6 所示。
圖6 貨物點云孔洞示意圖Fig.6 Schematic diagram of cargo point cloud holes
三角剖分在圖形和數(shù)值分析領(lǐng)域具有重要意義,Delaunay 三角剖分更是一種被廣泛引用的三角剖分技術(shù)。剖分出來的三角形滿足最大最小角以及空外接圓兩大準(zhǔn)則。主要表現(xiàn)形式是構(gòu)建的三角形的外接圓上無其他點集,同時,相鄰的三角形構(gòu)成的四邊形的對角線互換后,三角形的最小內(nèi)角不會增大。Delaunay 三角剖分可以使得剖分的三角形更相似于正三角形,并具有唯一性,避免構(gòu)建出不規(guī)則的狹長三角形。
對于構(gòu)建Delaunay 三角網(wǎng),采用的是逐點插入法,通過對貨物點云構(gòu)建超級三角形,將每個點向三角形中插入,通過計算三角形的圓心以及半徑確定點是否在外接圓的右側(cè)。在右側(cè)為Delaunay 三角形,在外接圓外側(cè)不確定,在外接圓內(nèi)側(cè)不為Delaunay 三角形。貨物點云構(gòu)建Delaunay 三角網(wǎng)示意圖如圖7 所示。
圖7 貨物點云三角剖分圖Fig.7 Triangulation of cargo point cloud
通過構(gòu)建Delaunay 三角網(wǎng)向車廂地面進(jìn)行投影,得到大量的五面體集合。五面體主要為似三棱柱,這里棱對其利用“割補(bǔ)”的方法進(jìn)行體積計算。割補(bǔ)原理圖如圖8 所示。
圖8 似三棱柱分割示意圖Fig.8 Schematic diagram of quasi triangular prism segmentation
假設(shè)構(gòu)建的三角網(wǎng)的三個頂點A、B、C。B 點的高度處于AC 兩點之間,使用過B 點的水平面對上底面進(jìn)行分割,分割面與AC 邊的交點為G,與AA1 棱的交點為E 點,C 點在分割平面上的對應(yīng)點為F 點。最終通過平面的分割,可以獲得2 個三棱錐以及1 個直三棱柱。
似三棱柱的體積:
目標(biāo)點云的體積:
式中:Vi——第i 集合體的體積。
通過計算投影得到的集合體的體積進(jìn)行累加,最后求得貨物的體積V總。
在對體積測算的方案設(shè)計中,設(shè)定不同的體素柵格大小對體積測算有著一定的影響。柵格設(shè)定較小,不能做到數(shù)據(jù)精簡,無法提升測算效率;柵格設(shè)定較大,導(dǎo)致精簡后的點云較為稀疏,貨物表面的特征丟失,計算的體積誤差較大。
通過對同一車輛貨物點云進(jìn)行不同大小柵格處理,分析體積計算的時間以及體積計算結(jié)果,結(jié)果如表2 所示。
表2 不同柵格下車廂貨物點云處理信息Tab.2 Cargo point cloud processing information under different grids
體積計算時間隨著柵格的增大,耗時不斷減小,減小的幅度不斷降低。體積計算誤差與柵格大小沒有絕對的比例關(guān)系,通過測試,當(dāng)柵格0.05 m 時,體積計算誤差最小,為0.145%,結(jié)合計算時間以及體積計算相對誤差綜合考慮,最終選取柵格大小為0.05 m。不同柵格的車廂點云可視化如圖9 所示。
圖9 不同柵格下的車廂貨物點云可視化Fig.9 Visualization of freight point cloud under different grids
在對貨車載貨體積計算時只需提取貨物的點云,通過設(shè)計的目標(biāo)區(qū)域自動提取算法,對貨物區(qū)域的點云進(jìn)行分割提取。車廂內(nèi)貨物點云的提取的準(zhǔn)確性對體積的計算尤為重要,通過設(shè)計實驗驗證車廂點云的自動提取以及貨物體積測量的準(zhǔn)確性。在設(shè)計的掃描區(qū)域下,安排多輛空車進(jìn)行掃描,通過掃描的點云計算車廂的長、寬、高以及車廂容積。同時通過對多輛貨車載貨的體積進(jìn)行計算,分別測得貨物的體積,將點云測算的數(shù)據(jù)與實際數(shù)據(jù)進(jìn)行誤差分析,計算方法為:
將點云測得的數(shù)據(jù)與實際數(shù)據(jù)進(jìn)行誤差分析,車廂的長、寬、高以及車廂容積相對誤差如圖10所示,體積計算相對誤差如圖11 所示。
圖10 車廂長寬高及容積相對誤差圖Fig.10 Relative error diagram of length,width,height and volume of carriage
圖11 體積計算誤差分析圖Fig.11 Analysis of volume calculation error
本文采用激光探測技術(shù)對貨車載貨體積測量的方案,為工程測量提供新方法、新思路。通過對激光測體積方案進(jìn)行研究分析,設(shè)計出貨車載貨體積的測量方案,利用投影法對貨物體積進(jìn)行測算。分析體素柵格大小對體積計算的影響,進(jìn)一步優(yōu)化體積計算的準(zhǔn)確性。通過利用該測量方案對多輛空車的長寬高及容積進(jìn)行測量,長寬高相對誤差不高于1.5%,容積相對誤差不高于2.5%。通過實際測量多輛貨車載貨體積,測量值與真實值之間相對誤差低于3%,滿足絕大部分工程測量需求。