鄧 黎,張 博,馮丹彤,方祝平
(成都工業(yè)學(xué)院 自動化與電氣工程學(xué)院,四川 成都 611700)
近幾年,智能制造技術(shù)發(fā)展迅速,作為其重要技術(shù)之一的機(jī)器視覺也將迎來巨大的發(fā)展,該技術(shù)被廣泛應(yīng)用于零件加工及識別、無人駕駛等領(lǐng)域,應(yīng)用前景較好,將成為未來的研究熱點(diǎn)。馮恩娟等構(gòu)建了基于機(jī)器視覺的電解加工對刀間隙檢測系統(tǒng),實(shí)現(xiàn)了在保持相對誤差小于3.62%的情況下,縫隙距離介于0.1至1毫米之間的測量[1]。陳曼等基于機(jī)器視覺搭建了一套獲取刀口運(yùn)動信息的測量系統(tǒng),驗(yàn)證了測量系統(tǒng)對運(yùn)動的刀口速度測量精度為0.31%[2]。陳愷悅等通過將圖像處理以及機(jī)器視覺技術(shù)像結(jié)合,構(gòu)建了一套可以通過雙模攝像頭進(jìn)行距離測定的系統(tǒng),該系統(tǒng)在測量的真實(shí)距離小于1m 時可以保證誤差在0.9%以內(nèi)[3],宋克峰等針對傳統(tǒng)背景模型在檢測過程中所存在的問題提出了算法改進(jìn),并驗(yàn)證了算法的實(shí)用性[4-5]。然而,在零件尺寸越小的情況下,為了保證實(shí)驗(yàn)精度,系統(tǒng)的搭建變得越來越復(fù)雜。由此可見,研發(fā)一種較為簡單的距離實(shí)時檢測系統(tǒng)具有較大意義。
測量運(yùn)動中物體與物體的間距要考慮多種因素,例如速度的不確定性和外界環(huán)境影響。測距的方法有多種,例如手動塞尺測距、激光測距[6-7]、模板匹配等等。手動塞尺法操作繁瑣,且對實(shí)驗(yàn)儀器有因?yàn)槟Σ廉a(chǎn)生的損壞;激光測距法對激光的依賴較大,受背景光影響嚴(yán)重;本文提出一種基于模板匹配的方法進(jìn)行測距。模板匹配法是將觀測對象的特征作為模板,將目標(biāo)圖像與模板進(jìn)行匹配。模板匹配法在觀測對象與環(huán)境存在較大差別時,具有較好的效果,能夠進(jìn)行實(shí)時的跟進(jìn)匹配,故可用于物體跟蹤,并可為距離測算提供依據(jù)。
因此,本文在基于模板匹配的方法下,提出了一種運(yùn)動物體間距離的實(shí)時檢測方法,以達(dá)到無需人員操作測量,運(yùn)算效率高的目的。
測距算法部分分為圖像預(yù)處理、模板匹配、以及間距計算。
由于本文不需要對彩色圖像的R、G、B三個分量都進(jìn)行處理,因此將圖片進(jìn)行灰度化以及閾值分割處理,達(dá)到有效減小圖像原始數(shù)據(jù)量的目的,以減少后續(xù)計算量,達(dá)到提高系統(tǒng)實(shí)時性的目的?;诖?,通過目標(biāo)匹配定位目標(biāo)物體在圖像中的坐標(biāo)信息,并通過像素標(biāo)定計算出物體的實(shí)際距離,即物體間距。
彩色圖像中每個像素點(diǎn)的顏色由R、G、B三個分量共同決定,每個分量有255 種不同的值可取,這樣一個像素點(diǎn)可以有255*255*255種不同的顏色可取[8]。而灰度圖是R、G、B三個分量相同的一種特殊的圖像,若將圖像灰度化,每個像素點(diǎn)的變化范圍則為255 種。本系統(tǒng)由于不需要運(yùn)動物體的顏色信息,因此圖像處理時,將原圖灰度處理,以減少圖片處理時間,提高系統(tǒng)實(shí)時性。
圖像灰度化的方法有多種,本系統(tǒng)采用平均值法,實(shí)現(xiàn)方法為:求出每個像素點(diǎn)的R、G、B三個分量的平均值,再將求得的平均值賦給這個像素的三個分量?;叶然骄捣▽?shí)現(xiàn)公式如式(1):
模板匹配時圖像處理過程中的關(guān)鍵部分,根據(jù)已知目標(biāo)模板圖在另一幅圖像中尋找目標(biāo)位置并定位的過程叫做模板匹配[9]。
目前比較多使用的模板匹配方法有平方差匹配[10]、標(biāo)準(zhǔn)平方差匹配、相關(guān)匹配、標(biāo)準(zhǔn)相關(guān)匹配等。隨著從簡單的匹配方法如平方差匹配,到復(fù)雜的匹配方法如標(biāo)準(zhǔn)相關(guān)匹配,獲得的匹配結(jié)果會越來越精確[11],但同時意味著計算時長會隨之增加。多次實(shí)驗(yàn)證明,較為簡單的平方差匹配法即可滿足本系統(tǒng)需求,故本文采用平方差匹配法作為本文的模板匹配方法,以提高系統(tǒng)實(shí)時性。
模板匹配前,首先提供兩幅圖像,一幅是原圖像,另一幅是和原圖像進(jìn)行比照的圖像塊,即模板圖。在匹配過程中,將模板圖在原圖像中進(jìn)行從左往右,從上到下的滑動,模板圖在原圖中一次移動一個像素,在每一個位置,都進(jìn)行一次度量計算來判斷圖像塊和原圖像在該區(qū)域的“相似度”。
本文在基于平方差匹配方法下,開發(fā)了一種在匹配背景為視頻而非圖片的情況下進(jìn)行模板匹配的程序。圖1 所示為模板匹配效果圖,表1所示為模板定位結(jié)果,圖1矩形框內(nèi)是模板圖在原圖像中的移動區(qū)域,在進(jìn)行模板匹配時,模板從原圖像左上角開始每次以模板的左上角像素點(diǎn)為基準(zhǔn)從左至右,從上至下移動,每到達(dá)一個像素點(diǎn),就會以這個像素點(diǎn)為左上角頂點(diǎn)從源圖像中截取出與模板一樣大小的圖像與模板進(jìn)行相似度的度量運(yùn)算。因此,模板圖像在原圖像的移動區(qū)域應(yīng)滿足如下約束條件:
表1 模板匹配定位結(jié)果
圖1 模板匹配
式中W、H為原圖像的像素長度和寬度,m、n為模板圖的像素長度和寬度,i、j為模板圖在原圖像中的左上角點(diǎn)坐標(biāo)。
不同的度量值計算方法,對應(yīng)不同的模板匹配方法,即不同的模板匹配方法的不同點(diǎn)在于度量值計算方法不同,對于平方差匹配法,其度量值R的計算方法見式(3)。
式中R(x,y)為度量值構(gòu)成的矩陣,T(x',y')為模板圖像矩陣,I(x,y)為原圖像矩陣。上式表示模板圖像某一像素點(diǎn)灰度值減去覆蓋的原圖像在該像素點(diǎn)的灰度值之差的平方和為對應(yīng)矩陣的點(diǎn)的值。
平方差匹配法特點(diǎn)在于其度量值R越小,則越相似,最好的匹配結(jié)果為R=0。故模板的尋找依據(jù)為模板圖在原圖中遍歷完成之后,度量值R最小的區(qū)域即為原圖中模板對應(yīng)的位置。
本文所述模板匹配法為在原圖中尋找一個目標(biāo),而本文所討論問題為兩物體間距的實(shí)時檢測方法,即需要在原圖中尋找兩個不同的目標(biāo)。針對此問題,本文在處理每一幀時,提供兩個不同的模板并進(jìn)行兩次模板匹配,以此獲得每一幀不同物體的坐標(biāo),即可在處理每一幀時實(shí)現(xiàn)兩個目標(biāo)的模板匹配。同理,若提供多個不同模板,即可在每一幀實(shí)現(xiàn)多個目標(biāo)的模板匹配。
模板匹配為測量物體間距提供了模板在圖像中四個頂點(diǎn)的坐標(biāo),利用兩物體在圖像中的頂點(diǎn)坐標(biāo)信息,即可計算兩物體間的像素間距。
本文主要討論兩個物體間的間距測量,故以下討論均以兩個待測物體進(jìn)行展開討論。
將模板匹配獲取的待檢測物體的坐標(biāo)信息存入數(shù)組中,不同待檢測物體坐標(biāo)信息存入不同數(shù)組,如A數(shù)組中存放A物體四個頂點(diǎn)坐標(biāo)信息,B數(shù)組中存放B物體四個頂點(diǎn)坐標(biāo)信息,再計算A數(shù)組中所有元素與B數(shù)組中所有元素的兩點(diǎn)距離,公式見式(4)。
式中xi、yi表示A數(shù)組中第i個元素的橫縱坐標(biāo);xj、yj表示數(shù)B組中第j個元素的橫縱坐標(biāo);dij表示A數(shù)組中i元素與B數(shù)組中j元素的間距值。
根據(jù)上述方法,計算出數(shù)A組中4 個坐標(biāo)元素分別與B數(shù)組中4 個坐標(biāo)元素之間的兩兩間距,最終獲得16 個間距值,從16個元素中找出最小值,即為兩物體最近點(diǎn)間的間距。
在進(jìn)行物體間距檢測時,無論是在任何領(lǐng)域,如零件裝配、零件對位等,都希望獲得實(shí)際的距離值,而非像素值,對此,本文利用相機(jī)標(biāo)定中常用的傳統(tǒng)相機(jī)標(biāo)定法,以實(shí)現(xiàn)像素值與實(shí)際值的轉(zhuǎn)換,標(biāo)定原理如下:
在進(jìn)行間距檢測前,首先將相機(jī)位置以及置物臺位置固定,在相機(jī)所拍攝的畫面內(nèi),放置一個形狀規(guī)則的參照物,如外形為圓形或方形的物體,本文選擇表3中B類別零件作為參照物,測量其外徑真實(shí)長度并精確至百分位,為rreal=11.05mm,通過視覺檢測系統(tǒng)獲得其外徑長度的像素值,為rpixel=124,計算出此時畫面中真實(shí)長度與像素長度的比例值,記為k,即:
最后算得k=0.089,通過獲取待測物體之間的間距像素值,帶入公式(6)進(jìn)行轉(zhuǎn)換,即可算出間距的實(shí)驗(yàn)值。
式中dreal為間距實(shí)驗(yàn)值,dpixel為間距像素值。
若相機(jī)與置物臺的位置均保持不變時,該比值同樣不會改變,故本文在進(jìn)行各項(xiàng)實(shí)驗(yàn)時獲得的像素均均可通過該比值進(jìn)行換算。
視覺檢測平臺是由硬件及軟件系統(tǒng)共同構(gòu)成的對待測物體進(jìn)行非接觸測量的光學(xué)圖像測量系統(tǒng)。視覺平臺硬件包括:照明系統(tǒng)、CCD相機(jī)、計算機(jī)及移動臺等其它相關(guān)聯(lián)的處理設(shè)備。軟件以Python 為開發(fā)平臺,基于OpenCV 圖像處理庫研發(fā)的一套距離測量算法。測量平臺結(jié)構(gòu)圖如圖2。
圖2 機(jī)器視覺檢測平臺
本系統(tǒng)相機(jī)參數(shù)如表2所示。
表2 相機(jī)具體參數(shù)
系統(tǒng)所用移動臺類型為滾珠絲桿移動臺,主要包括兩個部分:機(jī)械部分和控制部分。在機(jī)械系統(tǒng)部分主要有滾珠絲桿副,導(dǎo)軌副,步進(jìn)電機(jī),工作臺等;滾珠絲杠副具有軸向剛度高,不易磨損,運(yùn)動平穩(wěn)等優(yōu)點(diǎn)。工作臺采用直線滾動導(dǎo)軌副以提高運(yùn)動平穩(wěn)性、減少工作臺的摩擦系數(shù);在該工作臺中分別用兩個步進(jìn)電機(jī)控制兩個絲杠副運(yùn)動,兩個絲桿副垂直放置,以達(dá)到控制工作臺可在X、Y 兩個方向運(yùn)動的功能,控制系統(tǒng)根據(jù)用戶編制的程序的要求,發(fā)出脈沖型號控制兩個步進(jìn)電機(jī)。同時,將物體夾持工具固定于工作臺上,以實(shí)現(xiàn)夾持工具隨電機(jī)的運(yùn)動而運(yùn)動,最終實(shí)現(xiàn)控制夾具上物體移動的功能。
控制系統(tǒng)主要包括驅(qū)動器,變頻信號源等。驅(qū)動器是將變頻信號源送來的脈沖信號及方向信號按要求的配電方式自動的循環(huán)供給電動機(jī)的各相繞組,以驅(qū)動電動機(jī)轉(zhuǎn)子的正反向旋轉(zhuǎn)。同時,根據(jù)驅(qū)動器受stm32 單片機(jī)控制的特點(diǎn),通過改變stm32pwm 波的頻率即可改變單片機(jī)在相同時間內(nèi)發(fā)出pwm波的數(shù)量,以達(dá)到改變電機(jī)的轉(zhuǎn)速的目的,電機(jī)的轉(zhuǎn)速與工作臺移動速度成正比關(guān)系,因此,通過改變stm32的頻率即可改變工作臺的移動速度,即改變了夾持工具的移動速度。
最終,分析視覺檢測系統(tǒng)實(shí)時返回的物體間距值,判斷夾持工具上物體應(yīng)如何移動,以達(dá)到控制物體間距的功能。
測量流程圖如圖3 所示。處理過程如下:獲取第一幀,進(jìn)行灰度處理。在灰度處理過的圖像的基礎(chǔ)上,提供兩待測物體各自的模板圖,通過該模板進(jìn)行模板匹配,在原圖像里尋找模板,找到后返回兩模板各頂點(diǎn)的坐標(biāo),通過給定的坐標(biāo)計算出兩模板間的間距,即兩物體間距,返回間距后繼續(xù)處理下一幀圖像。
圖3 間距檢測流程
本文研究了平方差模板匹配方法,基于像素值的測距方法,搭建實(shí)時的視覺檢測系統(tǒng),驗(yàn)證了本系統(tǒng)的實(shí)時性與精度。開展了如下三種實(shí)驗(yàn),驗(yàn)證本文提出觀點(diǎn)的實(shí)用性及可行性。
實(shí)驗(yàn)一:針對不同類型的零件,通過對視覺檢測系統(tǒng)返回的間距值與實(shí)際間距對比,驗(yàn)證本文所提出像素間距與實(shí)際間距轉(zhuǎn)換方法的可行性。
實(shí)驗(yàn)二:針對不同類型的零件,在其移動過程中,利用平方差匹配法實(shí)時反饋零件尺寸,驗(yàn)證本系統(tǒng)是否滿足匹配精度需求。
實(shí)驗(yàn)三:針對不同類型的零件,測量視頻中的每一幀從模板匹配到間距計算的時間,驗(yàn)證本系統(tǒng)的實(shí)時性是否滿求。
上述實(shí)驗(yàn)所用到零件的具體信息如表3所示。
表3 不同類別零件的模板圖片、外徑尺寸
實(shí)驗(yàn)一開展原理:使零件B 逐漸靠近零件C,在靠近的過程中,通過視覺檢測系統(tǒng)實(shí)時反饋間距實(shí)驗(yàn)值,并與間距真實(shí)值進(jìn)行對比。圖4所示為零件B靠近零件C時返回的不同階段的間距實(shí)驗(yàn)值與真實(shí)值,在五個不同的階段,階段1間距誤差為0.6mm,準(zhǔn)確度為98.44%;階段2 間距誤差為0.42mm,準(zhǔn)確度為98.65%;階段3間距誤差為0.5mm,準(zhǔn)確度為98.08%;階段4 間距誤差為0.39,準(zhǔn)確度為98.05%;階段5間距誤差為0.32,準(zhǔn)確度為98.3%,其中,匹配準(zhǔn)確度最低的是階段4 的98.05%,匹配準(zhǔn)確度最高的是階段2 的98.65%。根據(jù)實(shí)驗(yàn)一結(jié)果統(tǒng)計,我們認(rèn)為,當(dāng)匹配準(zhǔn)確度高于98%時,零件尺寸的匹配誤差可視為遠(yuǎn)小于零件真是尺寸,對實(shí)際情況影響較小,可忽略。
圖4 不同階段間距實(shí)驗(yàn)值與真實(shí)值對比
為了進(jìn)一步研究視覺檢測系統(tǒng)的可行性,開展實(shí)驗(yàn)二:選擇不同類型的零件A、B、C、D,利用平方差匹配法返回各零件尺寸,與真實(shí)零件尺寸進(jìn)行對比實(shí)驗(yàn)。圖5實(shí)驗(yàn)結(jié)果表明,五種零件中,零件A 的外徑測量誤差為0.04mm,準(zhǔn)確率為99.64%;零件B的外徑測量誤差為0.03mm,準(zhǔn)確率為99.73%;零件C 的外徑測量誤差為0.06mm,準(zhǔn)確率為99.46%;零件D的外徑測量誤差為0.03mm,準(zhǔn)確率為99.64%。根據(jù)實(shí)驗(yàn)二結(jié)果統(tǒng)計,我們認(rèn)為,零件尺寸的實(shí)驗(yàn)值的準(zhǔn)確率高于98%時,對間距檢測影響較小,可忽略。對于如何提高零件尺寸實(shí)驗(yàn)值的準(zhǔn)確率,見如下分析。
圖5 不同類型零件外徑實(shí)驗(yàn)值與真實(shí)值對比
對實(shí)驗(yàn)一以及實(shí)驗(yàn)二的結(jié)果圖進(jìn)行分析可以看出,實(shí)驗(yàn)一以及實(shí)驗(yàn)二中,對于外徑、間距,其真實(shí)值均大于實(shí)驗(yàn)值,為找出造成該情況的原因,本文對公式(5)以及公式(6)進(jìn)行分析,分析過程如下:
式(6)表示,待測間距的實(shí)驗(yàn)值為k與待測間距像素值的乘積,其中,k值的確定由式(5)可以知道,為參照物的真實(shí)尺寸與像素尺寸的比值,真實(shí)尺寸為定值,即k值隨參照物像素尺寸的變化而變化,參照物像素尺寸即為本文提供的模板圖片的尺寸,在進(jìn)行模板圖裁剪時,會由于人工裁剪而導(dǎo)致模板圖邊緣處有一定的留白,從而使模板圖的像素尺寸偏大,即式(5)中分母偏大,進(jìn)而使k值偏小,進(jìn)而使式(6)中待測間距的實(shí)驗(yàn)值偏小。
為使待測對象的尺寸實(shí)驗(yàn)值更加接近尺寸的真實(shí)值,在進(jìn)行模板圖裁剪時,減少模板圖片邊緣的空白,即可使值更加的精確,從而減小該誤差。
模板匹配滿足系統(tǒng)的精度需求,為本系統(tǒng)奠定了一定的基礎(chǔ),然而本系統(tǒng)的核心不僅在于模板匹配,是否滿足實(shí)時效果同樣是本系統(tǒng)的關(guān)鍵問題。要在物體移動過程中,達(dá)到實(shí)時返回物體間距的效果,圖像處理速度,則成為尤為重要的指標(biāo)。基于此,針對本系統(tǒng)圖像處理的速度,開展實(shí)驗(yàn)三:準(zhǔn)備三種不同類型的零件B、C、D,分為零件B 與C、C 與D組別,在不同組別間距檢測時返回處理每一幀的時間。此時的時間即為本系統(tǒng)模板匹配與間距計算的時間和,若處理每一幀的時間能低于100ms或高于該時間較少,則實(shí)時性滿足要求,并開展多次實(shí)驗(yàn)以減少偶然誤差。圖6 及表4 結(jié)果表明,在針對多類型零件開展的多次實(shí)驗(yàn)中,無論是結(jié)構(gòu)復(fù)雜或是結(jié)構(gòu)簡單的零件,模板匹配與間距計算的時間和均波動于100ms 附近,其中處理時間最長的為105ms,高于100ms較少,最短處理時間為90ms,滿足實(shí)時要求。
圖6 不同類型零件間距測量時間
表4 不同類型零件間距測量時間極值與平均值
視覺檢測系統(tǒng)在進(jìn)行每一次測距實(shí)驗(yàn)時,對于獲取的每一幀,首先進(jìn)行模板匹配,繼而對匹配到的模板獲取的關(guān)鍵信息進(jìn)行計算,效果圖如圖7 所示。若模板匹配不成功,一般是由于待測對象移動過程中受光程度不同而導(dǎo)致,此時直接跳入對下一幀的處理。
圖7 間距實(shí)時檢測
本文基于機(jī)器視覺原理,提出了一種匹配測量兩物體之間距離的方法,通過測量前給出的模板進(jìn)行模板匹配進(jìn)而確定出圖像中待測物體的關(guān)鍵點(diǎn)坐標(biāo),以此計算待測物體間的距離。并實(shí)現(xiàn)了在模板匹配誤差小于2%、間距檢測準(zhǔn)確率高于98%的測量。主要工作總結(jié)如下:
設(shè)計了一種基于平方差模板匹配法的不同物體間距實(shí)時檢測方法。該方法首先對獲取的圖像進(jìn)行灰度化、閾值分割處理,通過給定的模板,對處理后的圖片進(jìn)行模板匹配,獲得待測物體的關(guān)鍵點(diǎn)坐標(biāo),最終根據(jù)關(guān)鍵點(diǎn)坐標(biāo)計算出不同物體的間距。
多次實(shí)驗(yàn)驗(yàn)證該系統(tǒng)在進(jìn)行間距檢測時有較快的數(shù)據(jù)處理速度以及較高的間距檢測精度。對于每一幀,模板匹配與間距計算時間和波動于0.1s,在進(jìn)行間距計算時能達(dá)到實(shí)時效果;同時保持較高的間距檢測精度,間距檢測準(zhǔn)確率高于98%。
提出了一項(xiàng)新的機(jī)器視覺檢測系統(tǒng),減輕了在傳統(tǒng)的檢測系統(tǒng)中復(fù)雜的系統(tǒng)搭建問題,同時保持著較高精度。且該系統(tǒng)已應(yīng)用于筆者所在的實(shí)驗(yàn)室內(nèi),通過與機(jī)械臂的聯(lián)動,可實(shí)現(xiàn)對物體的抓取以及位置的實(shí)時跟蹤。
筆者雖然在機(jī)器視覺測距技術(shù)上進(jìn)行了一定程度的研究,但測距算法仍存在一定不足,并不能應(yīng)用于所有場合,對于復(fù)雜或環(huán)境干擾較大的場合,還需對測距算法進(jìn)行更深層次的研究。結(jié)合本文的不足,對未來工作做如下設(shè)想[12]:
(1) 本文的研究工作均基于固定單目相機(jī)的設(shè)備條件中,此設(shè)備條件下對于目標(biāo)遮擋、死角拍攝等問題無法有效的解決。若通過多個相機(jī)協(xié)作拍攝,有望解決上述問題,同樣的,相機(jī)移動也可以在未來進(jìn)行深入研究。
(2) 待測物體在移動過程中,由于物體形狀、大小等影響,會導(dǎo)致待測物體受光程度有一定的影響,從而導(dǎo)致模板匹配過程中無法正確、快速識別待測物體。若給予充分的光源使待測物體受光充分、均勻,未來有望解決上述問題。