師瑞卓,張小俊,孫凌宇,裴香麗
(河北工業(yè)大學(xué),天津 300130)
激光雷達(dá)具有測(cè)量精度高、抗干擾能力強(qiáng)、非接觸式測(cè)量等特點(diǎn),廣泛應(yīng)用于各個(gè)領(lǐng)域[1-4]。根據(jù)掃描線數(shù)的不同,激光雷達(dá)可分為單線激光雷達(dá)和多線激光雷達(dá)兩種。單線激光雷達(dá)只在一個(gè)固定的掃描平面上獲取距離信息,即二維掃描。多線激光雷達(dá)同時(shí)在多個(gè)掃描平面上獲取距離信息,即三維掃描。多線激光雷達(dá)的應(yīng)用場(chǎng)景更為復(fù)雜,對(duì)性能的要求更高,并且其價(jià)格昂貴,體積較大,掃描范圍有限,限制了其在礦區(qū)、井下等領(lǐng)域的應(yīng)用。相比來(lái)說(shuō),單線激光雷達(dá)具有結(jié)構(gòu)簡(jiǎn)單,性價(jià)比高,體積較小等特點(diǎn),研究者們已將單線激光雷達(dá)應(yīng)用于諸多領(lǐng)域[5]。黃鳳山等[6]利用單線激光雷達(dá)增加一維掃描裝置的方法實(shí)現(xiàn)三維測(cè)量。張堯楷[7]等在構(gòu)建基于二維激光掃描儀的三維重建實(shí)驗(yàn)系統(tǒng)的基礎(chǔ)上,分析了在平動(dòng)和轉(zhuǎn)動(dòng)這兩種工作模式下的特點(diǎn)。Xu等[8]采用旋轉(zhuǎn)多邊形掃描鏡的方法,實(shí)現(xiàn)在垂直方向上掃描物體,從而可以高精度地獲得掃描場(chǎng)景的三維信息。北京航空航天大學(xué)的蔡京等[9]利用帶輪傳動(dòng)實(shí)現(xiàn)旋轉(zhuǎn)激光掃描面,設(shè)計(jì)出一套三維激光掃描系統(tǒng)。可見(jiàn)通過(guò)單線激光雷達(dá)實(shí)現(xiàn)低成本高質(zhì)量的三維形貌重建具有重大研究意義。
基于以上考慮,本文以一個(gè)單線激光雷達(dá)為基礎(chǔ),使用高精度旋轉(zhuǎn)云臺(tái)轉(zhuǎn)動(dòng)掃描平面,從而實(shí)現(xiàn)三維掃描的功能,并對(duì)系統(tǒng)誤差進(jìn)行補(bǔ)償。針對(duì)掃描得到的點(diǎn)云數(shù)據(jù)提出分步處理數(shù)據(jù)的系統(tǒng)方法,依次對(duì)點(diǎn)云進(jìn)行去噪、平滑、精簡(jiǎn)處理,最后對(duì)處理后的數(shù)據(jù)進(jìn)行三維重建。上述方法可以實(shí)現(xiàn)對(duì)三維場(chǎng)景的360°全方位掃描,并且采用激光雷達(dá)與上位計(jì)算機(jī)交互式采集數(shù)據(jù)的方式,相較于一般的數(shù)據(jù)采集方式可以獲得更高的掃描速度和采樣率,結(jié)構(gòu)簡(jiǎn)單的同時(shí)可靠性更高,更加適合于應(yīng)用在倉(cāng)庫(kù)、礦洞、井下等復(fù)雜工況,適用范圍更加廣泛。
本文設(shè)計(jì)的三維形貌重建系統(tǒng)選用基于飛行時(shí)間測(cè)量原理的單線激光雷達(dá),屬于非接觸式測(cè)量,水平測(cè)量角度360°,角度分辨率0.18°,測(cè)量范圍0.1~30 m,測(cè)量精度30 mm,支持以太網(wǎng)通信。
圖1為基于單線激光雷達(dá)的三維形貌重建系統(tǒng)構(gòu)成示意圖,該系統(tǒng)主要由四部分構(gòu)成:單線激光雷達(dá)、掃描驅(qū)動(dòng)裝置、控制單元與數(shù)據(jù)采集單元。掃描驅(qū)動(dòng)裝置包括旋轉(zhuǎn)平臺(tái)、連接板和步進(jìn)電機(jī),單線激光雷達(dá)通過(guò)連接板和旋轉(zhuǎn)云臺(tái)固定,由步進(jìn)電機(jī)驅(qū)動(dòng)旋轉(zhuǎn)云臺(tái)轉(zhuǎn)動(dòng)??刂茊卧獮橐慌_(tái)可編程邏輯控制器(PLC),用于給步進(jìn)電機(jī)發(fā)送指令,包括開(kāi)始旋轉(zhuǎn),反向旋轉(zhuǎn),停止旋轉(zhuǎn)等,并將步進(jìn)電機(jī)的旋轉(zhuǎn)狀態(tài),轉(zhuǎn)動(dòng)角度等信息通過(guò)串口RS-485發(fā)送給上位計(jì)算機(jī)。數(shù)據(jù)采集單元為上位計(jì)算機(jī),數(shù)據(jù)采集由上位計(jì)算機(jī)通過(guò)串口RS-422與激光雷達(dá)通訊實(shí)現(xiàn)。
圖1 三維重建系統(tǒng)構(gòu)成示意圖
該系統(tǒng)中的單線激光雷達(dá)通過(guò)連接板與旋轉(zhuǎn)云臺(tái)固定,實(shí)現(xiàn)旋轉(zhuǎn)激光雷達(dá)掃描平面的目的,具體掃描方式如圖2所示。在掃描時(shí)選取激光雷達(dá)掃描平面上0°到90°的數(shù)據(jù),使旋轉(zhuǎn)云臺(tái)旋轉(zhuǎn)360°,完成整個(gè)室內(nèi)空間的掃描,圖中掃描面ia與ib為掃描過(guò)程中的任意兩個(gè)掃描面。
圖2 掃描方式
在數(shù)據(jù)采集過(guò)程中PLC通過(guò)RS-485和上位計(jì)算機(jī)通訊。PLC接收上位計(jì)算機(jī)控制信號(hào),接收到信號(hào)后驅(qū)動(dòng)云臺(tái)轉(zhuǎn)動(dòng)一定的角度,使雷達(dá)掃描面發(fā)生轉(zhuǎn)動(dòng),轉(zhuǎn)動(dòng)完成后向上位計(jì)算機(jī)發(fā)送完成標(biāo)志信號(hào),實(shí)現(xiàn)云臺(tái)旋轉(zhuǎn)動(dòng)作與雷達(dá)數(shù)據(jù)采集的相互配合,防止在云臺(tái)旋轉(zhuǎn)時(shí)采集數(shù)據(jù),產(chǎn)生誤差。云臺(tái)轉(zhuǎn)動(dòng)動(dòng)作完成的同時(shí)向上位機(jī)發(fā)送當(dāng)前云臺(tái)轉(zhuǎn)角信息,經(jīng)過(guò)細(xì)分后,云臺(tái)轉(zhuǎn)角最小可達(dá)0.045°。數(shù)據(jù)采集流程如圖3 所示。
圖3 數(shù)據(jù)采集流程
數(shù)據(jù)采集計(jì)算機(jī)一方面通過(guò)RS-422串口不斷地獲取激光雷達(dá)發(fā)送的距離數(shù)據(jù)和掃描角數(shù)據(jù),另一方面不斷接收PLC發(fā)來(lái)的云臺(tái)轉(zhuǎn)角數(shù)據(jù),將三者同時(shí)存儲(chǔ)起來(lái),這樣就獲得了每幀激光雷達(dá)的數(shù)據(jù)及其掃描平面的位置。最終通過(guò)坐標(biāo)轉(zhuǎn)換可以獲得所有數(shù)據(jù)點(diǎn)的空間坐標(biāo)。坐標(biāo)變換公式如下:
(1)
式中,ρ為激光雷達(dá)返回的距離值;α為激光雷達(dá)的掃描角;β為云臺(tái)轉(zhuǎn)角,(x,y,z)為該數(shù)據(jù)點(diǎn)的空間坐標(biāo)。
空間坐標(biāo)系如圖4所示,以激光雷達(dá)原點(diǎn)為原點(diǎn),以初始時(shí)刻掃描平面為XOY平面,Z軸指向豎直向上,Y軸指向激光雷達(dá)前方。
圖4 空間坐標(biāo)系
實(shí)際應(yīng)用時(shí)如果直接采用公式(1)計(jì)算坐標(biāo)可能會(huì)產(chǎn)生較大誤差,原因主要在于激光雷達(dá)的原點(diǎn)并不在云臺(tái)的旋轉(zhuǎn)軸上,即Z軸與云臺(tái)旋轉(zhuǎn)軸不重合。為了降低誤差,需要對(duì)系統(tǒng)進(jìn)行誤差補(bǔ)償。圖5為系統(tǒng)誤差補(bǔ)償原理,設(shè)旋轉(zhuǎn)軸與空間坐標(biāo)系XOY平面的交點(diǎn)為O1,激光雷達(dá)原點(diǎn)實(shí)際位置為O2,β為云臺(tái)轉(zhuǎn)角,ρ為距離值,φ為O1O2連線在初始掃描時(shí)刻與X軸的夾角,O1O2連線長(zhǎng)度為L(zhǎng)。
圖5 誤差補(bǔ)償原理
將系統(tǒng)放置于一處平整墻面的正前方,使O1與墻面的距離為d,根據(jù)圖所示關(guān)系,有如下公式:
d=ρicosβi+Lcos(βi-φ)
(2)
式中,已知d、ρi、βi已知,求L,φ。本文采用最小誤差平方和的方法求解,最小誤差平方和表達(dá)式為:
(3)
對(duì)(3)式求導(dǎo)可得:
(4)
(5)
要使E最小需要滿足條件:
(6)
(7)
式(7)與式(8)組成非線性方程組,本文采用圖解法進(jìn)行求解,對(duì)φ∈[-30°,30°]的參數(shù),以0.5°的間隔量化,分別用式(6)、式(7)求得對(duì)應(yīng)的L值,畫(huà)出兩個(gè)L的圖像,當(dāng)兩個(gè)L值的偏差最小時(shí),則可求得L的最優(yōu)解,并計(jì)算此時(shí)均方根誤差:
誤差補(bǔ)償后坐標(biāo)轉(zhuǎn)換公式如下:
(8)
此時(shí)系統(tǒng)原點(diǎn)為O1點(diǎn)。
本節(jié)以校區(qū)內(nèi)一間會(huì)議室為實(shí)驗(yàn)場(chǎng)地進(jìn)行三維形貌重建,利用公式(8)經(jīng)過(guò)坐標(biāo)轉(zhuǎn)換后,可以得到整個(gè)掃描空間的原始三維點(diǎn)云數(shù)據(jù),該原始點(diǎn)云數(shù)據(jù)密度過(guò)大,其中包含一部分隨機(jī)分布的噪聲數(shù)據(jù),針對(duì)原始點(diǎn)云數(shù)據(jù)的這一特點(diǎn),本節(jié)提出分步處理數(shù)據(jù)的系統(tǒng)方法。首先,數(shù)據(jù)去噪保證數(shù)據(jù)精度;其次,數(shù)據(jù)平滑改善后續(xù)建模效果;最后,數(shù)據(jù)精簡(jiǎn)提高建模速度。
由系統(tǒng)構(gòu)成和數(shù)據(jù)采集流程可知本系統(tǒng)得到的原始點(diǎn)云數(shù)據(jù)是由一組掃描線組成的,屬于典型的掃描線點(diǎn)云,掃描線上所有的點(diǎn)都位于掃描平面內(nèi),掃描平面的數(shù)量由電機(jī)轉(zhuǎn)角的細(xì)分程度決定。在數(shù)據(jù)處理的去噪與平滑階段,可以提取出每一個(gè)掃描面上的掃描線點(diǎn)云數(shù)據(jù),然后對(duì)每一條掃面線的點(diǎn)云數(shù)據(jù)進(jìn)行處理,再將處理后的掃描線點(diǎn)云拼接為一個(gè)整體。目前,許多學(xué)者針對(duì)點(diǎn)云數(shù)據(jù)的處理進(jìn)行了大量的研究,主要體現(xiàn)在對(duì)點(diǎn)云數(shù)據(jù)的去噪[10-12]、平滑[13-14]、精簡(jiǎn)[15-16]等方法上。這些方法對(duì)于點(diǎn)云數(shù)據(jù)形成待掃描場(chǎng)景三維形貌的重建具有重要的意義,但也存在著數(shù)據(jù)處理過(guò)于繁瑣、實(shí)用性不強(qiáng)等問(wèn)題。本文在這些方法的基礎(chǔ)上提出了一種適用于本系統(tǒng)的動(dòng)態(tài)分步式數(shù)據(jù)處理方法。
觀察原始點(diǎn)云數(shù)據(jù)(圖6)可知,在激光掃描過(guò)程中,激光雷達(dá)在某一瞬間或者極短時(shí)間內(nèi)會(huì)收集到一些明顯偏離其他正常點(diǎn)云的數(shù)據(jù),即高頻噪聲點(diǎn),一般是由于機(jī)械振動(dòng)等原因造成,這是不可避免的,針對(duì)這一類高頻噪聲點(diǎn)采用最小距離法將其去除。
圖6 原始點(diǎn)云數(shù)據(jù)
(9)
(10)
根據(jù)距離閾值λ,可以有效去除數(shù)據(jù)中的高頻噪聲點(diǎn),圖7為去除高頻噪聲點(diǎn)后的整體點(diǎn)云數(shù)據(jù)。
圖7 去除高頻噪聲點(diǎn)的點(diǎn)云
從去除高頻噪聲后的點(diǎn)云數(shù)據(jù)結(jié)果(圖7)可以看出最小距離法可以有效去除高頻噪聲點(diǎn)。此時(shí),在上述處理結(jié)果的基礎(chǔ)上取某一個(gè)掃描面(圖8),顯然在這個(gè)掃描面上,存在點(diǎn)云密度過(guò)大,低頻噪聲點(diǎn)較多的問(wèn)題,因此需要對(duì)這些數(shù)據(jù)做進(jìn)一步的去噪處理。
圖8 去除高頻噪聲點(diǎn)的單個(gè)掃描面
通常對(duì)此類低頻噪聲點(diǎn)進(jìn)行濾波處理,針對(duì)低頻噪聲點(diǎn)密集的問(wèn)題,基于掃描線點(diǎn)云特征的考慮,進(jìn)行了三維濾波方法的簡(jiǎn)化,將其轉(zhuǎn)變?yōu)檫m用于二維掃描面的濾波方法。本文系統(tǒng)獲得的三維點(diǎn)云數(shù)據(jù)是由若干個(gè)激光掃描面拼接而成的,每一個(gè)掃描面上的雷達(dá)掃描角都是0到90°,根據(jù)劃分網(wǎng)格原理,將每個(gè)掃描面按照角度平均劃分為90份,即90個(gè)區(qū)間。對(duì)每一個(gè)區(qū)間內(nèi)的點(diǎn)云數(shù)據(jù)進(jìn)行中值濾波處理,過(guò)濾低頻噪聲點(diǎn)。
濾波處理后的掃描面點(diǎn)云數(shù)據(jù)低頻噪聲點(diǎn)基本去除,點(diǎn)云密度降低(圖9)。
圖9 去除低頻噪聲點(diǎn)的單個(gè)掃描面
但是,濾波處理后的結(jié)果還存在少量的尖銳點(diǎn),為避免這些尖銳點(diǎn)對(duì)后續(xù)建模質(zhì)量造成影響,有必要進(jìn)一步對(duì)點(diǎn)云數(shù)據(jù)做平滑處理以合理改變點(diǎn)云位置。本文采用角度偏差法實(shí)現(xiàn)點(diǎn)云平滑,針對(duì)傳統(tǒng)角度偏差法可能導(dǎo)致局部區(qū)域點(diǎn)間距過(guò)大問(wèn)題,對(duì)偏差點(diǎn)的處理進(jìn)行優(yōu)化,使角度偏差法能夠更有效的保持掃描線的細(xì)節(jié)特征。如圖10所示,引入偏差角度θi來(lái)判斷點(diǎn)Pi是否為偏差點(diǎn)。計(jì)算出一組數(shù)據(jù)中所有的偏差角度,將其中小于90°的偏差角度取平均值,然后設(shè)定這個(gè)平均值為角度閾值γ,如果θi<γ則點(diǎn)Pi保留,否則點(diǎn)Pi為偏差點(diǎn),將Pi置為其前后兩點(diǎn)Pi-1和Pi+1的中點(diǎn)。
圖10 角度偏差法原理
如圖11所示,經(jīng)過(guò)去噪、平滑處理后的點(diǎn)云數(shù)據(jù)在單個(gè)掃描面上,不但可以充分保持掃描線的細(xì)節(jié)特征,而且處理后的點(diǎn)云數(shù)據(jù)更加均勻。但是整體點(diǎn)云數(shù)據(jù)(圖12)依然存在部分區(qū)域點(diǎn)云密度較大的情況,會(huì)使建模速度下降,耗費(fèi)更多時(shí)間。所以有必要進(jìn)一步對(duì)點(diǎn)云進(jìn)行精簡(jiǎn)處理,使整體點(diǎn)云數(shù)據(jù)平均化。
圖11 平滑處理后的單個(gè)掃描面
圖12 平滑處理后的點(diǎn)云數(shù)據(jù)
根據(jù)下采樣原理對(duì)點(diǎn)云數(shù)據(jù)進(jìn)行精簡(jiǎn)處理。根據(jù)去噪、平滑處理后的點(diǎn)云數(shù)據(jù)特征,對(duì)下采樣方法進(jìn)行改進(jìn),將點(diǎn)云空間劃分為若干個(gè)體積相等的小立方體,保證點(diǎn)云數(shù)據(jù)都在立方體內(nèi),每個(gè)立方體內(nèi)保留一個(gè)點(diǎn)云數(shù)據(jù),將經(jīng)過(guò)去噪與平滑處理后的17995個(gè)點(diǎn),精簡(jiǎn)處理后得到9364個(gè)點(diǎn),數(shù)據(jù)量下降了47.96 %,在保證建模精度的前提下有效提高后續(xù)三維形貌重建的運(yùn)算速度。圖13為精簡(jiǎn)處理后的點(diǎn)云數(shù)據(jù)。
圖13 精簡(jiǎn)處理后的點(diǎn)云數(shù)據(jù)
圖14中曲線a、b為根據(jù)式(6)、式(7)得到的L曲線,圖中x軸為φ,y軸為L(zhǎng)。兩條曲線交點(diǎn)為K,K點(diǎn)對(duì)應(yīng)值為φ=6.03°,L=2.647 mm。此時(shí)均方根誤差為3.73 mm,說(shuō)明本系統(tǒng)所用的誤差補(bǔ)償方法精度較高。
圖14 誤差補(bǔ)償結(jié)果
為最終實(shí)現(xiàn)物體的三維形貌重構(gòu),需要將數(shù)據(jù)處理后的物體表面點(diǎn)云數(shù)據(jù)用曲面描述出來(lái)。本文選用基于Voronoi 圖和Delaunay 三角剖分的Crust算法來(lái)實(shí)現(xiàn)這一過(guò)程[17-19]。利用C語(yǔ)言編寫(xiě)Crust算法進(jìn)而實(shí)現(xiàn)三維重建,圖15為重建后的效果圖,圖16為頂部特征圖,圖17為墻壁展開(kāi)特征圖,圖18、19為實(shí)際場(chǎng)景圖。
圖15 三維重建效果圖
圖16 頂部特征圖
圖17 墻壁展開(kāi)特征圖
圖18 實(shí)際場(chǎng)景圖Ⅰ
圖19 實(shí)際場(chǎng)景圖Ⅱ
將三維重建結(jié)果(圖15)、頂部特征圖(圖16)、墻壁展開(kāi)特征圖(圖17)與實(shí)物圖(圖18、19)對(duì)比可以看出,重建結(jié)果可將室內(nèi)的電燈、門(mén)框、房頂、LED顯示屏等物體表示出來(lái)、并且頂部特征及墻壁壁面特征也能得到很好的展現(xiàn)。實(shí)驗(yàn)結(jié)果誤差分析如表1所示。其中實(shí)際長(zhǎng)度由人工量取,實(shí)驗(yàn)長(zhǎng)度是由處理后的點(diǎn)云數(shù)據(jù)計(jì)算得到。表中誤差均由下式(11)計(jì)算得出:
表1 系統(tǒng)誤差分析
(11)
式中,λ為相對(duì)誤差;X為人工量取的實(shí)際長(zhǎng)度;Xa為由點(diǎn)云數(shù)據(jù)計(jì)算得到的實(shí)驗(yàn)長(zhǎng)度。
由表1可知該系統(tǒng)測(cè)量得到的長(zhǎng)度值雖然存在誤差,但是絕對(duì)誤差不超過(guò)30 mm,在激光雷達(dá)測(cè)量誤差允許范圍之內(nèi),完全滿足實(shí)際測(cè)量精度要求。
本文設(shè)計(jì)了一種基于單線激光雷達(dá)的三維形貌重建系統(tǒng),并對(duì)系統(tǒng)的誤差進(jìn)行補(bǔ)償,應(yīng)用此系統(tǒng)對(duì)室內(nèi)三維形貌特征數(shù)據(jù)進(jìn)行采集,進(jìn)而結(jié)合采集的原始點(diǎn)云數(shù)據(jù),根據(jù)提出的數(shù)據(jù)處理系統(tǒng)方法對(duì)原始點(diǎn)云數(shù)依次進(jìn)行降噪、平滑、和精簡(jiǎn)處理,并最終通過(guò)處理后的點(diǎn)云數(shù)據(jù)完成了對(duì)實(shí)際場(chǎng)景的三維形貌重建,重建結(jié)果與實(shí)際場(chǎng)景的誤差不超過(guò)1.7 %,可見(jiàn)該三維形貌重建系統(tǒng)能夠獲取精確的三維形貌信息,并且整個(gè)系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,易于實(shí)現(xiàn),建模精度高,應(yīng)用場(chǎng)景更加廣泛,提供了一種以更低成本獲得更高精度三維模型的有效方法。