董維振,陳 燕+,梁海玲
(1.廣西大學(xué) 計(jì)算機(jī)與電子信息學(xué)院,廣西 南寧 530004; 2.廣西中煙工業(yè)有限責(zé)任公司,廣西 南寧 530001)
在鋼鐵企業(yè)中,板材下線后,噴號(hào)設(shè)備在板材表面噴鍍標(biāo)識(shí)。依靠人眼識(shí)別面標(biāo),準(zhǔn)確性和生產(chǎn)效率低,系統(tǒng)人機(jī)接口信息滯后,不便于信息傳遞與系統(tǒng)交互。
冶金領(lǐng)域人工智能方面,劉玠[1]概述了人工智能理論體系以及在冶金制造領(lǐng)域的應(yīng)用前景,構(gòu)建了冶金智能化藍(lán)圖。李江昀等[2]重點(diǎn)描述了深度學(xué)習(xí)在冶金工業(yè)圖像分割、預(yù)測和分類等方面的理論與應(yīng)用案例。在冶金文本識(shí)別領(lǐng)域,取得了一些研究成果。賀笛[3]采用MobileNet-v2作為骨干網(wǎng)絡(luò),提出了鋼板表面輕量化字符識(shí)別模型。張付祥等[4,5]設(shè)計(jì)了棒材信息檢測系統(tǒng),提取區(qū)域聯(lián)通域特征和灰度矩陣特征,構(gòu)建了模板庫,實(shí)現(xiàn)了信息自動(dòng)識(shí)別。相銀堂等[6]采用二值化全部閾值與局部閾值對(duì)比方法實(shí)現(xiàn)背景與目標(biāo)分離。錢偉強(qiáng)等[7]提出了支持向量機(jī)與Tesseract相結(jié)合的字符識(shí)別方法。錢偉強(qiáng)等[8]改進(jìn)了卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),以獲取多樣性特征。周嘯[9]提出使用改進(jìn)的字符模板匹配算法進(jìn)行鋼板字符識(shí)別。楊建等[10]使用SSD網(wǎng)絡(luò)構(gòu)建字符識(shí)別器,將字符識(shí)別問題轉(zhuǎn)換為目標(biāo)檢測問題。李陽[11]提出了邊緣檢測分割方法,解決壓印字符定位問題,對(duì)已定位的圖像分割字符。尹子豪[12]優(yōu)化了BP網(wǎng)絡(luò)算法并應(yīng)用于鋼坯字符識(shí)別場景。近年來,基于深度學(xué)習(xí)的分割法[13-18]研究較廣泛,但是算法模型和研究對(duì)象均基于噪聲指數(shù)低的場景,而板材生產(chǎn)環(huán)境圖像噪聲指數(shù)很高,受表面溫度影響,易產(chǎn)生模糊、粘連、變形等,同時(shí)由于光照、粉塵等環(huán)境約束,使得上述研究方法和模型準(zhǔn)確率較低。圖像識(shí)別領(lǐng)域面臨的問題、實(shí)際應(yīng)用場景差異較大,須依據(jù)實(shí)際的應(yīng)用場景和數(shù)據(jù)集構(gòu)建算法模型。
本文設(shè)計(jì)了文本檢測與識(shí)別模型,將改進(jìn)的可微二值化算法網(wǎng)絡(luò)(differentiable binarization net,DBNet)[19]作為文本檢測算法網(wǎng)絡(luò),列出文本候選框,再通過改進(jìn)的卷積遞歸神經(jīng)網(wǎng)絡(luò)(CRNN)對(duì)候選框進(jìn)行識(shí)別,著力提升訓(xùn)練效率和準(zhǔn)確率。通過現(xiàn)場拍攝和數(shù)據(jù)增強(qiáng),構(gòu)建了實(shí)際數(shù)據(jù)集,同時(shí)搭建了移動(dòng)端APP和服務(wù)端應(yīng)用,將模型集成至軟件系統(tǒng)中。
文本檢測模型基于DBNet網(wǎng)絡(luò)和可微二值化(diffe-rentiable binarization,DB)算法,通過學(xué)習(xí)閾值圖和使用可微的操作將閾值轉(zhuǎn)換放入網(wǎng)絡(luò)中訓(xùn)練,預(yù)測每個(gè)像素點(diǎn)的閾值,而非采用固定值,將背景與前景分離,進(jìn)而解決梯度不可微的問題。
1.1.1 DBNet網(wǎng)絡(luò)模型
DBNet網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 DBNet網(wǎng)絡(luò)模型
首先進(jìn)行特征提取,特征金字塔(FPN)進(jìn)行特征級(jí)聯(lián)得到特征F;然后,特征F用于預(yù)測概率圖(probability map P)和閾值圖(threshold map T);最后,通過P和F計(jì)算近似二值圖(approximate binary map B)。
在訓(xùn)練期間對(duì)P,T,B進(jìn)行監(jiān)督訓(xùn)練,P和B使用相同的監(jiān)督信號(hào)(label)。在推理時(shí),只需P或B及可獲取文本框。
1.1.2 二值化
標(biāo)準(zhǔn)二值化為,對(duì)于一個(gè)大小為H×W(圖的高為H,寬為W)的概率圖P,將概率圖中的每個(gè)像素進(jìn)行二值化如下方法
(1)
式中:t表示預(yù)設(shè)的閾值, (i,j) 表示概率圖中的坐標(biāo)位置。輸出1表示該像素為正樣本也就是文字區(qū)域,輸出0表示該像素為負(fù)樣本也就是背景。
為了解決二值化方法不可微的問題,DB提出一個(gè)近似的階躍函數(shù),如下方法
(2)
使用二值交叉熵來作為Loss的情況下,計(jì)算正樣本的Lossl+和負(fù)樣本的Lossl-如下方法
(3)
(4)
Loss對(duì)于輸入x的偏導(dǎo)數(shù)為如下方法
(5)
(6)
式(5)和式(6)分別表示對(duì)于正負(fù)樣本的偏導(dǎo)數(shù)。k為梯度的增益因子,梯度對(duì)于錯(cuò)誤預(yù)測的增益幅度大,反之亦然。
1.1.3 自適應(yīng)閾值
概率圖P和二值圖B使用相同標(biāo)簽。將每個(gè)標(biāo)注框縮小一定的偏移量D,偏移量定義如式(7)所示,標(biāo)簽圖稱為Gs,原始標(biāo)注文本框?yàn)镚。偏移量計(jì)算如下方法
(7)
式中:L為標(biāo)注框的周長,A為標(biāo)注框的面積,r為預(yù)設(shè)的縮放因子,r定義為0.4。
1.1.4 Loss函數(shù)
Loss函數(shù)公式如下方法
L=Ls+α×Lb+β×Lt
(8)
式中:Ls為概率圖的Loss,Lb為二值圖的Loss,Lt為閾值圖的Loss,α和β分別取值為1.0和10。
對(duì)于Ls和Lb采用二值交叉熵(BCE)求解,如下方法
Ls=Lb=∑i∈Siyilogxi+(1-yi)log(1-xi)
(9)
Lt為L1 Loss,如下方法
(10)
式中:Rd為標(biāo)注框經(jīng)過D偏移量擴(kuò)充后得到的Gd里的所有像素,y*為計(jì)算出來的閾值圖的label。
文本檢測模型基于DBNet構(gòu)建,特征提取網(wǎng)絡(luò)采用ResNet50,通過特征金字塔進(jìn)行特征融合。本文文本檢測模型為了抑制無效特征,使網(wǎng)絡(luò)能夠自動(dòng)學(xué)習(xí)不同通道的重要程度和關(guān)聯(lián)性,引入了高效通道注意力模塊SENet[20];同時(shí)為了解決特征金字塔沖突問題,進(jìn)一步與自適應(yīng)空間特征融合(ASFF)融合,增強(qiáng)了特征金字塔預(yù)測多尺度目標(biāo)的能力。通過對(duì)于DBNet特征提取網(wǎng)絡(luò)的改進(jìn),有效提升了特征提取的性能與精度。
1.2.1 高效通道注意力機(jī)制
為了對(duì)于無效特征進(jìn)行抑制,使網(wǎng)絡(luò)能夠自動(dòng)學(xué)習(xí)不同通道的重要程度和關(guān)聯(lián)性,引入高效通道注意力模塊SENet,將SENet模塊加入ResNet50殘差分支中。SENet的結(jié)構(gòu)如圖2所示。
圖2 SENet網(wǎng)絡(luò)結(jié)構(gòu)
在SENet模塊中,不再由輸入X直接輸出U,而是根據(jù)通道的重要程度進(jìn)行加權(quán)計(jì)算。
首先對(duì)于每個(gè)通道H×W個(gè)數(shù)據(jù)進(jìn)行全局平均池化,獲得對(duì)應(yīng)標(biāo)量,稱之為Squeeze,如下方法
(11)
然后經(jīng)過全連接、激活函數(shù)(ReLU)、全連接、激活函數(shù)(Sigmoid)后獲得 [0,1] 之間的權(quán)重值,及為通道的重要性,稱為Excitation,如下方法
s=Fex(z,W)=σ(g(z,W))=σ(W2δ(W1z))
(12)
式中:W1、W2∈RC×(C/r), 第一個(gè)全連接層用于降維,r為降維超參數(shù),然后使用ReLU激活,之后的全連接層用于恢復(fù)維度,最后經(jīng)過Sigmoid函數(shù)獲得s。
最后將每個(gè)通道初始的H×W個(gè)數(shù)據(jù)與Excitation輸出的權(quán)重值分別相乘,獲得加權(quán)后特征圖,完成特征重標(biāo)定,如下方法
(13)
加入SENet模塊后,ResNet50殘差學(xué)習(xí)分支內(nèi)部結(jié)構(gòu)如圖3所示。
圖3 ResNet50殘差分支內(nèi)部結(jié)構(gòu)
圖3中,r為超參數(shù),本文r為16,第一個(gè)FC層降維為1/r, Sigmoid函數(shù)調(diào)節(jié)各通道特征權(quán)重,增強(qiáng)可分辨性。
文本檢測模型將SENet與ResNet50結(jié)合,將SENet模塊加入到ResNet50的殘差學(xué)習(xí)分支中,形成Res50-SE-Net,如圖4所示。
圖4 ResNet50殘差分支加入SENet
1.2.2 自適應(yīng)空間特征融合
DBNet網(wǎng)絡(luò)中使用特征金字塔(feature pyramid networks,F(xiàn)PN[21])進(jìn)行特征級(jí)聯(lián),解決多尺度檢測問題,通過改變網(wǎng)絡(luò)連接提升小物體檢測的準(zhǔn)確率。ResNet50結(jié)合特征金字塔如圖5所示。
如圖5左側(cè),先進(jìn)行自下至上過程,神經(jīng)網(wǎng)絡(luò)正向傳播,特征圖進(jìn)行卷積運(yùn)算尺寸變??;然后自上而下過程將更強(qiáng)語義、抽象的高層特征圖上采樣,然后與前一層特征進(jìn)行橫向連接,每層融合不同語義強(qiáng)度和分辨率的特征;特征金字塔各層通過上采樣尺寸統(tǒng)一為原尺寸的1/4;最后特征金字塔各層進(jìn)行concat。
圖5 ResNet50結(jié)合特征金字塔
由于特征尺度不同,當(dāng)某目標(biāo)在某級(jí)別特征圖被認(rèn)定為正樣本時(shí),該區(qū)域在其它級(jí)別特征圖中將被認(rèn)定為背景,如果該區(qū)域存在不同尺度的目標(biāo)時(shí),在特征金字塔中將可能產(chǎn)生沖突,在訓(xùn)練期間將影響梯度計(jì)算,使特征金字塔的有效性降低。為了解決此問題,本文提出將ResNet50與FPN結(jié)合后,進(jìn)一步與自適應(yīng)空間特征融合(ASFF)融合。ASFF通過學(xué)習(xí)多尺度特征權(quán)重參數(shù)、將輸入與權(quán)重參數(shù)圖逐點(diǎn)相乘、判定像素點(diǎn)的抑制與激活解決特征金字塔沖突問題,增強(qiáng)了特征金字塔預(yù)測多尺度目標(biāo)的能力,整體融合過程如圖6所示。
圖6 融合ASFF過程
進(jìn)一步與ASFF融合的網(wǎng)絡(luò)結(jié)構(gòu)如圖7所示。
圖7 與ASFF融合后的網(wǎng)絡(luò)結(jié)構(gòu)
ASFF特征融合如下方法
(14)
將Res50-SE-Net網(wǎng)絡(luò)與ASFF相結(jié)合后形成了Res50-SE-ASFF-Net。
文本識(shí)別模型基于CRNN[22]網(wǎng)絡(luò)構(gòu)建,接收文本檢測模型輸出的文本檢測框,將檢測結(jié)果與識(shí)別結(jié)果對(duì)應(yīng),生成信息提取圖。
CRNN網(wǎng)絡(luò)結(jié)構(gòu)如圖8所示。
圖8 CRNN網(wǎng)絡(luò)結(jié)構(gòu)
CRNN網(wǎng)絡(luò)由3部分組成,CNN(卷積神經(jīng)網(wǎng)絡(luò))將圖片轉(zhuǎn)換為特征序列;RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))循環(huán)層進(jìn)行解碼識(shí)別,文本被認(rèn)為一種序列;CTC(聯(lián)接時(shí)間分類)算法將識(shí)別結(jié)果進(jìn)行轉(zhuǎn)錄,并通過占位符添加機(jī)制處理重復(fù)字符在文本中丟失的問題。
CNN采用VGG結(jié)構(gòu),首先將分割后的數(shù)據(jù)集圖片按比例縮放為寬度W,然后通過CNN卷積網(wǎng)絡(luò)生成數(shù)量為W/4的512通道的特征序列。
本文對(duì)于VGG網(wǎng)絡(luò)進(jìn)行如下改進(jìn):為了提升訓(xùn)練精度和加快網(wǎng)絡(luò)的訓(xùn)練收斂速度,在第5和第6卷積層后加入BN層;為將VGG提取的特征輸入至RNN,將第3、4個(gè)最大池化層的卷積核尺寸由2×2改進(jìn)為1×2;由于RNN可將誤差反向傳播,使CNN與RNN聯(lián)合訓(xùn)練,進(jìn)一步提升網(wǎng)絡(luò)訓(xùn)練的準(zhǔn)確率。改進(jìn)后的CNN網(wǎng)絡(luò)結(jié)構(gòu)見表1。
表1 改進(jìn)后的VGG網(wǎng)絡(luò)結(jié)構(gòu)
CNN網(wǎng)絡(luò)提取的特征序列輸入至RNN網(wǎng)絡(luò)進(jìn)行文本預(yù)測,輸出對(duì)應(yīng)的特征分布。文本識(shí)別模型采用stack型深層雙向RNN網(wǎng)絡(luò),如圖9所示。
圖9 stack型深層雙向RNN網(wǎng)絡(luò)結(jié)構(gòu)
為了防止訓(xùn)練過程中梯度消失,選用LSTM(長短時(shí)記憶單元)作為RNN的單元,LSTM包括遺忘門、存儲(chǔ)單元、輸入和輸出,雙向RNN通過存儲(chǔ)單元存儲(chǔ)雙向上下文信息。
經(jīng)過RNN網(wǎng)絡(luò)輸出的預(yù)測文本序列將經(jīng)過翻譯層轉(zhuǎn)換為字符標(biāo)簽,采用基于詞典的CTC算法進(jìn)行字符轉(zhuǎn)換。
CTC翻譯層分別使用符號(hào)序列X=[x1,x2,…,xT]、Y=[y1,y2,…,yU] 表示輸入和輸出(對(duì)應(yīng)的標(biāo)注文本)。對(duì)于一對(duì)輸入輸出 (X,Y) 來說,CTC的目標(biāo)是將下式概率最大化,如下方法
(15)
CTC采用多對(duì)一的方式對(duì)齊輸入輸出,例如Q3ε4ε5Bε與Q3εε4ε5B均對(duì)應(yīng)“Q345B”,此為其中的兩條路徑,將所有路徑相加為輸出的條件概率。
CTC損失函數(shù)定義如下方法
loss=-∑Wi,Ii∈Xln(p(Ii,yi))
(16)
(17)
式(16)為正確標(biāo)注條件概率似然數(shù)的負(fù)對(duì)數(shù),其中p(Ii,yi) 為預(yù)測值yi對(duì)應(yīng)標(biāo)簽Ii的條件概率,π為y的全部可能,及對(duì)應(yīng)字符的概率不為零的全部線性可能。
同步構(gòu)建了移動(dòng)端APP和服務(wù)端應(yīng)用,面標(biāo)檢測與識(shí)別模型部署于服務(wù)端應(yīng)用。移動(dòng)端APP與服務(wù)器端使用Http協(xié)議進(jìn)行交互,移動(dòng)端APP拍攝圖像上傳至服務(wù)端,服務(wù)端調(diào)用鋼卷噴涂面標(biāo)識(shí)別模型進(jìn)行識(shí)別,并將識(shí)別結(jié)果傳輸至移動(dòng)終端APP展示,系統(tǒng)架構(gòu)如圖10所示。
圖10 系統(tǒng)架構(gòu)
文本檢測和識(shí)別模型訓(xùn)練分別使用獨(dú)立的數(shù)據(jù)集,文本檢測模型模型數(shù)據(jù)集通過拍攝和數(shù)據(jù)增強(qiáng)獲取,文本識(shí)別模型訓(xùn)練數(shù)據(jù)集通過Text Recognition Data Generator分割生成。
3.1.1 文本檢測數(shù)據(jù)集
共搜集了板坯噴涂圖像741張,通過數(shù)據(jù)增強(qiáng)后共計(jì)4752張,標(biāo)注為VOC數(shù)據(jù)格式。圖像樣本如圖11所示。
圖11 樣本圖像示例
3.1.2 文本識(shí)別數(shù)據(jù)集
以檢測數(shù)據(jù)集為基礎(chǔ),通過Text Recognition Data Generator生成共計(jì)28 512張圖像,文本長度為20,線程數(shù)為32。示例如圖12所示。
圖12 文本識(shí)別數(shù)據(jù)
利用pycharm開發(fā)環(huán)境、Pytorch框架和Python語言訓(xùn)練和測試模型。計(jì)算機(jī)內(nèi)存為16 G,顯卡為NVIDIA Tesla T4。
3.2.1 文本檢測模型
特征提取網(wǎng)絡(luò)分別選用MobileNetV3、ResNet18、ResNet50以及本文提出的Res50-SE-ASFF-Net,訓(xùn)練迭代次數(shù)為1000、2000、5000,基于遷移學(xué)習(xí)進(jìn)行訓(xùn)練,采用precision(精確率)、recall(召回率)、hmean(調(diào)和平均值)3項(xiàng)指標(biāo)對(duì)模型進(jìn)行評(píng)估。
3.2.2 文本識(shí)別模型
訓(xùn)練場景為:訓(xùn)練迭代次數(shù)為1000、2000、5000,基于遷移學(xué)習(xí)進(jìn)行訓(xùn)練,區(qū)分CNN與RNN是否聯(lián)合訓(xùn)練,比較本文改進(jìn)CNN中VGG網(wǎng)絡(luò)前后的模型性能,采用avg accuracy(平均準(zhǔn)確率)為指標(biāo)對(duì)模型進(jìn)行評(píng)估。
表2對(duì)比了本文提出的Res50-SE-ASFF-Net與MobileNetV3、ResNet18、ResNet50在不同訓(xùn)練迭代次數(shù)下的精確率、召回率和調(diào)和平均值,Res50-SE-ASFF-Net均為最優(yōu),訓(xùn)練迭代次數(shù)為5000時(shí),Res50-SE-ASFF-Net的精確率、召回率和調(diào)和平均值分別為93.30%、86.45%、89.85%,比MobileNetV3分別提高16.03%、13.44%、14.74%,比ResNet18分別提高9.01%、11.78%、10.65%,比ResNet50分別提高7.09%、7.92%、7.67%,表明本文算法魯棒性優(yōu)秀。
表2 文本檢測模型測試結(jié)果
表3對(duì)比了不同實(shí)驗(yàn)場景(VGG改進(jìn)前后、CNN與RNN是否聯(lián)合訓(xùn)練、不同訓(xùn)練迭代次數(shù))的平均準(zhǔn)確率。結(jié)果表明,使用改進(jìn)VGG網(wǎng)絡(luò)并且聯(lián)合訓(xùn)練的場景,平均準(zhǔn)確率指標(biāo)最優(yōu),訓(xùn)練迭代次數(shù)為5000時(shí),平均準(zhǔn)確率達(dá)到86.01%,比改進(jìn)前的實(shí)驗(yàn)指標(biāo)提升了4.99%。
表3 文本識(shí)別模型測試結(jié)果
對(duì)于文本檢測模型和文本識(shí)別模型改進(jìn)后,進(jìn)行了模型訓(xùn)練和推理測試,如圖13所示,文本檢測模型準(zhǔn)確列出文本候選框,文本識(shí)別模型準(zhǔn)確對(duì)于檢測框中的文本進(jìn)行了識(shí)別,模型推理效果好,檢測和識(shí)別準(zhǔn)確度均較高。
圖13 模型檢測與識(shí)別結(jié)果
移動(dòng)端APP與服務(wù)器端使用Http協(xié)議進(jìn)行交互,移動(dòng)端APP拍攝圖像上傳至服務(wù)端,服務(wù)端調(diào)用噴涂面標(biāo)識(shí)別模型進(jìn)行識(shí)別,并將識(shí)別結(jié)果傳輸至移動(dòng)終端APP。
基于4G網(wǎng)絡(luò)進(jìn)行交互調(diào)試,從上傳圖像至展示識(shí)別數(shù)據(jù),平均時(shí)長僅為2.1 s,數(shù)據(jù)識(shí)別準(zhǔn)確率高,測試結(jié)果如圖14所示。
圖14 移動(dòng)APP測試結(jié)果
(1)板坯面標(biāo)文本檢測模型改進(jìn)了DBNet網(wǎng)絡(luò),引入了高效通道注意力模塊SENet,特征金字塔特征融合后進(jìn)一步與自適應(yīng)空間特征融合(ASFF)融合,解決了特征金字塔沖突問題,增強(qiáng)了特征金字塔預(yù)測多尺度目標(biāo)的能力。測試結(jié)果表明,改進(jìn)后檢測模型的精確率、召回率和調(diào)和平均值達(dá)到93.30%、86.45%、89.85%,比改進(jìn)前網(wǎng)絡(luò)的最優(yōu)測試結(jié)果分別提高了7.09%、7.92%、7.67%,檢測效果提升顯著。
(2)文本識(shí)別模型改進(jìn)了CNN中的VGG網(wǎng)絡(luò)結(jié)構(gòu),使VGG中加入了BN層,將第3、4個(gè)最大池化層的卷積核尺寸由2×2改進(jìn)為1×2,并將CNN與RNN進(jìn)行聯(lián)合訓(xùn)練,提升了訓(xùn)練精度和網(wǎng)絡(luò)收斂速度。測試結(jié)果表明,改進(jìn)后的CRNN識(shí)別模型平均準(zhǔn)確率達(dá)到86.01%,較原算法精度提高4.99%,識(shí)別效果得到顯著提升。
(3)通過搭建移動(dòng)端APP和服務(wù)端應(yīng)用,將模型集成至軟件系統(tǒng)中,實(shí)現(xiàn)了模型算法推廣使用,測試結(jié)果表明,移動(dòng)端APP識(shí)別過程僅2.1 s,識(shí)別準(zhǔn)確度高,滿足實(shí)時(shí)與準(zhǔn)確性要求。