陳 碩,林洪毅,卞抱元,趙紫陽,唐旭晟
(福州大學 機械工程及自動化學院,福建 福州 350116)
對于注塑方式生產(chǎn)的齒輪,由于生產(chǎn)加工中的進料調(diào)節(jié)不當、料量不足、模具缺陷等原因,會造成加工出的齒輪存在缺料、毛刺、飛邊等缺陷[1]。作為常用的傳動件,上述缺陷會導致齒輪的工作精度下降,降低整臺機器的可靠性。因此,缺陷齒輪在出廠或者裝配前應及時被剔除。
目前,國內(nèi)注塑齒輪生產(chǎn)企業(yè)主要依靠人工目測的方式來剔除缺陷齒輪。人工檢測的方式不僅效率低、易漏檢或誤檢,而且無法精確統(tǒng)計缺陷部位的發(fā)生概率,工人無法及時有效調(diào)整設備和工藝。裝配了缺陷齒輪的產(chǎn)品無法正常工作,而重復檢驗增加了人工成本,從而降低了生產(chǎn)效率和企業(yè)競爭力。
基于機器視覺的檢測方法憑借其速度快、精度高、穩(wěn)定性好等優(yōu)點,目前被廣泛應用于機械領域中。文獻[2]219研究了基于非下采樣Contourlet變換的自適應閾值去噪算法,代替高斯濾波對圖像去噪,提高了邊緣的自動化檢測能力;但該算法具有一定的復雜度,降低了最終的邊緣提取速度。高韓等人[3]提出了一種在Canny算法中加入高斯濾波的方法,使得圖像的信噪比與圖像的邊緣連續(xù)性進一步得到了加強;但是該算法比較復雜,同時對光照條件的要求也較高。吳曉軍等人[4]提出了一種應用圖像金字塔的搜索策略,用來對算法進行加速,以邊緣點亞像素坐標及梯度向量作為匹配信息,得到了亞像素級的定位精度和精確的旋轉角度信息;但該方法需要重復匹配,計算過程復雜。文獻[5]研究了一種基于機器視覺的缺陷在線檢測系統(tǒng),可通過工業(yè)IO卡發(fā)出剔除信號,把不合格品剔除生產(chǎn)線;但該方法采集的圖像不夠清晰,容易導致缺陷信息丟失。鄭碩文等人[6]提出了一種基于機器視覺,通過多傳感器相互協(xié)調(diào)工作的齒輪缺陷檢測系統(tǒng),但該系統(tǒng)響應時間長、時間誤差大。杜猛[7]提出了一種結合圖像處理與深度學習技術的齒輪齒頂圓柱面缺陷檢測方法,但該方法抗干擾性弱,易受到環(huán)境的影響。藺志敏[8]提出了一種利用齒輪邊緣差異的對比,通過對齒輪缺陷進行LOG邊緣檢測,從而實現(xiàn)齒輪缺陷檢測的方法;但其存在邊緣分割模糊、誤判率高等問題。
上述文獻中的檢測方法大多存在算法復雜、檢測正確率低、響應時間較長等問題,因此,仍需對其進行進一步的改進與優(yōu)化。
筆者以水表齒輪為研究對象,將機器視覺的技術應用于齒輪缺陷的非接觸在線檢測中,以解決當前人工檢測所存在的問題,并提高檢測效率和準確率。
該視覺檢測系統(tǒng)主要由振動盤、轉動傳輸裝置、光電傳感器、成像系統(tǒng)、視覺處理系統(tǒng)、下位機控制系統(tǒng)和剔除裝置等組成。
該視覺檢測系統(tǒng)的結構框圖如圖1所示。
圖1 視覺檢測系統(tǒng)結構框圖
由圖1可以看出:待檢測的齒輪通過振動盤依次傳送到轉動傳輸裝置上,轉動傳輸裝置帶動齒輪轉動,待齒輪經(jīng)過光電傳感器時,觸發(fā)工業(yè)相機拍照,相機將圖像傳輸給電腦,由視覺處理系統(tǒng)對該圖像進行檢測和判別該齒輪是否合格。如果該齒輪有缺陷,視覺處理系統(tǒng)會向下位機(單片機)控制系統(tǒng)發(fā)出剔出信號,剔除裝置將次品齒輪從生產(chǎn)線上剔除。
齒輪傳輸部分負責將待檢測齒輪送往傳送軌道上,并送到檢測工位以及剔除工位。
檢測系統(tǒng)的三維結構示意圖如圖2所示。
圖2 系統(tǒng)三維結構示意圖
齒輪缺陷檢測系統(tǒng)在線檢測存在以下難點:
(1)根據(jù)算法要求,需要提取齒輪的邊緣輪廓信息。將相機拍攝的圖片轉為灰度圖后需要邊緣信息明確,便于實現(xiàn)準確地提取,因此,對背景顏色有一定的要求;
(2)齒輪的在線檢測需要通過傳感器觸發(fā)相機拍照。由于齒輪傳輸速度以及傳感器的響應和延遲等因素,需要在觸發(fā)拍照時齒輪剛好到達相機的正下方,以便拍出完整的齒輪圖像。
由于待檢齒輪均為淺色,轉盤選用了黑色硬質材料,這樣齒輪的輪廓信息就變得突出,便于提取輪廓邊緣信息。
反射式光電傳感器固定在轉動傳輸裝置上,且傳感器位置可調(diào),筆者通過計算齒輪傳輸速度以及實驗,確定傳感器最佳位置并加以固定,保證拍攝時待檢齒輪位于相機鏡頭的正下方。
齒輪圖像在拍攝過程中,不可避免地會受到光源、齒輪顏色或其他噪聲的影響。同時,為了方便后續(xù)缺陷檢測的進行,對于拍攝的齒輪圖像需要進行一些必要的預處理,其中主要包括圖像平滑處理和邊緣提取。
通過相機采集得到的原始圖像包含不同程度的噪聲,這些噪聲會對圖像造成很大的干擾,因此,需要對圖像進行平滑處理。平滑處理主要有兩種方法,即中值濾波和均值濾波[9]。筆者采用3×3中值濾波器對相機采集的圖像進行平滑處理。中值濾波的原理是將模板內(nèi)像素灰度進行排序,取其灰度中值代替原圖像目標像素灰度值。
中值濾波計算過程示意圖如圖3所示。
圖3 中值濾波計算過程示意圖
中值濾波的數(shù)學表達式為:
(1)
式中:G(x,y)—濾波后圖像灰度值;I(i,j)—原圖像灰度值;Sxy—濾波窗口。
由于中值濾波是選取模板中所有像素點的灰度中值,所以模板內(nèi)灰度值較高或較低的噪點均不會對目標像素最終灰度值造成很大影響。因此,采用該方式能夠去除脈沖型噪聲,保留邊緣等細節(jié)信息。
在數(shù)字圖像處理領域,有不少用來檢測圖像里物體邊緣的算法,如Sobel算法、Prewitt算法、Laplace算法、Robert算法、LOG算法以及Canny算法。其中,又以CANNY J F于1986年開發(fā)出來的Canny算法應用最為廣泛。由于它提出了定義最為嚴格的邊緣檢測3個標準,其算法運行效率很高。因此,在此處筆者選用文獻[2]220中的Canny邊緣檢測算子,完成對邊緣信息的提取工作。
在實際工作中,Canny算法需要滿足3個最優(yōu)準則:信噪比準則、定位精度準則、單邊響應準則。
利用以上3個準則,推算出最優(yōu)邊緣檢測算子的一個近似實現(xiàn),能降低單個邊緣產(chǎn)生的多響應的概率,并且能夠最大限度抑制虛假邊界影響。
Canny算法的內(nèi)容主要有:高斯平滑、梯度計算、非極大值抑制、雙門限檢測。
高斯平滑利用函數(shù)如下:
(2)
筆者構造濾波器得到理想的掩模,并通過標準卷積實現(xiàn)高斯平滑;同時,計算出梯度的幅值及其方向,并進行非極大值抑制。
在整個過程中,要找到圖像梯度局部極大值點,并將非極大值點置零,以得到細化邊緣。
其計算公式如下:
Px(i,j)=[I(i,j+1)-I(i,j)+
I(i+1,j+1)-I(i+1,j)]/2
(3)
Py(i,j)=[I(i,j)-I(i+1,j)+
I(i,j+1)-I(i+1,j+1)]/2
(4)
(5)
θ(i,j)=tan-1[Px(i,j)/Py(i,j)]
(6)
式中:Px(i,j),Py(i,j)—x和y方向上一階偏導數(shù);M(i,j)—該點像素的梯度幅值;θ(i,j)—該點像素的方向。
雙門限檢測通過圖像的直方圖和給定的高低閾值系數(shù)分別計算出高低閾值,利用高閾值和經(jīng)過非極大抑制后的圖像進行比較后,記錄邊緣點;同時,在其8鄰域內(nèi)迭代找出大于低閾值點,作為邊緣點。
但在實際操作中,提取出來的邊緣往往包含不想要的細節(jié)或者不需要的邊緣。
通過Canny算子得到的原圖及其目標邊緣的提取,如圖4所示。
圖4 原圖及其目標邊緣提取
這里只需要大齒輪輪廓邊緣,其中,圖4(b)和圖4(c)都是提取出的邊緣,后者為單純的邊緣提取元素,可以清晰地看到,這里除了筆者所需的大齒輪邊緣,還包含了用不到的小齒邊緣以及一些沒有意義的邊緣弧及線段和邊緣小點;筆者通過邊緣面積特征即含像素點數(shù)目,以選出所需的大齒輪邊緣。
最后提取的邊緣效果如圖4(d)所示。
模板匹配是指一種用于在源圖像S中尋找或定位給定目標圖像T(即模板圖像)的技術[10]。其實現(xiàn)的一般過程包括:圖像預處理創(chuàng)建RIO、準備并生成模板圖像、創(chuàng)建模板、匹配或尋找模板、誤差位置角度尺度以及分值的獲取。
筆者在該算法中的模板匹配主要利用的技術包括:形狀匹配、圖像金字塔匹配和帶旋轉和縮放的模板匹配。
形狀匹配的處理思路有兩種:(1)利用邊緣輪廓模板匹配,通過計算圖像邊緣點與模板邊緣點之間的距離作為相似度。該方法不受目標物體在圖像中被遮擋和干擾的影響;(2)基于像素點方向的向量匹配,該方法一般不受邊緣提取的影響,也能適應部分遮擋和非線性光照變化的影響。該方法利用模板像素點的方向向量與圖像相應點位置的方向變量做點積的總和值,作為相似度匹配的分值。
圖像金字塔匹配是實現(xiàn)匹配的一種快速搜索策略[11]。在實際的操作過程中,將圖像多次縮小2倍,并將每次縮小的圖像由大到小依次向上堆放,形成所謂金字塔;同時,該方法可利用均值濾波器來提高金字塔構建速度。
帶旋轉和縮放的模板匹配技術是為了解決圖像中目標物體的方向或大小與模板不同的問題。它的核心思想就是創(chuàng)建多個方向的多種尺寸的模板,將搜索空間離散化進行匹配。在實際操作中,方向和尺寸變化會分別根據(jù)設定的角度步幅和尺寸變化范圍,以此來創(chuàng)建多個模板。
此處筆者通過一個標準水表齒輪的大齒作為模板,提取其邊緣輪廓,作為后續(xù)匹配算法的模板。
模板匹配如圖5所示。
圖5 模板匹配
圖5(a)為一個標準齒輪提取出的邊緣輪廓。筆者采用的方式為:先采用圖像金字塔對模板進行分層搜索,得到模板的一個大概位姿,然后使用次高層的圖像和模板在這個大概位姿附近進行更準確的搜索,最后用形狀匹配獲取其局部信息,利用該信息進行形狀間相似度度量。
該算法中的模板匹配主要是為了找到待匹配齒輪和模板之間的位姿關系。模板和待匹配齒輪的位姿如圖5(c)所示。其位姿計算說明如下:
在模板輪廓上取兩個齒的頂點,且這兩個齒的頂點在同一直徑上,記為(x1,y1),(x2,y2),同樣在提取邊緣后的帶匹配齒輪上取兩個齒的頂點,記為(x′1,y′1),(x′2,y′2),則計算公式如下:
x0=(x1+x2)/2
(7)
y0=(y1+y2)/2
(8)
Δx=x0-x′0
(9)
Δy=y0-y′0
(10)
式中:x0,y0—圓心的橫縱坐標;Δx,Δy—模板與帶匹配齒輪的圓心橫縱坐標差值。
由此進一步可推出:
θ=arctan[(y2-y1)/(x2-x1)]-
arctan[(y′2-y′1)/(x′2-x′1)]
(11)
(12)
式中:θ—模板與帶匹配齒輪兩者間的角度差;S—模板與帶匹配齒輪兩者間的縮放比例因子。
筆者再取與前段直徑相垂直的直徑上兩齒頂點,重復式(7~12)進行對比,便可得另一方向上的縮放因子。
經(jīng)過上述的模板匹配操作后,可以得到關于模板和齒輪圖像目標圖形即其齒輪廓之間的位置和角度關系,即可利用放射變換[12-13]將之前提取的邊緣圖形和模板圖形變換到一起,實現(xiàn)后續(xù)操作。而放射變換主要分為3種變換:平移變換、縮放變換和旋轉變換。3種變換都可以用矩陣來進行描述。
對于平移變換,有:
(13)
式中:x1,y1—圓心變換后的橫縱坐標;Δx,Δy—兩個坐標方向上平移變化量;x0,y0—圓心變換前的橫縱坐標。
對于縮放變換,有:
(14)
式中:Sx,Sy—縮放比例因子。
對于旋轉變換,有:
(15)
放射變換效果圖如圖6所示。
圖6 放射變換效果圖
其中,圖6(a)左上角輪廓是以標準齒輪為模板的邊緣輪廓,右下角輪廓是在待檢齒輪上提取的邊緣輪廓。圖6(b)為應用放射變換后的效果,圖中模板邊緣輪廓和待檢齒輪邊緣輪廓幾乎完全重合,效果很好。
上述兩者重合的單個齒局部放大圖如圖6(c)所示。
Hausdorff距離是由德國數(shù)學家HAUSDORFF F提出的一種能顧及空間目標整體形狀的的距離度量[14-18],現(xiàn)在廣泛應用于衡量兩個集合之間的差別。
對于給定的兩個有限點集A={a1,a2,…,an}和B={b1,b2,…,bn},A和B之間的Hausdorff距離H(A,B)定義為:
H(A,B)=max[h(A,B),h(B,A)]
(16)
式中:h(A,B)—點集A到點集B單向的Hausdorff距離;h(B,A)—點集B到點集A單向的Hausdorff距離。
其數(shù)學表達式如下:
(17)
(18)
式中:‖·‖—點集A和點集B間的距離范數(shù),一般是利用歐幾里得空間下的L2范數(shù)。
因此,可以利用Hausdorff距離來提取模板和待檢齒輪外輪廓間的最大誤差,用該最大誤差對后續(xù)次品進行檢測。
綜合前文所述,筆者提出了一種基于機器視覺的水表齒輪缺陷檢測算法[19]。
齒輪輪廓的缺陷主要是缺料和毛刺等原因所導致的齒廓形狀誤差,通過邊緣提取、模板匹配、放射變換和Hausdorff距離等原理,計算出待檢齒輪齒廓和模板之間的誤差。筆者通過設置一個偏差極限值作為缺陷辨別標準,以實現(xiàn)缺陷檢測與判別。
次品檢測如圖7所示。
圖7 次品檢測
算法中,針對缺陷辨別設置一個變量集,若是待檢齒輪輪廓和模板對比計算出的Hausdorff距離值超過極限值,則超過的部分將寫入該變量集中;若是沒有超過,則該變量集為空集,即可利用該變量集是否為空集,對待檢齒輪是否為次品進行判斷。
圖7中的斷續(xù)線段就是檢測齒廓和模板對比超過設定值的部分的集合,此時該齒輪為次品;若該集合為空,就判定為合格品。
為了評估上述基于機器視覺檢測方法的效果,筆者對該系統(tǒng)進行測試實驗。
實驗裝置設置如圖8所示。
圖8 實驗裝置設置
機械傳送部分的正常運行是視覺系統(tǒng)正常工作的基礎,該部分主要需保證齒輪傳送的速度,以保證視覺系統(tǒng)的檢測速度。
傳送部分中,轉盤由步進電機控制轉速到一個設定的理想值,但是從振動盤傳送過來的齒輪速度和設定的電壓有關。同時,筆者增加了吹氣裝置,以提高傳動速度,吹氣裝置是利用送氣的軟管對著傳送齒輪方向吹氣協(xié)助傳送,齒輪經(jīng)過吹氣裝置時,由于受到氣流的作用,從而加快了齒輪運動速度,并提高了齒輪的平穩(wěn)性。
筆者通過調(diào)試電壓和有無吹氣輔助,確定一個最佳的電壓值和是否增加吹氣功能。
振動盤速度調(diào)試記錄如表1所示。
表1 振動盤速度調(diào)試記錄
根據(jù)調(diào)試結果,振動盤速度在電壓120 V且有吹氣輔助下的效果最佳。
相機采集的齒輪圖像要占據(jù)視場的大小和配合光源光亮強度。為提高其精度,筆者希望齒輪圖像的視場占據(jù)盡量大,但是由于齒輪圖像是通過傳感器觸發(fā)拍攝的,所以為了保證每次都能拍到完整的齒輪圖像,視場占據(jù)不能過大。通過實驗后可知,齒輪大約占據(jù)視場2/3至3/4的范圍。
在檢測大齒輪時,光源的強度大,可以突出大齒輪的特征;而檢測小齒輪時,需要光源調(diào)暗,使小齒輪的邊緣對比度最大化[20]。
傳感器位置布置示意圖如圖9所示。
圖9 傳感器位置布置示意圖
調(diào)整傳感器和相機的相對位置是最為關鍵的一步,影響著檢測系統(tǒng)正常的運行。兩者的相對位置應該滿足在以傳動系統(tǒng)帶著齒輪傳動的正常速度經(jīng)過傳感器時,觸發(fā)相機能采集到完整的齒輪圖像。但是無論是傳感器還是相機,它們在接收到信號再發(fā)送信號都會有一定的延遲,因此,筆者通過計算得出相機的中心到傳感器的最佳布置距離。
其計算公式如下:
(19)
式中:S—相機的中心到傳感器的最佳布置距離;D—齒輪的大齒直徑;V—轉動傳送裝置的線速度;T1—傳感器的延遲時間;T2—相機的延遲時間。
在實驗中,筆者一共采集300個齒輪測試樣本,測試結果如表2所示。
表2 測試結果
其中,合格與不合格齒輪各有150個。檢測系統(tǒng)依次采集了這300個齒輪的圖像,原圖像的大小為640×480像素,該插圖由截取而來,其大小均為260×260個像素。
該實驗在Window7系統(tǒng)、Visual Studio2010平臺上進行,電腦配置Intel(R)Pentium(R)處理器,3.00 GHz主頻,4 G內(nèi)存。筆者的算法由C++語言環(huán)境編寫實現(xiàn),且單個圖像檢測時間低于40 ms,最短時間為29 ms,可以滿足生產(chǎn)線實時檢測要求。
目前,通過人工的方式檢測齒輪缺陷過程中,存在檢測效率低、人為因素影響大等諸多問題,為此,筆者提出了一種基于機器視覺技術的水表齒輪缺陷檢測算法,通過利用廣泛的Canny算子提取出了待檢齒輪的輪廓,再通過模板匹配獲取模板和待檢齒輪間的位姿參數(shù),同時利用放射變換將模板和所提取的齒輪輪廓變換到同一位置,最后通過計算兩者的Hausdorff距離,根據(jù)所要求的極限值大小,對待檢齒輪進行了次品判別。
研究結論如下:
(1)該方法檢測速度快。與傳統(tǒng)視覺檢測算法相比,該算法響應時間短,單個齒輪的檢測時間不超過40 ms,最短時間為29 ms,可以滿足生產(chǎn)線實時檢測要求;
(2)該方法準確性高。正確判別水表齒輪數(shù)量多,且誤檢率低于2%,漏檢率低于1%,能極大地提高檢測效率和檢測準確性;
(3)該方法工程應用價值較高。不僅可以保證產(chǎn)品的質量,還可提高生產(chǎn)效率,降低成本。
在下一階段,筆者計劃將該方法應用于實際水表齒輪生產(chǎn)線的在線檢測系統(tǒng)中,以對其在線檢測功能進行驗證,并對系統(tǒng)進行優(yōu)化。