摘 要: 針對(duì)目前空心膠囊端面缺陷圖像采集困難等問(wèn)題,提出了一種特殊照明的方式對(duì)膠囊端部進(jìn)行成像。將圖像銳化、改進(jìn)后的局部自適應(yīng)閾值、輪廓提取用于膠囊端面圖像的預(yù)處理,并針對(duì)膠囊端面缺陷漏檢率高、檢測(cè)效果差等問(wèn)題,提出了一種基于K鄰域鏈碼的拐點(diǎn)檢測(cè)算法,統(tǒng)計(jì)出膠囊端面缺陷圖像中的拐點(diǎn)個(gè)數(shù)并做出缺陷判別。實(shí)驗(yàn)結(jié)果證明,該檢測(cè)算法實(shí)時(shí)性好,對(duì)常見的5種顏色的膠囊漏檢率和誤檢率均控制在2%~9%。
關(guān)鍵詞: K鄰域鏈碼;空心膠囊;端面缺陷檢測(cè)
0 引言
空心膠囊的缺陷檢測(cè)是藥品質(zhì)量監(jiān)管中不可或缺的一道工序。空心膠囊輕微的表面缺陷會(huì)影響其外觀,嚴(yán)重的表面缺陷可能造成充填機(jī)停機(jī)或使膠囊失去容器特性,因此需要對(duì)膠囊表面缺陷進(jìn)行檢測(cè)。端面缺陷是常見的一種空心膠囊缺陷,ISLAM M J等人經(jīng)過(guò)Otsu算子分割、輪廓跟蹤算法擬合端部的輪廓,得到兩個(gè)圓的半徑,判斷半徑是否在設(shè)定范圍之內(nèi)來(lái)判斷膠囊端部是否存在缺陷[1]。KARLOFF A C等人利用了3個(gè)相機(jī)進(jìn)行拍攝,實(shí)現(xiàn)360°的膠囊柱面圖像采集[2]。本文提出了一種較特殊的端部缺陷檢測(cè)方案,利用特定光源照射下膠囊端部反射的“月牙”圖形進(jìn)行后續(xù)的處理和判別。通過(guò)圖像增強(qiáng)使“月牙”圖像的邊緣輪廓更為清晰,再采用圖像分割使端部的“月牙”圖形從背景中分離出來(lái),對(duì)“月牙”的輪廓進(jìn)行提取與篩選,并提出了一種基于K鄰域鏈碼的拐點(diǎn)檢測(cè)算法統(tǒng)計(jì)輪廓拐點(diǎn)數(shù)量,從而判別端部是否存在缺陷。
1 端部缺陷檢測(cè)方案
1.1 端部缺陷類別
常見的膠囊端部缺陷主要分為梅花頭和頂凹這兩種缺陷,如圖1所示。
1.2 照明結(jié)構(gòu)設(shè)計(jì)
在檢測(cè)膠囊端部缺陷時(shí),考慮到膠囊兩頭為半球面,相機(jī)垂直拍攝,僅僅依靠背光時(shí)端部存在盲區(qū),無(wú)法看清端部的情況。實(shí)踐發(fā)現(xiàn),兩端各設(shè)置一個(gè)平行光源進(jìn)行正面照明,會(huì)有一部分反光進(jìn)入上方的相機(jī),觀察反射光是否異常就可以知道端部是否存在缺陷。具體的光源結(jié)構(gòu)設(shè)計(jì)及采集的圖像分別如圖2、圖3所示。
1.3 端部缺陷檢測(cè)算法設(shè)計(jì)
膠囊兩端各有一平行光源,光線照射到膠囊端部并反射進(jìn)相機(jī)中,由于膠囊表面較為光滑且兩端為半球形,因此反射光在相機(jī)采集到的圖像中呈現(xiàn)“月牙”的形狀。當(dāng)膠囊的端部正常時(shí),圖像中的“月牙”形狀完整,亮度均勻,且“月牙”的輪廓相對(duì)平滑;當(dāng)膠囊的端部存在缺陷時(shí),“月牙”的形狀將會(huì)發(fā)生改變,由于不再光滑的半球面使“月牙”的亮度變得不均勻,導(dǎo)致其輪廓的平滑度降低,產(chǎn)生許多不規(guī)則凹凸,甚至出現(xiàn)斷裂的情況,如圖4所示。
利用端部正常時(shí)的“月牙”與端部存在缺陷時(shí)的“月牙”之間的各種差異,通過(guò)檢測(cè)“月牙”的形狀就可以判斷膠囊端部是否異常。
2 預(yù)處理
2.1 圖像增強(qiáng)
“月牙”圖像的檢測(cè)主要依賴于其邊緣平滑度的分析,當(dāng)端部存在缺陷時(shí),“月牙”圖像可能發(fā)生虛化,圖像增強(qiáng)算法增強(qiáng)“月牙”邊緣的對(duì)比度,使邊緣更加清晰。圖像銳化即邊緣增強(qiáng)處理,可以使圖像的邊緣更為清晰,分為頻域高通濾波法和空間域微分法[3-4]??臻g域微分法直接對(duì)圖像像素進(jìn)行操作,免去了頻域與空間域之間的轉(zhuǎn)換,本文采用改良后的Laplacian變形算子[5],獲得更佳的銳化效果。典型的算子模板如式(1)所示,考慮了在圖像45°和135°上的效果。
由于Laplacian算子對(duì)噪點(diǎn)敏感,在銳化之前首先利用高斯平滑對(duì)圖像進(jìn)行降噪處理,然后用式(1)模板進(jìn)行二階微分運(yùn)算,將得到的拉普拉斯圖像與原圖像根據(jù)式(2)疊加,獲取銳化后的圖像如圖5所示。
2.2 閾值分割與孤立點(diǎn)消除
為了提高算法效率,減少不必要的數(shù)據(jù)運(yùn)算,首先需要設(shè)定每個(gè)“月牙”所在區(qū)域的ROI,如圖6所示,4個(gè)白色矩形框?yàn)樵O(shè)定的ROI。由于相機(jī)觸發(fā)采集的圖像中膠囊的位置固定,可保證“月牙”包含于ROI中,復(fù)制ROI圖像后,算法只需針對(duì)“月牙”所處的區(qū)域進(jìn)行處理。
少量的反光讓背景圖像對(duì)“月牙”后續(xù)的分析造成影響,需單獨(dú)提取出“月牙”。為了使“月牙”與背景分離,需采用閾值分割進(jìn)行處理,但膠囊端部出現(xiàn)缺陷時(shí),可能出現(xiàn)“月牙”亮度不均勻的情況,并且膠囊槽上下各有小部分冗余的空間,使膠囊在槽中的位置有所變化。本文對(duì)最有代表性的局部自適應(yīng)閾值法Bernsen算法[6]進(jìn)行修改,使之可以用于從較暗的背景中分割出亮的前景,修改前后的公式分別如式(3)、式(4)所示:
根據(jù)式(4)對(duì)銳化后的圖像局部自適應(yīng)閾值進(jìn)行分割得到圖7,其中窗口大小為25×25,參數(shù)C=22。
從圖7可以看出,由于底板、膠囊槽邊框及膠囊本身有輕微的反光,在“月牙”周圍仍然存在一些干擾。若采用形態(tài)學(xué)運(yùn)算腐蝕或開運(yùn)算進(jìn)行處理,雖能去除周圍的小區(qū)域,但因?yàn)椤霸卵馈弊陨韰^(qū)域面積較小,其形狀將被嚴(yán)重破壞,如圖8所示。
因此本文采用輪廓提取算法獲取圖像中所有連通域的輪廓,并計(jì)算每個(gè)輪廓包圍的面積??紤]到缺陷的“月牙”自身因?yàn)閿嗔训某霈F(xiàn)而分為幾個(gè)部分,所以通過(guò)設(shè)定一個(gè)小數(shù)值的閾值,將面積小于該閾值的區(qū)域去除,保留大于閾值的區(qū)域,即“月牙”本身,得到圖9。
3 基于K鄰域鏈碼的拐點(diǎn)檢測(cè)
拐點(diǎn)定義為改變曲線上、下走勢(shì)的點(diǎn)。拐點(diǎn)檢測(cè)算法可分兩類,一類是利用模板處理圖像中所有像素,依據(jù)結(jié)果確定拐點(diǎn)[7];另一類通過(guò)搜索區(qū)域邊緣曲率最大值來(lái)尋找拐點(diǎn)[8]。后一種方法實(shí)現(xiàn)較為簡(jiǎn)單,準(zhǔn)確度較高。正常的“月牙”具有兩個(gè)拐點(diǎn),而缺陷的“月牙”由于邊緣的形變較多,拐點(diǎn)數(shù)將超過(guò)兩個(gè),通過(guò)拐點(diǎn)檢測(cè)算法檢測(cè)“月牙”邊緣拐點(diǎn),統(tǒng)計(jì)其數(shù)量即可判斷是否存在缺陷。
本文將K鄰域鏈碼用于拐點(diǎn)檢測(cè),相比于8鄰域鏈碼,其方向量化精度有所提高,并且具有平滑作用,避免邊界噪聲的干擾,可準(zhǔn)確計(jì)算邊緣曲率。
設(shè)“月牙”邊緣由n個(gè)像素pi(i=1,2,…,n)組成, c(k,i)和ei為第i個(gè)邊緣像素的鏈碼和曲率,在某一鄰域內(nèi),像素p(i+k/8)相對(duì)于pi的方向可表示為c(k,i+k/8)。像素pi的K鄰域如圖10所示,中心像素的外圍第1、2、3圈分別為8鄰域、16鄰域、和24鄰域,用數(shù)字0,1,2,…,k-1表示鄰域方向。實(shí)際中存在兩種特殊的情況:
?。?)像素p(i+k/8)不在的K鄰域內(nèi),但在pi的k-8m內(nèi),其中m=1,2,…,且k-8m≥8,則用式(5)來(lái)代替;
c(k,i+k/8)≈c(k-8m,i+k/8)×k/(k-8m)(5)
?。?)若像素p(i+k/8)不在pi的任何一個(gè)鄰域內(nèi),表明 p(i+k/8)和pi為同一個(gè)像素,且意味著像素p(i+k/16)為拐點(diǎn),標(biāo)記p(i+k/8)和pi,在后續(xù)處理中此標(biāo)記可表明在點(diǎn)p(i+k/16)位置上有曲率突變。此時(shí),c(k,i+k/8)不參與曲率的計(jì)算,可以令c(k,i+k/8)=c(k,i+k/8-1)。
根據(jù)K鄰域鏈碼描述可得邊緣像素pi處的切線角度的改變量i為:
為了擴(kuò)大邊緣上各點(diǎn)的曲率之差,使之易于比較,采用式(8)進(jìn)行計(jì)算。
對(duì)二值圖像中的“月牙”進(jìn)行拐點(diǎn)檢測(cè),統(tǒng)計(jì)邊緣曲線上的輪廓數(shù)量,即可實(shí)現(xiàn)缺陷判斷。
4 實(shí)驗(yàn)結(jié)果
從生產(chǎn)線上選用不同顏色的膠囊作為測(cè)試樣本,主要檢測(cè)頂凹和梅花頭兩種缺陷,端部正常時(shí)與端部缺陷時(shí)的檢測(cè)結(jié)果如圖11所示,圖形“×”表示所找到的拐點(diǎn)所在位置,可以看出圖11(a)中正常的空心膠囊端部觀點(diǎn)數(shù)目為2個(gè),11(b)端部缺陷的空心膠囊拐點(diǎn)數(shù)目遠(yuǎn)大于2個(gè)??梢娫摱瞬咳毕輽z測(cè)算法具有良好的效果。在實(shí)際測(cè)試中,本算法在Intel Core i7 4770k的處理平臺(tái)下耗費(fèi)的總時(shí)間平均為5.4 ms,實(shí)時(shí)性較好。
選用5種不同顏色的膠囊進(jìn)行端部缺陷檢測(cè)實(shí)驗(yàn),檢測(cè)完成后分別從成品和次品中抽樣檢測(cè),統(tǒng)計(jì)每種顏色膠囊的漏檢率和誤檢率,部分抽樣結(jié)果如表1所示。本算法漏檢率和誤檢率均在2%~9%之間。
5 結(jié)論
本文提出了一種較為特殊的端部缺陷檢測(cè)方案,利用特定光源照射下膠囊端部反射的“月牙”圖形進(jìn)行后續(xù)的處理和判別。實(shí)驗(yàn)結(jié)果證明,本文提出的缺陷檢測(cè)算法實(shí)時(shí)性好,漏檢率、誤檢率較低,算法健壯性較強(qiáng)且效率較高,有一定的應(yīng)用價(jià)值。
參考文獻(xiàn)
[1] ISLAM M J, AHMADI M, SID-AHMED M A. Image processing techniques for quality inspection of gelatin capsules in pharmaceutical applications[C]. 10th International Conference on Control, Automation, Robotics and Vision, ICARCV 2008, IEEE, 2008:862-867.
[2] KARLOFF A C, SCOTT N E, MUSCEDERE R. A flexible design for a cost effective, high throughput inspection system for pharmaceutical capsules[C]. IEEE International Conference on Industrial Technology, ICIT 2008, IEEE, 2008:1-4.
[3] MURAI T, MORIMOTO M, FUJII K. A visual inspection system for medical capsules[C]. Systems, Man, and Cybernetics (SMC), IEEE, 2012:1433-1437.
[4] 萬(wàn)水龍,劉進(jìn),余彪,等.基于閾值函數(shù)和TV模型的印章圖像去噪[J].微型機(jī)與應(yīng)用,2014,33(2),46-49.
[5] 張聰,桂志國(guó).噪聲控制的圖像非線性銳化方法[J].計(jì)算機(jī)工程與應(yīng)用,2011,47(4):154-156.
[6] BERNSEN J. Dynamic thresholding of grey-level images[C].International Conference on Pattern Recognition, 1986: 1251-1255.
[7] 尚振宏,劉明業(yè).二值圖像中拐點(diǎn)的實(shí)時(shí)檢測(cè)算法[J].中國(guó)圖象圖形學(xué)報(bào),2005,10(3):295-300.
[8] SARFRAZ M, MASOOD A, ASIM M R. A new approach to corner detection[M]. Springer Netherlands: Computer Vision and Graphics, 2006.