李佳琪,楊超宇
(安徽理工大學(xué) 經(jīng)濟(jì)與管理學(xué)院,安徽 淮南 232000)
隨著工業(yè)經(jīng)濟(jì)的發(fā)展,工業(yè)配件的分類越來越趨向精細(xì)化和規(guī)范化,在分類入庫和物流階段,根據(jù)其材質(zhì)、重量、性能等分門類別進(jìn)行,此時(shí)工件的編碼信息是識(shí)別配件類別的重要依據(jù),并且對(duì)定期維護(hù)保養(yǎng)和溯源都有一定的幫助。工業(yè)領(lǐng)域進(jìn)入智能化階段以來,對(duì)人工操作的要求逐漸降低,機(jī)械化程度提高,逐步趨向于智能工業(yè)。工業(yè)工件的標(biāo)簽近年來也逐漸趨于規(guī)范化、細(xì)致化,為整個(gè)產(chǎn)業(yè)帶來良好發(fā)展,但人工對(duì)標(biāo)簽信息提取并分類的速度和正確率無法保證。為達(dá)到高效率和高準(zhǔn)確率的目標(biāo),借助于計(jì)算機(jī)圖像識(shí)別技術(shù),將工業(yè)制造中標(biāo)簽識(shí)別環(huán)節(jié)智能化升級(jí),實(shí)現(xiàn)自動(dòng)化識(shí)別處理。王浩楠等人曾提出的輪胎膠料表面字符識(shí)別方法通過ROI提取、背景分割、形態(tài)學(xué)處理等一系列步驟,進(jìn)行工業(yè)表面的字符識(shí)別,雖結(jié)果精準(zhǔn),但識(shí)別過程復(fù)雜,時(shí)間較長(zhǎng)略顯繁瑣[1];段西利[2]曾提出的LeNet-5模型,在圖片噪聲增多且特征圖不明顯的環(huán)境下表現(xiàn)一般,且計(jì)算速度不夠優(yōu)化。
隨著計(jì)算機(jī)領(lǐng)域的快速發(fā)展,智能化編碼識(shí)別是必然的道路,但目前缺乏一種既高效又準(zhǔn)確的模型。針對(duì)在工業(yè)噪聲環(huán)境工件字符識(shí)別的特征圖提取和時(shí)間優(yōu)化問題,利用新型STR框架,對(duì)探測(cè)及預(yù)測(cè)模塊各對(duì)兩種網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行拼接,并提出一種自適應(yīng)網(wǎng)絡(luò)殘差矯正網(wǎng)絡(luò)SKE模塊解決特征圖提取的問題,可更好得表現(xiàn)圖片特征,減少了模型參數(shù)并優(yōu)化計(jì)算過程節(jié)省時(shí)間,以達(dá)簡(jiǎn)便高效的字符識(shí)別模型。
首先用工業(yè)相機(jī)拍攝工件圖片,將收集到的圖片整理成數(shù)據(jù)集為模型訓(xùn)練。但在拍攝過程中無法完全排除一些干擾信息,難免有圖像歪斜、光照不均、標(biāo)簽褶皺或鋼印與工件本身顏色接近邊界模糊等現(xiàn)象,不利于分割圖像,并對(duì)后續(xù)的識(shí)別算法的魯棒性造成影響,降低識(shí)別準(zhǔn)確率[3]。利用圖像預(yù)處理系統(tǒng),通過二值化或灰度處理,將背景信息和文本信息分開,消除圖象無關(guān)信息、加強(qiáng)有效信息,再將工件照片組成數(shù)據(jù)集,再經(jīng)過網(wǎng)絡(luò)模型對(duì)數(shù)據(jù)集的訓(xùn)練,得到針對(duì)于工件字符識(shí)別的模型,之后對(duì)其進(jìn)行精度測(cè)試從而簡(jiǎn)化后續(xù)辨認(rèn)字符的步調(diào),減輕辨認(rèn)難度、降低錯(cuò)誤率[2]。
1.2.1 STR框架
在探測(cè)部分,RCNN和ResNet已在字符識(shí)別相關(guān)領(lǐng)域表現(xiàn)良好,在圖像深度提取特征上有比較明顯的優(yōu)點(diǎn),字符識(shí)別的效果也較為優(yōu)異。Jeonghun Baek等提出了一種Transformation(矯正)、Feature Extraction(特征提取)、Sequence modeling(序列模塊)和Prediction(預(yù)測(cè)模塊)組合的模型框架,稱為STR框架,在對(duì)于同一批數(shù)據(jù)集的訓(xùn)練下,對(duì)各個(gè)模型的表現(xiàn)進(jìn)行展示,并顯示出了一定的差距[4]。本文基于STR框架,對(duì)其可能的變體進(jìn)行了研究,以求找到適用于工業(yè)工件字符識(shí)別的最優(yōu)模型。矯正模塊TPS為STN的變體,靈便應(yīng)用于文本行的長(zhǎng)寬比,序列模塊用BiLSTM。
常用的經(jīng)典探測(cè)頭有ResNet、VGG和RCNN等,ResNet是Kaiming He等人于2015年創(chuàng)建的,拿下了多個(gè)ILSVRC和COCO的檢測(cè)、定位比賽的首等獎(jiǎng)。而后,許多衍生網(wǎng)絡(luò)也以其為骨干進(jìn)行不斷的優(yōu)化,尤其是引入的殘差單元模塊,優(yōu)化了信息傳遞的完整性,為后續(xù)神經(jīng)網(wǎng)絡(luò)的發(fā)展打下了良好的基礎(chǔ);傳統(tǒng)的區(qū)域選擇方法主要基于滑動(dòng)窗口方法,時(shí)間成本較大,產(chǎn)生大量的冗余窗口,導(dǎo)致大規(guī)模的無用的計(jì)算數(shù)量[5]。RCNN是Ross B. Girshick等人于2014年在頂級(jí)計(jì)算機(jī)視覺會(huì)議期刊CVPR里首次提出,至此,傳統(tǒng)滑動(dòng)窗口被候選區(qū)域算法所取代,檢測(cè)效率和精度大大提升[6]。轉(zhuǎn)錄層按照 CTC 算法定義的預(yù)測(cè)后果轉(zhuǎn)換形式將預(yù)測(cè)的字符概率序列轉(zhuǎn)錄為文本,在Attn中,輸入圖像x,初始化權(quán)重矩陣W,而后對(duì)x與W進(jìn)行點(diǎn)乘歸一化,這樣就可以得出每個(gè)詞對(duì)應(yīng)的權(quán)重,權(quán)重大的詞代表注意力大的,這個(gè)詞的貢獻(xiàn)程度更大,最后對(duì)每個(gè)詞語進(jìn)行加權(quán)平均,aT與x進(jìn)行點(diǎn)乘,這是最終加權(quán)平均后輸出的總特征向量[7]。提取序列特征是一個(gè)學(xué)習(xí)表示輸出類依賴關(guān)系的字符級(jí)SRN的結(jié)構(gòu),由編碼器和譯碼器組成。編碼器使用幾個(gè)卷積層ConvNet和一個(gè)兩層的BiLSTM網(wǎng)絡(luò),以提取輸入圖像的順序表示(h),包括EOS令牌在內(nèi)以h為條件的序列[8]。
圖1 STR框架圖
1.2.2 ResNeSt網(wǎng)絡(luò)結(jié)構(gòu)
CNN直接服務(wù)于下游應(yīng)用,基礎(chǔ)網(wǎng)絡(luò)的進(jìn)步為下游應(yīng)用帶來跨越式的發(fā)展,但發(fā)現(xiàn)網(wǎng)絡(luò)結(jié)構(gòu)易出現(xiàn)過擬合現(xiàn)象,也沒有專為一項(xiàng)任務(wù)而量身定做的低延時(shí)網(wǎng)絡(luò),缺少了通過channel的信息抓取。改進(jìn)網(wǎng)絡(luò)即改善網(wǎng)絡(luò)的表達(dá)能力,依據(jù)Zhang H等人提出的辦法,按照ResNet的風(fēng)格,將Split-Attention模塊疊加,形成的ResNeSt,是一個(gè)類ResNet的backbone,雖然與ResNet相似,但ResNeSt保留了整體的ResNet 結(jié)構(gòu),并且ResNeSt對(duì)特征通道加入類似attention機(jī)制考慮,對(duì)于特征的提取表現(xiàn)更為優(yōu)異,可直接用于下游工作,減少了運(yùn)算[9]。
圖2 ResNeSt的Split-Attention模塊
1.2.3 自適應(yīng)網(wǎng)絡(luò)殘差矯正網(wǎng)絡(luò)SKE模塊
李剛[10]提出的結(jié)合FPN的改進(jìn) YOLOv3 車輛實(shí)時(shí)檢測(cè)算法,通過借鑒 FPN 網(wǎng)絡(luò)的結(jié)構(gòu)特征,將原有網(wǎng)絡(luò)結(jié)構(gòu)中的殘差模塊刪除,并以雙金字塔模塊替換,使召回率得到了有效提升;莫建麟[11]等人提出的拉普拉斯卷積神經(jīng)網(wǎng)絡(luò)圖像分類矩陣,能夠更好的融合特征圖,提高了圖像分類效率。
本文受SK模塊和SE模塊啟發(fā),提出一種自適應(yīng)殘差矯正網(wǎng)絡(luò)SKE網(wǎng)絡(luò),代替Split-Attention中第二個(gè)卷積層(如圖3),對(duì)各層特征進(jìn)行壓縮,利用壓縮后的權(quán)重對(duì)各通道進(jìn)行加權(quán),激發(fā)各層中的有用特征,從而提升模型的特征信息傳播[12]。SKNet結(jié)合SE模塊與多尺度信息,對(duì)不同尺度卷積核卷積結(jié)果進(jìn)行選取,實(shí)現(xiàn)不同卷積尺度下的特征精煉,以期達(dá)到更好的模型特征提取效果[13]。
圖3 改進(jìn)后的Split-Attention模塊
圖4表示了SKE模塊內(nèi)流程,Split 操作時(shí)對(duì)輸入X使用多個(gè)不同尺寸的卷積核進(jìn)行卷積。SKNet 采用3*3和5*5的卷積核,其中5*5的傳統(tǒng)卷積核被dilation=2,卷積核3*3為的空洞卷積取代,得到如式(1)所示。
圖4 SKE網(wǎng)絡(luò)圖Figure 4 SKE network diagram
(1)
(2)
(3)
Sc為全平均池化的結(jié)果,這個(gè)操作將使輸出特征圖X不再局限于感受野,可以利用到局部范圍之外的上下文信息,進(jìn)而獲得足夠的信息分析通道之間的關(guān)系[14]。
Excitation操作,學(xué)習(xí)到的關(guān)系必須是非互斥的,因?yàn)樾枰WC多個(gè)通道得到表征,而非單一熱點(diǎn)通道得到激活。為了輕量化模型,同時(shí)提高模型推廣能力,此操作通常采用Sigmoid 函數(shù)的閾值機(jī)制,如式(4)所示。
Z=Fex(S)=σ[WZFsq(S)]=σ(WZδ(χ(w,s)))
(4)
Scale操作將主要特征篩選、抑制次要特征的圖像特征信息,ac、bc為權(quán)重矩陣向量,分別與不同尺度的特征進(jìn)行加權(quán)求和,也就是特征值向量和原始特征的相應(yīng)通道進(jìn)行加權(quán),得到如式(5)所示。
Vc=Uic×Zc
(5)
Vc表示第c個(gè)通道的特征V=[V1,V2,…,VC]。
Select 操作采用由特征描述決定的一種跨通道的 Soft Attention機(jī)制,將上步特征進(jìn)行連接,并輸出Y為所有提煉的特征,具體為:
(6)
(7)
所有實(shí)驗(yàn)均在 NVidia 1080Ti GPU 硬件環(huán)境下進(jìn)行訓(xùn)練測(cè)試,所有實(shí)驗(yàn)?zāi)P痛罱ōh(huán)境與參數(shù)設(shè)置相同,使用同一數(shù)據(jù)集的模型均使用相同迭代次數(shù)訓(xùn)練,學(xué)習(xí)率初始值為 0.001,迭代10萬次,batch為192,并且有著相同的初始權(quán)重。實(shí)驗(yàn)使用的為公開數(shù)據(jù)集data_lmdb_release,實(shí)驗(yàn)中隨機(jī)選取前80%為訓(xùn)練集train,validation為剩下的20%。
訓(xùn)練文件MJSynth分別為訓(xùn)練數(shù)據(jù)集和標(biāo)簽文件集,訓(xùn)練數(shù)據(jù)存放的是工件編碼的所有訓(xùn)練圖片,標(biāo)簽文件存放的是經(jīng)過標(biāo)注的圖片。
測(cè)試集的工業(yè)工件圖像中包含很多類型的字符,如符號(hào)“/”“:”“,”和“.”。工件標(biāo)簽中還包括工件名稱“自動(dòng)放水閥”;工件養(yǎng)護(hù)條例“角轉(zhuǎn)向器保養(yǎng)規(guī)范”;工件編號(hào)鋼印英文字符“ZL”;數(shù)字“201420270963.9”;工件出廠日期“2020年10月9日”;工件制造單位和單位地址等。本文所要構(gòu)建的數(shù)據(jù)集中包括“0~9”的數(shù)字,英文字母“A~Z”以及漢字字符等字符類別。
2.3.1 不同模型識(shí)別效果比較
本實(shí)驗(yàn)利用上文介紹的STR框架,選用ResNet和改進(jìn)后的ResNeSt為模型探測(cè)模塊,預(yù)測(cè)模塊使用注意力通道Attn和CTC算法,矯正和序列模塊分別使用TPS和BiLSTM。將四種模型對(duì)同一批數(shù)據(jù)進(jìn)行字符識(shí)別,制作對(duì)比表格,評(píng)測(cè)最終的實(shí)驗(yàn)效果。本文選擇引入Softmax損失函數(shù),隨著樣本的權(quán)重大小進(jìn)行調(diào)節(jié),Softmax損失函數(shù)定義如式(8)所示,i為輸出節(jié)點(diǎn)的編號(hào)。
(8)
本實(shí)驗(yàn)在Ubuntu環(huán)境利用Pytorch框架下實(shí)現(xiàn),在訓(xùn)練階段,網(wǎng)絡(luò)模型的訓(xùn)練損失逐漸降低,值得說明的是,最終train loss為0.0379,訓(xùn)練準(zhǔn)確率趨于穩(wěn)定,訓(xùn)練效果理想,如圖5所示。保存該訓(xùn)練好的模型,在識(shí)別工件圖時(shí)直接調(diào)用。將模型封存,并使用測(cè)試集進(jìn)行測(cè)試。如表1所示,ResNet-Attn及ResNet-CTC表現(xiàn)如預(yù)想一致,參數(shù)量堆積,特征圖抓取不夠明顯,并且計(jì)算冗余訓(xùn)練時(shí)間較長(zhǎng),對(duì)模型效果造成了直接的影響;利用了自適應(yīng)網(wǎng)絡(luò)殘差矯正網(wǎng)絡(luò)SKE的ResNeSt,準(zhǔn)確率明顯增高,但預(yù)測(cè)模塊CTC由于參數(shù)高于Attn,在時(shí)間和準(zhǔn)確率方面還是略低于ResNeSt-Attn。
圖5 模型訓(xùn)練過程部分圖片
表1 不同模型的識(shí)別結(jié)果比較
模型訓(xùn)練好后,將制作的工件標(biāo)簽數(shù)據(jù)集傳入模型進(jìn)行識(shí)別驗(yàn)證,正確率由交叉熵計(jì)算方式得出。由圖6可以看出,識(shí)別效果表現(xiàn)優(yōu)異,文字行識(shí)別完整,confidence score最高可達(dá)98%。并且在參數(shù)方面,本文模型是最為輕量級(jí)的,改進(jìn)后的Split-Attention為特征提取以及運(yùn)算都提供了幫助。
圖6 本文模型識(shí)別效果圖片
2.3.2 SKE模塊的作用
SKE網(wǎng)絡(luò)將不同大小的圖像動(dòng)態(tài)生成卷積核,使網(wǎng)絡(luò)技術(shù)能夠可以根據(jù)數(shù)據(jù)輸入信息的多個(gè)尺度自主調(diào)節(jié)接受域大小,即使網(wǎng)絡(luò)在提取特征時(shí)加強(qiáng)提取有效特征,壓縮無效特征。
本文提出的SKE網(wǎng)絡(luò)的優(yōu)勢(shì)有以下幾個(gè)方面:
(1)利用多尺度卷積特征壓縮和加權(quán),導(dǎo)致模型特征提取更加明顯;
(2)模型特征利用率更高,且由于取消了SE模塊中的平均池化過程,使得模型參數(shù)更少;
(3)使用跨步卷積操作,減少激發(fā)操作引起的冗余,使得參數(shù)更少,特征尺寸縮減過程中信息傳遞更有效,從而實(shí)現(xiàn)高效識(shí)別模型。
本文根據(jù)工業(yè)零件編碼的字符識(shí)別需求,在自然環(huán)境下識(shí)別工業(yè)工件字符,針對(duì)特征提取問題提出了SKE網(wǎng)絡(luò)改進(jìn)了ResNeSt,在STR框架下,結(jié)合CTC和Attn兩種預(yù)測(cè)模塊,構(gòu)造ResNet-Attn和ResNeSt-CTC等四種模型在字符識(shí)別的應(yīng)用效果,并對(duì)改進(jìn)后的探測(cè)模塊進(jìn)行評(píng)測(cè)。實(shí)驗(yàn)結(jié)果表示:在同一實(shí)驗(yàn)成本環(huán)境下,改進(jìn)后的ResNeSt表現(xiàn)更好,其中ResNeSt-Attn模型字符識(shí)別率最高,本文方法SKE網(wǎng)絡(luò)突出特征圖的優(yōu)點(diǎn),為后續(xù)預(yù)測(cè)Attn工作提供了保障,使得模型更加輕量化,優(yōu)化了計(jì)算過程,更好的解決了工業(yè)工件的字符識(shí)別效率問題。
但目前對(duì)于鋼印模糊字符的識(shí)別仍然未達(dá)到非常精確的程度,將在之后的時(shí)間著手研究鋼印殘缺或模糊的識(shí)別方面研究。