甘子卿,李 強(qiáng),張佰明,李家祁,韓佳起,陸海寧
(江蘇中煙工業(yè)有限責(zé)任公司徐州卷煙廠,江蘇徐州 221000)
目前卷煙廠制絲原料常以煙包的形式由原產(chǎn)地運(yùn)輸至加工部門。原料部門接收煙包后,通過(guò)核對(duì)原產(chǎn)地?zé)煱鼧?biāo)簽的信息,人工生成入庫(kù)條碼并張貼在原產(chǎn)地?zé)煱?,這個(gè)過(guò)程中易出現(xiàn)人工打錯(cuò)字、貼錯(cuò)標(biāo)的情況,使得出庫(kù)的煙包與實(shí)際配方不符,存在質(zhì)量隱患。
若在出庫(kù)之前對(duì)煙包標(biāo)簽信息和入庫(kù)條碼信息進(jìn)行比對(duì),一旦發(fā)現(xiàn)二者信息不符便剔除問(wèn)題煙包,可降低煙包出錯(cuò)的概率,減少質(zhì)量事故發(fā)生的風(fēng)險(xiǎn)。基于現(xiàn)狀,本文主要介紹OpenCV 圖像處理結(jié)合OCR(Optical Character Recognition,光學(xué)字符識(shí)別)技術(shù)在煙草行業(yè)片煙出庫(kù)環(huán)節(jié)的創(chuàng)新應(yīng)用情況,提供一種基于OCR技術(shù)的煙包出庫(kù)信息比對(duì)系統(tǒng)的開(kāi)發(fā)思路。
1.1.1 OpenCV
OpenCV 是開(kāi)源計(jì)算機(jī)視覺(jué)庫(kù),可實(shí)現(xiàn)圖像處理和計(jì)算機(jī)視覺(jué)方面的很多通用算法,兼容Window、IOS、Android、Linux 等多個(gè)系統(tǒng)平臺(tái),廣泛運(yùn)用于人機(jī)交互、圖像識(shí)別、人臉識(shí)別、機(jī)器視覺(jué)等領(lǐng)域[1-3],具有豐富的開(kāi)放接口。本文主要利用OpenCV 結(jié)合深度學(xué)習(xí)模型進(jìn)行樣本訓(xùn)練[4],對(duì)圖像進(jìn)行預(yù)處理,達(dá)到標(biāo)簽提取和正畸的目的[5]。
1.1.2 OCR
OCR 是指印刷體字符,通過(guò)檢測(cè)文字的明暗確定形狀,繼而用字符識(shí)別將形狀翻譯成文字[6],具有成熟的技術(shù)研究和廣泛的應(yīng)用場(chǎng)景,如文檔電子化、身份認(rèn)證、數(shù)字金融系統(tǒng)和車輛牌照識(shí)別等[7]。此外,在工廠中,通過(guò)自動(dòng)提取產(chǎn)品的文本信息,可以更方便地管理產(chǎn)品[8]。OCR 系統(tǒng)的識(shí)別效率和識(shí)別準(zhǔn)確率,是衡量OCR系統(tǒng)質(zhì)量的主要標(biāo)準(zhǔn)。
1.1.3 PP-OCR
在實(shí)際應(yīng)用領(lǐng)域,通常需要處理海量的圖片資源,因此高計(jì)算效率成為設(shè)計(jì)OCR 系統(tǒng)的重要標(biāo)準(zhǔn)[9]。本文采用的超輕量級(jí)OCR 系統(tǒng),稱為PP-OCR,由文本檢測(cè)、檢測(cè)框校正和文本識(shí)別三部分組成,模型大小僅0.5 MB,可識(shí)別6000 余個(gè)漢字和63 個(gè)英文及字符。
1.1.4 深度學(xué)習(xí)
深度學(xué)習(xí)算法的應(yīng)用使檢索過(guò)程更加智能化,具備理解,學(xué)習(xí),推理認(rèn)知能力[10-12],實(shí)現(xiàn)更智能的人機(jī)互動(dòng),幫助人們做出更佳的輔助決策[13-14]。本文基于現(xiàn)有煙包文字信息庫(kù),將深度學(xué)習(xí)算法融入識(shí)別程序中,大大提高了識(shí)別效率。
1.1.5 系統(tǒng)簡(jiǎn)述
設(shè)計(jì)一套基于深度學(xué)習(xí)的文本檢測(cè)比對(duì)系統(tǒng),通過(guò)對(duì)工業(yè)相機(jī)拍攝到的煙包標(biāo)簽數(shù)據(jù)進(jìn)行處理,獲取標(biāo)簽粗略位置,深度學(xué)習(xí)對(duì)片煙煙包圖片中的文字進(jìn)行自動(dòng)識(shí)別,通過(guò)邏輯匹配判斷兩個(gè)標(biāo)簽數(shù)據(jù)是否一致。并在信息比對(duì)不一致時(shí)觸發(fā)煙包剔除的指令,使煙包通過(guò)T 形跑道自動(dòng)移送至待檢區(qū),等待人工核對(duì)。實(shí)現(xiàn)數(shù)據(jù)標(biāo)簽檢查的自動(dòng)化,降低檢測(cè)人員的勞動(dòng)強(qiáng)度,提高生產(chǎn)線的自動(dòng)化水平。
本文用于模型訓(xùn)練的數(shù)據(jù)樣本為313 張?jiān)a(chǎn)地?zé)煱鼧?biāo)簽照片(A 類標(biāo)簽)以及313 張物流部門生成的入庫(kù)條碼(B 類條碼)。
本文的數(shù)據(jù)采集儀器為海康威視MV-CS050-10GM500 型萬(wàn)像素工業(yè)相機(jī)。
在核對(duì)標(biāo)簽信息的工作中,識(shí)別標(biāo)簽A 類和條碼B類的信息是核心主體,但人工的復(fù)核效率低,自動(dòng)化水平不足,因此本系統(tǒng)配備了一套基于計(jì)算機(jī)視覺(jué)的自動(dòng)文本檢測(cè)識(shí)別及標(biāo)簽匹配系統(tǒng),其模型結(jié)構(gòu)如圖1 所示。
圖1 系統(tǒng)流程
1.4.1 數(shù)據(jù)采集
將海康威視MV-CS050-10GM500 型萬(wàn)像素工業(yè)相機(jī)架設(shè)于T 形煙包跑道上方,拍取原產(chǎn)地?zé)煱系男畔?biāo)簽和物流入庫(kù)條碼標(biāo)簽(圖2)。
圖2 實(shí)拍標(biāo)簽圖例
1.4.2 標(biāo)簽定位正畸
由于煙包上的標(biāo)簽存在橫向與豎向兩個(gè)位置,并在整幅圖像中的尺度較小,將對(duì)后續(xù)基于深度學(xué)習(xí)的系統(tǒng)造成文字識(shí)別障礙。為定位標(biāo)簽具體位置,并將其中的文字統(tǒng)一旋轉(zhuǎn)為橫向,采用OpenCV 對(duì)煙包進(jìn)行預(yù)處理,將標(biāo)簽所在的大致位置篩選出來(lái),再將該位置進(jìn)行正畸和放大,以便后續(xù)檢測(cè)。
使用cv2 中的cv2.cvtColor 函數(shù)對(duì)圖片進(jìn)行灰度化處理,使用cv2.threshold 對(duì)遍歷的輪廓進(jìn)行二值化處理,篩選出圖中白色的部位,為了去除多余的噪點(diǎn)干擾,使用高斯濾波對(duì)圖像進(jìn)行處理后,采用9×9 大小的核對(duì)圖像進(jìn)行腐蝕膨脹操作(圖3),即可得到標(biāo)簽的大致像素區(qū)域,對(duì)該區(qū)域進(jìn)行輪廓檢測(cè),檢測(cè)其最大的包圍框,將包圍框所在區(qū)域的圖像單獨(dú)保存下來(lái),判斷包圍框?qū)挾群透叨龋舭鼑驅(qū)挾刃∮诟叨?,則將保存的圖片順時(shí)針旋轉(zhuǎn)90°,否則不做操作,矯正位置后的圖片圖像如圖4 所示。其中,圖4a)為原產(chǎn)地?zé)煱系脑畔?biāo)簽,圖4b)為物流部門人工打碼粘貼的條碼。對(duì)比信息主要為圖4a)表中A 類信息和圖4b)B 類信息下方的小字。
圖3 腐蝕膨脹結(jié)果
圖4 正畸后提取的標(biāo)簽
1.4.3 文本檢測(cè)識(shí)別模型PP-OCR 及其優(yōu)化
(1)文本檢測(cè)。文本檢測(cè)的目標(biāo)是定位出圖像中的文字區(qū)域,將檢測(cè)結(jié)果分字段讀取。PP-OCR 采用的是基于分割的DB 文本檢測(cè)算法。如圖5 所示,基于分字段文本檢測(cè)方法,可以得到文本的緊致包圍盒。此外,DB 的后處理比較簡(jiǎn)單,方便實(shí)際應(yīng)用。
圖5 DB 文本檢測(cè)器架構(gòu)
為進(jìn)一步提升文本檢測(cè)器的效果和效率,PP-OCR采用以下6 個(gè)策略:超輕量骨干網(wǎng)絡(luò)選擇、頭部輕量化、SE 模塊的舍棄、余弦學(xué)習(xí)率、預(yù)熱學(xué)習(xí)率以及使用FPGM 模型裁剪器。最終將PP-OCR 內(nèi)文本檢測(cè)模型縮小至1.4 MB。
(2)檢測(cè)框校準(zhǔn)。為提升檢測(cè)框中的文字識(shí)別效果,保持文字的一致性,一般都希望待識(shí)別的文本框是正的水平方向。由于DB 的文本檢測(cè)結(jié)果是多邊形4 點(diǎn)表示,所以很容易將檢測(cè)結(jié)果經(jīng)過(guò)仿射變換成水平方向。如果變換后的圖像是豎直方向,則旋轉(zhuǎn)90°后變?yōu)樗椒较?。但是變?yōu)樗椒较蚝?,存在文本顛倒的?wèn)題。使用文本方向分類器判斷文本是否顛倒,如果是顛倒的文本則轉(zhuǎn)正后再識(shí)別。訓(xùn)練一個(gè)文本方向分類器作為一個(gè)基本的圖像分類任務(wù),為進(jìn)一步提升文本方向分類器的效果和效率,PP-OCR 采用超輕量骨干網(wǎng)絡(luò)選擇,數(shù)據(jù)增強(qiáng),增大輸入分辨率和PACT int8 量化等4項(xiàng)措施,將PP-OCR 內(nèi)文本分類器模型縮小至500 kB。
(3)文本識(shí)別。文本識(shí)別的目標(biāo)是將文本和圖像轉(zhuǎn)換為文本。PP-OCR 采用的是文本識(shí)別常用的方法CRNN。CRNN 文本識(shí)別主要融合了卷積特征和序列特征,采用CTC 損失函數(shù)解決預(yù)測(cè)標(biāo)簽和真值標(biāo)簽不一致的問(wèn)題,PP-OCR 采用超輕量骨干網(wǎng)絡(luò)選擇數(shù)據(jù)增強(qiáng)、余弦學(xué)習(xí)率、增大特征圖分辨率、正則化參數(shù)、預(yù)熱學(xué)習(xí)率、頭部輕量化、預(yù)訓(xùn)練大模型和PACT int8 量化等9個(gè)策略,進(jìn)一步提升文本識(shí)別的效果和效率。
與傳統(tǒng)的tesseractOCR 識(shí)別相比,本模型使用的PP-OCR 模型體積更小、運(yùn)算速度更快、能耗更低。且在PP-OCR 識(shí)別前、識(shí)別中均加入cv2 函數(shù)對(duì)圖形進(jìn)行預(yù)處理、輪廓提取和矯正。避免了傳統(tǒng)PPOCR 模型只在訓(xùn)練前對(duì)圖片進(jìn)行預(yù)處理,導(dǎo)致截取輪廓不全、傾斜的現(xiàn)象,大大提升了識(shí)別的準(zhǔn)確率。
引入混淆矩陣如表1 所示,由混淆矩陣可定義文字識(shí)別的評(píng)價(jià)指標(biāo),即:
表1 混淆矩陣
式(1)中,P 為查準(zhǔn)率,表示識(shí)別正確與全部識(shí)別結(jié)果的比值;式(2)中,R 為召回率,表示剔除正確與全部不一致結(jié)果的比值;式(3)中,F(xiàn)β為查準(zhǔn)率和召回率的調(diào)和指標(biāo),當(dāng)β 取值為1 時(shí),表示二者影響程度相等。
根據(jù)深度學(xué)習(xí)算法的訓(xùn)練,從訓(xùn)練集中提取了626 張訓(xùn)練集,共計(jì)1503 個(gè)訓(xùn)練樣本。其中某A 類樣本結(jié)果圖如圖6 所示。A 類圖片313 張,共計(jì)17 841字,識(shí)別錯(cuò)誤63 字,去除污跡、手寫字體,識(shí)別錯(cuò)誤13 字。B 類圖片313 張,共計(jì)37 873 字,識(shí)別錯(cuò)誤237 字,若保證圖片中無(wú)污跡和手寫字體,準(zhǔn)確率可達(dá)到99.85%。實(shí)際生產(chǎn)中存在污跡、手寫字體,識(shí)別錯(cuò)誤69 字,總識(shí)別率達(dá)99.46%。
圖6 A 類樣本識(shí)別結(jié)果
將CTPN+CRNN 識(shí)別結(jié)果及本文深度學(xué)習(xí)后的PP-OCR 算法結(jié)果進(jìn)行對(duì)比分析,采用采集的數(shù)據(jù)集再進(jìn)行訓(xùn)練,采集數(shù)據(jù)集進(jìn)行驗(yàn)證,得到驗(yàn)證結(jié)果如表2 所示。
表2 模型評(píng)價(jià)指標(biāo)結(jié)果
可以看出,傳統(tǒng)OCR 算法的效果相對(duì)較差,各項(xiàng)指標(biāo)均明顯低于深度學(xué)習(xí)的PP-OCR 模型指標(biāo),而基于深度學(xué)習(xí)的PP-OCR 算法結(jié)合模型算法效果查準(zhǔn)率提高5.59%,召回率提高6.40%,得分提高了5.99%。
綜上,深度學(xué)習(xí)的PP-OCR 模型算法全面提升了對(duì)標(biāo)簽信息識(shí)別的精度,驗(yàn)證了該模型方法的有效性。
在實(shí)際的應(yīng)用中,本文通過(guò)算法將A 類標(biāo)簽中“江蘇中煙有限責(zé)任公司”“年份”“產(chǎn)地”“類型”“監(jiān)打人員”等不包含關(guān)鍵信息的文本結(jié)果剔除,只保留“2018”“云南楚雄”“云煙87”等關(guān)鍵字信息,與B 類條碼中的文字進(jìn)行對(duì)比,共對(duì)比了307 對(duì)標(biāo)簽訓(xùn)練集(每對(duì)訓(xùn)練集中含有22 個(gè)樣本標(biāo)簽),經(jīng)對(duì)比測(cè)試,準(zhǔn)確率達(dá)99.97%。
為降低煙草檢測(cè)人員的勞動(dòng)強(qiáng)度,提高產(chǎn)線的自動(dòng)化水平,本文將OCR 引入煙包文本信息識(shí)別,利用工業(yè)相機(jī)攝像頭獲取實(shí)時(shí)環(huán)境的煙包文本信息圖像,將圖像數(shù)據(jù)輸入深度學(xué)習(xí)算法系統(tǒng)中,通過(guò)深度學(xué)習(xí)算法對(duì)圖像中的數(shù)字進(jìn)行識(shí)別、分類,避免了復(fù)雜的預(yù)處理以及人工提取特征的過(guò)程,使數(shù)字識(shí)別更接近實(shí)用,經(jīng)檢驗(yàn)本文開(kāi)發(fā)的OCR 系統(tǒng)準(zhǔn)確率可達(dá)99.97%。
受制于時(shí)間原因,一些工作未能繼續(xù)開(kāi)展,如將識(shí)別結(jié)果對(duì)比分析與產(chǎn)線機(jī)器人相結(jié)合,實(shí)現(xiàn)自動(dòng)化的煙包分類識(shí)別;將OCR 系統(tǒng)應(yīng)用到更多類型的煙草包裝;以結(jié)構(gòu)化本文的方式,編寫數(shù)據(jù)庫(kù)系統(tǒng)以存儲(chǔ)識(shí)別結(jié)果等。