歐攀 王定中
摘要:
為了研究基于線結(jié)構(gòu)光的桌面3D掃描系統(tǒng),將3D掃描所需進行的各項掃描儀標(biāo)定工作進行了實驗,使之得以在人較少參與的情況下自動完成。對圖像進行了掃描算法研究,搭建了一套由攝像頭、控制板、激光器以及上位機組成的裝置。對攝像機進行了標(biāo)定并通過實驗驗證了其獲得結(jié)果的準確性。同時利用光平面方程對光平面進行了標(biāo)定,利用閾值法和灰度重心法相結(jié)合,對光條中心進行提取。通過對物體三維掃描將所得掃描結(jié)果與掃描實物進行了對比,分析了系統(tǒng)的誤差。該系統(tǒng)具有價格低廉,使用方便等特點。
關(guān)鍵詞:
3D掃描; 線結(jié)構(gòu)光; 圖像處理
中圖分類號: TH 741文獻標(biāo)志碼: Adoi: 10.3969/j.issn.10055630.2017.04.005
Abstract:
The paper is to study a desktop threedimensional scanning technology based on light structured.The system consists of a camera,a control panel,a laser and a host computer.The scanner has cheap accessible components and is easy to carry.The threedimensional scanning for the scanner calibration has been adjusted so that it can be automatic.The accuracy of the results is also verified.At the same time,image processing algorithms for scanning are studied.Scanning can also be set up in only a few parameters under the conditions of automatic mode.Finally,the scanning results are compared with the objects,and the errors are analyzed.The experimental results show that the system can carry out 3D scanning of objects.The purpose of this paper is to develop a device of simple operation and low price.
Keywords:
threedimensional scanning; line structured light; image processing
引言
三維測量在產(chǎn)品制造和產(chǎn)品檢測上有著廣泛的應(yīng)用[1]。近年來,在三維測量的基礎(chǔ)上開展的各種3D掃描技術(shù)得到了迅速的發(fā)展,傳統(tǒng)的三維掃描是接觸式的三維掃描,而該技術(shù)已越來越無法滿足人們的需求。隨著3D打印技術(shù)的日趨成熟,未來3D打印很有可能像普通打印一樣走入一般家庭,因此開展對物體三維數(shù)據(jù)測量的研究具有實際意義。計算機視覺技術(shù)的出現(xiàn)為三維掃描提供了新的途徑,而伴隨它發(fā)展起來的圖像處理技術(shù)為之提供了可行的方法[2]。通過攝像頭拍攝物體圖像,并對圖像進行處理可獲得被測物體的三維信息,這就是三維視覺測量技術(shù)。由于這項技術(shù)的非接觸性、快速性等優(yōu)點,三維視覺測量技術(shù)得到了越來越多的關(guān)注,因此近年來三維視覺測量技術(shù)發(fā)展迅速并成為獲取被測物體表面三維信息的主要方法,并且在越來越多的領(lǐng)域取得了廣泛的應(yīng)用[34]。本文就三維掃描標(biāo)定技術(shù)及圖像處理技術(shù)進行研究。
1線結(jié)構(gòu)光桌面3D掃描儀的組成原理
基于線結(jié)構(gòu)光桌面3D掃描儀是將攝像頭和激光器固定,利用轉(zhuǎn)臺帶動被測物體轉(zhuǎn)動一周來獲得被測物體表面三維輪廓數(shù)據(jù),圖1為桌面3D掃描儀結(jié)構(gòu)框圖,主要由激光器、攝像頭、控制板、轉(zhuǎn)臺、連接件、步進電機、計算機及測量軟件等組成。本文設(shè)計的基于線結(jié)構(gòu)光桌面3D掃描儀使用的攝像機是羅技的c270網(wǎng)絡(luò)攝像頭,控制板使用的是Arduino UNO,其余激光器、螺絲、步進電機等都可以輕松買到,最終組裝完成的結(jié)果見圖2。
測量軟件主要完成對攝像機參數(shù)的標(biāo)定、光平面的標(biāo)定以及光條圖像中線結(jié)構(gòu)光光條中心的提取,并根據(jù)傳感器模型計算出測量位置上的物體表面點坐標(biāo),最后根據(jù)工作臺的位置參數(shù)將測量結(jié)果整合到物體表面輪廓數(shù)據(jù)中,并完成對整個物體表面的掃描,得到完整的表面輪廓數(shù)據(jù)。測量軟件部分流程圖如圖3所示。
2攝像機參數(shù)的標(biāo)定
在線結(jié)構(gòu)光三維掃描測量系統(tǒng)中被測物體的三維輪廓信息是通過攝像機拍攝的圖像來獲取的。攝像機拍攝出的圖像是二維的,只能得到二維坐標(biāo)系下物體的坐標(biāo),而最終掃描是要得到被測物體的三維空間坐標(biāo),這就需要利用系統(tǒng)各個模型的參數(shù)來進行換算。攝像機標(biāo)定能獲得進行坐標(biāo)轉(zhuǎn)換所需的參數(shù),這些參數(shù)根據(jù)決定條件有內(nèi)外之分。其中內(nèi)參數(shù)由設(shè)備本身所決定,不受位置關(guān)系影響,而外參數(shù)受系統(tǒng)各個元件的相對位置所影響,這些參數(shù)在將坐標(biāo)從二維轉(zhuǎn)換到三維的過程中不可或缺。因此必須首先對攝像機進行標(biāo)定。
在攝像機標(biāo)定過程中要進行由二維到三維的坐標(biāo)轉(zhuǎn)換,故會用到多個坐標(biāo)系[56]。
攝像機拍攝所得的圖像僅僅是一張滿是像素點的二維圖像,所能提供的也只有以像素個數(shù)為單位的像素位置坐標(biāo)。而最終需要得到的物體三維位置坐標(biāo)是以物理量為單位的,故需要將以像素為單位的圖像轉(zhuǎn)化成以物理量為單位的圖像,即將像素坐標(biāo)系轉(zhuǎn)化為物理坐標(biāo)系。設(shè)二維圖像的像素坐標(biāo)系是以O(shè)0為原點、u和v為軸并以像素為單位的O0uv,而在其上再建立一個以物理量為單位的以O(shè)1為原點、x和y為軸的坐標(biāo)系O1xy。其中u軸與x軸相平行,v軸與y軸相平行,而O1不與O0重合。令O1在O0uv下坐標(biāo)為(u0,v0),如圖4所示。endprint
令dx和dy為像素在x軸和y軸上的單位長度,現(xiàn)將攝像機所拍得的圖像的二維坐標(biāo)信息轉(zhuǎn)換成三維坐標(biāo)信息。首先需要將圖像的二維坐標(biāo)轉(zhuǎn)化到以O(shè)點為坐標(biāo)原點的xc,yc,zc為軸的攝像機坐標(biāo)系下,其中xc軸與x軸相平行,yc軸與y軸相平行,zc軸為攝像機的光軸,之后就可以把所得的三維坐標(biāo)轉(zhuǎn)換到世界坐標(biāo)系下。設(shè)世界坐標(biāo)系由Owxwywzw來表示,它是描述攝像機位置的基準坐標(biāo)系。則圖像、攝像機及世界坐標(biāo)系之間的關(guān)系如圖5所示。
3光平面標(biāo)定
在獲得了攝像機內(nèi)部參數(shù)之后,還需要進行光平面標(biāo)定,以此來獲得掃描所用的線激光的激光光平面在整個系統(tǒng)中的相對位置,即光平面的方程。光平面標(biāo)定就是要去獲得激光光平面上多個特征點的坐標(biāo)最終求出光平面方程[78]。
由空間幾何學(xué)知識可知,只要知道空間中不共線的3個或3個以上的光平面特征點的坐標(biāo),就可以解出光平面方程,即可以擬合出光平面的結(jié)構(gòu)參數(shù)。設(shè)光平面結(jié)構(gòu)方程為
為提取光條中心,首先要了解將要進行處理的光條紋的特點。本文所研究的基于線結(jié)構(gòu)光的桌面3D掃描技術(shù)使用的是線激光器,而激光器發(fā)出的光束實際上是高斯光束。而高斯光束的特點是:設(shè)由光源發(fā)出的光束沿著光軸傳播,則在整個光束上任意一個垂直于光軸的橫截面中,光強都服從高斯分布。這表明在光軸任意一個截面上,越靠近光軸光強越強,越遠離光軸光強越弱,即光強與到光軸距離成反比[910]。對于線結(jié)構(gòu)光,其投射到被測物體表面時光條每一個位置的橫截面上的光強都具有上述的分布特點,即其光強分布為
G(x)=12πσexp-(x-μ)22σ2
(4)
式中:μ為x軸上光強的數(shù)學(xué)期望;σ為均方差。
則光條每一個橫截面上的像素灰度值近似服從高斯分布,如圖6所示。由圖可知光條的中心處灰度值較大,邊緣處灰度值較小。
攝像機所采集到的掃描圖像除了光條之外還包括許多無用的信息,同時還包括很多噪聲和其他干擾因素。故在進行光條中心提取之前,需要對采集的圖像進行處理,盡量排除影響光條提取的因素,這樣才能更好地獲得想要的信息。
本文所研究的基于線結(jié)構(gòu)光的桌面3D掃描技術(shù)不只是要獲得被測物的輪廓信息,還希望能獲得其色彩信息,故只使用有激光光條的圖像來進行處理是不夠的,因為光條擋住了其所在位置的色彩信息。所以,本文將采集同一位置的2幅圖像,一幅是有激光光條的圖像,另一幅是同一位置沒有激光光條的圖像。這樣當(dāng)提取出了光條中心的位置后就可以在同一位置沒有激光光條的圖像上提取出光條中心位置的色彩信息。當(dāng)2幅同一位置的圖片都轉(zhuǎn)化為灰度圖像之后,只需將它們相減就能很好地排除周圍環(huán)境因素的影響而獲得想要的光條附近的信息。之后再將剩余的噪聲、零散的點進行處理即可。而消除這些噪聲可以使用圖像濾波來實現(xiàn),這樣不僅可以提高圖像的分辨率,而且更易獲得有用的信號。經(jīng)過這些處理,基本上只剩下1個有一定寬度的光條圖像,只要使用適當(dāng)?shù)姆椒ㄟM行光條中心提取即可[11]。
本文做了實驗來驗證提取的效果并最終選擇了閾值法與灰度重心法相結(jié)合的方法來提取光條中心。先對具有一定寬度的激光光條進行閾值處理,用以提高圖像的質(zhì)量,再對其使用灰度重心法提取其光條的中心[12]。
4實驗結(jié)果與分析
4.1攝像機內(nèi)部參數(shù)標(biāo)定
本文所進行的標(biāo)定利用了OpenCV提供的工具進行。如圖7所示,就是利用OpenCV提供的工具對標(biāo)定板的角點進行了識別并繪制出了標(biāo)定線。
理論上只要有3幅以上圖片就可以得到較為準確的相機內(nèi)部參數(shù),但實際上當(dāng)標(biāo)定板角度差異較小或平行時就會影響標(biāo)定的結(jié)果。故使用多少幅圖像來進行標(biāo)定比較好也需要通過實驗來驗證。本文在轉(zhuǎn)臺上對不同幅圖像以不同角度進行了標(biāo)定,實驗結(jié)果如表1所示。
4.2光平面標(biāo)定和轉(zhuǎn)臺標(biāo)定試驗
本文采用周富強等[13]提出的基于自由移動平面靶標(biāo)的光平面的現(xiàn)場標(biāo)定方法,將之應(yīng)用于桌面3D掃描儀上時,使用的是和攝像機標(biāo)定中相同的驗證過程及自動化方法。最后完成的自動標(biāo)定程序是將標(biāo)定板放置在轉(zhuǎn)臺上,自動尋找到標(biāo)定板后,轉(zhuǎn)臺帶動標(biāo)定板向一個方向轉(zhuǎn)動,每轉(zhuǎn)過一個小角度就停下來依次開關(guān)左右線激光器各一次,用攝像機分別捕捉只含有左激光光條和右激光光條的2張圖像。最后轉(zhuǎn)過180°后,利用所獲得的圖像提取出光平面特征點,以此來算出左右2個激光器的光平面方程,結(jié)果如圖10所示。
轉(zhuǎn)臺軸線標(biāo)定則在光平面標(biāo)定完成后直接開始進行。本文是利用特征點運動軌跡擬合空間圓來標(biāo)定轉(zhuǎn)臺中心軸線,故只需要在光平面標(biāo)定完成后將轉(zhuǎn)臺反方向轉(zhuǎn)動180°,同時攝像機捕捉標(biāo)定板在不同位置時特征點的坐標(biāo),即可以得到其運動軌跡并擬合出空間圓。由此即可獲得轉(zhuǎn)臺的中心軸線位置,并求解出轉(zhuǎn)臺坐標(biāo)系相對于攝像機坐標(biāo)位置,從而得到用于坐標(biāo)系之間轉(zhuǎn)換的系統(tǒng)結(jié)構(gòu)參數(shù)。轉(zhuǎn)臺中心軸線標(biāo)定結(jié)果如圖11所示。
4.3掃描相關(guān)算法及實驗
基于線結(jié)構(gòu)光的桌面3D掃描儀設(shè)計了簡單掃描和紋理掃描2種掃描模式。簡單掃描模式只掃描被測物的表面輪廓信息,進行這種掃描時可以將線激光器一直打開著,投射到被測物體表面,然后轉(zhuǎn)盤帶動被測物旋轉(zhuǎn)一周進行掃描。進行這種方式的掃描時轉(zhuǎn)盤每次轉(zhuǎn)動時的時間間隔可以比較小,每個位置也只需要拍攝1張圖片,速度會比較快。紋理掃描模式不僅要獲得被測物的三維輪廓信息,而且還要獲取其同一位置的色彩信息,故轉(zhuǎn)臺帶動被測物轉(zhuǎn)動掃描時,每個位置需要讓線激光器開關(guān)1次,攝像機捕捉有激光光條和沒有激光光條的2幅圖片,故在同一位置轉(zhuǎn)臺停留時間較長,掃描速度也較慢。
4.3.1
簡單掃描模式算法
簡單掃描是在每個位置采集1幅含有激光光條的圖片,對其進行圖像處理的方法如下。首先,對掃描獲得的圖像進行顏色空間轉(zhuǎn)換,將圖像從RGB形式轉(zhuǎn)化為YCrCb的形式,得到所需的灰度圖像。然后,利用split函數(shù)把圖像分離為Y、Cr、Cb 3個通道,因為Cr通道圖像反映的是RGB輸入的圖像信號的紅色部分與RGB信號亮度值之間的差異,能夠突出地表現(xiàn)出紅色的激光光條來,因此就可以使用Cr通道圖像來進行下一步操作。圖12(a)是攝像機獲得的原圖,圖12(b)是進行顏色空間轉(zhuǎn)換后得到Cr通道的圖像。endprint
之后對圖像進行閾值處理,排除周圍環(huán)境影響,只留下激光光條圖像。利用灰度重心法對其中心位置進行提取,將有一定寬度的光條變成了單像素條紋即可獲得其在二維圖像上的位置信息。圖13(a)為進行閾值處理后得到的有一定寬度的光條,圖13(b)則是進行了中心提取后所得到的單像素光條。
4.3.2
紋理掃描模式算法
紋理掃描模式不僅要獲取被測物三維輪廓信息,而且還要獲取其顏色信息。首先將2幅圖像都從RGB形式轉(zhuǎn)化為YCrCb的形式,并利用split函數(shù)分別提取出2幅圖像的Cr通道的圖像,這時得到了有激光光條和沒有激光光條的2幅灰度圖像。之后利用OpenCV提供的subtract函數(shù)對2幅灰度圖像進行相減,這時得到了光條附近的圖像。圖14(a)是含有激光光條的原圖,圖14(b)是相減后的圖像。
對得到的相減后的圖像利用OpenCV提供的工具morphologyEx函數(shù)進行形態(tài)學(xué)開運算處理,結(jié)果如圖15所示,只保留了光條附近信息。接下來進行閾值處理,保留下激光光條,結(jié)果如圖16所示。故利用和簡單掃描模式同樣的方法,就能提取出光條的二維坐標(biāo)位置信息了。利用這里所得到的二維坐標(biāo)位置信息在沒有激光光條的圖像上提取同一位置的色彩信息并保存下來。接著利用標(biāo)定所得的攝像機內(nèi)部參數(shù)和系統(tǒng)結(jié)構(gòu)參數(shù)來將二維坐標(biāo)位置信息轉(zhuǎn)換到三維的轉(zhuǎn)臺坐標(biāo)系下,結(jié)合色彩信息和位置信息將點繞轉(zhuǎn)臺軸線描繪出來,即可完成三維重建。
4.4掃描實驗及精度分析
本文使用圖17所示次雕像作為掃描被測物進行掃描實驗,分別用2種模式進行掃描后得到三維重建結(jié)果,如圖18和圖19所示。由圖可以明顯地看出2種掃描模式都還原了被測物體的基本輪廓形狀。由于簡單掃描只掃描了被測物的輪廓信息,故其三維重建時描繪出的點云使用的是相同的顏色,因此難以看出層次感。而紋理掃描三維重建時帶入了色彩信息,故結(jié)果看上去更好一些。為了了解掃描出的數(shù)據(jù)與實際情況相比精度如何,本文使用比較特征位置尺寸的方法來粗略估計掃描精度。
這個塑像大部分的形狀都是不規(guī)則的,故本文選擇測量塑像實物長方體底座的長寬來與掃描所得的三維圖形的底座長寬相比較,來確定掃描的精度。實物塑像底座的長寬可以通過游標(biāo)卡尺進行測量,而掃描所得圖形的尺寸可以使用Meshlab讀取三維數(shù)據(jù),再利用它提供的工具進行測量,測量過程如圖20所示,最終結(jié)果如表2所示。
由表2所得結(jié)果可以發(fā)現(xiàn),掃描結(jié)果與實物相差不大,而且其中紋理掃描相比簡單掃描所得輪廓尺寸要更接近實物一些,故紋理掃描精度相比簡單掃描精度要高一些。這2種掃描模式所得結(jié)果使用的是相同的換算公式并且其中參數(shù)是同一次標(biāo)定得到的,而且它們進行中心光條提取的方法也是相同的,故它們之間精度的差異來源于圖像處理方法的差異。
5結(jié)論
對基于線結(jié)構(gòu)光的桌面3D掃描儀確定了合適的標(biāo)定方法,完成了攝像機標(biāo)定、光平面標(biāo)定和轉(zhuǎn)臺軸線標(biāo)定的自動標(biāo)定程序。經(jīng)圖像處理、位置信息提取、坐標(biāo)轉(zhuǎn)換以及三維重建等工作,確定并編寫了2種掃描模式的掃描程序,實現(xiàn)了將物體進行3D掃描并得到其三維數(shù)據(jù)和圖形的目標(biāo)。本文所研究的基于線結(jié)構(gòu)光的桌面3D掃描技術(shù)是一種廉價的、操作方便的3D掃描技術(shù),由此在3D技術(shù)不斷發(fā)展的今天,桌面3D掃描儀有望實現(xiàn)面向普通人群的目標(biāo)。
參考文獻:
[1]KLETTE R,SCHLNS K,KOSCHAN A.Computer vision:threedimensional data from images[M].Singapore:SpringerVerlag Singapore Pte.Ltd.,1998.
[2]FORSYTH D A,PONCE J.Computer vision:a modern approach[M].New Jersey:Prentice Hall,2002.
[3]STOCKMAN G,SHAPIRO L G.Computer vision[M].Upper Saddle River,NJ,USA:Prentice Hall PTR,2001.
[4]邾繼貴,于之靖.視覺測量原理與方法[M].北京:機械工業(yè)出版社,2012.
[5]舒娜.攝像機標(biāo)定方法的研究[D].南京:南京理工大學(xué),2014.
[6]李洪海,王敬東.攝像機標(biāo)定技術(shù)研究[J].光學(xué)儀器,2007,29(4):712.
[7]謝宇浪.線結(jié)構(gòu)光視覺測量的標(biāo)定方法與實驗評價[D].武漢:湖北工業(yè)大學(xué),2014.
[8]郭倩,汪蘇,沈忠睿,等.基于結(jié)構(gòu)光技術(shù)的3D激光掃描測量系統(tǒng)[J].數(shù)據(jù)采集與處理,2012,27(增刊1):106110.
[9]張雨薇.基于結(jié)構(gòu)光的物體三維形貌測量[D].哈爾濱:哈爾濱工程大學(xué),2012.
[10]張鳳生.高斯光束的數(shù)值模擬新方法[J].光子學(xué)報,2008,37(6):12591262.
[11]徐靜珠.結(jié)構(gòu)光三維測量中光條中心提取方法及其評價的研究[D].南京:南京大學(xué),2012.
[12]李中偉,王從軍,史玉升.一種結(jié)合梯度銳化和重心法的光條中心提取算法[J].中國圖象圖形學(xué)報,2008,13(1):6468.
[13]周富強,張廣軍,江潔.線結(jié)構(gòu)光視覺傳感器的現(xiàn)場標(biāo)定方法[J].機械工程學(xué)報,2004,40(6):169173.
(編輯:劉鐵英)endprint