李百明
(黎明職業(yè)大學(xué) 智能制造工程學(xué)院,福建 泉州 362000)
食品包裝行業(yè)通常采用噴碼技術(shù)將食品的生產(chǎn)日期和生產(chǎn)流水號(hào)等信息以點(diǎn)陣字符的形式標(biāo)注于食品包裝的表面。由于在噴碼過(guò)程中會(huì)受到噴頭振動(dòng)、噴墨不均勻等因素的影響,不可避免地會(huì)出現(xiàn)部分字符的漏噴和模糊等缺陷,進(jìn)而影響食品的安全。目前,大多數(shù)食品生產(chǎn)企業(yè)對(duì)噴碼信息的檢測(cè)仍采用人工目測(cè)的方式完成,但該方法存在檢測(cè)效率低、成本高的問(wèn)題,而且因檢測(cè)人員易疲勞還存在誤檢的問(wèn)題[1]。因此,研究一種高效低成本的噴碼字符檢測(cè)方法,不僅可以提高企業(yè)的檢測(cè)效率、降低企業(yè)成本,還有利于確保食品的安全。目前,一些學(xué)者針對(duì)食品包裝上點(diǎn)陣噴碼字符的識(shí)別問(wèn)題進(jìn)行了一些研究。例如:馬玲等[2]提出了一種將模板匹配與支持向量機(jī)相結(jié)合的點(diǎn)陣字符識(shí)別方法,該方法在字符傾角不大時(shí)字符分割的準(zhǔn)確率較高,但當(dāng)字符傾角變大時(shí)單個(gè)字符分割的準(zhǔn)確率降低,且該方法分割出的字符變形較大,降低了識(shí)別的準(zhǔn)確性。林冬婷等[3]提出了一種噴點(diǎn)合并特征的點(diǎn)陣字符分割方法,該方法在系統(tǒng)照明均勻、背景不復(fù)雜時(shí)分割字符的準(zhǔn)確率較高,但當(dāng)點(diǎn)陣字符的周圍有錫紙、貫穿字符區(qū)域的包裝盒接縫等復(fù)雜背景時(shí),字符定位效果不佳,導(dǎo)致分割準(zhǔn)確率降低。林慧瑩等[4]提出了一種復(fù)雜背景下的點(diǎn)陣字符識(shí)別方法,該方法可準(zhǔn)確定位字符,且對(duì)黏連字符有較好的分割效果,但當(dāng)點(diǎn)陣字符存在局部漏噴或字符模糊時(shí),會(huì)出現(xiàn)字符分割不完整的現(xiàn)象?;谏鲜鲅芯?本文以牛奶包裝盒上噴印的生產(chǎn)日期為研究對(duì)象,提出了一種基于機(jī)器視覺的點(diǎn)陣字符分割方法,并通過(guò)實(shí)驗(yàn)驗(yàn)證了該方法的有效性。
字符定位的目的是將待識(shí)別字符所在區(qū)域與周圍背景分開,避免背景對(duì)待識(shí)別字符造成干擾。字符定位是準(zhǔn)確完成字符分割和正確實(shí)現(xiàn)字符識(shí)別的重要前提。Blob分析是一種可綜合運(yùn)用二值化、形態(tài)學(xué)和特征篩選等方法對(duì)圖像中像素相同的連通域進(jìn)行分析的方法[5],該方法可有效分析特定目標(biāo)定位、數(shù)量統(tǒng)計(jì)和缺陷檢測(cè)等問(wèn)題。因此,本文采用Blob分析對(duì)噴碼字符所在區(qū)域進(jìn)行定位。
1.1.1 二值化
對(duì)牛奶包裝盒頂面圖像進(jìn)行二值化的目的是縮小目標(biāo)區(qū)域,其中關(guān)鍵步驟是如何確定閾值[6]。最大類間方差法[7]是一種基于全局的、非參數(shù)的、無(wú)監(jiān)督的自適應(yīng)閾值法。由于該方法不受圖像亮度和對(duì)比度的影響,可有效確定圖像的全局閾值。因此,本文采用最大類間方差法對(duì)采集到的牛奶包裝盒圖像做二值化處理。
利用最大類間方差法自動(dòng)確定牛奶包裝盒圖像全局閾值的方法為:首先利用閾值將牛奶包裝盒圖像分成前景和背景兩部分[8],然后根據(jù)前景和背景的平均灰度值及其所占總圖像的灰度百分比求出圖像的類間方差。當(dāng)類間方差值最大時(shí),所選取的閾值即為最佳分割閾值。利用最大類間方差法對(duì)某一牛奶包裝盒頂面圖像進(jìn)行二值化的結(jié)果,如圖1所示。
圖1 最大類間方差二值化圖
1.1.2 形態(tài)學(xué)處理
形態(tài)學(xué)基本操作包括膨脹、腐蝕、開運(yùn)算及閉運(yùn)算等[9]。在進(jìn)行形態(tài)學(xué)操作前,須先定義一個(gè)類似濾波核的結(jié)構(gòu)元素。膨脹和腐蝕的程度由結(jié)構(gòu)元素的大小決定,即:結(jié)構(gòu)元素越大,被膨脹或腐蝕的區(qū)域就越大;反之,被膨脹或腐蝕的區(qū)域就越小。從圖1可知,對(duì)牛奶包裝盒進(jìn)行二值化處理后,有一條垂直分布的細(xì)小的斷續(xù)噪點(diǎn)(由牛奶包裝盒頂部縱向接縫所致)貫穿了噴碼字符所在區(qū)域。為了便于準(zhǔn)確定位噴碼字符所在區(qū)域,本文先用半徑為3.5的圓形結(jié)構(gòu)元素對(duì)圖1做開運(yùn)算操作,以消除此條噪點(diǎn)對(duì)噴碼字符區(qū)域定位影響;然后再用寬140、高40的矩形結(jié)構(gòu)元素對(duì)開運(yùn)算后的區(qū)域做膨脹處理,由此將點(diǎn)陣噴碼字符連成一個(gè)整體。形態(tài)學(xué)處理后的結(jié)果,如圖2所示。
圖2 對(duì)二值化區(qū)域進(jìn)行形態(tài)學(xué)處理后的結(jié)果圖
1.1.3 特征篩選
圖像經(jīng)過(guò)二值化和形態(tài)學(xué)處理后,變?yōu)橛扇舾蓞^(qū)域組成的集合。在集合中選出特定的區(qū)域需以特征作為篩選依據(jù)。由圖2可知,噴碼字符所在區(qū)域的面積、長(zhǎng)度、寬度、長(zhǎng)寬比等幾何形狀特征和其他區(qū)域有明顯差異,因此本文采用區(qū)域面積特征對(duì)圖2進(jìn)行篩選。對(duì)篩選結(jié)果做最小外接矩形后再將其從灰度圖像中裁剪出來(lái)即得如圖3所示的點(diǎn)陣噴碼字符圖像。由圖3可以看出,采用上述方法可實(shí)現(xiàn)對(duì)噴碼字符的精準(zhǔn)定位。
圖3 點(diǎn)陣噴碼字符
1.1.4 噴碼字符的轉(zhuǎn)正
在噴碼時(shí)由于牛奶包裝盒的位置及噴墨角度易發(fā)生變動(dòng),導(dǎo)致噴碼字符易出現(xiàn)傾斜情況(見圖4)。因此,當(dāng)噴碼字符傾斜角度較大時(shí),需要先將其轉(zhuǎn)正,以便后續(xù)的正確分割和識(shí)別。
圖4 傾斜的點(diǎn)陣噴碼字符
圖5 圖像旋轉(zhuǎn)示意圖
1)將直線PV平移至P′V′位置,且將點(diǎn)P′與原點(diǎn)O重合。根據(jù)平面幾何坐標(biāo)平移公式,得其對(duì)應(yīng)的齊次坐標(biāo)矩陣公式為
(1)
2)將直線P′V′繞O點(diǎn)同旋轉(zhuǎn)角度θ。根據(jù)平面幾何坐標(biāo)旋轉(zhuǎn)公式,得其對(duì)應(yīng)的齊次坐標(biāo)矩陣公式為
(2)
3)將直線P′V′平移到PV?位置,得其對(duì)應(yīng)的齊次坐標(biāo)矩陣公式為
(3)
將(1)式和(2)式帶入(3)式可得
(4)
由以上可知,只需計(jì)算出圖4中噴碼字符的中心點(diǎn)坐標(biāo)和字符傾斜角度,根據(jù)式(4)便可完成對(duì)傾斜字符的轉(zhuǎn)正。轉(zhuǎn)正后的圖像如圖6所示。
圖6 轉(zhuǎn)正后的點(diǎn)陣噴碼字符
牛奶包裝盒頂部的噴碼字符具有如下特點(diǎn):字符由陣列分布的散點(diǎn)組成;整個(gè)字符是斷續(xù)的,不具有普通字符的連通性;不同包裝盒上兩行字符之間的行距是固定的;同一行字符之間的距離不相等;字符的寬度是一定的。針對(duì)這些特點(diǎn),本文采用灰度投影法[10]結(jié)合字符寬度特征對(duì)點(diǎn)陣字符進(jìn)行分割處理。分割處理的方法:首先,逐行逐列地計(jì)算灰度特征(即水平灰度投影和垂直灰度投影),以此得到能夠反應(yīng)二維圖像在一維方向上總體變化趨勢(shì)的特征曲線[11];然后,利用一維特征曲線結(jié)合字符寬度特征對(duì)圖像進(jìn)行分割,由此即可實(shí)現(xiàn)字符的提取。
1.2.1 字符行分割
采用水平灰度投影法對(duì)轉(zhuǎn)正后的噴碼字符進(jìn)行行分割的結(jié)果如圖7所示。由圖7可知,投影后灰度值超過(guò)200的曲線共有3段,分別對(duì)應(yīng)圖6的最頂部無(wú)字符區(qū)域、中間無(wú)字符區(qū)域和最底下無(wú)字符區(qū)域。
行數(shù)/行圖7 轉(zhuǎn)正后噴碼字符的水平灰度投影曲線
因此,只需從圖7中第2段曲線的波峰位置分割即可,分割后的結(jié)果如圖8所示。
(a) 第一行字符
1.2.2 字符列分割
由于識(shí)別字符時(shí)不須識(shí)別冒號(hào),因此在列分割之先對(duì)圖8(b)進(jìn)行預(yù)處理,即去掉圖像中“時(shí)、分、秒”之間的兩個(gè)“:”。去掉冒號(hào)后,將圖像取反成黑底白字,并在垂直方向進(jìn)行灰度投影,結(jié)果見圖9。
列數(shù)/列圖9 第2行字符的垂直投影曲線
由圖9可知,圖中共有9個(gè)灰度值為0的波谷,與單行字符之間的9段間隔剛好對(duì)應(yīng)。此外,由于字符的寬度是一定的,因此在字符分割時(shí)將垂直投影法和字符寬度特征相結(jié)合可較好地避免因局部漏噴或字符模糊造成的誤分割現(xiàn)象,分割后的10個(gè)獨(dú)立字符如圖10所示。
圖10 第二行字符列分割的結(jié)果
由于分割出的單個(gè)字符大小往往不一致(影響字符識(shí)別的穩(wěn)定性和效率),故本文采用雙線性插值法將分割后的字符統(tǒng)一歸一化為70×110[10-12]。
本文設(shè)計(jì)的點(diǎn)陣字符分割方法采用深圳邁德威視公司的MV-G2448M相機(jī)對(duì)牛奶包裝盒頂部點(diǎn)陣噴碼圖像進(jìn)行采集。該相機(jī)是有效視場(chǎng)為2/3英寸,分辨率為2 448×2 048像素的CMOS相機(jī);光源使用發(fā)光面外徑為155 mm,內(nèi)徑為120 mm的低角度環(huán)形光源;鏡頭選用大恒圖像的HN-P-2528-6M-C2/3型工業(yè)鏡頭,分辨率為600萬(wàn)像素。算法實(shí)驗(yàn)平臺(tái)為Halcon20.11版。
為了驗(yàn)證本文提出的Blob分析定位算法的性能,與文獻(xiàn)[3]的方法(采用水平投影對(duì)點(diǎn)陣字符所在區(qū)域進(jìn)行定位)進(jìn)行了比較,部分實(shí)驗(yàn)結(jié)果如圖11所示。
圖11 不同方法定位點(diǎn)陣噴碼字符的實(shí)驗(yàn)結(jié)果
圖11(a)是在本文實(shí)驗(yàn)對(duì)象中隨機(jī)選取的4幅點(diǎn)陣噴碼圖像。圖11(b)是用文獻(xiàn)[3]中定位方法得到的定位結(jié)果。由11(b)可以看出,該方法存在定位范圍過(guò)大和定位不完整的情況。圖11(c)是采用本文的定位方法得到的定位結(jié)果。由圖11(c)可以看出,4幅圖中噴碼字符所在區(qū)域均被準(zhǔn)確定位,且定位范圍大小合適。
文獻(xiàn)[3]的定位方法較差的原因是背景復(fù)雜(如背景反光、對(duì)比度差異大)、局部漏噴和字符模糊對(duì)其影響較大;而本文提出的Blob分析定位方法效果較好的原因是該方法能夠?qū)叶戎迪嗤膱F(tuán)塊進(jìn)行處理(并不單獨(dú)研究每行或一列的灰度值),因此可以很好地克服上述問(wèn)題。
為了驗(yàn)證本文提出的灰度投影法結(jié)合字符寬度特征的分割性能,與文獻(xiàn)[4]中的算法(采用連通域最小外接矩形進(jìn)行二次等間距分割)進(jìn)行了對(duì)比,部分分割結(jié)果如圖12所示。圖12(a)為隨機(jī)選取的4個(gè)分割出來(lái)的單行字符。圖12(b)為采用文獻(xiàn)[4]的方法得到的分割結(jié)果。由圖12(b)可以看出:第1行與第2行字符均實(shí)現(xiàn)了完美的分割;第3行字符的數(shù)字“0”被分割成兩個(gè)不完全字符,且0右邊的數(shù)字“2”上部分信息丟失,已無(wú)法辨別原字符是數(shù)字還是其他特殊標(biāo)記;第4行左邊第一個(gè)數(shù)字“0”分割成了字母“U”。圖12(c)為本文采用的分割方法。由圖12(c)可以看出,4行字符均實(shí)現(xiàn)了完美分割。
圖12 不同方法字符分割結(jié)果
文獻(xiàn)[4]的分割方法較差的原因是分割后的字符會(huì)從漏噴或噴印模糊的地方斷開,從而出現(xiàn)分割不完整的問(wèn)題;而本文提出的分割方法其效果較好的原因是在利用字符之間灰度值為零的特性的基礎(chǔ)上融合了噴碼字符的寬度特征,因此能夠保證分割的準(zhǔn)確性。表1為利用上述兩種方法對(duì)120幅圖像中的噴碼字符進(jìn)行分割后的結(jié)果統(tǒng)計(jì)。由表1可以看出,本文的分割準(zhǔn)確率(98.7%)顯著優(yōu)于文獻(xiàn)[4]中方法的分割準(zhǔn)確率(92.2%),由此進(jìn)一步表明本文提出的分割方法比文獻(xiàn)[4]中的分割方法更具有優(yōu)勢(shì)。
表1 字符分割實(shí)驗(yàn)對(duì)比表
為了進(jìn)一步驗(yàn)證本文提出的分割算法的有效性,將分割后的字符在MLP模型中進(jìn)行識(shí)別。實(shí)驗(yàn)采集的每幅圖像共有22個(gè)點(diǎn)陣字符,其中“0~9”之間的數(shù)字有19個(gè),字母“A”1個(gè),特殊字符“:”2個(gè),共計(jì)12個(gè)類別。實(shí)驗(yàn)平臺(tái)為halcon20.11版,其內(nèi)部自帶58種常用字符識(shí)別庫(kù),可完全滿足本文需要。識(shí)別結(jié)果見表2。
表2 MLP分類器對(duì)分割字符的識(shí)別結(jié)果
從表2可以看出,本文方法的識(shí)別準(zhǔn)確率為97%,識(shí)別的平均時(shí)間為0.87 s.該結(jié)果表明:本文提出的基于機(jī)器視覺的點(diǎn)陣字符分割方法對(duì)背景復(fù)雜、局部漏噴或模糊的點(diǎn)陣噴碼字符識(shí)別具有很好的魯棒性。
實(shí)驗(yàn)表明,提出的基于機(jī)器視覺的點(diǎn)陣字符分割方法在反光、照明不均勻等復(fù)雜背景下對(duì)噴碼字符的定位準(zhǔn)確性明顯優(yōu)于文獻(xiàn)[3]中的定位方法;在字符出現(xiàn)局部漏噴、噴印模糊時(shí)對(duì)字符的分割準(zhǔn)確率顯著優(yōu)于文獻(xiàn)[4]中的分割方法。另外,本文提出的定位和分割方法具有很強(qiáng)的魯棒性。因此,本文方法在噴碼字符識(shí)別上具有良好的應(yīng)用性。本文僅對(duì)復(fù)雜背景、局部漏噴和局部字符模糊的情況進(jìn)行了研究,今后將在現(xiàn)有方法基礎(chǔ)上對(duì)單個(gè)字符出現(xiàn)較大面積的漏噴或較大面積的字符模糊情況進(jìn)行研究,以提升本文方法的應(yīng)用范圍。