甘曉川 孫安斌 葉 欣 馬驪群
(中航工業(yè)北京長城計(jì)量測試技術(shù)研究所,北京 100095)
視覺測量技術(shù)是建立在計(jì)算機(jī)視覺研究基礎(chǔ)上的一門新的檢測技術(shù),其研究重點(diǎn)是物體的幾何尺寸及物體在空間的位置、姿態(tài)等的測量[1]。視覺測量的分類方法有多種,其一是按所用視覺傳感器數(shù)量可以分為單目視覺測量、雙目視覺(立體視覺)測量和三(多)目視覺測量等[2]。其中,單相機(jī)位姿測量系統(tǒng)(以下簡稱單目系統(tǒng))是指僅使用單臺(tái)圖像傳感器采集圖像,經(jīng)過對圖像的處理計(jì)算,實(shí)現(xiàn)對被測物的6個(gè)參數(shù),即3個(gè)平移參數(shù)和3個(gè)旋轉(zhuǎn)參數(shù)進(jìn)行測量的系統(tǒng)。一般是由成像原件(多為CCD或CMOS)、光學(xué)鏡頭、濾光片、目標(biāo)靶、測量軟件等組成。單目系統(tǒng)由于具有非接觸、結(jié)構(gòu)簡單、標(biāo)定步驟少等優(yōu)點(diǎn)而受到關(guān)注,多用于機(jī)器人自主導(dǎo)航、手眼系統(tǒng)、目標(biāo)對接等任務(wù)中。目前,位置測量誤差能達(dá)到0.2mm,角度誤差能達(dá)到0.05°[3]。
在實(shí)際的測量任務(wù)中,可能不需要測量所有的參數(shù)或者僅對某個(gè)參數(shù)有測量精度要求。例如,僅關(guān)心被測物體相對于相機(jī)光軸的轉(zhuǎn)動(dòng)。本文針對這種需求,設(shè)計(jì)和實(shí)現(xiàn)了一種單目系統(tǒng),用于測量被測工件沿相機(jī)光軸方向的轉(zhuǎn)角,并利用多齒分度臺(tái)對本系統(tǒng)的測量誤差進(jìn)行了驗(yàn)證。
在本測量任務(wù)中,需要測量被測零件沿自身主軸方向的旋轉(zhuǎn)角,如圖1所示。測量時(shí)相機(jī)正對被測物,并且相機(jī)和被測物體沒有相對運(yùn)動(dòng)。根據(jù)工件的使用要求相機(jī)的工作距離為600mm,被測物體直徑約150mm,進(jìn)過計(jì)算,選擇鏡頭的焦距為16mm。根據(jù)相機(jī)校準(zhǔn)和使用過程中需要達(dá)到一定的景深范圍,選擇了F4的光圈,此時(shí)景深大約為30mm??紤]到使用環(huán)境為實(shí)驗(yàn)室環(huán)境,具備常規(guī)的光照條件,所以采用被動(dòng)照明方式。
本系統(tǒng)使用的CCD相機(jī)型號(hào)為DH-SV1421GM,像素?cái)?shù)量為1,392×1,040,像素尺寸為4.65μm×4.65μm。由于試驗(yàn)條件限制沒有直接使用16mm鏡頭,而是使用了8mm定焦鏡頭Computar M0814-MP2和2倍擴(kuò)倍鏡Computar EX2C,組成等效焦距16mm的定焦鏡頭,對試驗(yàn)結(jié)果沒有影響。在被測工件面對相機(jī)的端面上,安裝有棋盤板。棋盤板與被測物固定在一起,可一同旋轉(zhuǎn),如圖1所示。
圖1 系統(tǒng)組成示意圖
目標(biāo)物體位姿測量方法一般可分為兩種[4]:一是利用標(biāo)定得到的攝像機(jī)外部參數(shù)確定攝像機(jī)坐標(biāo)系與物體坐標(biāo)系的轉(zhuǎn)換關(guān)系,當(dāng)目標(biāo)物體在空間坐標(biāo)系中的位置發(fā)生改變時(shí),物體在空間坐標(biāo)系的坐標(biāo)就相應(yīng)地發(fā)生變化,物體位姿測量就是要求取目標(biāo)物體在空間坐標(biāo)系下的位姿信息;二是設(shè)目標(biāo)物體在空間坐標(biāo)系中的坐標(biāo)相對固定,當(dāng)目標(biāo)物體發(fā)生移動(dòng)時(shí),可假設(shè)空間坐標(biāo)系隨目標(biāo)物體一起移動(dòng),這樣空間坐標(biāo)系的坐標(biāo)原點(diǎn)不是固定不變的,而物體在空間坐標(biāo)系中的位姿是保持不變的,我們所要求取的是攝像機(jī)坐標(biāo)系與隨目標(biāo)物體一起移動(dòng)的空間坐標(biāo)系之間的轉(zhuǎn)換關(guān)系。
本文中我們采用的是第二種方法。
1.3.1成像模型和坐標(biāo)系
關(guān)于相機(jī)的針孔成像模型和畸變模型,有很多文獻(xiàn)可以參考,如文獻(xiàn)[5-6],在此不再詳述,為了便于描述,僅將常用的坐標(biāo)系,物體坐標(biāo)系、相機(jī)坐標(biāo)系、像素坐標(biāo)系在圖2中表示出來。Oc為相機(jī)鏡頭光心,Xc軸與Yc軸分別與圖像平面的x軸和y軸平行,Zc軸相機(jī)的光軸,它垂直于圖像平面,與圖像平面的交點(diǎn),即為圖像坐標(biāo)系的原點(diǎn)Oxy。
圖2 坐標(biāo)系示意圖
設(shè)物體上有一點(diǎn)Pw(xw,yw,zw),經(jīng)過兩次的坐標(biāo)變換得到在相機(jī)坐標(biāo)系下的坐標(biāo)p(u,v)。采用針孔模型來描述成像的過程可分成兩步,即兩次坐標(biāo)變換。第一次是從物體坐標(biāo)系變換到相機(jī)坐標(biāo)系。
(1)
其中,
R為3×3旋轉(zhuǎn)矩陣,R-1=RT,detR=1(正交單位矩陣);T為3×1平移矩陣。第二次是從相機(jī)坐標(biāo)系變換到像素坐標(biāo)系。
(2)
p′=MR′P′
(3)
此處,P′可以理解為棋盤板上各個(gè)角點(diǎn),其坐標(biāo)為已知,p′為各角點(diǎn)對應(yīng)的在圖像上的坐標(biāo)。M為相機(jī)內(nèi)參數(shù),可事先通過校準(zhǔn)來確定其數(shù)值。R′為外參數(shù),為待求。求解公式(3),就可以得到R′中的r1、r2,進(jìn)而得到
(4)
1.3.2相機(jī)校準(zhǔn)
相機(jī)校準(zhǔn)所要解決的問題就是建立物體的世界坐標(biāo)與攝像機(jī)內(nèi)圖像的像平面坐標(biāo)的轉(zhuǎn)換關(guān)系。在此實(shí)質(zhì)上將攝像機(jī)標(biāo)定問題轉(zhuǎn)換為求兩平面——攝像機(jī)成像平面和目標(biāo)平面之間的透視投影矩陣。攝像機(jī)標(biāo)定的作用就是一旦確立了這種關(guān)系,只要知道了攝像機(jī)內(nèi)圖像的像平面坐標(biāo),我們就可以知道物體的世界坐標(biāo)了,知道物體的世界坐標(biāo)也就知道它在攝像機(jī)內(nèi)圖像的像平面坐標(biāo)了。
相機(jī)內(nèi)參數(shù)校準(zhǔn)方法有多種,其中使用標(biāo)準(zhǔn)板的方法,校準(zhǔn)過程比較簡易,能獲得比較滿意的結(jié)果,本文中的標(biāo)準(zhǔn)板使用了9×6的棋盤板圖樣來校準(zhǔn)相機(jī)。詳細(xì)的過程可參見文獻(xiàn)[5-7]。圖3為用于校準(zhǔn)相機(jī)內(nèi)參數(shù)的圖像之一。
圖3 校準(zhǔn)相機(jī)的圖像
1.3.3外參數(shù)的計(jì)算
在不進(jìn)行調(diào)節(jié)的情況下,相機(jī)的內(nèi)參數(shù)是不變的,這也是相機(jī)能進(jìn)行測量的一個(gè)基礎(chǔ)。每幅圖像都有自己的外參數(shù),它包含了被測物體坐標(biāo)系與相機(jī)坐標(biāo)系之間的旋轉(zhuǎn)和平移關(guān)系。正是因?yàn)椴煌瑘D像的外參數(shù)不同,也就是物體坐標(biāo)系在相機(jī)坐標(biāo)系中的位置的不同,使得我們才能利用外參數(shù)來計(jì)算兩個(gè)坐標(biāo)系之間的關(guān)系。計(jì)算外參數(shù)時(shí)需要使用事先已經(jīng)通過相機(jī)校準(zhǔn)得到的內(nèi)參數(shù),用于減小鏡頭畸變對測量結(jié)果的影響。
1.3.4旋轉(zhuǎn)角度的計(jì)算
在實(shí)際測量中,相機(jī)的位置固定不動(dòng),被測物體繞自身軸線(與相機(jī)光軸大致平行)旋轉(zhuǎn)一定角度,該角度即為被測量。對該旋轉(zhuǎn)角度進(jìn)行測量,實(shí)際上就是求解R矩陣。從R矩陣即可求解出物體坐標(biāo)系分別繞x軸、y軸和z軸各自的旋轉(zhuǎn)角度a、β和g。由
(5)
可得,
(6)
g即為所求的角度。
測量軟件在VS2010開發(fā)環(huán)境下,利用C#語言調(diào)用了部分Emgu CV 2.4.2.1777的數(shù)據(jù)結(jié)構(gòu)和函數(shù),編寫了測量軟件。Emgu CV是Open CV的C#版本,對其中的數(shù)據(jù)結(jié)構(gòu)和函數(shù)進(jìn)行了封裝。關(guān)于Open CV和Emgu CV的更多信息可參見文獻(xiàn)[8-11]。測量軟件具有的主要功能有:
1)識(shí)別圖像中的棋盤板圖像,獲取角點(diǎn)在圖像中的坐標(biāo);
2)利用棋盤板圖像校準(zhǔn)相機(jī),獲得相機(jī)的內(nèi)參數(shù);
3)計(jì)算所獲得的內(nèi)參數(shù)的重投影誤差;
4)計(jì)算測量圖像的外參數(shù),并利用外參數(shù)解算得到g角。
測量角度的過程并不復(fù)雜。步驟如下:
1)調(diào)整相機(jī)與被測物體之間的距離和角度,使得棋盤板幾乎位于圖像的中間部分,并且盡可能的正對被測件,還要盡可能覆蓋較大的面積。這是為了保證a和β的角度符合測量要求,一般不超過5°即可;
2)用標(biāo)準(zhǔn)板對相機(jī)進(jìn)行校準(zhǔn),獲得相機(jī)的內(nèi)參數(shù)。標(biāo)準(zhǔn)板要充分覆蓋圖像區(qū)域,標(biāo)準(zhǔn)板上的特征點(diǎn)數(shù)量要充分多;
3)分別對旋轉(zhuǎn)前后的被測零件拍照,用事先得到的畸變參數(shù)對測量的圖像進(jìn)行矯正,減小畸變對測量結(jié)果的影響;
4)最后,分別計(jì)算兩幅圖像的外參數(shù),進(jìn)而計(jì)算兩幅圖像各自的g角,它們的差即為被測零件的旋轉(zhuǎn)角度。
測量任務(wù)要求能實(shí)現(xiàn)不超過3′的測角誤差,選擇型號(hào)為WDFT-360E,編號(hào)為30507的360齒的多齒分度臺(tái)作為角度的標(biāo)準(zhǔn)器,見圖4,用于驗(yàn)證系統(tǒng)的測角精度。
圖4 多齒分度臺(tái)和目標(biāo)板的圖像
將相同的棋盤板圖像固定在多齒分度臺(tái)的表面上,從分度臺(tái)的0°開始,以10°為步距,一直測量到360°,每個(gè)位置拍攝一幅圖像,共測量37個(gè)位置。由于多齒分度臺(tái)的最大分度間隔誤差不超過2.0″,遠(yuǎn)小于系統(tǒng)要求的測角誤差,此處將轉(zhuǎn)臺(tái)的轉(zhuǎn)角不加修正值使用。分別計(jì)算每幅圖像的g參數(shù),角度測量誤差曲線圖見圖5,角度誤差測量結(jié)果見表1。
圖5 角度測量誤差曲線
表1 角度誤差測量結(jié)果
續(xù)表
注:數(shù)學(xué)上反正切函數(shù)的值域是±90°,所以此處給出的g角也是此角度。在計(jì)算角度增量時(shí),加上了180°或者360°的角度修正量,使得角度范圍在0°~360°范圍內(nèi),便于與多齒分度臺(tái)的角度進(jìn)行誤差計(jì)算。
文中介紹了在我所設(shè)計(jì)實(shí)現(xiàn)的一種非接觸的旋轉(zhuǎn)角度測量系統(tǒng),詳細(xì)的給出了該角度測量系統(tǒng)的構(gòu)成和原理。該系統(tǒng)利用棋盤板圖像實(shí)現(xiàn)對相機(jī)內(nèi)參數(shù)的校準(zhǔn),進(jìn)而實(shí)現(xiàn)了對被測零件圖像外參數(shù)的計(jì)算,利用外參數(shù)與旋轉(zhuǎn)角度之間的關(guān)系,最后得到了旋轉(zhuǎn)角度。對測量的步驟進(jìn)行了說明。利用立式多齒分度臺(tái)作為標(biāo)準(zhǔn)器,對系統(tǒng)的測角誤差進(jìn)行了測量,試驗(yàn)數(shù)據(jù)表明,測量誤差不超過±0.01°,取得了較理想的結(jié)果。
實(shí)驗(yàn)中發(fā)現(xiàn),目標(biāo)板覆蓋圖像較大范圍時(shí)能獲得更小的測角誤差。所以要根據(jù)使用要求,合理的設(shè)計(jì)相機(jī)的工作距離,選擇適當(dāng)焦距的鏡頭。
由于條件限制,還有可以改進(jìn)的地方。如選用畸變更小的鏡頭,選用更高分辨率的CCD,提高棋盤板的制造精度等。目前每幅圖像的處理時(shí)間平均為0.2s~0.3s,還可以進(jìn)一步優(yōu)化測量軟件提高處理速度。
[1]胡寶潔,曹密,熊偉,等.基于立體視覺的目標(biāo)姿態(tài)測量技術(shù).計(jì)算機(jī)測量與控制[J].2007,15(1):27-28
[2]吳斌,薛婷,邾繼貴,等.任意位姿平面靶標(biāo)實(shí)時(shí)立體視覺傳感器標(biāo)定.光電子·激光[J].2006,2007(11):1293-1296
[3]解邦福.基于單目視覺的剛體位姿測量系統(tǒng)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2009
[4]趙軍.基于單目視覺的物體位姿測量方法研究[D].安徽:合肥工業(yè)大學(xué),2005
[5]Zhang Z.Y., A Flexible New Technique for Camera Calibration[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2000,22(11): 1330-1334
[6]甘曉川,赫明釗,葉孝佑.數(shù)字近景攝影測量中相機(jī)內(nèi)參數(shù)校準(zhǔn).計(jì)量學(xué)報(bào),2012,33(5):391-394
[7]張寧,張友彬,張召才,等.基于同市場參考點(diǎn)的落點(diǎn)坐標(biāo)測量系統(tǒng)的設(shè)計(jì)與應(yīng)用.計(jì)量技術(shù),2008,(4):12-14
[8]Gary Bradski, Adrian Kaebler,學(xué)習(xí)OpenCV(中文版)(第一版)[M].北京:清華大學(xué)出版社,2009
[9]http://www.emgu.com/wiki/index.php/Main_Page,2013-09-22
[10]http://sourceforge.net/projects/emgucv/,2013-09-22
[11]http://www.emgu.com/forum/,2013-09-22