甘子卿,李 強,張佰明,李家祁,韓佳起,陸海寧
(江蘇中煙工業有限責任公司徐州卷煙廠,江蘇徐州 221000)
目前卷煙廠制絲原料常以煙包的形式由原產地運輸至加工部門。原料部門接收煙包后,通過核對原產地煙包標簽的信息,人工生成入庫條碼并張貼在原產地煙包上,這個過程中易出現人工打錯字、貼錯標的情況,使得出庫的煙包與實際配方不符,存在質量隱患。
若在出庫之前對煙包標簽信息和入庫條碼信息進行比對,一旦發現二者信息不符便剔除問題煙包,可降低煙包出錯的概率,減少質量事故發生的風險。基于現狀,本文主要介紹OpenCV 圖像處理結合OCR(Optical Character Recognition,光學字符識別)技術在煙草行業片煙出庫環節的創新應用情況,提供一種基于OCR技術的煙包出庫信息比對系統的開發思路。
1.1.1 OpenCV
OpenCV 是開源計算機視覺庫,可實現圖像處理和計算機視覺方面的很多通用算法,兼容Window、IOS、Android、Linux 等多個系統平臺,廣泛運用于人機交互、圖像識別、人臉識別、機器視覺等領域[1-3],具有豐富的開放接口。本文主要利用OpenCV 結合深度學習模型進行樣本訓練[4],對圖像進行預處理,達到標簽提取和正畸的目的[5]。
1.1.2 OCR
OCR 是指印刷體字符,通過檢測文字的明暗確定形狀,繼而用字符識別將形狀翻譯成文字[6],具有成熟的技術研究和廣泛的應用場景,如文檔電子化、身份認證、數字金融系統和車輛牌照識別等[7]。此外,在工廠中,通過自動提取產品的文本信息,可以更方便地管理產品[8]。OCR 系統的識別效率和識別準確率,是衡量OCR系統質量的主要標準。
1.1.3 PP-OCR
在實際應用領域,通常需要處理海量的圖片資源,因此高計算效率成為設計OCR 系統的重要標準[9]。本文采用的超輕量級OCR 系統,稱為PP-OCR,由文本檢測、檢測框校正和文本識別三部分組成,模型大小僅0.5 MB,可識別6000 余個漢字和63 個英文及字符。
1.1.4 深度學習
深度學習算法的應用使檢索過程更加智能化,具備理解,學習,推理認知能力[10-12],實現更智能的人機互動,幫助人們做出更佳的輔助決策[13-14]。本文基于現有煙包文字信息庫,將深度學習算法融入識別程序中,大大提高了識別效率。
1.1.5 系統簡述
設計一套基于深度學習的文本檢測比對系統,通過對工業相機拍攝到的煙包標簽數據進行處理,獲取標簽粗略位置,深度學習對片煙煙包圖片中的文字進行自動識別,通過邏輯匹配判斷兩個標簽數據是否一致。并在信息比對不一致時觸發煙包剔除的指令,使煙包通過T 形跑道自動移送至待檢區,等待人工核對。實現數據標簽檢查的自動化,降低檢測人員的勞動強度,提高生產線的自動化水平。
本文用于模型訓練的數據樣本為313 張原產地煙包標簽照片(A 類標簽)以及313 張物流部門生成的入庫條碼(B 類條碼)。
本文的數據采集儀器為海康威視MV-CS050-10GM500 型萬像素工業相機。
在核對標簽信息的工作中,識別標簽A 類和條碼B類的信息是核心主體,但人工的復核效率低,自動化水平不足,因此本系統配備了一套基于計算機視覺的自動文本檢測識別及標簽匹配系統,其模型結構如圖1 所示。

圖1 系統流程
1.4.1 數據采集
將海康威視MV-CS050-10GM500 型萬像素工業相機架設于T 形煙包跑道上方,拍取原產地煙包上的信息標簽和物流入庫條碼標簽(圖2)。

圖2 實拍標簽圖例
1.4.2 標簽定位正畸
由于煙包上的標簽存在橫向與豎向兩個位置,并在整幅圖像中的尺度較小,將對后續基于深度學習的系統造成文字識別障礙。為定位標簽具體位置,并將其中的文字統一旋轉為橫向,采用OpenCV 對煙包進行預處理,將標簽所在的大致位置篩選出來,再將該位置進行正畸和放大,以便后續檢測。
使用cv2 中的cv2.cvtColor 函數對圖片進行灰度化處理,使用cv2.threshold 對遍歷的輪廓進行二值化處理,篩選出圖中白色的部位,為了去除多余的噪點干擾,使用高斯濾波對圖像進行處理后,采用9×9 大小的核對圖像進行腐蝕膨脹操作(圖3),即可得到標簽的大致像素區域,對該區域進行輪廓檢測,檢測其最大的包圍框,將包圍框所在區域的圖像單獨保存下來,判斷包圍框寬度和高度,若包圍框寬度小于高度,則將保存的圖片順時針旋轉90°,否則不做操作,矯正位置后的圖片圖像如圖4 所示。其中,圖4a)為原產地煙包上的原信息標簽,圖4b)為物流部門人工打碼粘貼的條碼。對比信息主要為圖4a)表中A 類信息和圖4b)B 類信息下方的小字。

圖3 腐蝕膨脹結果

圖4 正畸后提取的標簽
1.4.3 文本檢測識別模型PP-OCR 及其優化
(1)文本檢測。文本檢測的目標是定位出圖像中的文字區域,將檢測結果分字段讀取。PP-OCR 采用的是基于分割的DB 文本檢測算法。如圖5 所示,基于分字段文本檢測方法,可以得到文本的緊致包圍盒。此外,DB 的后處理比較簡單,方便實際應用。

圖5 DB 文本檢測器架構
為進一步提升文本檢測器的效果和效率,PP-OCR采用以下6 個策略:超輕量骨干網絡選擇、頭部輕量化、SE 模塊的舍棄、余弦學習率、預熱學習率以及使用FPGM 模型裁剪器。最終將PP-OCR 內文本檢測模型縮小至1.4 MB。
(2)檢測框校準。為提升檢測框中的文字識別效果,保持文字的一致性,一般都希望待識別的文本框是正的水平方向。由于DB 的文本檢測結果是多邊形4 點表示,所以很容易將檢測結果經過仿射變換成水平方向。如果變換后的圖像是豎直方向,則旋轉90°后變為水平方向。但是變為水平方向后,存在文本顛倒的問題。使用文本方向分類器判斷文本是否顛倒,如果是顛倒的文本則轉正后再識別。訓練一個文本方向分類器作為一個基本的圖像分類任務,為進一步提升文本方向分類器的效果和效率,PP-OCR 采用超輕量骨干網絡選擇,數據增強,增大輸入分辨率和PACT int8 量化等4項措施,將PP-OCR 內文本分類器模型縮小至500 kB。
(3)文本識別。文本識別的目標是將文本和圖像轉換為文本。PP-OCR 采用的是文本識別常用的方法CRNN。CRNN 文本識別主要融合了卷積特征和序列特征,采用CTC 損失函數解決預測標簽和真值標簽不一致的問題,PP-OCR 采用超輕量骨干網絡選擇數據增強、余弦學習率、增大特征圖分辨率、正則化參數、預熱學習率、頭部輕量化、預訓練大模型和PACT int8 量化等9個策略,進一步提升文本識別的效果和效率。
與傳統的tesseractOCR 識別相比,本模型使用的PP-OCR 模型體積更小、運算速度更快、能耗更低。且在PP-OCR 識別前、識別中均加入cv2 函數對圖形進行預處理、輪廓提取和矯正。避免了傳統PPOCR 模型只在訓練前對圖片進行預處理,導致截取輪廓不全、傾斜的現象,大大提升了識別的準確率。
引入混淆矩陣如表1 所示,由混淆矩陣可定義文字識別的評價指標,即:

表1 混淆矩陣
式(1)中,P 為查準率,表示識別正確與全部識別結果的比值;式(2)中,R 為召回率,表示剔除正確與全部不一致結果的比值;式(3)中,Fβ為查準率和召回率的調和指標,當β 取值為1 時,表示二者影響程度相等。
根據深度學習算法的訓練,從訓練集中提取了626 張訓練集,共計1503 個訓練樣本。其中某A 類樣本結果圖如圖6 所示。A 類圖片313 張,共計17 841字,識別錯誤63 字,去除污跡、手寫字體,識別錯誤13 字。B 類圖片313 張,共計37 873 字,識別錯誤237 字,若保證圖片中無污跡和手寫字體,準確率可達到99.85%。實際生產中存在污跡、手寫字體,識別錯誤69 字,總識別率達99.46%。

圖6 A 類樣本識別結果
將CTPN+CRNN 識別結果及本文深度學習后的PP-OCR 算法結果進行對比分析,采用采集的數據集再進行訓練,采集數據集進行驗證,得到驗證結果如表2 所示。

表2 模型評價指標結果
可以看出,傳統OCR 算法的效果相對較差,各項指標均明顯低于深度學習的PP-OCR 模型指標,而基于深度學習的PP-OCR 算法結合模型算法效果查準率提高5.59%,召回率提高6.40%,得分提高了5.99%。
綜上,深度學習的PP-OCR 模型算法全面提升了對標簽信息識別的精度,驗證了該模型方法的有效性。
在實際的應用中,本文通過算法將A 類標簽中“江蘇中煙有限責任公司”“年份”“產地”“類型”“監打人員”等不包含關鍵信息的文本結果剔除,只保留“2018”“云南楚雄”“云煙87”等關鍵字信息,與B 類條碼中的文字進行對比,共對比了307 對標簽訓練集(每對訓練集中含有22 個樣本標簽),經對比測試,準確率達99.97%。
為降低煙草檢測人員的勞動強度,提高產線的自動化水平,本文將OCR 引入煙包文本信息識別,利用工業相機攝像頭獲取實時環境的煙包文本信息圖像,將圖像數據輸入深度學習算法系統中,通過深度學習算法對圖像中的數字進行識別、分類,避免了復雜的預處理以及人工提取特征的過程,使數字識別更接近實用,經檢驗本文開發的OCR 系統準確率可達99.97%。
受制于時間原因,一些工作未能繼續開展,如將識別結果對比分析與產線機器人相結合,實現自動化的煙包分類識別;將OCR 系統應用到更多類型的煙草包裝;以結構化本文的方式,編寫數據庫系統以存儲識別結果等。