遲克浩 陳夢雯 吳彥達 陳文娟 徐志杰
(中國石油大學(華東)理學院,山東 青島 266580)
三維掃描技術是一種利用光電信息技術獲取物體三維信息的立體成像技術,在產品逆向重構、文物復原、三維建模等領域有著廣泛的應用[1-2]。但目前大部分掃描儀結構復雜,操作繁瑣,使用門檻較高。為彌補上述不足,研制了一種基于三角測距原理的雙線激光三維掃描系統(tǒng),利用雙線激光獲取物體完整三維結構,實現(xiàn)了大幅降低操作難度并保證掃描效率的目的。相比于市場上已有的三維掃描儀[3],本系統(tǒng)設計成本低,且體積輕巧,方便使用,僅需利用圖像軟件即可進行效率較高的三維掃描工作。
系統(tǒng)工作的主要原理是雙三角測距原理。系統(tǒng)向目標物發(fā)射兩束線激光,同時攝像頭接收從目標物上反射的激光。隨著目標物表面與本儀器的距離變化,攝像頭感光元件上的激光光點的位置亦有所不同,可以得到目標物各點的距離數(shù)據(jù),進而確定物體的空間位置。原理圖如圖1所示:
圖1 雙三角測距原理示意圖
由圖中所示的幾何關系可以得到△BOA∽△CDO,△OGH∽△IOJ,激光光點、攝像頭,與激光本身構成三角形。根據(jù)相似三角形法則可以得到關系式:
(1)
即:
(2)
式中a、a1表示激光在照射到目標物之后反射到攝像頭感光元件(例如COMS、CCD等)上的成像點到邊緣的距離。隨著被測物體的距離改變,a、a1也會發(fā)生改變,兩者成反比。當距離很近時,a、a1很大,可能會超出CCD檢測器范圍,無法測量;當距離很遠,a、a1很小則要求CCD檢測器靈敏度較高。
根據(jù)式(2)可計算出目標物到攝像頭光心平面的垂直距離L、L1:
(3)
通過攝像頭感光元件上的激光光點位置,可以計算出攝像頭位于三角形中的角度。在△BEA、△FGH中,通過角α的正弦關系可計算出目標物與激光器之間的直線距離x、x1為
(4)
在得到目標物外表面各點與線狀激光器之間的直線距離后,系統(tǒng)通過三角關系可得到各點的位置數(shù)據(jù),換算為三維坐標(xyz)。攝像頭通過感光元件接收到的激光光點亮度大小測得激光反射強度,以及對目標物表面的顏色識別得到RGB(顏色)信息。隨后系統(tǒng)將所有點的三維坐標(xyz)、激光反射強度、RGB信息集中整合,形成目標物的點云圖像。
為確定目標物點云在空間的排列,要通過光斑的質心原理進行計算反射到CMOS上的激光光斑的空間位置。質心原理是將能量重心與物體質心類比,通過圖像的能量密度函數(shù)一階空間矩和零階空間矩的比值來確定激光光斑精確位置的物理方法。
假設平面內單個光斑的質心位置為(Xc,Yc)[7],該位置可由圖像的能量重心計算公式得到,即滿足:
式中,Xc、Yc表示計算出來的質心坐標;x、y分別表示像平面的橫縱軸坐標;Aw表示限定的積分區(qū)域,稱為質心窗口,它包含了光斑覆蓋的所有有效像素點;I(x,y)是光斑在探測器表面的光強分布函數(shù),其強度分布如圖2所示。
圖2 探測器表面光強分布圖
但是CMOS只能獲取光斑強度的采樣值,因此上述積分在實際應用中變?yōu)槔奂忧蠛停?/p>
質心窗口由n個像元組成,(xk,yk)為第k像元的幾何坐標,Ik為第k個像元的圖像灰度函數(shù)的采樣值,得到的(Xc,Yc)即為CMOS感光平面上激光光斑的坐標。
系統(tǒng)通過三維掃描工作獲取了目標物點云作為物體表面的位置,但點云是離散圖像,幾何特性不明顯,且無法直接處理。因此通過泊松曲面重建原理實現(xiàn)優(yōu)化點云并將其重建為閉合圖像的目的。泊松曲面重建是基于泊松方程的圖形處理方法[8]。
假設將感光平面接收到的圖形分割為m*n的灰度圖像如圖3所示,以左上角為圖像原點,縱向下方延伸建立x軸,橫向右側延伸為y軸。a為位于坐標(x,y)處的一個像素。像素點a的四鄰域N4(a)={(x+1,y),(x-1,y),(x,y+1),(x,y-1)}。V表示為鄰接性灰度值的集合,則圖像中像素a的散度為
(9)
圖3 圖像分割示意圖
通過載物轉臺帶動目標物進行轉動,攝像頭對目標物進行多角度拍攝,之后激光器發(fā)出激光,COMS接收反射光點完成該角度的掃描,重復上述過程直至完成掃描工作,利用MVS(Multi-viewstereo)多視角立體重建算法與SFM(Structure from motion)運動場景恢復算法將拍攝的圖片與點云進行特征匹配,對出現(xiàn)缺陷或冗余的部分進行處理。若檢測到在某一區(qū)域內出現(xiàn)點云缺失情況,根據(jù)式(9)對此區(qū)域灰度值進行預測,起到彌補作用。攝像頭采集到的圖像包括目標物體與背景,上位機將背景部分像素設為0以突出目標物體輪廓,以達到重建目標物體表面信息和去除環(huán)境噪聲導致的噪聲點云的目的。攝像頭隨目標物體轉動進行圖像采集,并對圖像分別重建[9,10],如圖4所示。
圖4 攝像頭圖像采集示意圖
系統(tǒng)實物如圖5所示:
圖5 實物圖
系統(tǒng)主要由攝像頭、線狀激光器、載物轉臺組成。線狀激光器選用半導體激光器,功率為5mW,激光波長650nm,線寬0.5mm。帶動載物轉臺轉動的步進電機選用42步進電機,步距角1.8°。攝像頭放置于主體支架上部,兩端通過短絲杠固定線狀激光器,Arduino Uno與A4988電機驅動模塊嵌在支架內部。載物轉臺通過長絲杠與主體支架相連。
在系統(tǒng)工作之前進行攝像頭的標定。在標定過程中,調節(jié)線狀激光器發(fā)出的線狀激光為豎直位置,并通過標定板的網(wǎng)格對激光的校準進行輔助。隨后進行攝像頭的標定,步進電機帶動標定板轉動。攝像頭檢測出標定板上的特征點,并根據(jù)攝像頭的內參數(shù)與相對目標物的距離信息計算出畸變系數(shù),優(yōu)化求精,完成標定工作。
標定完成后,上位機通過串口將控制信息發(fā)送給單片機,單片機產生對應的PWM信號使步進電機帶動載物盤與目標物進行轉動。當轉動至勻速時,線狀激光器發(fā)射豎直線激光照射到目標物表面,在表面經(jīng)過漫反射射向COMS,接收到反射的激光光點。在得到COMS上激光光點位置后,根據(jù)雙三角測距原理確定與該激光光點對應的目標物點位,并基于光斑質心原理,針對于不同位置的光強大小與攝像機識別的RGB信息進行云點優(yōu)化,隨后通過USB將數(shù)據(jù)發(fā)送至電腦上位機,上位機基于泊松重建原理進行點云優(yōu)化,生成目標物的點云圖像。
2.2.1 硬件的控制
系統(tǒng)利用Arduino IDE編程平臺配合Arduino Uno單片機使用。在Arduino單片機連接電腦時,利用USB協(xié)議傳輸代碼,可直接將系統(tǒng)代碼燒錄至單片機,控制本系統(tǒng)中線狀激光器與步進電機的使用。系統(tǒng)代碼為Hex文件16進制碼(以ASCII碼形式顯示),封裝為數(shù)據(jù)包,便于燒錄使用。
2.2.2 點云圖像的獲取與處理
為滿足系統(tǒng)需求自主設計一款上位機軟件。計算機通過此軟件輔助激光校準,識別并連接攝像頭所在串口,控制攝像頭標定工作,向主板中上傳固件。在準備工作完成后,進行快速的簡單掃描或可捕捉目標物顏色的紋理掃描。在掃描工作結束后,通過Meshlab三維圖像處理軟件對獲取到的目標物點云圖像進行二次處理。
對點云圖像產生干擾的因素主要有:環(huán)境光過強、載物盤的輕微機械振動使得目標物產生輕微晃動、目標物表面的反射特性以及表面粗糙度。由于這些因素,會不可避免地產生測量噪點、誤差量化及幾何失真等問題。為完善點云圖像,利用Meshlab進行點云除噪、點云合并、點云精簡,得到目標物完整的掃描圖像。具體工作方式為:將掃描到的圖像導入Meshlab,進行帶紋理的二次邊緣塌陷檢測。在保留圖像拓撲結構的同時,將點云中明顯的噪點刪除,補充丟失的測量點,與整體的點云完整地銜接,并在不丟失棱角等幾何結構的條件下進行精簡冗雜的點進行過濾刪除。
在三維掃描儀工作的準備階段進行攝像頭標定。標定完成后開始掃描,載物轉臺帶動目標物轉動。線狀激光器發(fā)出線激光投射在物體表面,反射的激光光點被攝像頭捕捉。上位機軟件根據(jù)采集到的距離信息與激光光點的位置,獲得目標物的點云圖像。
系統(tǒng)工作流程如圖6所示:
現(xiàn)利用該系統(tǒng)對目標物進行掃描,得到目標物實物圖與掃描效果圖對比如圖7所示:
圖9 對不同角度的間距數(shù)值偏差分析圖像
圖7 目標物實物圖與掃描效果圖對比
在物體轉動一周后,將所有處理后的圖像整合,彌補掃描得到的點云圖像的缺陷。將圖像局部放大后進行重建效果對比如8所示:
圖8 重建效果對比
為測試系統(tǒng)的掃描效果,現(xiàn)針對系統(tǒng)的掃描偏差進行分析:
經(jīng)測量,目標物的高度為8.69cm,底徑為5.10cm,杯口直徑為7.00cm。將目標物放置于載物盤中央。打開激光照射目標物,選定激光線段中點為參考點。設目標物初始位置轉動角度為0°。根據(jù)三角測距原理,可得到線狀激光器與目標物間距數(shù)值。實測得間距數(shù)值為27.4628cm。進行掃描工作時控制步進電機步距角為1.5°,故選定每1.5°讀取系統(tǒng)所測間距數(shù)值,與實測間距數(shù)值進行掃描偏差分析。
圖9為對不同角度的間距數(shù)值偏差分析圖像:
由圖像可知系統(tǒng)在各角度掃描時的相對標準偏差均小于1%,在103.5°時相對標準偏差最大,為0.588%。通過圖像數(shù)據(jù)基本可以確定,系統(tǒng)在不同角度時掃描偏差均很小,精密度理想,效果良好。
打開激光照射目標物,選定激光線段上端點、中心、下端點為參考點。實測得線狀激光器與上端點、中點、下端點距離分別為30.4341cm、27.4658cm、25.1276cm。每轉動1.5°讀取系統(tǒng)所測與各點間距數(shù)值,與實測間距數(shù)值進行掃描偏差分析。
圖10為對不同高度的間距數(shù)值偏差分析圖像:
圖10 對不同高度的間距數(shù)值偏差分析圖像
根據(jù)圖中數(shù)據(jù)可知,在目標物轉過不同角度時線狀激光器到3個參考點間距數(shù)值的相對標準偏差小于1%,在355.5°時線狀激光器到上端點間距數(shù)值的相對標準偏差最大為0.327%,在103.5°時線狀激光器到中點間距數(shù)值的相對標準偏差最大為0.588%,在57°時線狀激光器到下端點間距數(shù)值的相對標準偏差最大為0.514%。通過圖像數(shù)據(jù)基本可以確定,系統(tǒng)對目標物不同高度的點掃描的偏差很小,精密度理想,效果良好。
本系統(tǒng)根據(jù)攝像頭的標定技術,并基于三角測距原理得到了目標物的點云圖像。通過上位機的圖像處理軟件對點云進行處理,得到目標物的完整三維圖像。經(jīng)測試后,系統(tǒng)的掃描工作偏差極小,精確度高,可以進行高效的掃描工作。成本較低,操作簡單。由于系統(tǒng)本身的結構限制,目標物體的內部結構無法獲取,下一步將針對內部圖像無法獲取的問題,改進系統(tǒng)的實物結構并完善算法,以滿足更廣泛的工程應用。