何 迅,劉小芳
(四川輕化工大學計算機科學與工程學院,自貢 643000)
隨著信息技術的飛速發展和現代工業生產技術的不斷進步,人類已經進入了一個全新的工業時代。目前國家電網也在大力推廣工業智能化,而如何將智能化引入傳統制造業是當今乃至今后一段時間內的重要課題。角鋼是國家電網建設的重要材料之一,角鋼鋼印字符便是角鋼的身份標識,也是人們用來識別角鋼型號的依據。一個完整的高架鐵網需要不同型號的角鋼組成,而不同型號的角鋼所需的數量也不同,人工對成堆角鋼鋼印字符進行識別記錄時很容易造成失誤從而降低效率,人工造成的失誤會耗費大量的人力物力成本去重新匹配正確的型號組合,在如今信息化的時代這樣的方式極為低效。受益于圖像識別技術的高速發展,字符識別已經應用于社會的許多領域,角鋼鋼印字符識別便是將智能化帶入傳統制造業的重要途徑之一,為日后解決工業角鋼倉儲管理信息化、出入庫自動化等場景問題提供重要的技術思路。
在圖像處理領域中字符識別是一個重要的研究方向。字符識別的方法是對圖像中字符信息進行定位、識別和提取,然后輸出結果讓計算機和人們理解。現如今字符識別技術已經應用于人們生活中的多個方面,如快遞單號[1]、證件信息[2]、紙質文檔[3]、打印發票[4]、汽車車牌[5]等。而工業環境下的角鋼鋼印字符與此不同,角鋼有更為復雜多變的字符背景。角鋼字符是一種鋼印字符,相比于打印字符特征更加難以泛化,并且字符表面存在銹跡、磨損和字跡不清等干擾;字符圖像存在相機設備與工廠加工設備工作振動導致字符抖動的影響。面對復雜的工業環境和角鋼字符表面的干擾,人工設計特征定位提取字符再識別的傳統算法很難應對。
總的來說,角鋼字符背景環境復雜、干擾因素多、人工檢測效率不高且無法滿足工業需求,傳統算法角鋼字符特征提取困難。所以,使用如今高速發展的深度學習可以很好地解決這個問題。相機定點采集角鋼字符數據集,利用深度學習訓練檢測與識別模型,開發角鋼鋼印字符識別系統,從而提高角鋼字符的識別,促進工業智能化發展。
光學字符識別(Optical Character Recognition,OCR)是一門科學,能夠將各種類型的文檔或圖像轉換為可分析、可編輯和可搜索的數據[6]。OCR 的設想最早起源于20世紀20年代末,由奧地利的工程師Tauschek[7]提出,并獲得了技術專利,這是OCR 概念首次出現在歷史上。縱觀OCR 迅速發展的幾十年,在深度學習流行于識別領域前,OCR多使用傳統算法。
傳統的字符識別算法是定位和分割單個字符,然后利用人工設計的特征訓練分類器。分割算法決定了最終識別結果的質量,常見的分割算法一般基于連通域和垂直投影[8-10]。圖像二值化后,分割算法通過連通域或灰度直方圖分割字符。背景簡單、風格規整的字符對此有不錯的效果,但對于像角鋼字符一樣背景復雜的字符很難達到好的效果。于是有的研究者開始探索另一條道路,如Girshick 等[11]提出R-CNN模型,便標志著深度學習[12]與OCR 技術結合道路的開始。隨后Hinton 課題組使用深度學習創建了AlexNet[13],在ImageNet 圖像識別比賽上一舉奪冠,并且碾壓第二名采用SVM 方法的分類性能,這一成果吸引了眾多學者開始關注深度學習,此后深度學習的發展進入爆發性增長,更多的研究人員將OCR 技術與深度學習結合在一起,一些具有優秀性能的網絡結構被提出[14-16],基于深度學習的各種文本檢測和文本識別模型也逐漸涌現。
文本檢測模型方面,Tian 等[17]提出CTPN 模型可以檢測水平和輕微傾斜的文本,水平長文本的檢測效果也更好,CTPN 模型是在Faster-RCNN 的基礎上移除ROI 層,引入anchor 機制,并加入RNN 網絡對檢測目標的位置偏移量和置信度分數的計算;CTPN 模型的檢測效果很好,但是由于加入了RNN 導致網絡速度會比較慢。Zhou 等[18]提出EAST 模型,采用端到端的訓練方法,直接將OCR常用的多階段簡化為兩個階段,大大提高了網絡的執行速度。此外,由于該模型設置的檢測框可以是任意四邊形,致使EAST能夠檢測傾斜文本,但扭曲文本EAST 仍然存在不足。之后Liao 等[19]提出DBNet 模型,解決了EAST 模型不能識別扭曲文本的問題,該模型在基于分割的文本檢測中,不同于之前需要指定二值化閾值,該模型可以自適應地對每一個像素點進行二值化,并通過從網絡學習得到二值化閾值,直接將二值化步驟添加到網絡中一起訓練,大大提高了輸出圖對于二值化閾值的魯棒性,從而達到高性能和高準確度。近年來扭曲文本的檢測仍在提高,Zhu 等[20]提出傅立葉輪廓嵌入(Fourier Contour Embedding)方法,無論什么形狀的文本輪廓都可表示為Compact Signatures,FCENet 先預測文本中的Compact Fourier Signatures,接著就在測試的過程中通過傅里葉變換和非最大抑制重新創建文本輪廓,以此解決高度彎曲的文本檢測。
文本識別模型方面,由Shi 等[21]提出CRNN模型,結合了CNN 與RNN,利用BLSTM 和CTC[22]組件學習字符圖像中的上下文關系,可以有效提高文本識別的準確性,還解決了基于圖像的序列識別問題,特別是很好地處理了在實際場景中的文本識別應用問題,能夠識別較長的文本。可CRNN 的缺點是對有較大形變的文本識別準確率較低,針對較大形變這個問題,Shi 等[23]又提出RARE 模型,RARE 支持一種稱為TPS(Thin-Plate Splines)的空間變換,可以更準確地識別透視變換文本,以及彎曲文本。形變文字的問題得以解決后,發現文字識別時排列文字不規則也會影響模型效果,對此針對不規則文字,Shi 等[24]繼續對RARE 進行改進,提出ASTER 模型,實行先把文本矯正成正常線性排列的文字,然后再進行識別,并把矯正網絡和識別網絡整合起來作為一個端對端網絡來訓練,進一步提高識別效率。但這種方法需要維護復雜的管道,不適合實時應用,為了解決這個問題,Liu 等[25]提出自適應貝塞爾曲線網絡(Adaptive Bezier-Curve Network),通過將貝塞爾曲線參數化來自適應地處理任意形狀的文本,顯著提高了速度,并自主設計了新的Bezierallign層,在提取任意形狀文本的卷積特征上,相比之前的方法精度更高,在實時識別應用上也具有競爭性的識別精度。
除了大多數研究者努力研發文本檢測和文本識別的模型,也有研究者對其他方面進行開拓,Nguyen 等[26]提出一種新的語言感知方法,在訓練和推理階段運用該方法利用字典可以解決許多條件下的視覺模糊性問題。Hou等[27]提出新型注意力機制(Coordinate Attention,CA)模塊,通過嵌入位置信息到通道注意力,從而使輕量型網絡獲取更大區域的信息而避免引入大的開銷。為了避免2D 全局池化引入位置信息損失,將通道注意力分解為兩個并行的1D 特征編碼來高效地整合空間坐標信息到生成的Attention Maps。Squeeze-and-Excitation Networks(SE)模 塊[28]、 Convolutional Block Attention Module(CBAM)模塊[29]與新型CA 注意力機制模塊結構對比示意圖如圖1所示。
圖1 中三個模塊都是被嵌入Residual 結構中的例子,在結構上SE 模塊分為兩個步驟,壓縮(Squeeze)和激勵(Excitation),分別設計用于全局信息嵌入和通道關系的自適應重新校準,具體結構如圖1(a)所示,使用Global Avg Pool(GAP)作為Squeeze操作,緊接著一個Fully Connected(FC)層將特征維度下降r倍,再經過Nonlinear 函數激活后再通過一個FC 層升回到原來的特征維度,然后通過Sigmoid 函數轉化為一個0~1 的歸一化權重,這一段為Excitation 操作。最后便將新生成的特征圖和原來的特征圖進行相乘校準,即Re-weight 操作;CBAM 模塊除了對通道域進行加權操作,還增添了空間域的處理,具體結構如圖1(b)所示,首先對通道域方面進行操作,使用全局平均池化(GAP)和全局最大池化(GMP)來提取高層次特征,之后與SE模塊過程類似,只是將FC 層換成了1 維卷積,激活函數換成了ReLU,接下來便是空間域上的操作,基于Channel 再次進行GAP 和GMP 處理,由于進行了兩次池化,拼接后通道數變成了2,所以使用一個7維卷積核進行卷積,將通道數壓縮成了1,然后進行BatchNorm(BN)和Sigmod 操作,最后完成Re-weight 操作;CA 模塊通過空間域對通道關系和遠程依賴進行編碼,具體結構如圖1(c)所示,首先沿X方向和Y方向分別進行平均池化(AvgPool)操作,得到兩個分別基于X和Y的特征圖,然后進行拼接(Concat)和卷積操作,建立起遠程依賴關系,接著進行BN 操作和Non-linear函數激活后,再將有著全局信息的該特征圖重新分為基于X和Y的特征圖,分別繼續卷積和Sigmoid 歸一化操作,最后將沿X和Y的信息加權于原特征圖。圖1 中“C”表示通道,“H”和“W”分別表示高和寬。

圖1 各注意力機制結構對比示意圖
目前與深度學習結合的OCR 技術已經被廣泛應用于金融、交通、物流等多個領域,但是就工業領域而言,該OCR 技術仍然沒有得到充分應用,所以近年來針對于工業領域的字符識別開始大力推進。工業上的圖像數據和公共數據集上的圖像數據特征差異過大,使用公共數據集訓練的通用型模型對于工業字符來說效果并不好,所以需要實驗者自己收集實驗對象的數據集。因此,工業OCR 便存在兩個問題,如圖2所示。

圖2 工業OCR問題示意圖
在這兩方面的問題上有研究者也已經做出研究:
(1)數據集少的問題,實驗者個人收集的實驗對象數據一般來說是沒有完善的公共數據集,通常收集的數據圖像不全面且數量不多,這樣的數據集,其多樣性就不足。在不增加實拍數據集的情況下,林惠[30]提出一種基于條件對抗網絡的數據增強算法,通過以字符類別標簽作為約束條件,可以實現字符識別數據集擴充,解決芯片字符圖像數據集不足、多樣性差的問題。而陳妃奮[31]采用YOLOv4 算法,通過遷移學習的訓練方式也解決了工業樣本量較少而引起的過擬合問題。兩者的思路都是解決工業上數據集少的可參考方法。
(2)在字符及其背景問題上,與普通文本檢測相比,工業字符檢測的難點最主要就是工業字符類型多樣、字符特征不同、排版也不同,并且工業環境下的圖像字符背景也更復雜多樣,所以市面上的通用模型很難實現字符定位與分割。吳慧英[32]提出以自然場景文本識別網絡CRNN 為基礎加入CTPN 網絡,同時引入注意力機制,不僅能在復雜的圖像中檢測出指定的文本區域,還能提高在圖像背景復雜及噪聲干擾下的穩定能力,較好地在復雜背景下完成字符識別。李建明[33]提出改進的PSENet 和CRNN 算法進行字符檢測,檢測算法方面采用Shuffle-Netv2-FPN 替換PSENet 的骨干網絡完成字符定位; 識別算法方面在CRNN 的骨干網絡ResNet18 中引入多頭自注意力機制模塊,且結合Center Loss 和CTC Loss 損失函數來完成字符識別。將改進的定位算法和識別算法進行串聯封裝,很好地提高了工業環境下的字符檢測能力。
總結目前工業OCR 的現狀和問題,人工檢測與記錄工業工件上的字符效率較低,通過OCR 技術可以極大地提高識別效率,進而實現字符識別流程自動化。現在公開的ICDAR、ICPR 等比賽數據集都是自然場景文本,而工業字符公共數據集卻鮮有公開,且字符背景又復雜,導致通用模型效果都比較差,結合一些研究者的成果,總結出可以從以下兩個方面改進角鋼鋼印字符識別性能:
(1)最簡單的便是從數據集方面入手,在工業實地多角度、多型號地盡可能收集足量的圖像,從而訓練出泛化性和魯棒性不錯的模型。
(2)靈活地從網絡結構方面進行改進,對于不同類型的工業字符產品適當地修改網絡結構。就提取特征而言,如只有英文和數字,可以使用輕量型網絡結構,這樣既能減少訓練所消耗的成本,也能加快檢測速度;反之,有中文或較多字符類型時,可以選擇較深、較復雜的網絡結構。
當然這兩個方面也可同時進行,對于(1)很難有條件得到較多現場數據時,也可以使用數據增強的方法輔助處理,再基于此對(2)進行針對化的改進,來解決識別角鋼鋼印字符的性能問題。在基礎工業字符數據集的不斷公開和技術的不斷進步下,如果能夠得到一個具有泛化性和魯棒性的工業字符通用模型,將具有十足的現實意義,這種意義會隨著工業智能化的發展繼續產生影響,并將在其他領域引發類似的啟發。