師瑞卓,張小俊,孫凌宇,裴香麗
(河北工業大學,天津 300130)
激光雷達具有測量精度高、抗干擾能力強、非接觸式測量等特點,廣泛應用于各個領域[1-4]。根據掃描線數的不同,激光雷達可分為單線激光雷達和多線激光雷達兩種。單線激光雷達只在一個固定的掃描平面上獲取距離信息,即二維掃描。多線激光雷達同時在多個掃描平面上獲取距離信息,即三維掃描。多線激光雷達的應用場景更為復雜,對性能的要求更高,并且其價格昂貴,體積較大,掃描范圍有限,限制了其在礦區、井下等領域的應用。相比來說,單線激光雷達具有結構簡單,性價比高,體積較小等特點,研究者們已將單線激光雷達應用于諸多領域[5]。黃鳳山等[6]利用單線激光雷達增加一維掃描裝置的方法實現三維測量。張堯楷[7]等在構建基于二維激光掃描儀的三維重建實驗系統的基礎上,分析了在平動和轉動這兩種工作模式下的特點。Xu等[8]采用旋轉多邊形掃描鏡的方法,實現在垂直方向上掃描物體,從而可以高精度地獲得掃描場景的三維信息。北京航空航天大學的蔡京等[9]利用帶輪傳動實現旋轉激光掃描面,設計出一套三維激光掃描系統。可見通過單線激光雷達實現低成本高質量的三維形貌重建具有重大研究意義。
基于以上考慮,本文以一個單線激光雷達為基礎,使用高精度旋轉云臺轉動掃描平面,從而實現三維掃描的功能,并對系統誤差進行補償。針對掃描得到的點云數據提出分步處理數據的系統方法,依次對點云進行去噪、平滑、精簡處理,最后對處理后的數據進行三維重建。上述方法可以實現對三維場景的360°全方位掃描,并且采用激光雷達與上位計算機交互式采集數據的方式,相較于一般的數據采集方式可以獲得更高的掃描速度和采樣率,結構簡單的同時可靠性更高,更加適合于應用在倉庫、礦洞、井下等復雜工況,適用范圍更加廣泛。
本文設計的三維形貌重建系統選用基于飛行時間測量原理的單線激光雷達,屬于非接觸式測量,水平測量角度360°,角度分辨率0.18°,測量范圍0.1~30 m,測量精度30 mm,支持以太網通信。
圖1為基于單線激光雷達的三維形貌重建系統構成示意圖,該系統主要由四部分構成:單線激光雷達、掃描驅動裝置、控制單元與數據采集單元。掃描驅動裝置包括旋轉平臺、連接板和步進電機,單線激光雷達通過連接板和旋轉云臺固定,由步進電機驅動旋轉云臺轉動。控制單元為一臺可編程邏輯控制器(PLC),用于給步進電機發送指令,包括開始旋轉,反向旋轉,停止旋轉等,并將步進電機的旋轉狀態,轉動角度等信息通過串口RS-485發送給上位計算機。數據采集單元為上位計算機,數據采集由上位計算機通過串口RS-422與激光雷達通訊實現。

圖1 三維重建系統構成示意圖
該系統中的單線激光雷達通過連接板與旋轉云臺固定,實現旋轉激光雷達掃描平面的目的,具體掃描方式如圖2所示。在掃描時選取激光雷達掃描平面上0°到90°的數據,使旋轉云臺旋轉360°,完成整個室內空間的掃描,圖中掃描面ia與ib為掃描過程中的任意兩個掃描面。

圖2 掃描方式
在數據采集過程中PLC通過RS-485和上位計算機通訊。PLC接收上位計算機控制信號,接收到信號后驅動云臺轉動一定的角度,使雷達掃描面發生轉動,轉動完成后向上位計算機發送完成標志信號,實現云臺旋轉動作與雷達數據采集的相互配合,防止在云臺旋轉時采集數據,產生誤差。云臺轉動動作完成的同時向上位機發送當前云臺轉角信息,經過細分后,云臺轉角最小可達0.045°。數據采集流程如圖3 所示。

圖3 數據采集流程
數據采集計算機一方面通過RS-422串口不斷地獲取激光雷達發送的距離數據和掃描角數據,另一方面不斷接收PLC發來的云臺轉角數據,將三者同時存儲起來,這樣就獲得了每幀激光雷達的數據及其掃描平面的位置。最終通過坐標轉換可以獲得所有數據點的空間坐標。坐標變換公式如下:

(1)
式中,ρ為激光雷達返回的距離值;α為激光雷達的掃描角;β為云臺轉角,(x,y,z)為該數據點的空間坐標。
空間坐標系如圖4所示,以激光雷達原點為原點,以初始時刻掃描平面為XOY平面,Z軸指向豎直向上,Y軸指向激光雷達前方。

圖4 空間坐標系
實際應用時如果直接采用公式(1)計算坐標可能會產生較大誤差,原因主要在于激光雷達的原點并不在云臺的旋轉軸上,即Z軸與云臺旋轉軸不重合。為了降低誤差,需要對系統進行誤差補償。圖5為系統誤差補償原理,設旋轉軸與空間坐標系XOY平面的交點為O1,激光雷達原點實際位置為O2,β為云臺轉角,ρ為距離值,φ為O1O2連線在初始掃描時刻與X軸的夾角,O1O2連線長度為L。

圖5 誤差補償原理
將系統放置于一處平整墻面的正前方,使O1與墻面的距離為d,根據圖所示關系,有如下公式:
d=ρicosβi+Lcos(βi-φ)
(2)
式中,已知d、ρi、βi已知,求L,φ。本文采用最小誤差平方和的方法求解,最小誤差平方和表達式為:
(3)
對(3)式求導可得:
(4)
(5)
要使E最小需要滿足條件:

(6)
(7)
式(7)與式(8)組成非線性方程組,本文采用圖解法進行求解,對φ∈[-30°,30°]的參數,以0.5°的間隔量化,分別用式(6)、式(7)求得對應的L值,畫出兩個L的圖像,當兩個L值的偏差最小時,則可求得L的最優解,并計算此時均方根誤差:
誤差補償后坐標轉換公式如下:

(8)
此時系統原點為O1點。
本節以校區內一間會議室為實驗場地進行三維形貌重建,利用公式(8)經過坐標轉換后,可以得到整個掃描空間的原始三維點云數據,該原始點云數據密度過大,其中包含一部分隨機分布的噪聲數據,針對原始點云數據的這一特點,本節提出分步處理數據的系統方法。首先,數據去噪保證數據精度;其次,數據平滑改善后續建模效果;最后,數據精簡提高建模速度。
由系統構成和數據采集流程可知本系統得到的原始點云數據是由一組掃描線組成的,屬于典型的掃描線點云,掃描線上所有的點都位于掃描平面內,掃描平面的數量由電機轉角的細分程度決定。在數據處理的去噪與平滑階段,可以提取出每一個掃描面上的掃描線點云數據,然后對每一條掃面線的點云數據進行處理,再將處理后的掃描線點云拼接為一個整體。目前,許多學者針對點云數據的處理進行了大量的研究,主要體現在對點云數據的去噪[10-12]、平滑[13-14]、精簡[15-16]等方法上。這些方法對于點云數據形成待掃描場景三維形貌的重建具有重要的意義,但也存在著數據處理過于繁瑣、實用性不強等問題。本文在這些方法的基礎上提出了一種適用于本系統的動態分步式數據處理方法。
觀察原始點云數據(圖6)可知,在激光掃描過程中,激光雷達在某一瞬間或者極短時間內會收集到一些明顯偏離其他正常點云的數據,即高頻噪聲點,一般是由于機械振動等原因造成,這是不可避免的,針對這一類高頻噪聲點采用最小距離法將其去除。

圖6 原始點云數據

(9)
(10)
根據距離閾值λ,可以有效去除數據中的高頻噪聲點,圖7為去除高頻噪聲點后的整體點云數據。

圖7 去除高頻噪聲點的點云
從去除高頻噪聲后的點云數據結果(圖7)可以看出最小距離法可以有效去除高頻噪聲點。此時,在上述處理結果的基礎上取某一個掃描面(圖8),顯然在這個掃描面上,存在點云密度過大,低頻噪聲點較多的問題,因此需要對這些數據做進一步的去噪處理。

圖8 去除高頻噪聲點的單個掃描面
通常對此類低頻噪聲點進行濾波處理,針對低頻噪聲點密集的問題,基于掃描線點云特征的考慮,進行了三維濾波方法的簡化,將其轉變為適用于二維掃描面的濾波方法。本文系統獲得的三維點云數據是由若干個激光掃描面拼接而成的,每一個掃描面上的雷達掃描角都是0到90°,根據劃分網格原理,將每個掃描面按照角度平均劃分為90份,即90個區間。對每一個區間內的點云數據進行中值濾波處理,過濾低頻噪聲點。
濾波處理后的掃描面點云數據低頻噪聲點基本去除,點云密度降低(圖9)。

圖9 去除低頻噪聲點的單個掃描面
但是,濾波處理后的結果還存在少量的尖銳點,為避免這些尖銳點對后續建模質量造成影響,有必要進一步對點云數據做平滑處理以合理改變點云位置。本文采用角度偏差法實現點云平滑,針對傳統角度偏差法可能導致局部區域點間距過大問題,對偏差點的處理進行優化,使角度偏差法能夠更有效的保持掃描線的細節特征。如圖10所示,引入偏差角度θi來判斷點Pi是否為偏差點。計算出一組數據中所有的偏差角度,將其中小于90°的偏差角度取平均值,然后設定這個平均值為角度閾值γ,如果θi<γ則點Pi保留,否則點Pi為偏差點,將Pi置為其前后兩點Pi-1和Pi+1的中點。

圖10 角度偏差法原理
如圖11所示,經過去噪、平滑處理后的點云數據在單個掃描面上,不但可以充分保持掃描線的細節特征,而且處理后的點云數據更加均勻。但是整體點云數據(圖12)依然存在部分區域點云密度較大的情況,會使建模速度下降,耗費更多時間。所以有必要進一步對點云進行精簡處理,使整體點云數據平均化。

圖11 平滑處理后的單個掃描面

圖12 平滑處理后的點云數據
根據下采樣原理對點云數據進行精簡處理。根據去噪、平滑處理后的點云數據特征,對下采樣方法進行改進,將點云空間劃分為若干個體積相等的小立方體,保證點云數據都在立方體內,每個立方體內保留一個點云數據,將經過去噪與平滑處理后的17995個點,精簡處理后得到9364個點,數據量下降了47.96 %,在保證建模精度的前提下有效提高后續三維形貌重建的運算速度。圖13為精簡處理后的點云數據。

圖13 精簡處理后的點云數據
圖14中曲線a、b為根據式(6)、式(7)得到的L曲線,圖中x軸為φ,y軸為L。兩條曲線交點為K,K點對應值為φ=6.03°,L=2.647 mm。此時均方根誤差為3.73 mm,說明本系統所用的誤差補償方法精度較高。

圖14 誤差補償結果
為最終實現物體的三維形貌重構,需要將數據處理后的物體表面點云數據用曲面描述出來。本文選用基于Voronoi 圖和Delaunay 三角剖分的Crust算法來實現這一過程[17-19]。利用C語言編寫Crust算法進而實現三維重建,圖15為重建后的效果圖,圖16為頂部特征圖,圖17為墻壁展開特征圖,圖18、19為實際場景圖。

圖15 三維重建效果圖

圖16 頂部特征圖

圖17 墻壁展開特征圖

圖18 實際場景圖Ⅰ

圖19 實際場景圖Ⅱ
將三維重建結果(圖15)、頂部特征圖(圖16)、墻壁展開特征圖(圖17)與實物圖(圖18、19)對比可以看出,重建結果可將室內的電燈、門框、房頂、LED顯示屏等物體表示出來、并且頂部特征及墻壁壁面特征也能得到很好的展現。實驗結果誤差分析如表1所示。其中實際長度由人工量取,實驗長度是由處理后的點云數據計算得到。表中誤差均由下式(11)計算得出:

表1 系統誤差分析
(11)
式中,λ為相對誤差;X為人工量取的實際長度;Xa為由點云數據計算得到的實驗長度。
由表1可知該系統測量得到的長度值雖然存在誤差,但是絕對誤差不超過30 mm,在激光雷達測量誤差允許范圍之內,完全滿足實際測量精度要求。
本文設計了一種基于單線激光雷達的三維形貌重建系統,并對系統的誤差進行補償,應用此系統對室內三維形貌特征數據進行采集,進而結合采集的原始點云數據,根據提出的數據處理系統方法對原始點云數依次進行降噪、平滑、和精簡處理,并最終通過處理后的點云數據完成了對實際場景的三維形貌重建,重建結果與實際場景的誤差不超過1.7 %,可見該三維形貌重建系統能夠獲取精確的三維形貌信息,并且整個系統結構簡單,易于實現,建模精度高,應用場景更加廣泛,提供了一種以更低成本獲得更高精度三維模型的有效方法。