張茂林,葉輕舟,潘 鑫,陸 華
(1.福建工程學(xué)院 電子電氣與物理學(xué)院,福建 福州350118;2.福建工程學(xué)院 計(jì)算機(jī)科學(xué)與數(shù)學(xué)學(xué)院,福建 福州350118;3.福州三龍噴碼科技有限公司,福建 福州 350014)
化工包裝袋上噴印的生產(chǎn)日期、批號(hào)等信息是產(chǎn)品不可或缺的一部分,對(duì)產(chǎn)品質(zhì)量管控起著重要作用,但化工包裝生產(chǎn)線常由于各種原因造成噴印信息模糊、發(fā)散或缺失。目前大部分生產(chǎn)線采用人工目視進(jìn)行檢查,但隨著產(chǎn)能擴(kuò)大,傳統(tǒng)的人工方法已經(jīng)無(wú)法滿足日常生產(chǎn)需求,迫切需要建立一種化工包裝袋噴印質(zhì)量自動(dòng)檢測(cè)系統(tǒng)。
隨著機(jī)器視覺(jué)技術(shù)研究的不斷深入,機(jī)器視覺(jué)檢測(cè)技術(shù)已在自動(dòng)化檢測(cè)中扮演了重要角色。文獻(xiàn)[1]通過(guò)使用高效光譜圖匹配算法,實(shí)現(xiàn)了對(duì)字符的分割與識(shí)別。文獻(xiàn)[2]提出了基于語(yǔ)義分割網(wǎng)絡(luò)的OCR(Optical Character Recognition)文字識(shí)別方法。文獻(xiàn)[3]利用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)體系結(jié)構(gòu),實(shí)現(xiàn)對(duì)單個(gè)單詞的識(shí)別。文獻(xiàn)[4]采用Halcon軟件開(kāi)展日化瓶瓶底噴碼質(zhì)量檢測(cè)算法研究。文獻(xiàn)[5]基于Tesseract_OCR引擎開(kāi)展紙箱讀碼、OCR字符視覺(jué)檢測(cè)研究?;跈C(jī)器視覺(jué)的化工包裝袋噴碼質(zhì)量檢測(cè)算法主要包含圖像預(yù)處理、圖像定位、字符分割、字符識(shí)別和字符比對(duì)5個(gè)部分,其算法流程如圖1所示。
圖1 算法流程圖
圖像質(zhì)量直接影響檢測(cè)算法設(shè)計(jì)和測(cè)量精度,因此在圖像分析前,需進(jìn)行圖像預(yù)處理來(lái)增強(qiáng)圖像中的有用信息,為特征提取、分割等處理做準(zhǔn)備。其中,圖像濾波是圖像預(yù)處理中的重要環(huán)節(jié)。常見(jiàn)圖像濾波算法有均值濾波、中值濾波、高斯濾波和雙邊濾波等。
均值濾波是將整個(gè)窗口范圍內(nèi)的像素值取平均值,雖然不能較好地保護(hù)圖像細(xì)節(jié),但對(duì)高斯噪聲表現(xiàn)較好。中值濾波是用非線性的方法,將窗口范圍內(nèi)的像素值進(jìn)行排序并取用中心點(diǎn)像素值,能夠保護(hù)圖像尖銳的邊緣,對(duì)椒鹽噪聲表現(xiàn)較好。高斯濾波通過(guò)二維離散高斯函數(shù)采樣并歸一化取得加權(quán)系數(shù)后,對(duì)圖像進(jìn)行加權(quán)平均,是一種線性平滑濾波,適用于消除高斯噪聲。雙邊濾波是將該點(diǎn)鄰域像素值的幾何空間距離及像素差值的加權(quán)平均值替換每個(gè)像素值,能夠較好地保存邊緣和降噪平滑[6-7]。根據(jù)生成采集圖像的特點(diǎn),本文先采用中值濾波濾除一部分噪聲后,再采用高斯雙邊濾波進(jìn)行處理,以便在衰減噪聲的同時(shí)有效地保持圖像邊緣信息。
字符區(qū)域定位指從采集圖像中提取目標(biāo)對(duì)象區(qū)域。常見(jiàn)的字符區(qū)域提取方法可分為基于字符梯度、字符紋理和灰度直方圖3種方法[8-9]。由于工廠環(huán)境中的光照往往存在較大波動(dòng),且不同噴碼信息之間存在一定的差異,常用的邊緣檢測(cè)方法和基于全局均值的可變閾值法魯棒性差,易引入其它噪聲。因此,本文引入亮暗補(bǔ)償函數(shù),并在亮暗補(bǔ)償函數(shù)后再進(jìn)行局部統(tǒng)計(jì)灰度模式,算法表示為
(1)
式中
t′xy=m′xy-nxy
(2)
其中,m′xy表示以坐標(biāo)點(diǎn)(x,y)為中心局部領(lǐng)域Sxy內(nèi)所有像素點(diǎn)灰度值的高斯加權(quán)平均和;nxy=amxy,為點(diǎn)(x,y)局部領(lǐng)域的亮暗補(bǔ)償函數(shù);a為亮暗補(bǔ)償系數(shù);mxy為領(lǐng)域Sxy內(nèi)像素點(diǎn)灰度值均值。亮度高的區(qū)域a加大,亮度低的區(qū)域a減小,以此來(lái)減少閾值像素點(diǎn)灰度值f(x,y)與計(jì)算閾值t′xy之間的差值,從而減少圖像分割后的噪聲點(diǎn)。字符區(qū)域定位結(jié)果如圖2所示。
圖2 基于局部統(tǒng)計(jì)的可變閾值字符區(qū)域定位
字符分割是從包含多個(gè)字符的字符區(qū)域中分割只包含單個(gè)字符的子集圖像。常用的字符分割算法有投影法、連通域法和聚類(lèi)分析法等[10-11]。投影法利用灰度投影直方圖的波峰和波谷特性來(lái)分割字符,根據(jù)投影方向的不同可分為垂直投影和水平投影。該算法對(duì)于圖像質(zhì)量要求較高,目標(biāo)區(qū)域外的噪點(diǎn)、字符變形等因素均會(huì)影響分割效果[12]。連通域法將是將圖像中具有相同像素值且像素點(diǎn)位置關(guān)系符合某種規(guī)則的區(qū)域進(jìn)行字符分割,不適用于由離散點(diǎn)構(gòu)成的大字符噴碼[13-14]。實(shí)際應(yīng)用中,噴碼字符點(diǎn)與點(diǎn)的距離有可能大于字符之間的間隙大小,導(dǎo)致圖像閉運(yùn)算后多個(gè)字符黏連無(wú)法被正確分割。如圖3所示為連通域法字符分割結(jié)果,圖中第二個(gè)字符P被錯(cuò)誤分割,且由于字符D8和00字符存在黏連,導(dǎo)致無(wú)法對(duì)其進(jìn)行正確分割。
圖3 連通域法字符分割
本文提出了一種改進(jìn)連通域的動(dòng)態(tài)字符分割算法,可實(shí)現(xiàn)字符分割。其動(dòng)態(tài)分割偽代碼可表示為:
Input:待處理圖像(src)。
Output:文件夾下的單個(gè)字符圖像。
{
for(intj=0;j for(inti=0;i {統(tǒng)計(jì)每一列的黑像素點(diǎn)個(gè)數(shù)} if(相鄰區(qū)域黑色像素點(diǎn)不連續(xù)0){ else{標(biāo)記最左和最右列為疑似分割位置}} 計(jì)算每個(gè)疑似分割位置間隙,求取間隙眾數(shù)和字符寬眾數(shù)。 for(inti=0;i<字符個(gè)數(shù);i++){ if(字符寬和字符寬眾數(shù)相差較小) {分割位置正確,切割字符} else{ if(字符寬約為字符寬眾數(shù)的倍數(shù)且相鄰間隙與眾數(shù)相近) {按眾數(shù)計(jì)算倍數(shù)位置,搜索前后1/4,1/2眾數(shù)區(qū)域,求最少黑色像素點(diǎn)位置并進(jìn)行分割} if(字符寬小于字符寬眾數(shù)且相鄰間隙較小) {將當(dāng)前字符與下個(gè)字符合并進(jìn)行分割} }} } 改進(jìn)連通域字符分割算法對(duì)字符定位區(qū)域重新進(jìn)行字符分割的結(jié)果如圖4所示。算法能夠有效處理誤分割字符及字符因黏連造成的漏分割,并可根據(jù)每個(gè)分割字符的最小包圍矩形裁剪單個(gè)字符圖像。 圖4 改進(jìn)連通域法字符分割 Tesseract是一款由HP實(shí)驗(yàn)室研發(fā)并由Google優(yōu)化、維護(hù)的 OCR 引擎,可將各種格式的圖像轉(zhuǎn)化成超過(guò)60種語(yǔ)言(包括中文)的文本,并且支持用戶不斷訓(xùn)練字庫(kù),以提高字符識(shí)別準(zhǔn)確率,是目前應(yīng)用較為廣泛的OCR引擎之一[15-17]。 Tesseract-OCR引擎自帶的字庫(kù)對(duì)特定的字符識(shí)別率不高,因此需對(duì)圖像字符分割后的單個(gè)噴碼字符進(jìn)行訓(xùn)練,生成訓(xùn)練數(shù)據(jù),從而提高單個(gè)字符識(shí)別準(zhǔn)確率,其具體步驟如下: 步驟1選取tif格式的圖片作為樣本。將前期圖像分割后的同一個(gè)字符或數(shù)字的單個(gè)字符圖片合并成一張tif圖片。為提升訓(xùn)練效果,確保選取樣本圖像是每個(gè)字符或數(shù)字,并保證至少有50個(gè)樣本; 步驟2生成并調(diào)整BOX文件。通過(guò)Tesseract的makebox命令定位并識(shí)別字符,生成BOX文件。再通過(guò)jTessBoxEditor工具矯正識(shí)別出來(lái)的字符,并調(diào)整Box文件; 步驟3生成、合并訓(xùn)練文件。根據(jù)BOX文件和tif圖片進(jìn)行特征提取和字庫(kù)訓(xùn)練,進(jìn)而生成字符集文件,再通過(guò)聚類(lèi)字符特征及合并訓(xùn)練文件來(lái)生成traineddataz格式的訓(xùn)練文件。 以圖5和圖6的實(shí)驗(yàn)為例,Tesseract-OCR引擎原始數(shù)據(jù)集將輸入圖像識(shí)別為“Ppit-TO35(L5E89)20201010D8007-806953”,其中4個(gè)字符識(shí)別錯(cuò)誤,正確率為88.57%。使用訓(xùn)練數(shù)據(jù)集進(jìn)行識(shí)別時(shí),識(shí)別結(jié)果為“PPH-T035(L5E89)20201010D8007-B06953”,所有字符均識(shí)別正確。由實(shí)驗(yàn)可知,訓(xùn)練數(shù)據(jù)集的識(shí)別效果優(yōu)于引擎原始的數(shù)據(jù)集。 圖5 原始數(shù)據(jù)集字符識(shí)別結(jié)果 圖6 訓(xùn)練數(shù)據(jù)集識(shí)別結(jié)果 本文實(shí)驗(yàn)選用CPU主頻2.0 GHz,內(nèi)存8 GB的PC機(jī),以海康威視(HIKVISION)型號(hào)為MV-CE100-30GC的彩色 CMOS 千兆以太網(wǎng)工業(yè)相機(jī)和焦距為8~50 mm,光圈范圍為F1.4-C的中聯(lián)科創(chuàng)VM08050MP3鏡頭作為實(shí)驗(yàn)平臺(tái)。本文實(shí)驗(yàn)對(duì)象選用經(jīng)噴碼機(jī)噴印信息的包裝袋側(cè)面,需檢測(cè)的區(qū)域?yàn)?00 mm×150 mm。考慮到檢測(cè)范圍較大、檢測(cè)目標(biāo)表面凹凸不平、包裝側(cè)面為圓弧形等特點(diǎn),故選用兩個(gè)140 mm×20 mm的條形白色光源組合,照明方式為前景光直接照明。 為驗(yàn)證算法的有效性,在聚丙乙烯生產(chǎn)車(chē)間,搭建化工包裝袋噴印信息的質(zhì)量檢測(cè)測(cè)試平臺(tái)。將噴碼機(jī)的一組派碼信息與圖像識(shí)別字符進(jìn)行逐一比對(duì),若派碼信息與識(shí)別字符完全一致,則判定噴碼質(zhì)量合格;若一個(gè)字符不一致,則判定噴碼質(zhì)量不合格,并以正確判定噴碼質(zhì)量是否合格的樣本占總樣本的比例作為評(píng)價(jià)指標(biāo)。在生產(chǎn)線中使用該實(shí)驗(yàn)平臺(tái)對(duì)1 000包聚丙乙烯包裝袋的噴碼質(zhì)量進(jìn)行檢測(cè)。本文提出的檢測(cè)算法與目測(cè)校驗(yàn)結(jié)果的對(duì)比如表1所示。 表1 結(jié)果對(duì)比 由表1可以看出,本文提出的檢測(cè)算法對(duì)噴碼質(zhì)量合格的44件產(chǎn)品進(jìn)行了錯(cuò)誤判斷,故噴碼質(zhì)量檢測(cè)算法的精確度為 95.6%。被錯(cuò)誤判斷的44件產(chǎn)品中包裝袋的噴碼部分大部分存在比較明顯的皺褶,字符畸變較為嚴(yán)重,因此導(dǎo)致字符識(shí)別率降低。 本文運(yùn)用均值濾波與高斯雙邊濾波算法對(duì)采集圖像進(jìn)行預(yù)處理,并通過(guò)局部統(tǒng)計(jì)的可變閾值算法獲取字符區(qū)域。針對(duì)噴碼字符點(diǎn)與點(diǎn)的距離有可能大于字符之間的間隙大小,導(dǎo)致二值圖像閉運(yùn)算后多個(gè)字符黏連形成連通域的現(xiàn)象,本文提出了一種改進(jìn)連通域的動(dòng)態(tài)字符分割算法。最后,將分割的字符圖像通過(guò)Tesseract_OCR引擎進(jìn)行分類(lèi)訓(xùn)練和識(shí)別。實(shí)驗(yàn)結(jié)果表明,該算法對(duì)噴碼質(zhì)量檢測(cè)的實(shí)時(shí)性和準(zhǔn)確性較高,能夠滿足化工包裝袋噴碼質(zhì)量檢測(cè)的要求。本研究的不足之處在于數(shù)據(jù)訓(xùn)練的數(shù)據(jù)不夠,泛化能力不夠。此外,由于化工包裝袋存在褶皺,字符畸變較為嚴(yán)重,會(huì)降低本文提出的算法的精確度。因此,在之后的實(shí)驗(yàn)中將進(jìn)一步擴(kuò)大訓(xùn)練數(shù)據(jù),并考慮加入卷積神經(jīng)網(wǎng)絡(luò)來(lái)提高算法的精確度。4 基于Tesseract_OCR引擎的字符識(shí)別與訓(xùn)練
5 實(shí)驗(yàn)結(jié)果與分析
6 結(jié)束語(yǔ)