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