米云珂+李筠+楊海馬+徐妤婷+徐斌+徐煒
摘 要:為滿足優(yōu)質(zhì)助聽器需求,設(shè)計(jì)了一種基于圖像處理的高精度3D耳蝸掃描重建系統(tǒng)。系統(tǒng)基于單目視覺方案進(jìn)行設(shè)計(jì),DLP4500投射結(jié)構(gòu)光對耳蝸模型進(jìn)行掃描,相機(jī)高速抓取圖片發(fā)送給PC機(jī),PC機(jī)通過程序調(diào)用Opencv鏈接庫函數(shù),對接收到的二維圖像進(jìn)行處理,不斷提取點(diǎn)云數(shù)據(jù),對提取的點(diǎn)云數(shù)據(jù)利用三角網(wǎng)格重構(gòu)算法進(jìn)行重建。標(biāo)準(zhǔn)立方體的測試結(jié)果顯示,整個(gè)系統(tǒng)的掃描精度在0.2mm以內(nèi),掃描時(shí)間為2分鐘,在保證高精度的同時(shí),運(yùn)行時(shí)間相比同類設(shè)備有了很大提高,大大提升了生產(chǎn)效率。
關(guān)鍵詞:3D掃描;結(jié)構(gòu)光;點(diǎn)云;三角網(wǎng)格重構(gòu)
DOIDOI:10.11907/rjdk.172269
中圖分類號:TP317.4
文獻(xiàn)標(biāo)識碼:A 文章編號:1672-7800(2018)002-0216-03
1 系統(tǒng)介紹
調(diào)查數(shù)據(jù)[1]顯示,我國大約有15.8%的人聽力存在障礙,而佩戴合適的助聽設(shè)備能解決90%以上的聽力問題。助聽器市場主要集中在發(fā)達(dá)國家,中國的銷售僅占市場總份額的3%,有很大的潛力,為此設(shè)計(jì)了一種基于圖像處理的高精度3D耳蝸掃描重建系統(tǒng)。
掃描系統(tǒng)主要利用相移結(jié)構(gòu)光[2]對物體進(jìn)行掃描,掃描過程中光柵產(chǎn)生變形,相機(jī)高速抓取圖片發(fā)送給PC機(jī),程序調(diào)用Opencv里的鏈接庫函數(shù)對接收到的圖像進(jìn)行處理,先生成Depth Map(即深度圖),從中提取點(diǎn)云數(shù)據(jù),然后基于三角網(wǎng)格重構(gòu)算法對耳蝸模型進(jìn)行重建。
1.1 方案選擇
3D重建有兩種不同的設(shè)計(jì),一種是基于雙目視覺[3],另一種是基于單目視覺,所以大致可以分為雙目和單目兩種方案。兩種方案都是通過攝像頭采集圖像數(shù)據(jù),然后從圖像數(shù)據(jù)上得到所需要的信息,具體區(qū)別如表1所示。
雙目方案所需計(jì)算量[4]相對單目方案要大很多,除此之外還要考慮整個(gè)系統(tǒng)的成本,單目方案僅使用一個(gè)相機(jī),系統(tǒng)成本大大降低。綜合考慮以上因素,決定采用單目方案進(jìn)行設(shè)計(jì)。系統(tǒng)整體結(jié)構(gòu)如圖1所示。
1.2 硬件選擇與設(shè)計(jì)
硬件主要由結(jié)構(gòu)光投影設(shè)備[5]與相機(jī)組成,本設(shè)計(jì)選用TI公司生產(chǎn)的DLP4500和灰點(diǎn)工業(yè)相機(jī)[6]進(jìn)行配套設(shè)計(jì),相機(jī)型號為FL3-U3-13Y3M-C,最大幀率可達(dá)到150幀/s。
采用camera觸發(fā)lightcrafter4500,即相機(jī)觸發(fā)投影設(shè)備[7]的方式,因?yàn)檫@種方式比較好控制同步和延遲。系統(tǒng)設(shè)計(jì)選用的相機(jī)觸發(fā)端口為TRIG1,相機(jī)觸發(fā)過程中輸出3.3V的觸發(fā)信號,可通過示波器測量得到。
1.3 相機(jī)標(biāo)定
相機(jī)結(jié)構(gòu)大多情況下可簡化為針孔模型[8],也即是說,一幅圖像的獲得通常是先對空間中的三維點(diǎn)進(jìn)行透視變換,然后再通過圖像平面投影得到,其定義如式(1)所示:
或者寫成式(2)的形式:
在上述表達(dá)式中,(X,Y,Z)代表空間中一個(gè)點(diǎn)的世界坐標(biāo)[9],與其相對的(u,v)則表示該點(diǎn)投影在圖像平面上的坐標(biāo),A通常稱為內(nèi)參數(shù)矩陣;(cx,cy)是基準(zhǔn)點(diǎn)(通常在圖像的中心),(fx,fy)是以像素為單位的焦距。使用函數(shù)cvCalibrateCamera2[10]進(jìn)行標(biāo)定,計(jì)算相機(jī)內(nèi)參數(shù)和外參數(shù),格式如下:
Void cvCalibrateCamera2 (const CvMat*object_points,const CvMat*image_points,const CvMat*point_consts,
CvSize image_size,CvMat*intrinsic_matrix,CvMat*distortion_coeffs,
CvMat*rotation_vectors=NULL,CvMat*translation_vectors=NULL,Int flags=0);
函數(shù)主要功能是獲得相機(jī)的內(nèi)參數(shù),以及每個(gè)視圖外參數(shù)的大致估算值,在大致估算出內(nèi)參數(shù)矩陣和外參數(shù)矩陣的初始值后,它們會被優(yōu)化用來減小反投影誤差。
1.4 提取點(diǎn)云數(shù)據(jù)
要提取點(diǎn)云數(shù)據(jù),首先要得到物體的深度圖。圖像深度[11]指存儲每個(gè)像素所用的位數(shù),它決定了彩色圖像中可出現(xiàn)的最多顏色數(shù),或灰度圖像中的最大灰度等級。比如一幅單色圖像,若每個(gè)象素有8位,則最大灰度數(shù)目為28,即256。一幅彩色圖像RGB 3個(gè)分量的像素位數(shù)分別為4,4,2,則最大顏色數(shù)目為2的4+4+2次方,即1 024,就是說像素的深度為10位,每個(gè)像素可以是1 024種顏色中的一種。對圖像進(jìn)行處理并顯示的函數(shù)如下:
style="font-size:18px;">unsigned short*data=(unsigned short*)(pImg->imageData)
for(i=0;i for(j=0;j { data[j+i*(WIDTH)]=array[j+i*(WIDTH)]; } cvMinMaxLoc(dst,&m,&M,NULL,NULL,NULL);//找出dst中,所有數(shù)據(jù)的最大值和最小值 cvScale(dst,dst,65535/(M-m),65535*(-(m+1))/(M-m));//把dst中的數(shù)據(jù)映射到0-65535的范cvShowImage("source image",pImg);//完成了上述深度轉(zhuǎn)換,接下來才能用cvshowImage來顯示 經(jīng)過預(yù)處理后的深度圖像具有二維信息,像素點(diǎn)的值是深度信息[12],表示物體表面到相機(jī)之間的直線距離,以mm為單位。
1.5 點(diǎn)云數(shù)據(jù)重構(gòu)
提取點(diǎn)云數(shù)據(jù)后,利用三角網(wǎng)格重構(gòu)算法[13]進(jìn)行重建。主要遵循以下3個(gè)規(guī)則:
(1)探測鄰域規(guī)則:以活動(dòng)邊Eij的中點(diǎn)M為球心,以探測半徑R為半徑形成一個(gè)球鄰域,球鄰域中的點(diǎn)就是最初的候選點(diǎn)集,見圖2(a)。
(2)活動(dòng)邊內(nèi)外側(cè)規(guī)則:經(jīng)過活動(dòng)邊Eij并垂直于活動(dòng)邊三角形Δijk的平面,將空間分為兩側(cè),所在的一側(cè)稱為活動(dòng)邊Eij的內(nèi)側(cè),另一側(cè)稱為活動(dòng)邊Eij的外側(cè),見圖2(b)。
(3)局部重疊規(guī)則:為了防止新構(gòu)成的三角形與原已生成的三角形在空間上重疊,對候選點(diǎn)集每個(gè)點(diǎn)Vl進(jìn)行重疊規(guī)則測試,將Vi關(guān)聯(lián)三角形的邊以及新三角形的兩條新邊,投影到Vi的局部切平面上。在投影平面上判斷兩條新邊Eij、Eij是否和其它邊相交。如果相交,該點(diǎn)從候選點(diǎn)集中刪除,對Vj也進(jìn)行同樣的測試,見圖2(c)。
確定點(diǎn)的局部切平面[14]實(shí)際是求該點(diǎn)的估計(jì)法矢量,設(shè)已知V的最近點(diǎn)集如式(3)所示。
V點(diǎn)的估計(jì)法矢量最小值如式(4)所示。
問題轉(zhuǎn)化為計(jì)算協(xié)變矩陣C=∑k[]i=1(Qi-V)T·(Qi-V)的最小特征值對應(yīng)的特征向量,該特征向量即為所求的切平面估計(jì)法矢量。
2 系統(tǒng)測試
系統(tǒng)測試分為兩個(gè)部分,首先利用標(biāo)準(zhǔn)立方體對整個(gè)系統(tǒng)進(jìn)行誤差測試,然后再對標(biāo)準(zhǔn)的耳蝸模型進(jìn)行掃描。
2.1 標(biāo)準(zhǔn)立方體掃描測試
通過對標(biāo)準(zhǔn)立方體進(jìn)行掃描計(jì)算測量精度,使用立方體的參數(shù)為:長3.226cm,寬2.172cm,高1.080cm,掃描測試使用的標(biāo)準(zhǔn)立方體,及對立方體掃描過程中提取點(diǎn)云數(shù)據(jù)并進(jìn)行重建后得到的結(jié)果如圖3所示。
誤差測試采用多次試驗(yàn)取算術(shù)平均值進(jìn)行測量,獲得掃描誤差的大致估算值。實(shí)驗(yàn)數(shù)據(jù)如表2所示。
由實(shí)驗(yàn)結(jié)果可以看出,模型長度平均誤差為0.176mm,寬度平均誤差為0.174mm,高度平均誤差為0.172mm;掃描的平均時(shí)間為109.2s。
2.2 實(shí)際耳蝸模型掃描測試
經(jīng)過基本的運(yùn)行及測試之后,就本系統(tǒng)設(shè)計(jì)所要掃描的實(shí)際對象——耳蝸模型進(jìn)行掃描,掃描的耳蝸模型實(shí)物圖,及對耳蝸模型掃描過程中不斷提取點(diǎn)云數(shù)據(jù)并進(jìn)行重建后得到的結(jié)果如圖4所示。
3 結(jié)語
三維掃描是工業(yè)生產(chǎn)及科學(xué)研究重要的組成部分,掃描精度和掃描時(shí)間直接影響生產(chǎn)的順利進(jìn)行以及生產(chǎn)效率。絕大多數(shù)設(shè)備掃描時(shí)間都比較長,檢測精度較低。從本實(shí)驗(yàn)可以看出,本文設(shè)計(jì)的系統(tǒng)不僅可以很好地實(shí)現(xiàn)所需功能,完成對耳蝸模型的掃描及三維重建,而且精度可以達(dá)到微米級。
參考文獻(xiàn):
[1] 李葉紅,劉曉英.中國老年人市場的助聽器銷售模式分析[J].消費(fèi)導(dǎo)刊,2012(10):98-99.
[2] 萬飛飛.基于圖像的人體點(diǎn)云模型重建[D].北京:北京服裝學(xué)院,2012.
[3] MAOTENG ZHENG,JUNFENG ZHU,XIAODONG XIONG,et al.3D model reconstruction with common hand-held cameras[J].Virtual Reality,2016(20):221-235.
[4] 黃志偉.基于斷層掃描數(shù)據(jù)三維建模技術(shù)研究[D].南京:南京航空航天大學(xué),2015.
[5] XIONG JIE,ZHONG SI DONG,LIU YONG,et al.Automatic three-dimensional reconstruction based on four-view stereo vision using checkerboard pattern[J].J Cent South Univ.,2017(24):1063-1072.
[6] 祝風(fēng)翔.基于圖像的深度獲取方法研究[D].杭州:浙江大學(xué),2016.
[7] 陶旺林,盧選民,劉李娟,等.基于OpenCV的非線性圖像畸變校正研究[J].現(xiàn)代電子技術(shù),2011,34(12):117-120.
[8] 王莉,朱仁江,戴特力.三維測量中的照相機(jī)單機(jī)定標(biāo)原理及標(biāo)定算法研究[J].重慶師范大學(xué)學(xué)報(bào):自然科學(xué)版,2005,22(3):90-93.
[9] 張俊.基于線掃描的物體表面重構(gòu)[D].天津:南開大學(xué),2013.
[10] MATTHEW BERGER,ANDREA TAGLIASACCHI,LEE M,et al.A survey of surface reconstruction from point clouds[J].COMPUTER GRAPHICS forum,2017(36):301-329.
[11] 王蒙.基于大規(guī)模點(diǎn)云數(shù)據(jù)的三維重建和紋理映射研究[D].南昌:南昌大學(xué),2014.
[12] 劉輝,王伯雄,任懷藝,等.基于三維重建數(shù)據(jù)的雙向點(diǎn)云去噪方法研究[J].電子測量與儀器學(xué)報(bào),2013,27(1):1-7.
[13] 趙東威.基于結(jié)構(gòu)光的3D重建系統(tǒng)[D].南京:南京大學(xué),2010.
[14] DIEGO THOMAS,AKIHIRO SUGIMOTO.Parametric surface representation with bump image for dense 3D modeling using an RBG-D camera[J].Int J Comput Vis,2017(123):206-225.endprint