文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2015.12.032
中文引用格式: 劉念,鄒湘軍,葉敏,等. 復(fù)雜環(huán)境下的多工件定位研究究[J].電子技術(shù)應(yīng)用,2015,41(12):120-123,128.
英文引用格式: Liu Nian,Zou Xiangjun,Ye Min,et al. Research of multiple workpieces positioning under complex environment[J].Application of Electronic Technique,2015,41(12):120-123,128.
0 引言
機(jī)器視覺技術(shù)具有非接觸、工作穩(wěn)定、實(shí)時(shí)性高等優(yōu)點(diǎn)[1]。單目視覺作為機(jī)器視覺中的重要組成部分,多被應(yīng)用于目標(biāo)的檢測和測量中,且能獲得較高的精度[2-4]。然而在工業(yè)生產(chǎn)中,常常需要視覺系統(tǒng)在復(fù)雜作業(yè)環(huán)境下為抓取機(jī)器人提供精確的工件位姿信息,即為單目視覺下的工件定位問題。文獻(xiàn)[5]中給出了一種單目視覺下的機(jī)器人定位系統(tǒng),但該系統(tǒng)需要對(duì)每個(gè)工件進(jìn)行人為標(biāo)記,無法滿足實(shí)時(shí)性要求。文獻(xiàn)[6]中設(shè)計(jì)了一種處理簡單、計(jì)算準(zhǔn)確的單目視覺定位系統(tǒng),該系統(tǒng)只針對(duì)單一目標(biāo)且無法適應(yīng)多目標(biāo)、光線變化等復(fù)雜環(huán)境。文獻(xiàn)[7]則提出基于共面兩點(diǎn)一線特征的單目視覺定位,由于需要給定共面特征點(diǎn)和直線特征,因此對(duì)定位工件要求特殊,無法滿足通用性。以上研究的工作對(duì)象多為單一目標(biāo)且定位環(huán)境較為適宜。但是,在實(shí)際車間作業(yè)中,工件往往處在多目標(biāo)雜亂分布、光照不均勻及部分遮擋等條件下。鑒于工業(yè)生產(chǎn)環(huán)境的復(fù)雜性,本文首先討論了雜亂背景、部分遮擋及非線性光照條件下魯棒的多目標(biāo)識(shí)別方法,在張正友棋盤標(biāo)定法確定攝像機(jī)內(nèi)參數(shù)的基礎(chǔ)上,結(jié)合最小二乘法將目標(biāo)在圖像坐標(biāo)系下的位置轉(zhuǎn)換到世界坐標(biāo)系中,完成目標(biāo)的精確定位。
1 多目標(biāo)的定位系統(tǒng)構(gòu)成及工作原理
多目標(biāo)的平面定位系統(tǒng)主要由圖像采集、照明光源、機(jī)械支架及計(jì)算機(jī)軟件4部分構(gòu)成,圖像采集由維視公司型號(hào)MV120SC定焦工業(yè)攝像機(jī)完成,照明光源由LED環(huán)形光源構(gòu)成,機(jī)械支架上的豎直導(dǎo)軌確保CCD攝像機(jī)視場可調(diào),計(jì)算機(jī)軟件部分則由OpenCV開源視覺庫開發(fā),其具體結(jié)構(gòu)示意圖如圖1所示。
圖2為該定位系統(tǒng)的主要工作流程圖,系統(tǒng)的工作原理為:CCD攝像機(jī)獲取目標(biāo)圖像,經(jīng)過圖像預(yù)處理后與離線生成的模板邊緣圖像進(jìn)行匹配,確定目標(biāo)所在的圖像像素坐標(biāo)(u,v)。借助精度為0.2 mm的標(biāo)定板通過最小二乘法獲取攝像機(jī)坐標(biāo)系與世界坐標(biāo)系之間的轉(zhuǎn)換矩陣,結(jié)合單目攝像機(jī)標(biāo)定結(jié)果及目標(biāo)的像素坐標(biāo)(u,v),經(jīng)過坐標(biāo)轉(zhuǎn)換完成目標(biāo)在世界坐標(biāo)系下的位姿定位。
2 基于邊緣梯度的模板匹配
傳統(tǒng)的模板匹配算法,對(duì)噪點(diǎn)、光照變化、遮擋及小角度旋轉(zhuǎn)等因素干擾的適應(yīng)性和魯棒性不高[8],很難滿足工業(yè)生產(chǎn)中惡劣環(huán)境的要求。本文采用一種基于邊緣梯度的模板匹配算法,先利用邊緣檢測算子獲取模板圖像精確的邊緣信息,然后計(jì)算對(duì)應(yīng)邊緣點(diǎn)的梯度,最后根據(jù)定義的相似度度量計(jì)算匹配得分[8-10],完成匹配過程。其中,采用圖像金字塔和邊緣點(diǎn)采樣減少計(jì)算量并加快算法運(yùn)行時(shí)間。
2.1 相似性度量函數(shù)
設(shè)目標(biāo)模板圖像的所有邊緣像素點(diǎn)組成點(diǎn)集pi=(xi,yi)T,與之對(duì)應(yīng)的梯度為di=(ti,ui)T,i=1,…,n。其中,邊緣點(diǎn)的梯度可由Sobel邊緣檢測算子濾波得到。對(duì)于待搜索圖像,也通過Sobel邊緣檢測算子濾波,計(jì)算出圖像中每個(gè)點(diǎn)(x,y)的梯度為ex,y=(vx,y,wx,y)T。在待搜索圖像的某一點(diǎn)q=(x,y)T處,模板圖像與待搜索圖像進(jìn)行匹配,計(jì)算模板中所有邊緣點(diǎn)的歸一化梯度和待搜索圖像對(duì)應(yīng)點(diǎn)處的歸一化梯度點(diǎn)積的總和,作為匹配得分。變換后的模板在待搜索圖像點(diǎn)q處的相似性度量表示如下:
2.2 算法的加速策略
2.2.1 圖像金字塔分層搜索
采用圖像金字塔搜索策略,可以指數(shù)級(jí)地減少計(jì)算量,加快算法運(yùn)行時(shí)間[11-12]。分別創(chuàng)建待搜索圖像和模板的圖像金字塔,為盡可能獲得匹配目標(biāo),通常在金字塔的頂層需要進(jìn)行遍歷搜索。每個(gè)潛在的匹配位置的得分都必須要大于smin,并且需要確定該位置的匹配分值為局部最大值。在圖像金字塔頂層獲得了潛在的匹配位置后,圖像金字塔的下一層在一個(gè)5×5×5的鄰域內(nèi)進(jìn)行搜索,尋找得分最大值并篩選誤匹配點(diǎn),直至圖像金字塔最底層。
2.2.2 邊緣點(diǎn)采樣
在圖像的底層搜索時(shí),由于模板圖像逐漸變大而使邊緣點(diǎn)個(gè)數(shù)顯著增加,會(huì)帶來更多的算法時(shí)間消耗。故提出一種邊緣點(diǎn)采樣的方法,即:在底層搜素時(shí),首先運(yùn)用canny邊緣檢測算子確定初始邊緣點(diǎn),然后選取圖像中偶數(shù)行和偶數(shù)列的邊緣點(diǎn)作為最終的邊緣點(diǎn),代入算法中進(jìn)行計(jì)算。
3 坐標(biāo)系轉(zhuǎn)換
在圖像的模板匹配完成后,可以得到目標(biāo)在圖像坐標(biāo)系下的像素坐標(biāo)(u,v)。結(jié)合攝像機(jī)標(biāo)定的結(jié)果,可以將(u,v)轉(zhuǎn)換到攝像機(jī)坐標(biāo)系下。由于相機(jī)制造工藝的影響,攝像機(jī)坐標(biāo)系Oc-xyz無法準(zhǔn)確測定,因此還需將目標(biāo)位置信息轉(zhuǎn)換到可見的世界坐標(biāo)系Ow-xyz下。各坐標(biāo)系之間關(guān)系如圖3所示。
3.1 攝像機(jī)標(biāo)定
攝像機(jī)想要精確地獲得主點(diǎn)、焦距及畸變等內(nèi)部參數(shù),只能通過攝像機(jī)標(biāo)定來獲得。張正友等人提出的棋盤平面靶標(biāo)的標(biāo)定方法[13]簡單易行,只需將相機(jī)從不同角度拍攝棋盤的多幅圖像進(jìn)行運(yùn)算即可。本文采用張正友棋盤標(biāo)定法,結(jié)合OpenCV2.3.1庫中的函數(shù)在VS2008平臺(tái)上運(yùn)行自行編寫的標(biāo)定程序,求解出相機(jī)的內(nèi)參數(shù)矩陣M及鏡頭畸變系數(shù)d。其中:
式中:fx、fy分別為圖像軸X、Y軸上的像素焦距,(cx,cy)為光軸中心點(diǎn)的像素坐標(biāo)。k1、k2為徑向畸變參數(shù),p1、p2為切向畸變參數(shù)。
3.2 世界坐標(biāo)系設(shè)定
以目標(biāo)所在的棋盤格平面為世界坐標(biāo)系的x-o-y平面,世界坐標(biāo)系的z軸垂直x-o-y平面向上。選取棋盤上左上角的角點(diǎn)為坐標(biāo)系原點(diǎn),如圖4所示。
3.3 攝像機(jī)外參數(shù)描述
結(jié)合攝像機(jī)標(biāo)定的結(jié)果式(2)、式(3),可以將目標(biāo)的像素坐標(biāo)(u,v)轉(zhuǎn)換成攝像機(jī)坐標(biāo)系下的三維坐標(biāo)。其轉(zhuǎn)換過程如下:
式中,(u′,v′)為矯正后的像素坐標(biāo),f為矯正函數(shù),M為攝像機(jī)內(nèi)參數(shù)矩陣,(xc,yc,zc)為目標(biāo)在攝像機(jī)坐標(biāo)系下的三維坐標(biāo)。
攝像機(jī)外參數(shù)模型描述了攝像機(jī)坐標(biāo)系在世界坐標(biāo)系中的空間位置信息,設(shè)目標(biāo)點(diǎn)P在攝像機(jī)坐標(biāo)系下的坐標(biāo)為(xc,yc,zc),在世界坐標(biāo)系下的坐標(biāo)為(xw,yw,zw),則攝像機(jī)外參數(shù)矩陣可以表示為[15]:
式中,r1=[r1x r1y r1z]T、r2=[r2x r2y r2z]T、r3=[r3x r3y r3z]T分別為xw、yw、zw軸在攝像機(jī)坐標(biāo)系下的旋轉(zhuǎn)向量,t=[tx ty tz]T為世界坐標(biāo)系原點(diǎn)在攝像機(jī)坐標(biāo)系下的平移向量。
由于目標(biāo)點(diǎn)落在棋盤格平面上,故zw=0,結(jié)合式(4)、式(5)有:
由式(7)可知,tz≠0,故求出m中的8個(gè)未知數(shù)即可確定世界坐標(biāo)系與圖像坐標(biāo)系的轉(zhuǎn)換關(guān)系。棋盤格上的每個(gè)角點(diǎn)提供兩個(gè)方程,至少需要4個(gè)角點(diǎn)便可以求出m。將式(6)記為:A·m=B,對(duì)于整幅棋盤上的77個(gè)角點(diǎn),采用最小二乘法求解參數(shù)矩陣m:
4 實(shí)驗(yàn)結(jié)果與分析
攝像機(jī)采集到4種不同環(huán)境下的200張圖片,通過Opencv庫中的函數(shù)結(jié)合C++編程實(shí)現(xiàn)算法編程并對(duì)圖片進(jìn)行分析處理,實(shí)驗(yàn)環(huán)境為VS2008,實(shí)驗(yàn)?zāi)繕?biāo)為工業(yè)用矩形工件,實(shí)驗(yàn)平臺(tái)如圖4所示。將會(huì)以3個(gè)標(biāo)準(zhǔn)來評(píng)價(jià)多目標(biāo)復(fù)雜環(huán)境下的工件定位結(jié)果:多目標(biāo)復(fù)雜環(huán)境下的工件識(shí)別率、完成單個(gè)目標(biāo)定位所需的時(shí)間和工件的位姿定位誤差。
4.1 工件識(shí)別的準(zhǔn)確率
圖5給出4組實(shí)驗(yàn)圖像來驗(yàn)證工件識(shí)別的正確性和魯棒性:圖5(a)為正常條件下的工件識(shí)別匹配結(jié)果,圖5(b)為非線性光照條件下的工件識(shí)別匹配結(jié)果,圖5(c)為遮擋條件下的工件識(shí)別匹配結(jié)果,圖5(d)為雜亂背景下的工件識(shí)別匹配結(jié)果。4種不同場景下的實(shí)驗(yàn)圖片各有50張,每張圖片中的目標(biāo)隨機(jī)分布、工件個(gè)數(shù)為4到10個(gè)不等。運(yùn)行本文的工件識(shí)別算法,并依次統(tǒng)計(jì)算法識(shí)別率,不同環(huán)境下的結(jié)果如圖5和表1所示。
上述實(shí)驗(yàn)結(jié)果表明,對(duì)于部分遮擋、雜亂背景及非線性光照等條件下,該方法對(duì)多目標(biāo)進(jìn)行識(shí)別匹配具有較強(qiáng)的魯棒性。通過調(diào)節(jié)匹配閾值,可以提高多目標(biāo)條件下識(shí)別目標(biāo)的數(shù)量,但同時(shí)會(huì)存在誤匹配。在多目標(biāo)、復(fù)雜環(huán)境下,工件正確匹配的識(shí)別率均達(dá)到80%以上。
4.2 定位單個(gè)工件的時(shí)間及定位誤差
工件完成識(shí)別定位的時(shí)間與獲取圖像的大小與計(jì)算機(jī)硬件處理速度有關(guān)。本文中選取的模板大小為50×50,待搜索圖像大小為1 280×960。在不同計(jì)算機(jī)硬件平臺(tái)下的算法運(yùn)行時(shí)間見表2。由表2可知,本文算法與計(jì)算機(jī)處理器類型密切相關(guān);在正常背景、雜亂背景和非線性光照下,算法的平均匹配時(shí)間相差不大;部分遮擋條件下,算法運(yùn)算時(shí)間最長,這是由于遮擋條件下識(shí)別的準(zhǔn)確率較其他3種條件下低;算法的運(yùn)行時(shí)間均在0.5 s以內(nèi)。
4.3 工件的位姿定位誤差
對(duì)于工件的姿態(tài)角度定位精度,由于實(shí)現(xiàn)條件的限制,故采用仿真圖像進(jìn)行驗(yàn)證。隨機(jī)截取10幅工件目標(biāo)圖像,分別將該工件目標(biāo)圖像旋轉(zhuǎn)25°、55°、75°、105°、135°后,運(yùn)行本文算法求解工件姿態(tài)角度并與實(shí)際旋轉(zhuǎn)角度比較,計(jì)算姿態(tài)角度的定位誤差。
本實(shí)驗(yàn)中,由于工件呈規(guī)則的中心對(duì)稱,因此目標(biāo)的定位誤差基準(zhǔn)為工件的幾何中心點(diǎn),即孔的中心。工件幾何中心的像素坐標(biāo),在式(3)中由算法給出,經(jīng)過式(4)轉(zhuǎn)換成世界坐標(biāo)系下平面坐標(biāo)。經(jīng)過實(shí)驗(yàn)統(tǒng)計(jì),得到200組實(shí)驗(yàn)數(shù)據(jù),根據(jù)測量所得工件實(shí)際平面坐標(biāo),求出工件目標(biāo)的定位誤差如表3所示。
由表3可知:均方根誤差衡量了觀測值與真值之間的偏差,故工件的定位誤差小于1 mm,姿態(tài)角度的定位精度小于1°。誤差的主要來源包括:算法的定位誤差及實(shí)驗(yàn)過程中工件中心的測量誤差等。由于實(shí)驗(yàn)中攝像機(jī)的光軸垂直于x-o-y平面,因此x、y方向上的誤差雖略有差別,但差別較小。由于識(shí)別算法的旋轉(zhuǎn)角度搜索步長設(shè)置為1°,而仿真實(shí)驗(yàn)的結(jié)果也驗(yàn)證了該算法的姿態(tài)角度定位精度小于1°。
5 結(jié)論
本文研究了多目標(biāo)復(fù)雜環(huán)境下的工件定位方法,通過快速、魯棒性高的基于邊緣梯度的模板匹配方法識(shí)別目標(biāo),并確定目標(biāo)在圖像中的位置。結(jié)合單目攝像機(jī)標(biāo)定結(jié)果,獲取圖像坐標(biāo)到實(shí)際世界坐標(biāo)系的投影轉(zhuǎn)換關(guān)系,最終得到目標(biāo)在三維空間中的精確平面位置信息。實(shí)驗(yàn)表明,該方法在復(fù)雜背景、非線性光照等惡劣環(huán)境下,能夠穩(wěn)定地識(shí)別多個(gè)目標(biāo),目標(biāo)定位的平均時(shí)間為0.5 s以內(nèi),目標(biāo)在x-o-y平面的定位精度小于1 mm,姿態(tài)角度定位精度小于1°,能滿足實(shí)際應(yīng)用要求。
參考文獻(xiàn)
[1] 張興華.基于機(jī)器視覺的目標(biāo)識(shí)別與測量算法的研究[D].濟(jì)南:山東大學(xué),2012.
[2] 趙連軍.單目三點(diǎn)位置測量精度分析[J].光學(xué)精密工程,2014,22(5):1192-1197.
[3] 惠鵬飛,苗鳳娟,陶佰睿,等.一種適用于PCB檢測的彩色圖像分割算法[J].電子技術(shù)應(yīng)用,2013,36(03):138-143.
[4] 張宇.一種基于機(jī)器視覺的圓型零件檢測技術(shù)[J].計(jì)算機(jī)工程,2008,34(19):185-187.
[5] 梁利嘉.基于單目視覺的機(jī)器人定位技術(shù)研究[D].秦皇島:燕山大學(xué),2014.
[6] 李星云.基于單目視覺的工業(yè)機(jī)器人定位系統(tǒng)的設(shè)計(jì)[J].機(jī)床與液壓,2015,43(9):35-38.
[7] 劉昶.基于共面二點(diǎn)一線特征的單目視覺定位[J].計(jì)算機(jī)應(yīng)用研究,2012,29(8):3145-3147.
[8] CARSTEN S.Similarity measures for occlusion,clutter,and illumination invariant object recognition[J].Lecture Notes in Computer Science,2001,2191:148-154.
[9] CARSTEN S.Occlusion,clutter,and illumination invariant object recognition[J].International Archives of Photogrammetry and Remote Sensing,2002:345-350.
[10] 趙振民,彭國華,符立梅.基于形狀模板的快速高精度可靠圖像匹配[J].計(jì)算機(jī)應(yīng)用,2010,30(2):441-444.
[11] TANIMOTO S L.Template matching in pyramids[J].Computer Graphics and Image Processing,1981,16(4):356-369.
[12] Rafael C.Gonzalez,Richard E.Wood.數(shù)字圖像處理(第三版)[M].北京:電子工業(yè)出版社,2013.
[13] ZHANG Z Y.A flexible new technique for camera calibration[J].IEEE Transaction on Pattern Analysis and Machine Intelligence,2000,22(11):1330-1334.
[14] 劉瑞禎,于仕琪.OpenCV教程[M].北京:北京航空航天大學(xué)出版社,2007.