張永舉,顧旭波,張 健,王 兵,郭 玲
(1.江蘇省特種設(shè)備安全監(jiān)督檢驗研究院吳江分院,江蘇 蘇州 215200; 2.南京理工大學(xué)自動化學(xué)院,江蘇 南京 210094)
隨著近年來科學(xué)技術(shù)的進(jìn)步,三維測量對社會生產(chǎn)和人們生活的影響日益增加。該技術(shù)能夠?qū)θS物體進(jìn)行快速、精確的全尺寸測量,因此在工業(yè)產(chǎn)品設(shè)計與測量、文化影視娛樂、文物保護(hù)等諸多領(lǐng)域體現(xiàn)出良好的應(yīng)用前景。
根據(jù)測量方式的不同,三維測量方法可分為接觸式和非接觸這2大類。接觸式測量通過接觸探頭與物體表面接觸獲取物體三維結(jié)構(gòu),有測量精度高的優(yōu)點[1],弊端是測量速度慢,只能獲得稀疏的測量數(shù)據(jù),不適用于無法進(jìn)行表面接觸的被測物。非接觸式測量可彌補以上缺陷。根據(jù)是否采用特定光源對被測物體進(jìn)行照明,該類方法可進(jìn)一步分為主動式和被動式。雙目立體視覺法是一種被動式光學(xué)三維測量方法,其基本原理為:首先由不同位置的2臺相機(jī)從不同角度同時拍攝同一場景得到2幅圖像,然后檢測和匹配同一物點位于2幅圖像上的對應(yīng)像點,最后基于視差原理計算得到該物點的三維數(shù)據(jù)[2]。該方法雖然原理簡單,但對2臺相機(jī)中對應(yīng)成像點匹配困難,算法復(fù)雜。而編碼結(jié)構(gòu)光法作為一種新型的主動式光學(xué)三維重構(gòu)方法,通過向物體投射編碼結(jié)構(gòu)光,使得待測物體在結(jié)構(gòu)光的照射下生成特殊圖像,該圖像中包含了光源在被測物體上的畸變信息。然后根據(jù)三角法和相機(jī)與投影儀之間的參數(shù)進(jìn)行計算,獲得物體表面的三維坐標(biāo)值[3]。結(jié)構(gòu)光技術(shù)解決了特征點搜索困難的難題,但由于投影儀并非成像設(shè)備,標(biāo)定難度高,精度低,從而對三維點云的計算產(chǎn)生了極大的影響。目前常用的投影儀標(biāo)定方法有反成像法、三角測量法和多項式擬合法這3大類。反成像法操作簡單,但是由于在依賴相機(jī)標(biāo)定結(jié)果的基礎(chǔ)上進(jìn)行標(biāo)定,投影儀標(biāo)定進(jìn)度低于相機(jī)標(biāo)定一個等級;三角測量法和多項式擬合法精度高,但是標(biāo)定過程復(fù)雜,安裝約束性強(qiáng),不適用于實際操作。
本文將雙目立體視覺測量和結(jié)構(gòu)光測量這2種方法相結(jié)合,在完成雙相機(jī)的空間位置獲取后,對獲得的編碼圖案進(jìn)行解碼,從而獲得物體上各點的三維數(shù)據(jù)。該方法回避了傳統(tǒng)立體視覺中稠密匹配和編碼結(jié)構(gòu)光中投影儀標(biāo)定這2個難點,簡化了對應(yīng)點匹配算法的復(fù)雜度,提高了三維測量的精度[4]。
對于雙目立體視覺成像技術(shù),相機(jī)標(biāo)定是三維信息獲取的一個關(guān)鍵步驟,其標(biāo)定結(jié)果的精度和速度將直接影響之后的三維測量結(jié)果[5]。在雙目立體視覺中,因為2臺相機(jī)的參數(shù)配置相同,就可以把雙目立體視覺系統(tǒng)標(biāo)定轉(zhuǎn)化為先對單個相機(jī)進(jìn)行標(biāo)定,再根據(jù)雙目視覺原理對雙目相機(jī)進(jìn)行標(biāo)定[6]。
在標(biāo)定時,將相機(jī)視為理想化的針孔照相機(jī)模型,如圖1所示。其中點Oc為照相機(jī)光心和世界坐標(biāo)系原點,點o為圖像坐標(biāo)系原點,xoy為相機(jī)成像平面,點P(Xw,Yw, Zw)在圖像物理坐標(biāo)系中為點p(xp,yp)。
圖1 針孔照相機(jī)模型
通過三角形的相似性原理可以得知世界坐標(biāo)系中點P與相機(jī)像素坐標(biāo)系中對應(yīng)點關(guān)系為:
(1)
式(1)中,s為尺度因子,(u,v)為點P在圖像中像素坐標(biāo)點,(Xw,Yw,Zw)為點P在世界坐標(biāo)系中坐標(biāo)點,αx,αy歸一化焦距,(u0,v0)為相機(jī)主點,R為旋轉(zhuǎn)矩陣,T為平移向量,A為相機(jī)內(nèi)參數(shù)矩陣,H為單應(yīng)矩陣。
由于相機(jī)中透鏡結(jié)構(gòu)特點會導(dǎo)致獲取的圖像存在畸變?;円话惴譃閺较蚧兒颓邢蚧?,尤其以徑向畸變最為突出。因此,忽略切向畸變,采用以下模型進(jìn)行畸變校正[7]:
(2)
式(2)中(xd,yd)為實際檢測到的坐標(biāo),(xu,yu)為理想坐標(biāo)[8]。
張氏標(biāo)定法把世界坐標(biāo)系構(gòu)造在Zw=0的平面上,簡化矩陣得[9]:
(3)
單應(yīng)矩陣為:
(4)
由于R為旋轉(zhuǎn)矩陣,可得約束條件:
(5)
對于n幅圖片,其中每幅圖片含有m個標(biāo)定點,則可獲得2mn個方程。解得相機(jī)內(nèi)外參數(shù)后,再考慮相機(jī)畸變的條件下,以此為初值,用阻尼最小二乘法提高計算精度。
雙目標(biāo)定的是雙目視覺系統(tǒng)中2臺相機(jī)之間的相對位置關(guān)系,即得到2相機(jī)坐標(biāo)系間相對的旋轉(zhuǎn)矩陣和平移向量[10]。
世界坐標(biāo)系中任意一點P在左右2個相機(jī)坐標(biāo)系中可表示為:
(6)
其中P1,P2為點P在2相機(jī)所成圖像中的像點,R1,R2為2相機(jī)世界坐標(biāo)系到各自相機(jī)坐標(biāo)系的旋轉(zhuǎn)矩陣,T1,T2為2相機(jī)世界坐標(biāo)系到各自相機(jī)坐標(biāo)系的平移向量。由式(6)可得:
(7)
如圖2所示,點P1,P2為立體校正前點P在左右相機(jī)中位置,c1,c2為左右相機(jī)的光心,2點之間的連線為基線,e1,e2為左右相機(jī)的成像平面與基線的交點,也就是極點。由極線約束條件可知,左圖像中點P1在右圖像中的對應(yīng)點必定位于直線e2P2上,極線約束令對應(yīng)點的搜索由二維搜索降為一維搜索[11]。但極線往往為一條斜線,為了進(jìn)一步降低搜尋對應(yīng)點的復(fù)雜度,還需要進(jìn)行極線校正。
圖2 雙目視覺系統(tǒng)
(8)
結(jié)構(gòu)光法是一種主動式的對被測物體進(jìn)行特征點標(biāo)記的方法,通過向物體投射特定圖案使被測物體具有容易識別的編碼特征信息,解決了雙目視覺中“像素匹配”的難題[12]。根據(jù)編碼方法的不同,解碼方法也不一樣,但基本原理一樣。結(jié)構(gòu)光編解碼就是利用圖像上灰度、幾何、顏色等可視性特征來給予像素點先驗編碼信息,然后由相機(jī)獲取調(diào)制圖像,最后對調(diào)制圖像進(jìn)行解調(diào),得到特征點碼值[13]。
在二值編碼中,應(yīng)用最廣的就是格雷碼編碼。格雷碼圖像只使用黑白2種顏色來區(qū)分不同的條紋,分別記為0、1,將這2種條紋進(jìn)行不同時間序列的組合便可得到對應(yīng)于每一條條紋的編碼。格雷碼編碼作為一種可靠性編碼,從當(dāng)前狀態(tài)轉(zhuǎn)到下一狀態(tài)只存在一位跳變,降低了解碼過程中的錯誤率。格雷碼編碼具有精度高、求解過程簡潔、誤差小和受環(huán)境影響小的優(yōu)點,缺點在于需要投射大量圖案,分辨率低。而相移法是向物體表面周期性投射正弦周期位移圖像,在一個周期內(nèi)每點相位值絕對唯一。該方法具有很高的分辨率,但無法判斷不同周期內(nèi)相位值,具有二義性。綜上考慮,本文選擇使用了格雷碼與相移法相結(jié)合的編碼方式,使其兼具二者優(yōu)勢,即格雷碼條紋編碼確定性和魯棒性加上相位移法的高分辨率。
首先由投影儀依次向物體投射如圖3所示的6幅格雷碼圖案,將物體表面分成000000~111111這26個區(qū)域。其中碼字為6幅圖案所對應(yīng)的0、1的序列,0對應(yīng)黑色,1對應(yīng)白色,如圖3(a)中點P為000111。然后再向物體投射如圖3(b)所示的相移圖案,并將其每次平移1/4周期,投射4次。此外,需滿足格雷碼圖案的最小周期為相移圖案周期的4倍,從而使得格雷碼周期內(nèi)相移圖案每點相位值絕對唯一[14]。
(a)格雷碼編碼 (b)相移編碼圖3 編碼圖案
與上述編碼方法相對應(yīng)的解碼方法中,首先將格雷碼轉(zhuǎn)換為十進(jìn)制編碼,獲得周期次數(shù)k[15]。為了減少物體表面顏色對測量結(jié)果的干擾,本文通過簡化的Daniel Scharsterin[16]方法,在向物體表面投射一組格雷碼圖案后,對格雷碼取反,再次投射到物體上。若第一組格雷碼采樣點灰度值大于第二組,則取值為1,反之為0。該方法減少了閾值分割產(chǎn)生的錯誤,提高了周期值k的精度。
然后,投射4幅相移圖案,采樣點的灰度值可表示為[17]:
In(x,y)=I′(x,y)+I″(x,y)[cos θ(x,y)+nπ/2]
(9)
式(9)中In(x,y)為點I(x,y)在第n幅相移圖中的灰度值,I′(x,y)為條紋光的背景光強(qiáng),I″(x,y)/I′(x,y)為條紋反差,θ(x,y)為待求主相位值:
(10)
最后,將格雷碼解碼所得周期值與主相位值相疊加可得點I(x,y)的絕對相位值ψ(x,y):
ψ(x,y)=2kπ+θ(x,y)
(11)
在完成雙目相機(jī)立體校正后,即可采用格雷碼與相移法相結(jié)合的結(jié)構(gòu)光測量方法對物體進(jìn)行三維測量。主要步驟總結(jié)如下:
1)用格雷碼對待測物體表面進(jìn)行粗略劃分,計算得到格雷碼周期;
2)投射相移圖案細(xì)分測量區(qū)域,以此獲得更高的分辨率,得到主相位值;
3)與格雷碼結(jié)合去除相位包裹,得到整個測量區(qū)域的絕對相位。
理想情況下,格雷碼條紋與相移圖案周期完全相同,周期次數(shù)k與相位主值θ同時突變,絕對相位值ψ單調(diào)遞增[18]。然而受環(huán)境因素干擾,兩者之間一般存在著周期錯位,即ψ(x,y+1)-ψ(x,y)≈2π。考慮環(huán)境影響,當(dāng)ψ(x,y+1)-ψ(x,y)≥3/2π,令k(x,y)=k(x,y)+1,以確保格雷碼條紋與相移周期一致。
為驗證基于結(jié)構(gòu)光的雙目三維測量方法的可行性,搭建如圖4所示的三維測量系統(tǒng),包括2個焦距為12 mm的M1214-MP2-computar鏡頭,一臺Acer K132投影儀(分辨率為1280×800)和電腦一臺。
圖4 三維測量系統(tǒng)
被測物以吊鉤為例,考慮到吊鉤表面為黑色,會吸收所有色光,導(dǎo)致相機(jī)無法拍攝到物體條紋圖像。即在投射結(jié)構(gòu)光時,圖像上物體每點始終為黑色,灰度值始終為0。為了更好地對物體進(jìn)行三維重構(gòu),降低物體表面顏色的影響,應(yīng)先向物體表面噴涂反差增強(qiáng)劑FC-5,形成一層白色薄膜,增強(qiáng)視覺反差。
在利用棋盤完成雙相機(jī)的標(biāo)定后,向物體依次投射格雷碼和相移圖案,采集處理左右相機(jī)拍攝到圖像,生成物體模型。如圖5所示,其中圖5(a)為投射格雷碼圖案的圖像,圖5(b)為投射相移圖案的圖像,圖5(c)為吊鉤實物圖,圖5(d)為測量得到的點云并重建表面的結(jié)果。
(a) 格雷碼圖像 (b) 相移圖像
(c)吊鉤實物圖 (d)吊鉤模型圖5 吊鉤實物及測量數(shù)據(jù)
為了驗證三維測量的精度,選擇吊鉤上的字母“1”,“K”的邊角點A,B,C,在測量數(shù)據(jù)中計算任意2點間的距離,并與單目結(jié)構(gòu)光測量結(jié)果作比較,結(jié)果如表1所示。在表1中,測量距離1和絕對誤差1為雙目結(jié)構(gòu)光測量結(jié)果,測量距離2和絕對誤差2為單目結(jié)構(gòu)光測量結(jié)果。實際距離采用SATA91511數(shù)顯式游標(biāo)卡尺測得,精度為±0.02 mm。
表1 三維測量誤差分析/mm
采樣點指標(biāo)項實際距離測量距離1絕對誤差1測量距離2絕對誤差2AB13.1413.050.0911.911.23BC75.7575.330.4275.070.68AC66.9667.310.3567.410.45
由表1可知,采用雙目結(jié)構(gòu)光測量提高了測量的精度,三維測量誤差精度達(dá)到了毫米級,能夠很好地反映物體三維形貌。
三維測量技術(shù)在工業(yè)產(chǎn)品測量與設(shè)計、文物保護(hù)、醫(yī)學(xué)檢測等方面有著重要的作用,如何提高三維測量的精度和速度,減少環(huán)境的影響則是三維測量技術(shù)的重點和難點。本文將結(jié)構(gòu)光技術(shù)與雙目視覺系統(tǒng)相結(jié)合,回避了傳統(tǒng)雙目視覺中匹配困難和結(jié)構(gòu)光測量中投影儀標(biāo)定困難的2個難題,優(yōu)化了系統(tǒng)設(shè)計,提高了測量的精度。在簡單論述相機(jī)標(biāo)定和結(jié)構(gòu)編解碼的原理的基礎(chǔ)上,進(jìn)行了實驗,論證了方法的可行性。實際測量中,有時除了獲取物體三維數(shù)據(jù)外,還需獲取其表面紋理信息,筆者今后將致力于物體的紋理映射和多角度的點云拼接方法的研究。
[1] 趙小輝,丁玲,王磊. 三維光學(xué)形貌測量系統(tǒng)在飛機(jī)研制中的應(yīng)用前景[J]. 民用飛機(jī)設(shè)計與研究, 2012(S1):11-15.
[2] 李靖,王煒,張茂軍. 雙目立體視覺和編碼結(jié)構(gòu)光相結(jié)合的三維重建方法[J]. 計算機(jī)應(yīng)用, 2012,32(S2):154-158.
[3] Sotoodeh S, Gruen A, Hanusch T. Integration of structured light and digital camera image data for the 3D reconstruction of an ancient globe[C]// The International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences. 2008:367-372.
[4] 涂顏帥. 基于時間頻率編碼的高速光學(xué)三維測量及應(yīng)用研究[D]. 金華:浙江師范大學(xué), 2015.
[5] 胡亞利,馬兆敏,胡蓉,等. 基于視覺測量障礙位置的車載攝像機(jī)標(biāo)定[J]. 科學(xué)技術(shù)與工程, 2014,14(31):249-251.
[6] 楊宏偉,陳利峰. 新型雙目相機(jī)運動控制系統(tǒng)設(shè)計[J]. 長春理工大學(xué)學(xué)報(自然科學(xué)版), 2015,38(6):108-113.
[7] 李芳芳. 透鏡畸變校正算法比較分析[J]. 測繪, 2010,33(5):225-228.
[8] Zhang Z. A flexible new technique for camera calibration[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2000,22(11):1330-1334.
[9] 劉寶元,邢冀川. 基于激光三角法貨車體積測量系統(tǒng)的標(biāo)定研究[J]. 光學(xué)儀器, 2015,37(3):189-194.
[10] 盧傳澤. 雙目立體視覺三維信息獲取技術(shù)研究[D]. 廣州:廣東工業(yè)大學(xué), 2013.
[11] 余洪山. 主動立體視覺關(guān)鍵技術(shù)及其應(yīng)用研究[D]. 長沙:湖南大學(xué), 2003.
[12] 陽光. 一種結(jié)構(gòu)光法測量物體深度的方法及裝置:CN103322937A[P]. 2013-09-25.
[13] 馬俊. 基于結(jié)構(gòu)光的雙目立體測量[D]. 哈爾濱:黑龍江大學(xué), 2016.
[14] 宋昌江. 基于雙目視覺的三維物體表面測量系統(tǒng)設(shè)計與實現(xiàn)[D]. 哈爾濱:哈爾濱工業(yè)大學(xué), 2012.
[15] 朱昱. 數(shù)字條紋投影三維形貌測量技術(shù)[D]. 合肥:合肥工業(yè)大學(xué), 2014.
[16] Scharstein D, Szeliski R. High-accuracy stereo depth maps using structured light[C]// Proceedings of 2003 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. 2003,1:I-195-I-202.
[17] 王洋. 基于中國剩余定理的模擬編碼結(jié)構(gòu)光三維測量方法研究[D]. 哈爾濱:哈爾濱理工大學(xué), 2014.
[18] 姜濤. 反求工程中融合特征捕捉的光學(xué)三維測量方法研究及系統(tǒng)開發(fā)[D]. 上海:上海交通大學(xué), 2005.