徐 淵 王亞洲 周建華 邊育心
(深圳大學信息工程學院 深圳 518060)
三維掃描是近年來熱門技術之一,由于它具備結構簡單、精度較高等優(yōu)點,已被廣泛地應用在3D掃描、工業(yè)測量等領域。目前,三維點云的掃描有接觸式與非接觸式兩大類,分別應用于不同的工業(yè)場景。
接觸式掃描主要應用在三維坐標測量[1],其精度高,還原性強。但對應幾何特征尺寸小,具有大面積自由曲面的零部件不能夠測量,掃描時間長且價格昂貴[2~3]。非接觸式掃描主要采用計算機視覺技術,使用雙目或多目視覺系統(tǒng)進行掃描,其精度合適且結構簡易,由于傳統(tǒng)的雙目立體視覺采用被動式技術測量,不能有效地解決圖像中重復區(qū)域、低紋理區(qū)域、紋理相似區(qū)域等帶來的誤匹配問題,而結構光方法可以很好地解決誤匹配問題,因此,三維掃描中以結構光為主的主動視覺技術占主導地位。
雖然結構光掃描技術日漸成熟,但對于面型較復雜的物體(含有四角的物體或曲面復雜的多面體)需要多次重復掃描,而采用單目或雙目立體視覺的三維激光掃描系統(tǒng),只能從一個角度獲取物體表面的縱向點云信息,但對于面型復雜的曲面物體或部分區(qū)域被遮擋的物體,會存在掃描盲區(qū),導致部分點云數據缺失,因此,需要調整物體掃描的方位進行重新掃描[4],大大增加了系統(tǒng)的掃描時間和數據處理時間。本文采用多目立體視覺的三維激光掃描系統(tǒng),可以從不同視角對物體表面進行全方位橫向掃描,有效地解決了線結構光系統(tǒng)對復雜曲面物體掃描所形成的盲區(qū)問題,提高了掃描效率,同時對線激光提取算法進行了優(yōu)化,提高了系統(tǒng)的掃描精度。
本文中的三維掃描系統(tǒng),由多組立體視覺測量系統(tǒng)組成,每組立體視覺測量系統(tǒng)由雙目相機及位于雙目相機中間的線激光器組成。要同時完成不同視角下的物體表面掃描,且避免雙目相機的視角過大,導致圖像畸變偏大,即采用4組雙目相機,每組雙目相機的鏡頭視角為90°。每組雙目立體視覺測量系統(tǒng)根據雙目立體視覺原理[5~7],計算出物體表面的深度信息,建立統(tǒng)一的坐標系,來解決不同視角下數據對齊的問題,計算出各視角下的物體截面的空間三維坐標。由于四組雙目立體視覺測量系統(tǒng)結構相互對稱,計算的三維坐標數學模型類似,因此只需分析系統(tǒng)中某組雙目立體視覺測量系統(tǒng)的數學模型,如圖1所示。
圖1 雙目立體視覺三維測量模型
如圖1所示,設被測物體P點的三維坐標為(xP,yP,zP),雙目攝像機拍攝物體上的P點,分別在左攝像頭和右攝像頭上投影的圖像坐標為PL(xl,yl)與PR(xr,yr),由三角相似關系得以下關系式:
通過視差D(xl-xr),計算出P點的三維坐標:
由上面介紹的掃描原理及數學模型分析,掃描的硬件裝置主要由四組雙目攝像頭、位于四組雙目攝像頭中間的線激光器、升降臺及圖像采集器及ZYNQ處理平臺組成,如圖2所示。
圖2 三維掃描裝置結構示意圖
如圖2所示,兩個分辨率為640*480的COMS攝像頭對稱放置于模具中,然后在中間安放線激光器,通過圖像采集器同步采集雙目圖像,將圖像數據送到USB接口上,交由后級的ZYNQ進行數據處理。系統(tǒng)中有四路線激光雙目模組,通過線激光器掃描物體,由后級的ZYNQ處理系統(tǒng)進行數據采集、處理三維點云的生成。
本系統(tǒng)獲取點云數據的方法是通過控制升降臺,將四個方向上的線激光器光束直射在物體表面形成環(huán)狀光帶,由4組位于激光器兩側的雙目攝像頭完成光帶圖像的采集、光帶中心的提取、圖像匹配、雙目深度計算、世界坐標系轉換及三維點云數據融合,對掃描物體層層掃描,最終輸出三維點云數據,基于ZYNQ的點云數據處理流程如圖3所示。
線激光掃描測量法因其具有測量速度快、測量精度高的優(yōu)點[8],被廣泛用于工業(yè)測量、3D掃描儀等領域。線激光在COMS攝像機上成像后,對線激光的光帶中心進行提取,本系統(tǒng)采用梯度質心法進行光帶中心的提取,首先是計算光帶圖像的每一行的梯度,然后經過梯度比較得到光帶中心區(qū)域的初步位置;接著計算此位置區(qū)域的質心,最后通過鄰域篩選原則來提取中心點位置。該方法可以將計算的時間復雜度大大的降低,并能有效地消除干擾點。
圖3 基于ZYNQ的點云數據處理流程
待定質心坐標
光帶中心提取步驟:
1)由于光帶圖像每一行可能存在多個光斑,利用待定質心坐標公式得到質心坐標(xtn,ytn),其中n為像素的列數;
2)利用式(3)中所求的質心坐標進行比較,找到前一行最接近的質心坐標作為最終結果。
公式中MINxt函數是實現在多個質心坐標比較得到與前一行質心坐標最相似的坐標值。質心的篩選流程,如圖4所示。
圖4 鄰域篩選原則
圖5 含激光散斑光帶及提取后的光帶圖像
經過雙目光帶中心提取后,效果如圖5所示,可看出光帶明顯變少,這也意味著對閾值變化沒有影響。由此可以消除激光線周圍的干擾光斑,并使其對光帶質心提取的影響大大減小。
由上面獲取到雙目光帶中心圖像后,對雙目光帶中心點進行圖像匹配,由于本系統(tǒng)雙目相機極線水平,只需在左目圖像的光帶中心的任意一點找到相對應的右目圖像中同一行的光帶中心點,即為此處的圖像匹配點,使整個雙目圖像匹配變得較容易,利用視差原理計算出雙目攝像頭與被測物體的深度距離Z,以實現二維空間到三維空間的轉換[9~10],如圖6所示。
圖6 雙目立體測距原理
假設兩個完全相同的攝像機平行放置,它們的視點分別為OR和OT,空間中任意一點P在兩個視平面中的像素點分別是P(xR,yR),P′(xT,yT),再加上基線長度B和鏡頭焦距f,就可以通過式(4)計算出場景深度 Z[11~12]。
首先對雙目相機進行標定,當兩個攝像機的像平面是完全行對準時,計算視差是最簡單的。然而在現實情況中,兩個攝像機既要做到共面又要做到行對準是十分艱難的,此時需要通過對圖像實施一些算法來盡可能的達到這種對準效果,這樣兩個攝像頭的光軸是平行的。本文主要采用張正友標定[13]的方法對雙目相機進行標定。
由于機械結構的原因,多組雙目相機之間也會存在水平對齊及旋轉的問題,因此需要對多組雙目相機進行聯(lián)合標定,提高測量的精度。
將雙目相機中的左攝像頭與相鄰的雙目相機中的左攝像頭組成一對雙目相機,且每對組成的雙目相機,同樣通過張正友標定的方法,可以得到平移矩陣和旋轉矩陣,將其坐標系轉換到其他坐標系下的三維坐標中,進而實現坐標系的統(tǒng)一,實際上將獨立的雙目相機坐標系,轉換為全局坐標系中,這其中運用了三維拼接技術。由于這種拼接技術誤差較大,通常為了減少此誤差,需在測量區(qū)擺放一些標志,以固定的標志點進行拼接,而這些標志點需要三個以上才能滿足要求。使用四元組法[14]來實現三維對應點集之間的坐標系轉換關系。
為了獲取完整的三維點云數據,通過上面多模組雙目相機的聯(lián)合標定,將不同視角的點云數據建立到同一坐標系下。圖7是整套系統(tǒng)從俯視角度,升降臺的中心為坐標系原點O。線激光雙目模組定義為No.1,No.2,No.3,No.4。可認為No.1和No.2作為第一象限的分界限,依此類推可以得到四組象限坐標系(世界坐標系中的Y軸表示物體被掃的高度,由升降臺來決定)。
圖7 系統(tǒng)的世界坐標系
四路雙目相機到平臺中心點距離分別為L1、L2、L3、L4(分別可以測量得到);在四路雙目相機圖像中,被測物體光帶中心的像素點橫坐標分別為U1、U2、U3、U4;被測物體像素點橫坐標分別為X1、X2、X3、X4;為此將分別來自于四個方向的掃描截面點云信息,映射到世界坐標系上。
不同視角下的點云融合會產生分層和重疊現象,并且其幅度大小各不相同,這種情況下會產生數據冗余,這會導致其后的三維重構模型有歧義。其目的是解決上面的問題,使后期的點云模型更為光滑[15]。
三維點云融合的基本原理是給定兩個點集P和點集Q,先計算點集P中每一個點到Q點集的最小距離,此距離使用的是歐式距離。而當該距離小于某一固定的閾值時,可認為該點為重疊點對,并依此進行數據迭代,得到相應點集的點對關系。然后根據點云融合的法向特征,在重疊點集中找到相應的配準點。最后對配準點進行插值運算得到最終的融合點。
在本系統(tǒng)中,所有數據都是在同一時刻進行采集,因此得到的物體的點云數據不存在相互干擾,并且獨立分層,不會出現對空間點的數據融合。所有的點云數據分布在二維平面,并對二維的點云數據進行融合。本文中,對重疊區(qū)域進行加權融合,將得到的重疊點進行判定,判定的依據為該點距離哪個點集更近。利用該方法可以得到距離的權重因子,根據權重因子進行梯度劃分,最終可以得到點云數據具有平滑過渡的效果。
通過線激光掃描來獲取物體一個層面的點云數據,控制升降平臺將掃描物體上移一個層面(這里層面之間距離為0.5mm),來獲取此層面的點云數據,重復掃描步驟,當整個物體每個層面都被“掃描”過后,掃描結束。
系統(tǒng)對塑料杯進行了掃描,異構平臺進行實時處理后,通過以太網將三維點云數據傳輸到計算機上,將點云數據導入到meshlab中后進行顯示,如圖8(b)所示。
圖8 塑料杯掃描工件
深度數據準確性在三維重構中是比較重要的一點,實驗表面光滑的方形紙殼為被測物,對系統(tǒng)的雙目視覺模組的深度測量精度進行分析。
表1 實際數據與雙目視覺模組測量結果對比
表1測得的深度數據與實際數據進行對比,系統(tǒng)的精度能夠到達實際深度數據的1%以下,即在近距離測量的條件下,雙目激光測距誤差率基本能滿足工業(yè)上對掃描物件的精度要求。
對塑料杯進行三維掃描,從開始采集圖像到點云數據的輸出,總費時30s;用市面上的臺式3D掃描儀掃描塑料杯,從獲取到點云輸出總費時約3min;文獻[16]中掃描相同體積的物體需費時約300s。采用多目立體視覺三維激光掃描系統(tǒng)可以大大提高獲取點云數據的速度。
針對目前三維點云掃描速度過慢現象,本文提出了一套多目立體視覺的掃描系統(tǒng),它采用雙目加線激光結構,優(yōu)化了線激光的提取算法,對物體表面進行層次掃描使得系統(tǒng)性得到大大的提升,尤其在掃描速度上。本系統(tǒng)結構簡單、精度合適、掃描速度快,今后可被應用在工件掃描、文物掃描、大場景掃描等場合,具有良好的應用前景。