?

雙注意力機制的復雜場景文字識別網絡

2024-02-21 02:34宋問玉杜文爽王麗園
無線電工程 2024年2期
關鍵詞:字符注意力卷積

宋問玉,杜文爽,封 宇,王麗園

(1. 華中電力國際經貿有限責任公司,湖北 武漢 430066;2. 中國電力技術裝備有限公司,北京 100052;3.武漢大學 電子信息學院,湖北 武漢 430072;4.中交第二公路勘察設計研究院有限公司,湖北 武漢 430040)

0 引言

光學字符識別(Optical Character Recognition, OCR )[1]具有豐富的應用場景,最重要的應用之一是自然場景下的文本識別。隨著人工智能技術的興起和萬物互聯(Internet of Everything,IoE)的發展,使用OCR技術代替傳統算法識別,既能降低信息識別錯誤率,也能提高應用系統的安全性和便利性。

近年來,研究者們在目標檢測、語義分割等領域使用深度學習方法替換傳統計算機視覺方法,取得了顯著的成果。Liao等[2]對于豎直、傾斜的文本檢測提出改進的Textbox++網絡,在預選框寬高比中增加了小數,并將卷積核改為3×5,來更好地適應豎直和傾斜文本的檢測。文獻[3]提出一種角度優化的印章文字檢測與識別算法,先通過極坐標變換將印章拉伸,再進行檢測。Tang等[4]對文本彎曲和密集問題,提出一種模塊,用來表示文本塊之間吸引和排斥,并設計instance-aware損失函數使Seglink++網絡可以端到端地訓練。Wang等[5]設計了輕量級特征增強模塊(FPEM)和特征融合模塊(FFM),提高文本檢測性能,后處理采用更加快速的像素聚類方法,提高了文本檢測速度。陳靜嫻等[6]設計實現了聯合注意力特征增強模塊 (Joint Attention Feature Enhancement Module, JAM), 利用卷積對級聯后的特征在不同通道之間、 空間位置間的聯系建模。Liao等[7]發現基于分割的算法在閾值二值化處理耗時較多,提出了可以自學習分割閾值的網絡——DBNet,并巧妙設計了一種二值化函數,檢測精度得到提升、檢測速度大大提高。Zhu等[8]創新地將彎曲文本輪廓線用傅里葉變換參數表示,而數學上傅里葉系數可以擬合任何曲線,結合設計的FCENet網絡,提高了文本檢測的精度。文獻[9]提出了一種將殘差神經網絡與自注意力機制相結合的主干網絡,在提升準確度的基礎上,減少了注意力機制的偏差和RNN的耗時。陳瑛等[10]提出了一種基于層次自注意力的場景文本識別網絡。通過融合卷積和自注意力增強文本序列與視覺感知之間的聯系。雖然許多文字識別算法已經獲得了比較精確的檢測結果,但是仍然有許多問題需要解決。例如:路標的文本行存在文本分布位置、字符間隙差異,造成文本檢測框粘連的問題,字體字跡多變,路標字符包括英文、中文和標點符號等6 000類字符,加上各類印刷字體的差異,給文本檢測帶來了困難。

針對以上問題,本文主要創新點在于:① 提出了一種雙注意力和內容感知上采樣的文本檢測網絡,雙注意力機制用于提高網絡的特征提取選擇能力;內容感知上采樣模塊可以增大原上采樣的感受野,提高內容感知能力;② 將卷積遞歸神經網絡(Convolutional Recurrent Neural Network,CRNN)[11]與連續時序分類(CTC)結合,通過將序列特征接入CTC進行解碼計算文本識別損失,解決CRNN在設定時間長度與真實文本長度不一致的問題,同時增加中心損失增大字符之間的特征間距,避免“誤檢”問題。

1 算法模塊設計

1.1 算法概述

OCR算法框架如圖1所示,主要包括三部分:預處理、文本檢測和文本識別。預處理部分采用帶顏色恢復的Retinex圖像亮度增強和基于自適應對比度增強(ACE)的圖像色彩增強;文本檢測部分提出了基于雙注意力和內容感知上采樣的DBNet的文本檢測算法,精確地截取圖片中的文本行區域,保留文本行檢測坐標;文本識別部分提出了融入中心損失的CRNN+CTC文本識別網絡,識別出文本行圖像的內容。

圖1 OCR算法框架Fig.1 Framework of OCR algorithm

1.2 文本檢測模塊

文本檢測模塊采用基于雙注意力和內容感知上采樣的DBNet文本檢測網絡。與傳統使用設定好的閾值圖對概率圖進行二值化的分割網絡不同,DBNet網絡可以生成閾值圖(Threshold Map),實現自適應分割,生成近似二值化圖(Approximate Binary Map),文本檢測結果更加準確??勺冃尉矸e (Deformable Convolution Network,DCN)[12]的使用,給原有卷積核加入偏移量,使得卷積網絡能夠自適應地調整感受野,有效提升了DBNet網絡對文本行的檢測能力。設輸入特征圖為X,則對p0中心點進行標準卷積:

(1)

式中:R={(-1,-1),(-1,0),…,(0,1),(1,1)}??勺冃尉矸e單元中增加了偏移量Δpn,如下:

(2)

可變形卷積示意如圖2所示,輸入特征圖在C常卷積之前,先通過一個標準卷積單元計算得到尺度不變、通道數為2N的偏移域,其分別代表卷積視野每層像素點在x軸和y軸的偏移量。標準卷積核加上該偏移量之后,卷積核的大小和位置可根據輸入特征圖的內容進行自適應調整,從而更好地適應形狀不規則、形變的文本區域。

圖2 可變形卷積示意Fig.2 Schematic diagram of deformable convolution

DBNet網絡的特征提取采用ResNet殘差網絡,在ResNet的每個殘差塊中加入了雙注意力模塊 (Convolutional Block Attention Module, CBAM)[13]。該模塊由通道注意力和空間注意力兩部分組成,融合雙注意力殘差模塊如圖3所示。通道注意力自適應調整特征圖不同通道的權重,提高了對重要特征的選擇能力,濾出或減弱干擾的特征;空間注意力自適應調整特征圖不同位置的權重,提高對場景中文本區域的辨識度,抑制場景文本的背景區域。

圖3 融和雙注意力的殘差塊Fig.3 Residual blocks incorporated with a dual attention

其中,通道注意力考慮了特征圖中不同通道的重要性,所以通過生成大小為1×1×C的Mc向量,作為特征圖F的不同通道的系數。而空間注意力考慮了特征圖不同位置的重要性,通過生成大小H×W×1的矩陣,給特征圖F′不同空間位置賦予不同的系數。下面分別介紹通道注意力和空間注意力模塊的設計,如圖4和圖5所示。

圖4 通道注意力模塊示意Fig.4 Diagram of channel attention module

圖5 空間注意力模塊示意Fig.5 Diagram of spatial attention module

輸入特征圖記為F,其大小為H×W×1,對其分別進行空間維度上的最大池化和平均池化得到2個大小為1×1×C的向量,其中最大池化提取的是細節特征,而平均池化提取的是背景特征。2個向量特征共享一個多層感知機(Multilayer Perceptron,MLP),將二者輸出結果逐像素相加并經過sigmoid激活層,得到大小為1×1×C的通道注意力Mc。最后將Mc作為通道系數和特征圖F相乘,得到通道提純特征圖F′。

將通道提純特征圖F′作為輸入,與通道注意力模塊不同,空間注意力模塊是在通道維度上分別進行最大池化和平均池化,輸出結果大小為H×W×1,將池化結果拼接在一起,然后通過卷積層和sigmoid激活層,得到大小為H×W×1空間注意力Ms,并作為系數,與通道提純特征圖F′逐像素相乘,得到最終的提純特征圖F″。同時將殘差網絡ResNet部分的標準卷積替換成圖2所示的可變形卷積,以適應形狀不規則和字體多變文本的特征提取。除此之外,在特征金字塔(Feature Pyramid Network,FPN)網絡將ResNet生成的不同尺度的特征圖進行融合時,使用具有內容感知的上采樣算子(Content-Aware Re Assembly of Features, CARFE)[14], 進行不同尺度特征圖的融合,其算子結構如圖6所示。

CARFE主要包含兩部分:上采樣核預測模塊(Kernal Predication Module)和內容感知重組模塊(Content-Aware Reassembly Module),前者根據樣本內容特征信息預測出上采樣核,后者根據預測的上采樣核進行內容重組。設輸入特征圖為χ,尺寸為H×W×C,假設上采樣倍率記為σ,則輸出上采樣結果為χ′,尺寸大小記為σH×σW×C。

上采樣核預測模塊:先通過1×1卷積組成的通道壓縮 (Channel Compressor) 模塊,將輸入特征圖通道壓縮至Cm,以減少后續計算量。假設上采樣核尺寸為kup×kup,則對于輸出結果中任意一個元素l′∈χ′,都有與之對應的上采樣核,所以預測的上采樣核尺寸應該為σH×σW×kup×kup。因此采用了σ2kup2個尺寸為kencoder×kencoder的卷積核進行內容編碼(Content Encoder),輸出尺寸為H×W×σ2kup2,并在通道維度上展開,這樣得到尺寸為σH×σW×kup×kup上采樣卷積核,最后經過核歸一化處理(Kernel Normalizer),使得上采樣核的元素之和等于1。

內容感知重組模塊:對于輸入特征圖中任意元素χl,取出以其為中心的kup×kup感受野范圍的像素N(χl,kup),從上采樣核取出對應位置的元素l′,并在通道維度上展開,得到該點處的kup×kup大小上采樣核Wl′,經過點積得到該位置的上采樣值。

由此可知,輸入特征圖不同位置的像素對應的上采樣核是不一樣的,其上采樣核是由輸入特征圖內容所決定的,做到了“內容感知”。除此之外,上采樣感受野尺寸為kup×kup,相比較最近鄰上采樣或雙線性插值上采樣,做到了較大的感受野,有效地彌補了原上采樣的缺陷。

1.3 融入中心損失的CRNN+CTC

文本識別網絡主要分為Seq2Seq+Attention[15]和CRNN+CTC。前者是循環神經網絡的變種,包括編碼器和解碼器兩部分,CNN網絡提取到特征序列后并行輸入到編碼器,用于計算編碼器當前時刻的隱藏狀態,所有隱藏狀態編碼得到統一語義特征向量C,后面再對語義向量進行解碼,由于Seq2Seq將所有輸入特征匯聚成統一語義向量C,導致解碼過程全部依賴C,因此進行長文本檢測時,文本偏后的字符獲取信息較少,識別效果不夠理想,且Attention機制給網絡帶來巨大的額外參數量。 CRNN+CTC結構分為CNN、RNN和CTC三部分,CNN網絡用于提取特征序列,RNN網絡將提取到的字符特征序列并行輸入到序列長度為T的雙向LSTM中,一般來說長度T取待識別文本的最大字符數,考慮到在本文所述場景下的極端情況,設置T=25,并構建了6 623個字符的中英文詞典,和T配合成后驗概率矩陣,得到字符后驗概率矩陣后,CTC在原有中英文詞典集的基礎上引入空白特殊字符,用以表示該位置沒有字符??梢韵谖谋咀址麛敌∮?5時直接通過softmax層得到的長度為25的字符串難以計算其文本識別損失的情況,該方法在長短文本識別效果都較為理想,且得益于CTC向前-向后遞推,既能保持較低的計算復雜度,也不會給網絡帶來額外的參數。但CRNN+CTC只適用于一維形狀規則的文本行,對于形變、不規則文本識別效果較差,考慮到路標中的文本行都是規則文本行,本文采用了CRNN+CTC。在CRNN+CTC基礎上,嘗試加入中心損失,進一步提高字符識別準確率。

由前文可知,CRNN+CTC文本識別網絡中CTC損失是先通過softmax求出序列中每個預測字符的概率,再通過CTC轉錄解決文本序列對齊問題,本質上文本識別是字符圖像的分類問題,而字符分類錯誤是由字符特征決定的。本文加入了用于增大樣本特征分布間距的中心損失函數(Center Loss)[16],原理如下。

對于一個全連接分類網絡來說,假設輸入特征向量xi∈d,網絡矩陣參數為W∈d,預測類別為yi,共有m類,softmax分類損失如下:

(3)

Center Loss函數定義如下:

(4)

式中:Cyi表示yi類別特征分布的中心,xi表示輸入進全連接分類層的特征,m表示訓練中每個batch的樣本數量。由上式可知,Center Loss是計算樣本特征和特征中心的距離,希望一個batch中輸入樣本的特征與該類的特征中心之間的距離越小越好。中心損失Lc和特征中心Cyi更新如下:

(5)

(6)

式中:δ(yi=j)表示當分類類別為j時,等于1;否則等于0。由此可知,只有當預測的類別yi與真實標簽j相等時,才會更新該類的特征中心Cj。將Center Loss以一定的權重λ加入到分類損失函數中,如下:

Ltotal=Ls+λLc。

(7)

文獻[14]以手寫數字識別分類為例,給出了不同λ情況下,手寫數字特征分布的變化,如圖7所示。

圖7 手寫數字識別特征分布Fig.7 Distribution of handwritten digital recognition features

由圖7可知,隨著λ不斷增大,類與類之間的間隙越來越大,各類特征分布界限越來越清晰,從而可以減少分類錯誤。

對于復雜場景文本識別,文本混雜著漢字、英文和數字等各類字符,共6 000多個類別,漢字中存在的大量形似字,所以相比純英文文本識別,本文字符分類難度大幅度提高。印刷字體的特性和路標圖像存在少量噪聲,導致更容易出現字符相近的情況,如字母“l”和數字“1”,漢字“治”和“冶”。本文嘗試將中心損失加入到CTC損失函數中,并將λ設置為0.1。希望通過增大字符特征分布之間的間隙,減少字符誤識別的情況,從而提高文本識別的準確率。

2 實驗結果分析

2.1 實驗數據集

為了驗證本文設計的OCR算法框架的實用性和正確性,本文收集了多種復雜場景下圖片數據。主要數據集如圖8所示,包含了各種生活工作場景下、復雜光照環境下、各種拍攝視角下、不同使用狀態、不同圖像分辨率和不同印刷字體等各類情形的圖像。對圖像進行帶色彩恢復Retinex圖像亮度增強和基于ACE圖像色彩增強處理之后對數據集標注。

圖8 SynthText和ICDAR2015場景文本檢測數據樣例Fig.8 Text detection datasets of SynthText and ICDAR2015 sample scenes

由于算法框架中采用了“基于雙注意力和內容感知上采樣的DBNet文本檢測網絡”和“融入中心損失的CRNN+CTC文本識別網絡”,所以需要大量的場景文本檢測數據集和場景文本識別數據集去訓練網絡。本文檢測數據集結合了目前OCR領域常用的公開場景文本檢測數據集SynthText[17]和ICDAR2015[18]。

實驗環境為基于Linux系統下的Ubuntu 18.04操作系統,基于Python(版本3.7)語言實現,實驗所用電腦配置為Intel Core i7-7700K,GPU采用NVIDIA GeForce RTX 3090。

表1 文本檢測試驗結果

本文首先對原DBNet網絡和改進后的DBNet進行試驗,同時為了對優化措施對比分析,加入CBAM和具有內容感知的CARFE,對融入雙注意力機制的DBNet和基于內容感知上采樣的DBNet分別訓練。由表1可知,本文改進的DBNet的文本檢測精度提高了5.09%,召回率提高了2.12%,F評分提高了3.46%。對比融入雙注意力機制DBNet可知,雙注意力機制對檢測精度有一定的提升;對比基于內容感知上采樣DBNet可知,基于內容感知上采樣對檢測精度和召回率都有一定的提升。改進的DBNet相比原DBNet,結果如圖9所示。

(a)道路場景DBNet效果

由圖9可以看出,本文改進后DBNet對較小文本區域也能很好地檢測出來,“漏檢”(紅色框)情況明顯減少,從而提高文本檢測的召回率。對比圖9(c)和圖9(d)可知,原DBNet將標識牌(藍色框)誤檢測為文本區域,改進后的DBNet這種“誤檢”情況也到一定改善,從而提高了文本檢測的準確率。

2.2 文本識別實驗結果

本文實驗采用的文本識別數據集是由200 000張Chinese OCR文檔文本行圖像和ICDAR2013文本識別數據集共同組成,其中80%用于訓練集,20%用于測試集。對CRNN+CTC文本識別網絡進行訓練,主干網絡都采取ResNet34,RNN序列長度T均設為25,輸入的文本圖片尺寸為320 pixel×320 pixel,優化器采用Adam,beta1設為0.9,beta2設為0.999。學習率采用余弦退火算法,初始值學習率設為0.001,采用了L2正則化,權重設為0.001。作為對比,本實驗又采用純英文文本數據集ICDAR2013進行訓練和測試。文本識別結果如表2所示。

表2 場景文本識別實驗結果

由實驗結果可知,本文分別采用了CRNN+CTC和Seq2Seq+Attention兩種識別網絡訓練,對于文本長度較短的數據集ICDAR2013,Seq2Seq+Attention識別效果稍好,但對于文本長度較長的本文數據集,CRNN+CTC更有優勢,驗證了Seq2Seq +Attention對長文本識別不理想的解釋。同時本文在原有CTC損失基礎上,加入了Center Loss對字符種類多的中英文數據集識別準確率提升了1.2%,而對ICDAR2013英文識別數據集也有0.6%的提升。測試用例如表3所示。

表3 文本識別結果樣例

對于CRNN+CTC,偶爾會出現字符識別錯誤的情況,如將較模糊的“B”識別成了“8”,將“冶”識別成了“治”,這是因為中文、英文和數字字符共6 000多個,有些字符過于相似,加上圖像出現模糊、噪聲等因素,很容易出現誤識別。Center Loss可以增大字符特征分布之間的距離,減少由于字符特征相似而導致分類錯誤的情況,從而提高字符識別準確率;又由于中文字符種類遠比英文字符多,形似字情況比英文字符更為常見,所以Center Loss在本文數據集識別率的提升好于在純英文數據集,可見Center Loss對于提高中文字符識別的準確率效果更為明顯。

3 結束語

本文對場景文本檢測算法進行研究,采用了性能和速度兼具的DBNet文本檢測網絡,并對其進行改進。在DBNet的FPN網絡模塊加入了CBAM,提高網絡對場景中文本區域重要特征的選擇能力,抑制其他背景區域帶來的干擾。采用具有內容感知的CARAFE,克服傳統上采樣的感受野小、不具有內容感知等缺點,并將其應用在不同尺度特征圖融合中,進一步提高網絡的文本檢測性能;對場景文本識別算法CRNN+CTC進行改進,加入了增大字符特征間距的Center Loss,減少中英文字符形似而導致的誤識別;收集了大量復雜場景下的路標圖像,制作成場景文本數據集和場景文本識別數據集;結合公開數據集對改進后的DBNet網絡和改進后的CRNN+CTC網絡進行訓練測試,實驗結果顯示網絡的檢測和識別性能均有理想的提升。

猜你喜歡
字符注意力卷積
尋找更強的字符映射管理器
讓注意力“飛”回來
基于3D-Winograd的快速卷積算法設計及FPGA實現
字符代表幾
一種USB接口字符液晶控制器設計
從濾波器理解卷積
消失的殖民村莊和神秘字符
基于傅里葉域卷積表示的目標跟蹤算法
“揚眼”APP:讓注意力“變現”
A Beautiful Way Of Looking At Things
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合