李百明
(黎明職業大學 智能制造工程學院,福建 泉州 362000)
食品包裝行業通常采用噴碼技術將食品的生產日期和生產流水號等信息以點陣字符的形式標注于食品包裝的表面。由于在噴碼過程中會受到噴頭振動、噴墨不均勻等因素的影響,不可避免地會出現部分字符的漏噴和模糊等缺陷,進而影響食品的安全。目前,大多數食品生產企業對噴碼信息的檢測仍采用人工目測的方式完成,但該方法存在檢測效率低、成本高的問題,而且因檢測人員易疲勞還存在誤檢的問題[1]。因此,研究一種高效低成本的噴碼字符檢測方法,不僅可以提高企業的檢測效率、降低企業成本,還有利于確保食品的安全。目前,一些學者針對食品包裝上點陣噴碼字符的識別問題進行了一些研究。例如:馬玲等[2]提出了一種將模板匹配與支持向量機相結合的點陣字符識別方法,該方法在字符傾角不大時字符分割的準確率較高,但當字符傾角變大時單個字符分割的準確率降低,且該方法分割出的字符變形較大,降低了識別的準確性。林冬婷等[3]提出了一種噴點合并特征的點陣字符分割方法,該方法在系統照明均勻、背景不復雜時分割字符的準確率較高,但當點陣字符的周圍有錫紙、貫穿字符區域的包裝盒接縫等復雜背景時,字符定位效果不佳,導致分割準確率降低。林慧瑩等[4]提出了一種復雜背景下的點陣字符識別方法,該方法可準確定位字符,且對黏連字符有較好的分割效果,但當點陣字符存在局部漏噴或字符模糊時,會出現字符分割不完整的現象。基于上述研究,本文以牛奶包裝盒上噴印的生產日期為研究對象,提出了一種基于機器視覺的點陣字符分割方法,并通過實驗驗證了該方法的有效性。
字符定位的目的是將待識別字符所在區域與周圍背景分開,避免背景對待識別字符造成干擾。字符定位是準確完成字符分割和正確實現字符識別的重要前提。Blob分析是一種可綜合運用二值化、形態學和特征篩選等方法對圖像中像素相同的連通域進行分析的方法[5],該方法可有效分析特定目標定位、數量統計和缺陷檢測等問題。因此,本文采用Blob分析對噴碼字符所在區域進行定位。
1.1.1 二值化
對牛奶包裝盒頂面圖像進行二值化的目的是縮小目標區域,其中關鍵步驟是如何確定閾值[6]。最大類間方差法[7]是一種基于全局的、非參數的、無監督的自適應閾值法。由于該方法不受圖像亮度和對比度的影響,可有效確定圖像的全局閾值。因此,本文采用最大類間方差法對采集到的牛奶包裝盒圖像做二值化處理。
利用最大類間方差法自動確定牛奶包裝盒圖像全局閾值的方法為:首先利用閾值將牛奶包裝盒圖像分成前景和背景兩部分[8],然后根據前景和背景的平均灰度值及其所占總圖像的灰度百分比求出圖像的類間方差。當類間方差值最大時,所選取的閾值即為最佳分割閾值。利用最大類間方差法對某一牛奶包裝盒頂面圖像進行二值化的結果,如圖1所示。

圖1 最大類間方差二值化圖
1.1.2 形態學處理
形態學基本操作包括膨脹、腐蝕、開運算及閉運算等[9]。在進行形態學操作前,須先定義一個類似濾波核的結構元素。膨脹和腐蝕的程度由結構元素的大小決定,即:結構元素越大,被膨脹或腐蝕的區域就越大;反之,被膨脹或腐蝕的區域就越小。從圖1可知,對牛奶包裝盒進行二值化處理后,有一條垂直分布的細小的斷續噪點(由牛奶包裝盒頂部縱向接縫所致)貫穿了噴碼字符所在區域。為了便于準確定位噴碼字符所在區域,本文先用半徑為3.5的圓形結構元素對圖1做開運算操作,以消除此條噪點對噴碼字符區域定位影響;然后再用寬140、高40的矩形結構元素對開運算后的區域做膨脹處理,由此將點陣噴碼字符連成一個整體。形態學處理后的結果,如圖2所示。

圖2 對二值化區域進行形態學處理后的結果圖
1.1.3 特征篩選
圖像經過二值化和形態學處理后,變為由若干區域組成的集合。在集合中選出特定的區域需以特征作為篩選依據。由圖2可知,噴碼字符所在區域的面積、長度、寬度、長寬比等幾何形狀特征和其他區域有明顯差異,因此本文采用區域面積特征對圖2進行篩選。對篩選結果做最小外接矩形后再將其從灰度圖像中裁剪出來即得如圖3所示的點陣噴碼字符圖像。由圖3可以看出,采用上述方法可實現對噴碼字符的精準定位。

圖3 點陣噴碼字符
1.1.4 噴碼字符的轉正
在噴碼時由于牛奶包裝盒的位置及噴墨角度易發生變動,導致噴碼字符易出現傾斜情況(見圖4)。因此,當噴碼字符傾斜角度較大時,需要先將其轉正,以便后續的正確分割和識別。

圖4 傾斜的點陣噴碼字符

圖5 圖像旋轉示意圖
1)將直線PV平移至P′V′位置,且將點P′與原點O重合。根據平面幾何坐標平移公式,得其對應的齊次坐標矩陣公式為
(1)
2)將直線P′V′繞O點同旋轉角度θ。根據平面幾何坐標旋轉公式,得其對應的齊次坐標矩陣公式為
(2)
3)將直線P′V′平移到PV?位置,得其對應的齊次坐標矩陣公式為
(3)
將(1)式和(2)式帶入(3)式可得
(4)
由以上可知,只需計算出圖4中噴碼字符的中心點坐標和字符傾斜角度,根據式(4)便可完成對傾斜字符的轉正。轉正后的圖像如圖6所示。

圖6 轉正后的點陣噴碼字符
牛奶包裝盒頂部的噴碼字符具有如下特點:字符由陣列分布的散點組成;整個字符是斷續的,不具有普通字符的連通性;不同包裝盒上兩行字符之間的行距是固定的;同一行字符之間的距離不相等;字符的寬度是一定的。針對這些特點,本文采用灰度投影法[10]結合字符寬度特征對點陣字符進行分割處理。分割處理的方法:首先,逐行逐列地計算灰度特征(即水平灰度投影和垂直灰度投影),以此得到能夠反應二維圖像在一維方向上總體變化趨勢的特征曲線[11];然后,利用一維特征曲線結合字符寬度特征對圖像進行分割,由此即可實現字符的提取。
1.2.1 字符行分割
采用水平灰度投影法對轉正后的噴碼字符進行行分割的結果如圖7所示。由圖7可知,投影后灰度值超過200的曲線共有3段,分別對應圖6的最頂部無字符區域、中間無字符區域和最底下無字符區域。

行數/行圖7 轉正后噴碼字符的水平灰度投影曲線
因此,只需從圖7中第2段曲線的波峰位置分割即可,分割后的結果如圖8所示。

(a) 第一行字符
1.2.2 字符列分割
由于識別字符時不須識別冒號,因此在列分割之先對圖8(b)進行預處理,即去掉圖像中“時、分、秒”之間的兩個“:”。去掉冒號后,將圖像取反成黑底白字,并在垂直方向進行灰度投影,結果見圖9。

列數/列圖9 第2行字符的垂直投影曲線
由圖9可知,圖中共有9個灰度值為0的波谷,與單行字符之間的9段間隔剛好對應。此外,由于字符的寬度是一定的,因此在字符分割時將垂直投影法和字符寬度特征相結合可較好地避免因局部漏噴或字符模糊造成的誤分割現象,分割后的10個獨立字符如圖10所示。

圖10 第二行字符列分割的結果
由于分割出的單個字符大小往往不一致(影響字符識別的穩定性和效率),故本文采用雙線性插值法將分割后的字符統一歸一化為70×110[10-12]。
本文設計的點陣字符分割方法采用深圳邁德威視公司的MV-G2448M相機對牛奶包裝盒頂部點陣噴碼圖像進行采集。該相機是有效視場為2/3英寸,分辨率為2 448×2 048像素的CMOS相機;光源使用發光面外徑為155 mm,內徑為120 mm的低角度環形光源;鏡頭選用大恒圖像的HN-P-2528-6M-C2/3型工業鏡頭,分辨率為600萬像素。算法實驗平臺為Halcon20.11版。
為了驗證本文提出的Blob分析定位算法的性能,與文獻[3]的方法(采用水平投影對點陣字符所在區域進行定位)進行了比較,部分實驗結果如圖11所示。

圖11 不同方法定位點陣噴碼字符的實驗結果
圖11(a)是在本文實驗對象中隨機選取的4幅點陣噴碼圖像。圖11(b)是用文獻[3]中定位方法得到的定位結果。由11(b)可以看出,該方法存在定位范圍過大和定位不完整的情況。圖11(c)是采用本文的定位方法得到的定位結果。由圖11(c)可以看出,4幅圖中噴碼字符所在區域均被準確定位,且定位范圍大小合適。
文獻[3]的定位方法較差的原因是背景復雜(如背景反光、對比度差異大)、局部漏噴和字符模糊對其影響較大;而本文提出的Blob分析定位方法效果較好的原因是該方法能夠對灰度值相同的團塊進行處理(并不單獨研究每行或一列的灰度值),因此可以很好地克服上述問題。
為了驗證本文提出的灰度投影法結合字符寬度特征的分割性能,與文獻[4]中的算法(采用連通域最小外接矩形進行二次等間距分割)進行了對比,部分分割結果如圖12所示。圖12(a)為隨機選取的4個分割出來的單行字符。圖12(b)為采用文獻[4]的方法得到的分割結果。由圖12(b)可以看出:第1行與第2行字符均實現了完美的分割;第3行字符的數字“0”被分割成兩個不完全字符,且0右邊的數字“2”上部分信息丟失,已無法辨別原字符是數字還是其他特殊標記;第4行左邊第一個數字“0”分割成了字母“U”。圖12(c)為本文采用的分割方法。由圖12(c)可以看出,4行字符均實現了完美分割。

圖12 不同方法字符分割結果
文獻[4]的分割方法較差的原因是分割后的字符會從漏噴或噴印模糊的地方斷開,從而出現分割不完整的問題;而本文提出的分割方法其效果較好的原因是在利用字符之間灰度值為零的特性的基礎上融合了噴碼字符的寬度特征,因此能夠保證分割的準確性。表1為利用上述兩種方法對120幅圖像中的噴碼字符進行分割后的結果統計。由表1可以看出,本文的分割準確率(98.7%)顯著優于文獻[4]中方法的分割準確率(92.2%),由此進一步表明本文提出的分割方法比文獻[4]中的分割方法更具有優勢。

表1 字符分割實驗對比表
為了進一步驗證本文提出的分割算法的有效性,將分割后的字符在MLP模型中進行識別。實驗采集的每幅圖像共有22個點陣字符,其中“0~9”之間的數字有19個,字母“A”1個,特殊字符“:”2個,共計12個類別。實驗平臺為halcon20.11版,其內部自帶58種常用字符識別庫,可完全滿足本文需要。識別結果見表2。

表2 MLP分類器對分割字符的識別結果
從表2可以看出,本文方法的識別準確率為97%,識別的平均時間為0.87 s.該結果表明:本文提出的基于機器視覺的點陣字符分割方法對背景復雜、局部漏噴或模糊的點陣噴碼字符識別具有很好的魯棒性。
實驗表明,提出的基于機器視覺的點陣字符分割方法在反光、照明不均勻等復雜背景下對噴碼字符的定位準確性明顯優于文獻[3]中的定位方法;在字符出現局部漏噴、噴印模糊時對字符的分割準確率顯著優于文獻[4]中的分割方法。另外,本文提出的定位和分割方法具有很強的魯棒性。因此,本文方法在噴碼字符識別上具有良好的應用性。本文僅對復雜背景、局部漏噴和局部字符模糊的情況進行了研究,今后將在現有方法基礎上對單個字符出現較大面積的漏噴或較大面積的字符模糊情況進行研究,以提升本文方法的應用范圍。