王 娟,周永霞,徐冰俏,王康健
(中國計(jì)量學(xué)院 信息工程學(xué)院,浙江 杭州310018)
機(jī)器視覺是研究計(jì)算機(jī)模擬生物宏觀視覺功能的科學(xué)和技術(shù),即用攝像機(jī)和計(jì)算機(jī)等儀器設(shè)備代替人眼對(duì)目標(biāo)進(jìn)行測(cè)量、跟蹤和識(shí)別,并加以判斷.主要用于工業(yè)檢測(cè)、精密控制、自動(dòng)生產(chǎn)流水線及顯微醫(yī)學(xué)等領(lǐng)域.制藥與食品行業(yè)中,在以往人工檢測(cè)膠囊質(zhì)量時(shí),耗費(fèi)大量的人力、物力.在現(xiàn)代自動(dòng)化生產(chǎn)過程中,人們通過流水線檢查膠囊成品質(zhì)量,大大提高了效率,降低了成本.視覺缺陷檢測(cè)系統(tǒng)一般的解決方法為:在流水線上,當(dāng)藥片到達(dá)指定位置時(shí),啟動(dòng)觸發(fā)部件,攝像頭開始拍攝,數(shù)據(jù)經(jīng)過采集傳送到電腦,進(jìn)行圖像處理.這些圖像數(shù)據(jù)可能包含藥片的各種缺陷信息,通過圖像處理單元中的算法識(shí)別分類有缺陷的圖像.不合格的膠囊如果被檢測(cè)出來,機(jī)器就會(huì)得到一個(gè)信號(hào),從而將不合格膠囊剔除.
左奇[1]、史忠科提出了一種基于機(jī)器視覺的檢測(cè)方法來實(shí)現(xiàn)膠囊完整性的識(shí)別.該文中為避免二值化處理產(chǎn)生的錯(cuò)誤分割,采用局部二值化方法,以邊緣提取為基礎(chǔ),對(duì)投影和形態(tài)濾波確定的每個(gè)膠囊存在區(qū)域進(jìn)行二值化處理,從而取得良好的分割效果.葉青松[2]在藥丸實(shí)時(shí)檢測(cè)中經(jīng)過對(duì)藥丸檢測(cè)的詳細(xì)分析,提出了完整的工作循環(huán)模式.在每次工作循環(huán)中,首先獲取圖像,然后依次進(jìn)行預(yù)處理、目標(biāo)識(shí)別、形狀檢測(cè)、尺寸檢測(cè)、和顏色檢測(cè),全部合格后才判定為合格品.形狀檢測(cè)就是判斷藥丸是否完整光滑,方法是判斷藥丸圖像的邊界像素到質(zhì)心的距離是否超出偏差;尺寸檢測(cè)的方法是計(jì)算藥丸圖像的面積,并以此判斷是否符合尺寸要求;顏色檢測(cè)的方法是將藥丸圖像的每個(gè)像素的RGB向量與標(biāo)準(zhǔn)進(jìn)行比較,偏差超出范圍的即為不合格品.
在膠囊的特征參數(shù)選取中,王軍海[3]在殘損膠囊圖像檢測(cè)系統(tǒng)的研究與設(shè)計(jì)中提出合格膠囊與破損膠囊在灰度圖的均值與方差二值上有一定差異.徐曉[4]在形狀識(shí)別的方法中提出融合不變矩、相對(duì)矩和基于數(shù)學(xué)形態(tài)學(xué)的角點(diǎn)檢測(cè)方法進(jìn)行形狀識(shí)別.吳德[5]提出了適合膠囊圖像的濾波和增強(qiáng)算法,完成了圖像中的膠囊提取、非均勻多灰度圖像的分割和缺陷特征提取.該文通過二值化來提取出圖像的缺陷斑點(diǎn)并計(jì)算出缺陷斑點(diǎn)像素的大小,從而根據(jù)標(biāo)準(zhǔn)設(shè)置的閾值來判斷是否屬于缺陷,當(dāng)缺陷斑點(diǎn)像素面積大于所設(shè)置的閾值則判斷為缺陷,否則忽略.
筆者主要研究缺陷檢測(cè)系統(tǒng)的圖像處理部分,圖像缺陷識(shí)別算法是整個(gè)系統(tǒng)的核心部分,也是一個(gè)難點(diǎn).它把攝像頭采集來的圖像進(jìn)行分析處理,從而判斷其是否合格.我們研究的膠囊圖片在機(jī)器卡口上,6個(gè)為一組.圖片如圖1.
通過對(duì)工業(yè)攝像機(jī)采集到的膠囊圖像依次進(jìn)行中值濾波、雙峰直方圖分割、形態(tài)學(xué)處理、幾何特征提取(面積、周長),在Hough直線檢測(cè)后對(duì)膠囊壁兩側(cè)直線長度、傾斜度、膠囊兩端圓弧近似長度的計(jì)算,實(shí)現(xiàn)膠囊外形缺陷的檢測(cè)識(shí)別.
圖1 采集的圖像Figure 1 Collected image
圖像中不可避免地伴有噪聲的影響,這會(huì)對(duì)圖像的定位、識(shí)別帶來很大的影響.噪聲是圖像中不應(yīng)該存在的小污點(diǎn),它們是在圖像的拍攝或者傳送過程中產(chǎn)生的.必須在圖像處理之前對(duì)其進(jìn)行噪聲消除,以最大限度地減少噪聲帶來的影響.典型的去噪方法有均值濾波器、中值濾波器、多圖像平均法、低通濾波器[5].
我們采用中值濾波方法對(duì)采集到的圖像進(jìn)行預(yù)處理.中值濾波是一種非線性信號(hào)處理方法,是在保護(hù)邊緣細(xì)節(jié)的同時(shí)濾除噪聲.中值濾波效果依賴于窗口的大小,太大會(huì)使邊緣模糊,太小則去噪效果不佳.因?yàn)樵肼朁c(diǎn)和邊緣點(diǎn)同樣是灰度變化較為劇烈的像素,普通中值濾波在改變?cè)肼朁c(diǎn)灰度時(shí),會(huì)一定程度地改變邊緣像素灰度值.但是噪聲點(diǎn)幾乎都是鄰域像素的極值,而邊緣往往不是,因此可以利用這個(gè)特性來限制中值濾波.筆者采用改進(jìn)的中值濾波,逐行掃描圖像,當(dāng)處理每一個(gè)像素時(shí),判斷該像素是否是濾波窗口覆蓋下鄰域像素的極大或者極小值.如果是,則采用正常的中值濾波處理該像素;如果不是,則不進(jìn)行任何處理.在實(shí)踐中,這種方法能非常有效地去除突發(fā)噪聲,且?guī)缀醪挥绊戇吘?中值濾波在每個(gè)n×n鄰域內(nèi)都會(huì)忽略那些相對(duì)于鄰域內(nèi)大部分像素更亮或者更暗,并且所占區(qū)域小于像素總數(shù)的一半(n2/2)的那些像素的影響.改進(jìn)的中值濾波在窗口移動(dòng)過程中增加了當(dāng)前值與鄰域像素的比較操作,所以比普通中值濾波費(fèi)時(shí).經(jīng)檢測(cè),采用普通中值濾波處理圖1耗時(shí)3 438ms,而改進(jìn)的耗時(shí)3 593ms,相差109ms.改進(jìn)后比改進(jìn)前慢了約3%.因?yàn)槲覀円獧z測(cè)外形,所以邊緣信息很重要,這里的耗時(shí)可以接受.
改進(jìn)中值濾波效果圖如圖2.
圖2 改進(jìn)中值濾波效果圖Figure 2 Effect chart of improved median filtering
圖像分割的方法和種類非常多.圖像分割算法一般基于圖像灰度值的不連續(xù)性或其相似性.不連續(xù)性即基于圖像灰度的不連續(xù)變化分割圖像.如邊緣檢測(cè)、邊界跟蹤、Hough變換.相似性即依據(jù)事先制定的準(zhǔn)則將圖像分割為相似的區(qū)域.如區(qū)域分割、區(qū)域生長、區(qū)域分裂與合并.
在基于灰度值的相似性進(jìn)行分割時(shí),圖像分割效果的好壞直接取決于閾值的選取.直方圖法是最佳全局閾值確定的常用方法.在選擇閾值時(shí),根據(jù)不同的目標(biāo),對(duì)圖像分割往往存在一個(gè)最佳的閾值.最佳全局閾值確定有兩種常用方法:實(shí)驗(yàn)法和直方圖法.
如果分割之前知道圖像的一些特征,那么閾值確定比較簡單,只要試驗(yàn)不同的閾值,然后看是否滿足已知特征即可.比如,如果知道前景的平均灰度,那么就可以進(jìn)行逐一的閾值實(shí)驗(yàn),直到找到合適的閾值.不過這種方法需要知道圖像的某些特征,而有的時(shí)候這些特征是事先不可知的.
如果前景物體內(nèi)部灰度值分布比較均勻,背景灰度值的分布也是比較均勻的,這個(gè)圖像的灰度直方圖將有明顯的雙峰.當(dāng)一幅圖像的直方圖具有雙峰時(shí),可選擇兩峰之間的谷點(diǎn)作為門限值.該方法比較簡單,但是當(dāng)兩個(gè)峰值相差很遠(yuǎn)時(shí)不適用,因?yàn)榍熬昂捅尘昂芸赡苡幸徊糠只叶戎凳枪灿械?適用于兩個(gè)峰值相距比較近的、具有明顯雙峰的圖像,是一種比較理想的情況,實(shí)際中很難找到這樣的圖像.隨著區(qū)域分割研究的不斷深入,圖像并行分割不但可以有一個(gè)閾值,還可以有多個(gè)閾值.采用一個(gè)閾值的方法比較容易受到噪聲的影響,這些影響會(huì)在直方圖中出現(xiàn)虛極值.
雙峰法原理比較簡單:它認(rèn)為圖像由前景和背景組成,在雙峰直方圖上,前后二景都形成高峰,在雙峰之間的最低谷處就是圖像的閾值所在.因?yàn)槟z囊前后景對(duì)比較強(qiáng)烈,所以分割效果能達(dá)到要求.筆者通過得到圖2的直方圖如圖3.
圖3 圖2直方圖Figure 3 Histogram of Fig 2
由該圖直方圖分析得知,圖像有四個(gè)明顯的峰值,對(duì)應(yīng)三個(gè)峰谷.中間的雙峰部分為膠囊部分信息,兩邊部分為背景信息.只觀察直方圖可知,需要的兩個(gè)閾值在15到45和95到200之間.所以本程序中根據(jù)直方圖信息計(jì)算所得兩個(gè)閾值為自動(dòng)獲取經(jīng)檢測(cè)發(fā)現(xiàn)此閾值對(duì)檢測(cè)的大部分圖片均有好的分割效果.針對(duì)圖3,峰值必是比它兩邊至少10個(gè)像素在直方圖中y軸坐標(biāo)都大的點(diǎn).經(jīng)計(jì)算得到的六個(gè)峰值為2,55,136,173,207,255,我們?nèi)〉谝环逯蹬c第二峰值之間的峰谷,經(jīng)計(jì)算為39,第二峰值與第三峰值之間的峰谷,經(jīng)計(jì)算為138.以這兩個(gè)峰谷作為分割閾值.分割得到的圖像如圖4.
圖4 圖2分割后圖像Figure 4 Segmented image of Fig 2
為了去除殘留背景,筆者對(duì)比了兩種方法:
1)對(duì)圖4進(jìn)行開運(yùn)算,使用3×3矩形結(jié)構(gòu)元,區(qū)域中比結(jié)構(gòu)元小的部分都會(huì)被從區(qū)域中去除掉.去除物體間相連部分以分開物體.去除卡口邊框.計(jì)算結(jié)果圖中連通區(qū)域的面積,去除小面積,得到目標(biāo)圖像如圖5.
圖5 去除小目標(biāo)后的目標(biāo)圖Figure 5 Graph of removing small goal
2)對(duì)于第一種方法,可以看出固定膠囊的卡殼并不能很好的消除掉.筆者想出了第二種方法,即首先對(duì)圖2進(jìn)行灰度開運(yùn)算.令F表示灰度圖像,S為結(jié)構(gòu)元素(3×3),灰度開運(yùn)算可表示為:F·S.該運(yùn)算可以消除相對(duì)于結(jié)構(gòu)元素S而言較小的高灰度區(qū)域.效果圖如圖6.
圖6 圖2的開運(yùn)算處理圖像Figure 6 Image of open computing in Fig 2
對(duì)圖6采用雙峰直方圖進(jìn)行分割,并進(jìn)行灰度膨脹運(yùn)算得效果圖如圖7.
圖7 圖6分割效果圖Figure 7 Segmentation effects of Fig 6
為了去除不需要的信息(除膠囊外的部分),對(duì)圖7進(jìn)行灰度膨脹運(yùn)算(圖8):
圖8 圖7經(jīng)過1次膨脹運(yùn)算的效果圖Figure 8 Effect chart of Fig7after 1time dilation
對(duì)圖8進(jìn)行直方圖分割(圖9):
圖9 圖8分割效果圖Figure 9 Segmentation effects of Fig 8
可以看到膠囊與卡殼的粘連部分得到了較好的分離.為了計(jì)算面積,對(duì)圖9進(jìn)行二值化處理(圖10):
圖10 圖9的二值化處理圖像Figure 10 Two binary processing image of Fig 9
計(jì)算圖10中連通區(qū)域的面積,去除小面積,得到目標(biāo)圖像如圖11.
圖11 去除小目標(biāo)后的效果圖Figure 11 Graph of removing small goal
經(jīng)比較發(fā)現(xiàn),第二種方法處理效果更好一些,所以本文采用第二種方法.
邊緣可以被定義為在局部區(qū)域內(nèi)圖像特征的差別,它表現(xiàn)在圖像上的不連續(xù)性(比如,灰度級(jí)的突變和紋理結(jié)構(gòu)的突變等).大范圍內(nèi)的不連續(xù)即為邊界.邊緣檢測(cè)用邊緣點(diǎn)勾畫出各個(gè)對(duì)象的輪廓,從而分析圖像是否含有某些需要識(shí)別的目標(biāo).其目的就是要突出圖像的邊緣以便獲取圖像特征.為了得到更多的圖像信息,我們把圖11中的目標(biāo)區(qū)域復(fù)原為原像素.如下圖12:
圖12 復(fù)原目標(biāo)圖Figure 12 Restoration goal graph
筆 者 分 別 采 用 了 Robert,Sobel,Prewitt,Log,Canny算子進(jìn)行邊緣檢測(cè),并對(duì)邊緣檢測(cè)效果進(jìn)行了對(duì)比.對(duì)圖12分別采用以上邊緣檢測(cè)算子進(jìn)行處理.
經(jīng)過比較結(jié)果圖,Robert算子利用局部差分算子尋找邊緣,邊緣定位精度高,但容易丟失一部分邊緣.Sobel與Prewitt算子都考慮了鄰域信息,相當(dāng)于對(duì)圖像先做加權(quán)平滑處理,然后再做微分運(yùn)算,所不同的是平滑部分的權(quán)值有些差異,因此對(duì)噪聲具有一定的抑制能力,但不能完全排除檢測(cè)結(jié)果中出現(xiàn)的虛假邊緣.這兩個(gè)算子邊緣定位效果不錯(cuò),但檢測(cè)出的邊緣容易出現(xiàn)多像素寬度.Log(Laplacian of Gaussian)算子克服了拉普拉斯算子抗噪能力比較差的缺點(diǎn),但在抑制噪聲的同時(shí)也可能將原有的比較尖銳的邊緣也抑制掉了,造成這些邊緣無法檢測(cè)到.
Robert,Sobel,Prewitt,Log算子都是基于微分方法的邊緣檢測(cè)方法.它們都只有在圖像不含噪聲或者首先通過平滑去噪前提下才能正常應(yīng)用.Canny算子在抗噪干擾和精確定位之間具有最佳折衷方案.筆者發(fā)現(xiàn)Canny算子只要找到合適的閾值,以高閾值為低閾值的3倍就能很好地檢測(cè)出膠囊的邊緣信息,而且能很好地消除膠囊卡口的粘連部分.因此,經(jīng)過比較我們選用Canny算子為本文的邊緣檢測(cè)算子.
要在原圖中提取出所需區(qū)域.在本程序中先在圖12中找到膠囊輪廓,根據(jù)膠囊輪廓的外接矩形框的大小先排除一部分面積不合格的膠囊.通過實(shí)驗(yàn)得出基本合格的膠囊的矩形框大小在38 000和41 000之間.對(duì)目標(biāo)膠囊連通區(qū)域進(jìn)行分割,得到目標(biāo)分割圖像如圖13:
圖13 膠囊輪廓分割Figure 13 Capsule contour segmentation
Hough變換是圖像處理中從圖像中識(shí)別幾何形狀的基本方法之一.主要利用點(diǎn)線對(duì)偶性來進(jìn)行映射變換.
圖14 點(diǎn)-線的對(duì)偶性Figure 14 Duality of point-line
人工圖像中,大多數(shù)物體都是由線或曲線組成的,所以圖像處理中對(duì)線或曲線的識(shí)別和定位就顯得十分重要.Hough(霍夫)變換是一種用于區(qū)域邊界形狀描述的方法,經(jīng)典Hough變換常常被用于直線段、圓和橢圓的檢測(cè).其基本思想是將圖像的空間域變換到參數(shù)空間,用大多數(shù)邊界點(diǎn)滿足的某種參數(shù)形式來描述圖像中的曲線(區(qū)域邊界).通過設(shè)置累加器進(jìn)行累加,求得峰值對(duì)應(yīng)的點(diǎn)就是所需要的信息.
筆者用Hough檢測(cè)出輪廓圖像圖13中的直線,通過編程計(jì)算得到直線的信息:直線距屏幕左下角的距離,直線與垂直方向的夾角,膠囊壁兩側(cè)直線的近似長度.
圖15 Hough檢測(cè)膠囊輪廓圖像中的直線Figure 15 Straight in capsule contour after Hough detection
計(jì)算中間兩條直線之間的距離,我們要把這兩條線段找出來,把它們的端點(diǎn)坐標(biāo)保存起來,通過訪問它們的坐標(biāo),定位出圓心.在圖15中,以第4個(gè)膠囊為例,直線信息標(biāo)記為下圖:
圖16 直線坐標(biāo)標(biāo)記Figure 16 Linear coordinate mark
上端半徑r1=(x1-x0)/2,下端半徑r2=(x′1-x′0)/2.由于本文從圖13中得到膠囊的外界輪廓矩形,該膠囊的外界矩形記為rt,則該膠囊上端圓心橫坐標(biāo)為(x0+r1).縱坐標(biāo)為(rt.top+r1).下端圓心橫坐標(biāo)為(x′0+r2),縱坐標(biāo)為(rt.bottom-r2).
根據(jù)檢測(cè)到的圓心,可以定位出膠囊兩端圓弧的大概位置.從而計(jì)算出膠囊兩端圓弧的近似長度.有了半徑,可以根據(jù)圓心來擬合圓弧,為了能識(shí)別膠囊兩端的變形,提出了更簡單的方法.由于膠囊兩端圓形部分并不是標(biāo)準(zhǔn)的圓形,所以經(jīng)過實(shí)驗(yàn)我們提取出這樣一個(gè)特征,即把膠囊兩端的圓弧部分的像素點(diǎn)數(shù)近似為圓弧的長度.這個(gè)特征能很好地對(duì)膠囊兩端變形與不變形的膠囊進(jìn)行分類.
1)定位圓弧首先定位圓心.(圖17).
圖17 定位膠囊兩端圓弧圓心Figure 17 Positioning both ends of the arc center in capsule
2)定位出圓心后,根據(jù)膠囊兩端圓弧的位置,定位出它的外接矩形框.見圖18.
圖18 定位膠囊兩端圓弧部分Figure 18 Positioning both ends of the circular section in capsule
由此經(jīng)過以上幾步,就可以對(duì)膠囊外形合格與否做出正確的判斷.提取的參數(shù)只要與正常膠囊這些參數(shù)的誤差在可以允許的范圍內(nèi),即可判定其是否合格.
表1中膠囊提取的特征如下(單位:像素):
對(duì)膠囊外形的缺陷進(jìn)行了檢測(cè),采用改進(jìn)的中值濾波算法對(duì)采集的圖像進(jìn)行預(yù)處理,與一些已經(jīng)成熟的藥片檢測(cè)圖像處理單元相比,我們用表1中提取的特征參數(shù)對(duì)膠囊外形進(jìn)行檢測(cè)取得了良好的檢測(cè)效果.在1.86GHz,1G內(nèi)存的PC機(jī)上檢測(cè)算法的耗時(shí)在1 903~1 920ms之間.檢驗(yàn)?zāi)z囊外形正確率達(dá)98%.特別是膠囊兩端圓形部分近似長度參數(shù)、膠囊壁長參數(shù)、半徑參數(shù)識(shí)別對(duì)于膠囊外形是否合格具有很高的分類能力.但是,對(duì)一些比較細(xì)微的缺陷,該方法不能進(jìn)行識(shí)別.這些問題均為筆者下一步要解決的問題.
表1 膠囊外形特征參數(shù)(0表示不合格,1表示合格)Table 1 capsule shape characteristic parameters(0is unqualified,1is qualified)
[1]左 奇,史忠科.基于汲取視覺的膠囊完整性檢測(cè)系統(tǒng)研究[J].西安交通大學(xué)學(xué)報(bào),2002,36(12):1262-1265.
[2]葉青松.基于機(jī)器視覺的工業(yè)檢測(cè)研究[D].無錫:江南大學(xué),2008.
[3]王軍海.殘損膠囊圖像檢測(cè)系統(tǒng)的研究與設(shè)計(jì)[D].武漢:武漢理工大學(xué),2008.
[4]徐 曉,翟靜梅.基于機(jī)器視覺的形狀檢測(cè)尺寸方法研究[J].微計(jì)算機(jī)信息,2009,25(6):222-223.
[5]易 平,陳福生,鄒紅艷.圖像處理中消除噪聲的方法[J].計(jì)算機(jī)應(yīng)用于軟件,2003,5(1):29-34.
[6]吳 德.基于圖像處理的膠囊檢測(cè)系統(tǒng)的研究[D].廣東:廣東工業(yè)大學(xué),2011.
[7]朱銘煜,周武能.圖像處理在藥片缺陷檢測(cè)中的應(yīng)用[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(23):5151-5154.
[8]梁華為.直接從雙峰直方圖確定二值化閾值[J].模式識(shí)別與人工智能,2002,15(2):253-256.
[9]DENNETH R C.Digital Image Processing[M].阮秋琦,阮宇智譯.北京:清華大學(xué)出版社,1997:58-68.
[10]張 靜,王宏剛.一種邊緣提取的圖像分割方法[J].光學(xué)信息,2001,27(5):424-427.
[11]韋 林,胡榮強(qiáng).基于BP網(wǎng)絡(luò)的膠囊藥片自動(dòng)檢測(cè)系統(tǒng)[J].計(jì)算機(jī)應(yīng)用研究,2002:1(4):52-53.