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