方志強(qiáng),肖書浩,熊禾根,李公法
(1.武漢科技大學(xué) 機(jī)械自動(dòng)化學(xué)院,武漢 430081;2.武昌首義學(xué)院 機(jī)電與自動(dòng)化學(xué)院,武漢 430064)
伴隨著科技飛快發(fā)展,圖像匹配技術(shù)已經(jīng)應(yīng)用到計(jì)算機(jī)視覺、目標(biāo)定位檢測(cè)等諸多領(lǐng)域。匹配準(zhǔn)確度高和匹配速度快已成為應(yīng)用領(lǐng)域的迫切需要[1]。
圖像匹配一般基于像素灰度和圖像特征匹配。灰度匹配用空間二維滑動(dòng)模板進(jìn)行圖像匹配,特征匹配需先在原圖像中提取包括點(diǎn)、線、面等顯著特征,再建立特征匹配對(duì)應(yīng)關(guān)系;圖像特征相比像素,其數(shù)量少且匹配度量隨位置改變敏感,更易于找出匹配位置。目前圖像匹配仍是熱點(diǎn)和難點(diǎn)。最具代表性的是Lowe[2]在2004年提出SIFT算法。Bay等[3]提出SURF算法?,F(xiàn)在,國(guó)外學(xué)者如Talmi等[4]依靠目標(biāo)的外觀和幾何信息,提出具有變形多樣性和相似性的模板匹配。Buniatyan等[5]利用連續(xù)切片電鏡觀察腦圖像補(bǔ)丁量化,通過深度學(xué)習(xí),采用歸一化互相關(guān)提高模板匹配率。Hofhauser等[6]提出一種快速的模型變形算法和匹配度量標(biāo)準(zhǔn),以諧波圖像為依據(jù)獲得變形調(diào)節(jié)位移,利用一組稀疏的模型點(diǎn),對(duì)模板的變形進(jìn)行粗粒度重新分析,提高匹配效率。
本文針對(duì)引導(dǎo)機(jī)械手獲取目標(biāo)姿態(tài)實(shí)現(xiàn)抓取問題,設(shè)計(jì)一種基于輪廓特征匹配對(duì)工件姿態(tài)進(jìn)行定位的系統(tǒng)。以圖像關(guān)鍵外輪廓點(diǎn)集為匹配特征,采用相似度量法則進(jìn)行匹配判斷,引入貪婪值控制匹配速度和精度,最后采用最大值法和均值法篩選消除重配和誤配的匹配算法得到圖像坐標(biāo)系下目標(biāo)姿態(tài);通過攝像機(jī)標(biāo)定進(jìn)而確定圖像坐系與世界坐標(biāo)系的轉(zhuǎn)換關(guān)系,從而實(shí)現(xiàn)目標(biāo)在世界坐標(biāo)系中的精確姿態(tài)。
機(jī)械手引導(dǎo)系統(tǒng)結(jié)構(gòu)示意圖如圖1所示。其主要由圖像采集、圖像處理、通訊和機(jī)械臂驅(qū)動(dòng)四部分組成。本文重點(diǎn)分析在圖像處理部分中實(shí)現(xiàn)目標(biāo)平面定位的原理。其中圖像采集部分由工業(yè)相機(jī)采集平面圖像,環(huán)形光源提供光照;圖像處理部分,利用OpenCV視覺庫(kù)基于Visual Studio 2103在計(jì)算機(jī)平臺(tái)上進(jìn)行開發(fā)。
圖1 系統(tǒng)結(jié)構(gòu)示意圖
圖2所示系統(tǒng)定位工作流程。相機(jī)采集目標(biāo)圖像經(jīng)圖像預(yù)處理后與模板進(jìn)行邊緣輪廓匹配,得到目標(biāo)質(zhì)心像素坐標(biāo)和角度;利用相機(jī)標(biāo)定獲得相機(jī)參數(shù),通過最小二乘法獲得坐標(biāo)系轉(zhuǎn)換關(guān)系矩陣,最后借助像素坐標(biāo)和轉(zhuǎn)換矩陣得到目標(biāo)在世界坐標(biāo)系下的姿態(tài)。
圖2 系統(tǒng)定位工作流程
在特征匹配中輪廓相比較于其他特征其計(jì)算量小,抗噪能力強(qiáng)[7]。目標(biāo)姿態(tài)的確定包括質(zhì)心坐標(biāo)和相對(duì)旋轉(zhuǎn)角度兩部分,因此模板需要先進(jìn)行圖像仿射變換[8]后再在待測(cè)圖中平移遍歷以與某位姿的對(duì)象進(jìn)行匹配。圖像的旋轉(zhuǎn)形式如下:
其中點(diǎn)(x,y)為(x0,y0)經(jīng)旋轉(zhuǎn)變換之后的坐標(biāo),α=cosθ,β=sinθ,W,H、W',H'分別為旋轉(zhuǎn)前后圖像的寬和高。
圖3 向量匹配
圖3所示的是利用旋轉(zhuǎn)后的角度模板和待測(cè)圖輪廓點(diǎn)法線方向向量的相似度量法則,二者進(jìn)行匹配判斷:
其中Gxi,Gyi分別為某像素點(diǎn)X,Y方向向量對(duì)應(yīng)的梯度強(qiáng)度值;T,S分別為模板圖像和待檢測(cè)圖像;p表示組成模板外輪廓點(diǎn)個(gè)數(shù);S表示兩者相似得分閾值,S值越大相似度越高。式中通過歸一化使得S在[0,1]之間取值且不受遮擋、混亂影響,具有光照不變性[9]。
2.2.1 圖像預(yù)處理
若直接利用輪廓檢測(cè)應(yīng)用到圖像匹配中,有時(shí)達(dá)不到滿意的匹配效果且費(fèi)時(shí)。因此需對(duì)圖像進(jìn)行一些圖像處理,便于得到較為清晰輪廓。具體步驟如下:
1)對(duì)彩色圖進(jìn)行灰度處理將三通道變?yōu)閱瓮ǖ馈?/p>
2)利用Sobel算子提取輪廓點(diǎn)的梯度求幅值。
3)進(jìn)行非極大值抑制和滯后閾值處理確定有用邊界信息輪廓點(diǎn)。
4)Otsu閾值分割并利用輪廓面積去除部分噪聲和干擾輪廓。
2.2.2 旋轉(zhuǎn)角度步長(zhǎng)計(jì)算
根據(jù)模板目標(biāo)的幾何信息確定合適的搜索范圍后,需要確定合理的旋轉(zhuǎn)步長(zhǎng),如果角度過小可能會(huì)導(dǎo)致目標(biāo)重配而且耗時(shí),角度過大可能造成對(duì)象漏配。為此采用余弦定理依靠模板的有用輪廓信息自動(dòng)計(jì)算模板旋轉(zhuǎn)步長(zhǎng)。如圖4所示,假設(shè)O點(diǎn)表示模板輪廓質(zhì)心,輪廓總點(diǎn)數(shù)p,則質(zhì)心坐標(biāo)可表示為:
圖4 旋轉(zhuǎn)步長(zhǎng)示意圖
所有輪廓點(diǎn)距離質(zhì)心的歐氏距離L即為:
將距離質(zhì)心最遠(yuǎn)的歐式距離視為旋轉(zhuǎn)半徑,R=OH=ON,令NH為1個(gè)像素距離,求∠OO NH:
2.2.3 匹配策略
1)金字塔向下采樣確定搜索塔層。采用高斯金字塔算法就是為了剔除檢測(cè)圖像細(xì)節(jié)特征,保留所需要的大致輪廓,降低算法復(fù)雜度;利用2×2均值法通過此迭代得到完整金字塔,為避免盲目搜索以輪廓點(diǎn)為依據(jù),經(jīng)統(tǒng)計(jì)分析確定搜索塔層。在最高層獲得潛在匹配位置后在塔下一層5×5鄰域內(nèi)搜索,同步實(shí)現(xiàn)模板與待測(cè)圖匹配直至塔最底層。
2)遍歷搜索。根據(jù)自動(dòng)計(jì)算出的旋轉(zhuǎn)步長(zhǎng),從0°開始在待測(cè)圖中進(jìn)行遍歷搜索匹配,在匹配過程中模板模型使用相似度量與所要匹配對(duì)象的圖像進(jìn)行比較。相似度量的思想就是利用模板圖像輪廓點(diǎn)的梯度法向量進(jìn)行歸一化積和,在包含所有點(diǎn)的模型數(shù)據(jù)集上搜索圖像,使得搜索圖像中每個(gè)點(diǎn)的得分可知。如果模板模型和搜索圖像完美匹配,得分函數(shù)S值為1,如果該目標(biāo)不存在于搜索圖像中得分值為0。
3)匹配判斷。第一種方法是利用平均的性質(zhì),一開始不需要計(jì)算模板模型中的所有輪廓點(diǎn),可設(shè)置一個(gè)最低分Smin的相似得分值。因此為了檢查部分得分分?jǐn)?shù),必須先找到部分和Sq并且歸一化。其定義如下:
4)精匹配。所謂精匹配即是進(jìn)一步設(shè)限進(jìn)行篩選。經(jīng)之前的遍歷搜索匹配,滿足相似度量閾值的輪廓將被標(biāo)記。在搜索速度達(dá)標(biāo)的前提下,確保不規(guī)則的待測(cè)目標(biāo)在任何狀態(tài)下都能被識(shí)別到,人為地將搜索范圍擴(kuò)大至0°~360°,同時(shí)適當(dāng)減小Smin值和g值,這就導(dǎo)致有的目標(biāo)可能被多次匹配或誤配。為此,當(dāng)待測(cè)圖中的匹配目標(biāo)只有一個(gè)時(shí),通過式(9)將多次匹配的得分值通過比較,保留最大得分值作為匹配結(jié)果并標(biāo)記;當(dāng)待測(cè)圖中有多個(gè)目標(biāo)需匹配時(shí),利用式(10)求得得分平均值進(jìn)行篩選,提高匹配精度。
取檢測(cè)目標(biāo)所在平面為Owxwyw,zw軸垂直平面向上,則世界坐標(biāo)系可表示為Owxwzw;相機(jī)坐標(biāo)系表示為Ocxcyczc,相機(jī)光軸中心為Oc,zc軸平行于光軸。相機(jī)內(nèi)參模型可表示為:
式中fx和fy分別為X,Y軸方向上的像素焦距,(u0,v0)為Oc的圖像坐標(biāo),(xcyczc)為目標(biāo)在相機(jī)坐標(biāo)系中的坐標(biāo)。相機(jī)外參模型可表示為:
將式(13)表示為Am=B,由此只求出m便可知世界坐標(biāo)系與圖像坐標(biāo)系的轉(zhuǎn)換關(guān)系。采用張正友棋盤標(biāo)定法[10]求得相機(jī)內(nèi)參,對(duì)Owxwywzw中的n個(gè)已知點(diǎn)坐標(biāo),利用最小二乘法即得參數(shù)矩陣m:
由式(14)得到m后,根據(jù)圖像坐標(biāo)可求解出目標(biāo)對(duì)應(yīng)的世界坐標(biāo)。
實(shí)驗(yàn)檢測(cè)所用操作系統(tǒng)為Windows 10,并在Intel i5-2520M、2.50GHz主頻的CPU,4GB內(nèi)存的64位操作系統(tǒng)平臺(tái)上運(yùn)行。測(cè)試圖片分辨率(1280×960)由工業(yè)相機(jī)拍攝,實(shí)驗(yàn)設(shè)備和實(shí)驗(yàn)主要檢測(cè)對(duì)象如圖5所示。本論文主要從環(huán)境適應(yīng)性、穩(wěn)定性和時(shí)效性,測(cè)試算法的可行性。
適應(yīng)性即指待匹配圖中檢測(cè)的對(duì)象在遮擋,對(duì)比度低,噪聲等環(huán)境下,仍能被準(zhǔn)確匹配[11]。圖6中綠顏色小圓點(diǎn)表示輪廓質(zhì)心,紅色表示匹配到的目標(biāo)輪廓。在此環(huán)境下多目標(biāo)分散和多目標(biāo)小面積遮擋的匹配效果如圖5(a)、圖5(b)所示。
圖5 實(shí)驗(yàn)設(shè)備和檢測(cè)對(duì)象
圖6 復(fù)雜環(huán)境下匹配效果
為進(jìn)一步檢驗(yàn)本文算法的有效性,分別與SURF算法、SIFT算法、SIFT+RANSAC算法以及OpenCV輪廓匹配算法對(duì)復(fù)雜背景下的螺母目標(biāo)圖像進(jìn)行匹配檢測(cè)。其檢測(cè)效果如圖7所示,可以看出在實(shí)現(xiàn)目標(biāo)姿態(tài)獲取的情況下本文算法的優(yōu)越性更為突出。
圖7 特征匹配算法效果對(duì)比
穩(wěn)定性測(cè)試即為對(duì)檢測(cè)目標(biāo)進(jìn)行姿態(tài)匹配測(cè)試,當(dāng)機(jī)械手抓取目標(biāo)時(shí),需要將角度和質(zhì)心坐標(biāo)實(shí)時(shí)反饋給機(jī)械手控制系統(tǒng),因此兩者匹配正確與否決決定著機(jī)械手能否獲得目標(biāo)在世界坐標(biāo)系下準(zhǔn)確的姿態(tài)信息。各取鑰匙、工件1、工件2不同旋轉(zhuǎn)角度的圖片108副,分別分為3組,對(duì)單目標(biāo)圖像進(jìn)行無噪聲添加、添加噪聲方差為0.5的高斯噪聲、添加5000點(diǎn)的椒鹽噪聲處理后再進(jìn)行定位測(cè)試。圖8(a)和圖8(b)分別為正常情況下不對(duì)稱件鑰匙、對(duì)稱工件1和2在旋轉(zhuǎn)角度范圍內(nèi)所匹配的角度誤差折線圖。
圖8 角度測(cè)試
若滿足其中之一:相似得分閾值S(S>0.4)不等于當(dāng)前測(cè)試設(shè)定值、貪婪值g(g>0.5)不等于當(dāng)前設(shè)定值、角度誤差絕對(duì)值大于1°、目標(biāo)匹配結(jié)果與數(shù)目不相等,質(zhì)心x,y方向?qū)嶋H偏差值大于1mm均視為匹配失?。粡膱D8(c)匹配率比對(duì)圖中不難發(fā)現(xiàn)正常情況下匹配率高達(dá)94%以上,隨著圖像噪聲等不利因素影響下其匹配效率仍能達(dá)到88%以上說明本文算法的穩(wěn)定性和準(zhǔn)確性有保證。
時(shí)效性是指算法在時(shí)間允許范圍內(nèi)完成相應(yīng)作業(yè)。在引導(dǎo)系統(tǒng)中,需實(shí)時(shí)地給出目標(biāo)的姿態(tài),因此對(duì)算法時(shí)效性提出苛刻的要求,完成作業(yè)的時(shí)間必須很短。盡管金字塔層越高算法耗時(shí)越少,但有用信息也會(huì)減少,可能造成誤配、漏配[9];而且當(dāng)圖像多次經(jīng)過多次向下采樣后,由像素距離確定步長(zhǎng)的誤差風(fēng)險(xiǎn)增大,進(jìn)而影響角度匹配精度。綜合考慮,實(shí)驗(yàn)做進(jìn)一步測(cè)試,將四者(鑰匙、工件1,2)測(cè)試工件分別取在不同角度旋轉(zhuǎn)范圍內(nèi)的72副目標(biāo)數(shù)目不限圖像,都將金字塔第三層作為最高層進(jìn)行匹配;其中鑰匙的搜索范圍0~360°,工件1和2為0~180°,s(0.75~0.85),g(0.8~1.0)。從折線圖9中清楚看出工件測(cè)試耗時(shí)均在460ms以內(nèi),證明了本文算法測(cè)試速度的有效性。經(jīng)統(tǒng)計(jì)計(jì)算其匹配正確率依次為86.1%、87.5%、88.9%。此外本文部分參數(shù)需人為設(shè)定,因此在實(shí)際操作時(shí)應(yīng)注意:
1)合理設(shè)定得分值和貪婪值。s得分值過小會(huì)造成誤檢目標(biāo)、加大精匹配壓力,過大容易漏配;貪婪值g設(shè)定過小匹配速度慢,多目標(biāo)匹配時(shí),g值過大會(huì)增大漏配風(fēng)險(xiǎn)。
2)合理確定搜索范圍。一般機(jī)械工業(yè)應(yīng)用中工件多是對(duì)稱件,因此角度范圍可以縮小。再者可根據(jù)作業(yè)經(jīng)驗(yàn)和工件姿態(tài)出現(xiàn)規(guī)律縮小檢測(cè)區(qū)域,進(jìn)一步提高算法匹配速度,保證機(jī)械手流暢作業(yè)。
圖9 匹配時(shí)間測(cè)試
本文針對(duì)基于引導(dǎo)機(jī)械手獲取目標(biāo)姿態(tài),提出一種輪廓特征匹配算法實(shí)現(xiàn)位置和角度的匹配。其主要特點(diǎn)在于:
1)提取目標(biāo)輪廓點(diǎn)的法向量,作為特征描述。
2)以輪廓點(diǎn)為統(tǒng)計(jì)依據(jù)確定合適的金字塔層數(shù)實(shí)現(xiàn)模板與待測(cè)圖同步匹配,節(jié)省內(nèi)存空間。并根據(jù)不同模板信息自動(dòng)計(jì)算旋轉(zhuǎn)步長(zhǎng)間接提高匹配成功率。
3)引入貪婪值g對(duì)匹配速度進(jìn)行有效控制,并采用最大值法和均值法對(duì)匹配結(jié)果作進(jìn)一步篩選,提高匹配效率。
經(jīng)測(cè)試,本文方法穩(wěn)定性能好,對(duì)噪聲、遮擋、對(duì)比度低等匹配能力強(qiáng),可實(shí)現(xiàn)對(duì)象目標(biāo)在任意角度、坐標(biāo)下匹配定位,匹配率高,對(duì)于輪廓清晰或較為簡(jiǎn)潔工件耗時(shí)可以控制在460ms以內(nèi),滿足在機(jī)械手引導(dǎo)系統(tǒng)中快速、準(zhǔn)確獲取目標(biāo)姿態(tài)的應(yīng)用要求。