程 鑫,劉一鵬,彭 程,夏一恒
(1.武漢理工大學(xué) 機電工程學(xué)院,湖北 武漢 430070;2.湖北省磁懸浮工程技術(shù)研究中心,湖北 武漢 430070)
工業(yè)生產(chǎn)中通常使用螺釘對零部件進(jìn)行緊固接合,特別在機動車輛中,涉及大量采用螺釘緊固的關(guān)鍵零部件。漏裝或誤裝螺釘會造成零部件損壞,甚至可能嚴(yán)重影響車輛安全,造成嚴(yán)重的安全事故或人員傷亡[1-2]。因此在生產(chǎn)過程中,需要高效率、高精度對螺釘裝配情況進(jìn)行識別。
傳統(tǒng)的螺釘識別方法大多依賴人工操作,漏檢、誤檢等情況難免發(fā)生,受人為因素影響較大,識別精度和效率受限,無法滿足現(xiàn)代工業(yè)生產(chǎn)要求[3]。隨著數(shù)字圖像處理技術(shù)的發(fā)展,機器視覺識別已經(jīng)應(yīng)用于多種工業(yè)環(huán)境,該方法憑借其識別的快速性和準(zhǔn)確性,取得了良好的效果[4]。非接觸式識別的特點更進(jìn)一步確保了工件的安全,防止了識別過程中可能發(fā)生的意外情況。
文獻(xiàn)[5]通過對線性特征的有效匹配進(jìn)行螺釘定位,采用全局閾值和自適應(yīng)閾值結(jié)合的方法對螺釘區(qū)域進(jìn)行分割提取,研發(fā)了一套針對小批量大規(guī)模設(shè)備的識別系統(tǒng),但由于采集缺失等原因需要復(fù)檢。文獻(xiàn)[6]選用HSV(hue, saturation, value)顏色空間來減小外界干擾,提出了一種基于特征顏色邊緣檢測的定位算法,極大地提高了算法的速度和精度,但該方法并未應(yīng)用到工業(yè)環(huán)境中,實際效果未知。文獻(xiàn)[7]基于梯度信息和先驗知識,改進(jìn)了Hough變換檢測方法,在保證精度的同時,提高了檢測速度,但受外界因素影響較大。文獻(xiàn)[8]采用粗定位和精定位結(jié)合的螺釘定位方法,提出了一種基于幾何特征的圖像匹配方法;文獻(xiàn)[9]基于顏色信息和紋理特征對電表螺釘進(jìn)行定位和識別,算法有較強的前瞻性。文獻(xiàn)[8]和文獻(xiàn)[9]在識別準(zhǔn)確率上得到了極大提高,但是系統(tǒng)較為復(fù)雜,數(shù)據(jù)庫的建立難度較大,且應(yīng)用成本昂貴,不適用于小型企業(yè)生產(chǎn)應(yīng)用。
筆者針對實際生產(chǎn)中水泵標(biāo)準(zhǔn)化、批量生產(chǎn)的特點,結(jié)合先驗知識和識別需求,設(shè)計了一種螺釘在線識別系統(tǒng)。該系統(tǒng)采用特征顏色、邊緣檢測、霍夫變換相結(jié)合的方法進(jìn)行螺釘?shù)亩ㄎ缓妥R別,受外界因素影響較小,可以實時檢測工件并反饋給用戶,減少返工件和損壞件的產(chǎn)生,在保證識別精度和速度的前提下,減小系統(tǒng)成本,對于中小型企業(yè)的生產(chǎn)應(yīng)用提供了指導(dǎo)意義,可以有效提高生產(chǎn)效益。
螺釘識別系統(tǒng)硬件部分由光源、PC(peoper computer)機、CMOS(complementary metal oxide semiconductor)相機、顯示屏、過渡工裝等組成,如圖1所示。軟件部分由圖像處理程序和用戶界面組成,其軟件系統(tǒng)流程如圖2所示。
圖2 軟件系統(tǒng)流程圖
實際的水泵生產(chǎn)為流水線型生產(chǎn),具有較強的銜接性、連續(xù)性,對識別的精度和速度具有較高要求。在檢測工件時,將待測工件置于過渡工裝,CMOS相機和光源位于工件上方特定位置。通過相機實時獲取工件圖像信息并傳送給PC機,基于特征顏色的邊緣檢測進(jìn)行目標(biāo)定位,霍夫變換進(jìn)行目標(biāo)識別,最終的識別結(jié)果將實時顯示在用戶界面。根據(jù)實時反饋的識別結(jié)果,用戶將對被測工件進(jìn)行正確的處理,其系統(tǒng)流程如圖3所示。
圖3 螺釘識別系統(tǒng)流程圖
在水泵生產(chǎn)過程中,由于工廠環(huán)境和圖像采集設(shè)備的影響,使得獲取的圖像存在各種噪聲和失真。這都會對后續(xù)的圖像處理造成不良影響。為了改善圖像質(zhì)量,提高識別系統(tǒng)的速度和精度,需要對圖像進(jìn)行預(yù)處理。
經(jīng)典的圖像濾波方法分為線性濾波和非線性濾波,其中線性濾波是算術(shù)運算,包括方框濾波、均值濾波等。非線性濾波是邏輯運算,包括中值濾波、雙邊濾波等[10]。直接使用經(jīng)典濾波方法進(jìn)行圖像處理時,會在消除噪聲和保護(hù)圖像細(xì)節(jié)之間難以平衡。筆者采用自適應(yīng)中值濾波對工件圖像進(jìn)行濾波處理。
自適應(yīng)中值濾波和中值濾波都是基于排序統(tǒng)計理論的[11],其基本原理是把數(shù)字圖像或數(shù)字序列中一點的值用該點的一個鄰域中各點值的中值代替,讓其接近周圍的真實值,從而剔除孤立的噪聲點,達(dá)到良好的濾波效果。它同樣會使用到一個矩形的濾波窗口Sxy。常規(guī)中值濾波器中這個窗口的大小是固定的,無法兼顧降噪和保護(hù)圖像細(xì)節(jié);自適應(yīng)濾波是在常規(guī)濾波的基礎(chǔ)上,通過不斷變換窗口的大小來實現(xiàn)降噪的同時,最大限度地保護(hù)圖像細(xì)節(jié)。該方法步驟如下:
(1)將彩色圖像分離成3個通道。
(2)設(shè)置初始濾波窗口尺寸Sxy和最大窗口尺寸Smax。
(3)根據(jù)噪聲區(qū)域的狀況,進(jìn)行A層、B層濾波。合并3個通道得到輸出圖像。
其中A層、B層濾波方法如下:
定義Zmin為Sxy中的最小灰度值。Zmax為Sxy中的最大灰度值。Zmed為Sxy中的灰度中值。Zxy為坐標(biāo)(x,y)處的灰度值。
A1=Zmed-Zmin
A2=Zmed-Zmax
B1=Zxy-Zmin
B2=Zxy-Zmax
(1)
A層:若A1>0且A2<0,跳轉(zhuǎn)至B層,否則增大Sxy,如果增大后Sxy≤Smax,重復(fù)A層,否則輸出Zxy。
B層:若B1>0且B2<0,輸出Zxy,否則輸出Zmed。
自適應(yīng)濾波流程如圖4所示。
圖4 自適應(yīng)濾波流程圖
A層用于判斷當(dāng)前窗口得到的中值Zmed是否為噪聲。如果是噪聲,則增大窗口,直到找到一個非噪聲的中值或者在窗口尺寸達(dá)到最大值時,輸出Zxy;如果不是噪聲,轉(zhuǎn)入B層。B層用于判斷Zxy是否為噪聲。如果是噪聲,輸出Zmed;如果不是噪聲,輸出Zxy。通過A、B兩層邏輯關(guān)系達(dá)到窗口自適應(yīng)的效果,從而在降噪的同時兼顧保護(hù)圖像細(xì)節(jié)。自適應(yīng)濾波效果如圖5所示。
圖5 自適應(yīng)濾波效果圖
直方圖均衡化是一種簡單有效的圖像增強技術(shù),可以改善圖像的視覺效果,提高清晰度。HSV顏色空間是一種將RGB(red,green,blue)顏色空間中的點在倒圓錐體中的表示方法。相對于RGB空間,HSV空間能夠非常直觀地表達(dá)色彩的明暗、色調(diào)以及鮮艷程度,受外界條件影響小。經(jīng)過式(2)的轉(zhuǎn)換,可以將H、S、V 3個分量量化,有效減少光照影響。
(2)
式中:H1為色相的中間變量;R、G、B分別為紅、綠、藍(lán)的顏色值;H、S、V分別為色相、飽和度、明度的數(shù)值。
在實際生產(chǎn)中,由于工藝的需求,打裝螺釘?shù)碾娕鷷A(yù)先蘸取印泥。根據(jù)這一特征顏色,將濾波后的圖像轉(zhuǎn)至HSV顏色空間并對V通道進(jìn)行直方圖均衡化,可以增強圖像對比度,降低光照條件對圖像的影響,改善圖像失真效果,在一定程度上克服外界條件的干擾,提高目標(biāo)定位算法的精確性和快速性。
直方圖均衡化效果圖如圖6所示,在預(yù)處理后的圖像中,由于工藝中印泥的存在,左側(cè)已打裝的螺釘相比于其他螺釘能有效區(qū)別于工件殼體,為基于特征顏色的邊緣檢測定位方法提供了依據(jù),克服了由于螺釘和工件殼體顏色接近而對算法造成的干擾。
圖6 直方圖均衡化效果圖
目標(biāo)的準(zhǔn)確定位對于目標(biāo)的識別以及圖像的理解與分析起著十分重要的作用。結(jié)合實際生產(chǎn)中蘸取印泥的特點和預(yù)處理之后圖6顯示的結(jié)果,筆者采用基于特征顏色的邊緣檢測方法進(jìn)行螺釘定位。利用Open CV中的inrange函數(shù)和先驗知識對圖6進(jìn)行目標(biāo)分割,將目標(biāo)點的H、S、V傳入Matlab進(jìn)行范圍估定,結(jié)果如圖7所示。
圖7 目標(biāo)分割及范圍估定
通過反復(fù)實驗得出H、S、V3值的最佳取值范圍為H:175~180;S:40~65;V:200~220。利用上述范圍獲取目標(biāo)點坐標(biāo),實現(xiàn)了在確保精確的前提下盡可能捕捉到更多目標(biāo)點的效果。根據(jù)坐標(biāo)劃分ROI(region of interest),進(jìn)一步提高圖像處理速度。
圖像的邊緣是圖像的最基本特征,邊緣檢測可以利用圖像中灰度值的變化提取圖像邊緣輪廓信息并消除不相干的信息。常用的邊緣檢測算子有:Canny算子、Sobel算子、Roberts算子等[12]。
Sobel算子是一階導(dǎo)數(shù)的邊緣檢測算子。它根據(jù)像素點上下、左右鄰點灰度加權(quán)差,在邊緣處達(dá)到極值這一現(xiàn)象從而檢測邊緣[13]。算法實現(xiàn)過程如下:
(1)借助高斯濾波器或者其他濾波器對原圖像進(jìn)行平滑。
(2)通過橫向Sx和縱向Sy的3×3矩陣模板與灰度后的圖像A作平面卷積得到Gx和Gy,進(jìn)而得到梯度幅值圖像。
(3)選取合適的閾值G以提取邊緣。
(3)
在本文所研究的工業(yè)環(huán)境中,目標(biāo)螺釘和工件灰度差別較小,環(huán)境干擾較大,且對檢測速度有一定的要求。Sobel算子計算速度較快,對灰度漸變和噪聲較多的圖像處理效果較好,適合本文特定的工業(yè)環(huán)境。因此,筆者調(diào)用Open CV中的Sobel函數(shù)對ROI進(jìn)行邊緣分析,提取待測目標(biāo)的輪廓信息。影響Sobel函數(shù)檢測結(jié)果的參數(shù)主要是ddepth和ksize,即輸出圖像深度和Sobel核的大小。經(jīng)過對比實驗,最終選擇ddepth=CV_16S和ksize=3作為本文中Sobel函數(shù)的最優(yōu)參數(shù)進(jìn)行邊緣檢測,對比實驗結(jié)果如圖8所示,ROI及邊緣檢測結(jié)果如圖9所示。
圖8 對比實驗
圖9 ROI及邊緣檢測
Hough變換是一種特征檢測,主要用于辨別目標(biāo)物的特征,在累加空間中進(jìn)行“投票”來決定檢測結(jié)果[14]。
Hough變換的核心思想是將圖像的空間域轉(zhuǎn)換到參數(shù)域,是一種區(qū)域邊界形狀描述的算法。Hough變換利用點與線的對偶性,將原始圖像空間的給定曲線通過曲線表達(dá)形式變?yōu)閰?shù)空間的一個點。采用統(tǒng)計計算的方法,根據(jù)對數(shù)據(jù)的統(tǒng)計結(jié)果,求出最優(yōu)解,即圖像的邊緣形狀和參數(shù)信息,常用于檢測直線、圓、拋物線等。
平面內(nèi)圓的一般方程為:
(4)
式中:(a0,b0)為圓心;r0為半徑;(xi,yi)為圓上任一點坐標(biāo)。
在Hough空間中圓的參數(shù)方程為:
(a-xi)2+(b-yi)2=r2
(5)
式中:a,b,r為參數(shù)。
圖10中,平面空間內(nèi)圓上的任意一點(xi,yi)映射在參數(shù)空間中對應(yīng)一個三維直立圓錐。這些圓錐面相交于一點(a0,b0,r0)。該點即為平面空間中圓的參數(shù)[15]。
圖10 平面空間和參數(shù)空間
Hough變換的魯棒性較強,在檢驗已知形狀目標(biāo)方面具有受噪聲及曲線間斷影響小的優(yōu)點,而在實際生產(chǎn)中,水泵的技術(shù)參數(shù)已知,符合算法需求。因此筆者調(diào)用Open CV中的HoughCircles函數(shù)進(jìn)行目標(biāo)識別,其函數(shù)流程如圖11所示。
圖11 HoughCircles函數(shù)流程圖
基于先驗知識,在已知目標(biāo)參數(shù)大致范圍的條件下,Hough變換較為精確地識別出了待測目標(biāo),識別結(jié)果如圖12所示。
圖12 HoughCircles識別結(jié)果
筆者選用的CMOS相機為深圳林柏視科技公司生產(chǎn)的G200,參數(shù)如表1所示。
表1 相機參數(shù)
CMOS相機拍攝的圖像經(jīng)過算法處理后得到的目標(biāo)尺寸是以像素為單位的,需要對識別系統(tǒng)進(jìn)行線性標(biāo)定,建立圖像尺寸與實際目標(biāo)尺寸的對應(yīng)關(guān)系。首先選取已知尺寸為dmm的標(biāo)準(zhǔn)量塊,然后對相機采集的量塊圖像進(jìn)行圖像處理得到量塊的像素尺寸d1pixel。那么系統(tǒng)的標(biāo)定系數(shù)k=d/d1。
誤差是實驗中無法避免的,為了盡可能降低誤差帶來的影響,通常需要核定標(biāo)定系數(shù)。筆者通過對標(biāo)準(zhǔn)零部件的多次標(biāo)定實驗,求出一組標(biāo)定系數(shù),以平均值k=0.082作為最終的標(biāo)定系數(shù),以提高標(biāo)定精度,降低實驗誤差。多次標(biāo)定實驗數(shù)據(jù)如表2所示。
表2 標(biāo)定系數(shù)
識別系統(tǒng)軟件采用C++語言在Qt Creator平臺上結(jié)合Open CV庫進(jìn)行開發(fā)。實驗結(jié)果如圖13所示。
圖13 實驗結(jié)果
為了進(jìn)一步研究本文識別系統(tǒng)的性能,根據(jù)上述方法對一批工件進(jìn)行圖像處理實驗,得到每個螺釘頭部直徑的像素尺寸d1pixel,根據(jù)標(biāo)定系數(shù)k換算成本文算法的測量值dk2mm。將dk2mm和人工測量的頭部直徑真實值dkmm進(jìn)行對比,并比較這批工件中平均每個工件的人工測量時間t和本文算法時間t1,以及螺釘?shù)淖R別概率p,驗證本文方法的有效性,測量值與直實值對比如表3所示、時間對比及識別概率如表4所示。
表3 測量值與真實值對比
表4 時間對比及識別概率
從實驗結(jié)果可知,本文方法的檢測結(jié)果良好,對目標(biāo)有較好的識別效果,適用于本文特定的工業(yè)環(huán)境,實際檢測中速度較快,滿足生產(chǎn)的要求,且誤差在±0.10 mm以內(nèi),進(jìn)一步驗證了本文方案的可行性。
在實驗過程中,誤差是無法避免的,影響本文實驗結(jié)果的因素為:①外界環(huán)境。實驗過程中外界噪聲和光線的影響雖然已經(jīng)通過算法進(jìn)行了一定的抑制,但并不能完全消除。②實驗設(shè)備。CMOS相機本身以及各部分硬件安置的平行度誤差。
為了提高生產(chǎn)效率,筆者實現(xiàn)了在工業(yè)生產(chǎn)條件下對水泵中螺釘?shù)臋z測識別工作。針對實際生產(chǎn)環(huán)境和工藝特點,搭建了軟硬件系統(tǒng)平臺,對一批工件進(jìn)行了實驗驗證,并對系統(tǒng)性能和誤差來源進(jìn)行了進(jìn)一步實驗分析。證明了本文方案是行之有效的,可以在一定程度上提高識別精度和速度,滿足實際生產(chǎn)需求,具有一定的實際意義。