余躍杭,呂文閣
(廣東工業(yè)大學機電學院,廣東廣州 510006)
O型密封件是一種最常見的密封件,具有結構簡單,成本低廉、密封性能良好和安裝使用方便等特點[1]。O型密封件廣泛應用于各行各業(yè)的各種大型機器設備中,其尺寸是否標準對于設備的密封性能有著巨大影響。
目前,國內密封件生產企業(yè)主要依靠傳統(tǒng)人工的辦法,使用目測及利用離線式尺寸量規(guī)和環(huán)規(guī)儀等測量工具對密封件進行檢測[2-3]。人工檢測方式不僅需要大規(guī)模的勞動力,在檢測過程中,由于工作強度大及時間長,容易產生視覺疲勞,很難做到對產品質量的一致要求和嚴格全面把關。為此,本文提出采用基于機器視覺的密封件檢測系統(tǒng)進行檢測,采用機器視覺檢測的方法,能有效提高檢測效率與檢測精度。
系統(tǒng)的硬件設備主要分為以下4個部分:照明、圖像采集、圖像處理和機械執(zhí)行部件。
照明部分采用的是暗室背光照明模型,暗室背光照明能獲得高對比度的圖像,使得背景與目標產生很大的反差,對接下來的圖像采集和圖像分割至關重要。光源則選擇同軸光源,使得輪廓能清晰、準確的被采集。
圖像采集部分主要由CCD相機與鏡頭組成。相機與鏡頭的選擇,則需要考慮視覺系統(tǒng)的精度要求。本文中的密封圈外徑尺寸為60 mm,要求檢測精度達到0.1 mm,檢測速度達到200 ms,因此圖像采集的速度必須被控制在100 ms以內。根據(jù)以上要求,按照成像原理的方法進行計算[3]。系統(tǒng)采集部分選用德國Basler公司的acA系列Basler-acA1600-20gm工業(yè)相機,鏡頭則選擇可調焦距f=25 mm的鏡頭,最小物距u=250 mm。相機的CCD芯片尺寸短邊h=6.6 mm,分辨率達到了1628×1236。求得最小視野v=66 mm,工業(yè)相機精度66/1236=0.05 mm。本方案論證檢測要求精度為0.1 mm,故所選取工業(yè)相機與鏡頭均符合檢測要求。
圖像處理包括圖像分割與圖像處理算法,是本文的主要內容,將在后面詳解。
圖1 密封圈原圖像
機械執(zhí)行機構主要根據(jù)圖像處理的結果,完成對次品的篩選、擊出等,本文不做詳細討論。圖1為本系統(tǒng)采集到的密封圈的原圖像。
圖2 圖像處理流程
檢測密封圈時,首先根據(jù)采集到的原圖像,對原圖像進行閾值分割,獲得二值化圖像。然后運用圖像處理算法,對已經二值化的圖像進行機器視覺算法進一步處理,找到圖像的內圓與外圓,分別算出其尺寸。對于符合尺寸要求的密封圈,將進行缺陷檢測,對于不符合尺寸要求的密封圈,則直接剔除不良品。圖2是檢測的步驟。
閾值分割是機器視覺圖像處理中很重要的一步,是圖像分析和視覺系統(tǒng)的一個重要的組成部分。閾值分割的好壞,直接決定了圖像特征提取、視覺分析算法的成功與否。閾值分割是指根據(jù)圖像的灰度和色彩的信息,把圖像劃分出幾個區(qū)域,劃分后的同一個區(qū)域中,圖像應該有相似性或一致性,而不同的區(qū)域則應該有明顯的差別。閾值分割有直方圖分割法、迭代法和最大類間分差法。本文主要運用的是最大類間分差法(Otsu分割法)將密封圈與背景分割。
設圖像A中總共存在m個類,那么應該有m-1個閾值將圖像分成m個類。將這m-1個類表示成:
并將類間方差定義為:
其中:
使得σBC取得最大值的一組閾值就是最優(yōu)閾值。
Otsu算法是一種動態(tài)閾值分割的算法,針對本文密封圈圖像,只需要一個動態(tài)閾值,就能夠很好的分割出密封圈的環(huán)面與背景圖像。算法的實現(xiàn)過程如下:
(1)計算出整幅圖像的平均灰度;
(2)計算背景像素在整幅圖像中所占的比例和目標像素在整幅圖像中所占的比例;
(3)計算背景平均灰度值和目標平均灰度值;
(4)根據(jù)上面的算法求出最大值,該最大值就是最佳分割閾值T;
(5)根據(jù)閾值T實現(xiàn)圖像的分割。
實驗結果如圖3所示。
圖3 閾值分割
找出圖像的邊緣之后,就可以對密封圈的內外圓尺寸進行檢測。對圓尺寸的檢測,首先要找出內外圓,才能對其進行檢測。傳統(tǒng)的檢測方法有重心法、邊緣掃描法和Hough變換圓檢測法等。這些檢測方法各有各自的優(yōu)點,精度也較高,但是缺點也明顯,都需要對圖像中的每一點像素進行掃描,而且還重復多次的掃描,效率低下。再者由于算法的原因,會產生大量的浮點運算,而計算機的浮點運算的速度遠遠不及整形運算。因此,本文用于檢測圓的方法是基于Bresenham算法思想的一種改進型圓檢測算法。
Bresenham算法是關于計算機圖形學特性而設計出來的算法,因為顯示器(屏幕或打印機)系由像素構成,因此在求直線各點的過程中可以全部以整數(shù)來運算,計算速度得以提高。
對于人們看到顯示器屏幕上的計算機圖像來說,直線或圓都是模擬出來的,是基于像素的形式顯示的。同樣的,相機采集到的圖像,為離散的二維像素的集合,類似于圖像光柵化,要在光柵網格中離散的點繪制直線,Bresenham算法是目前應用較為廣泛的直線生產算法,生成直線的計算效率和連續(xù)性都較為理想[5]。
具體算法如圖4所示。
圖4 Bresenham畫直線算法
首先畫一個起點P(xi,yi)。
畫下一個點,x坐標增加一個像素單位。如果x到圖像的最右端,則畫線完成,否則繼續(xù)尋找下一個點。如圖4,用網格線的交點模擬像素點,由圖知道要畫的點要么為相交點的上點,要么為下點。若直線與網格的截距d的坐標大于(yi+yi+1)/2則選擇上鄰點,否則選擇下鄰點。
繼續(xù)第二步,直至x到達最右端,畫線結束。
可以看到,在畫線的循環(huán)中,這個算法只用到了整數(shù)的加法,所以非常高效。
3.1.1 Bresenham算法原理[6]
如圖5,由于像素素坐標的整數(shù)性,數(shù)字點(x,y)與所取像素點(x,y+ε)間會引起誤差,這里用ε表示累加誤差。圖5中,(x,y+ε)的下一個點為(x,y+ε+m),可以看出,當(ε+m)<0.5時,繪制(x+1,y)點,否則繪制(x+1,y+1)點。每次繪制后,ε將更新為新值:
當(ε+m)<0.5時,ε=ε+m;
否則,ε=ε+m-1。
將上面的式子分別乘以d x,用ξ代替ε·d x,
而m·d x=d y,則可以用下式表示:
當(ε+m)<0.5時,ξ= ξ+d y
否則,ξ= ξ+d y-d x。
此時,運算已經全部變?yōu)檎麛?shù)的運算了。
圖5 Bresenham算法原理
3.1.2 各象限中的Bresenham算法
在算法的實際實現(xiàn)過程中,可能存在著d y>d x這種情況,便得到了不想要的結果。這是由于只考慮到了d x>d y,且d x、d y都為正的情況。因此,需根據(jù)不同的情況對算法進行改進。
如圖6,當使用Bresenham劃線路徑掃描時,線段的方向可以劃分出8種,將二維坐標系劃分出8個不同的區(qū)域,由圖中所示的區(qū)域位置決定從(x,y)到(x+1,y+1)如何變化。
容易得出,當線段處于①、④、⑤、⑧區(qū)域時,可以用以|d x|和|d y|代替前面公式中的d x和d y,當線段處于②、③、⑥、⑦區(qū)時,將公式中的|△x|和|△y|對換,則上面的兩個公式仍然可用。
圖6 Bresenham在各個象限中的情況
基于Bresenham算法在圖像中快速描繪直線的特性,若利用其描繪直線的思想在圖像中沿著某個方向搜索點,能大大提高其搜索的速度。按照其步驟,首先是要找到一個起點,作為畫線的起點。對于本文中的密封圈檢測來說,想要搜索到內圓和外圓,必須先找到一個位于內圓內的一個點。對于本系統(tǒng)所采用的相機和鏡頭的組合,密封圈在圖像中大概處于最中間的位置,因此將以下面的方法來確定出起點的位置。
(1)畫直線:在圖像中的x坐標和y坐標的三分之一處,分別畫一條平行于y軸和x軸的直線。設密封圈圖像的橫坐標有a個像素,縱坐標有b個像素,于是,分別畫出兩條直線:
(2)判斷交點:對于取出邊緣后的圖像來說,只需找出直線與邊緣的交點,便是與內外圓的交點。在尋找前,先創(chuàng)建一個動態(tài)數(shù)組。掃描過程中,將與前面的像素相比,像素值改變了的點保存到動態(tài)數(shù)組里。最后,取出數(shù)組的首位兩個點。最后取出來了A、B、C、D四個邊緣點。
(3)分別以線段AB的中點和線段CD的中點畫中垂線,
最后用上面的公式,求出交點O,作為Bresenham的畫線起點。畫出的這個O點,是可以確定是處于圓內的某個點。如圖7所示,A、B、C、D分別為兩條線與輪廓的交點,分別以AB和CD的中點畫一條中垂線,兩條中垂線的交點O即可作為畫線的起點。
確定掃描起點后,運用Bresenham算法開始對二值化圖像進行掃描:
(1)分別以斜率為tan0°和tan180°沿兩個方向掃描,掃描的過程中,要根據(jù)不同的區(qū)域區(qū)別對待。創(chuàng)建數(shù)組,將掃描到的點分別記錄下其第一次掃到邊緣的像素值坐標,這兩個坐標值是內圓上的點。再記錄下第二次掃到邊緣的像素值坐標,這兩個坐標值為外圓上的點。
(2)用坐標距離公式分別算出內圓兩個點之間的距離和外圓兩個點之間的距離,得出內圓直徑和外圓直徑,并且求出圓心。
(3)以斜率tan1°和斜率tan181°掃描,類似第一步和第二步的方法,求出內外圓的直徑,此后每次增加一度的斜率掃描,總共循環(huán)180次。
(4)將最后得出的內圓直徑180個數(shù)據(jù)與外圓直徑的180個數(shù)據(jù)分別求平均值,得出內圓平均半徑與外圓平均半徑,并將圓心坐標求平均。
(5)將得出的數(shù)據(jù)與標準數(shù)據(jù)對比,若超出標準范圍,則鑒定為不良品,否則為合格品。
圖7 確定Bresenham掃描直線的起點
在尺寸檢測正常的前提下,進一步對產品表面缺陷進行檢測。一般來說,密封圈的缺陷主要為磨損缺陷,即外圓或者內圓上面出現(xiàn)了凹槽。
凹槽的檢測可以使用等分圓的辦法[7]。將圓等分成n份,這時候將待檢測的圖像與標準密封圈圖像比較,若為合格品,內外圓之間的圓環(huán)半徑方向的像素數(shù)應該與標準件一樣或接近,若有較大的偏差,則為不良品。具體步驟如下:
(1)以圓心為中心將圓n等分;
(2)用Bresenham直線掃描對外環(huán)進行掃描。記錄每一部分像素值為1的像素的個數(shù);
(3)設置一個合理的閾值,將掃描到的每一份像素點與標準件的圓環(huán)像素點進行比較,若超出閾值范圍,則斷定為不良品。
對系統(tǒng)采集到的標準密封圈圖像進行處理,經過閾值分割與尺寸檢測、缺陷檢測,系統(tǒng)均能正確的做出判斷。
本文介紹了一種基于機器視覺密封圈檢測系統(tǒng),實現(xiàn)了密封圈的實時在線檢測過程。該系統(tǒng)的圖像處理部分采用了基于Bresenham在屏幕中劃線的路徑的思想,并將其運用于密封圈的數(shù)字圖像中的輪廓尋找。利用該方法,有效提高了密封圈檢測的速度與精度。
[1]肖鋒,王和順.基于圖像的O型密封圈尺寸檢測方法[J].潤滑與密封,2014,39(1):93-96.
[2]周江,任錕,帥英琦.基于機器視覺的磁鋼片缺陷檢測研究[J].機電工程,2014(12):1541-1546.
[3]利新琴.基于機器視覺的密封橡膠圈缺陷檢測的研究[D].合肥:合肥工業(yè)大學,2009.
[4]曹亮.基于Otsu理論的圖像分割算法研究[D].武漢:武漢理工大學,2008.
[5]程滔,郭雅琳,李正平.Bresenham算法及其在遙感影像圖形繪制中的應用[J].合肥工業(yè)大學學報,2014,37(9):1072-1075.
[6]孫云.一種快速的Bresenham直線生成改進算法[J].計算機光盤軟件與應用,2014(3):108-110.
[7]楊杰.基于機器視覺的瓶口缺陷檢測算法研究及系統(tǒng)開發(fā)[D].廣州:廣東工業(yè)大學,2012.