賈小云,翁佳順,劉顏犖
(陜西科技大學電子信息與人工智能學院,陜西 西安 710021)
如今大量的文字/文本內容被保存在圖片或視頻中。因此需要運用計算機技術檢測和識別圖片或視頻中的文字/文本內容。例如證件識別[1]、車牌識別[2]以及視頻檢索[3,4]中,都需檢測其中的文字/文本內容。
自然場景中的文本大都以序列的形式出現,可以將其理解為序列識別問題。SHI 等人[5]基于CNN 和RNN 提出一種識別圖像中序列對象的卷積循環神經網絡模型CRNN,該模型主要采用多層雙向長短期記憶網絡結構[6]BiLSTM 學習特征序列的雙向依賴關系,提取文本序列的上下文關系特征,并融合上下文關系特征與文本特征進行識別。由于自然場景圖像中的文本存在大量的不規則、殘缺、模糊和扭曲變形文本,因此自然場景文本識別依舊具有挑戰。Sheng 等人[7]提出的場景文本識別模型,基于Vision Transformer設計了一個特征圖轉換塊,將二維的特征圖像轉換為一維的特征序列。Qiao 等人[8]提出場景文本識別模型,在圖像編碼識別的模塊中對序列解碼時應用注意力機制,為每一時刻的解碼序列賦予不用的權重,提取到更豐富的上下文特征。
綜上所述,當前場景文本識別算法大多忽略了圖像文本的全局的語義特征和文本間的位置特征,而且很少使用多種特征之間的相互聯系來輔助文本識別,以至于用來編碼的特征之間缺乏相互聯系,導致文本識別內容不準確。為了解決上述問題,本文提出多網絡和多頭注意力融合的自然場景文本識別(multi-network convergence and multi-head attention scene text recognition,MCMASTR)算法以增強自然場景下文本內容的識別,從而實現對文本內容的更加準確的識別。
本文提出了一種基于多網絡融合和多頭注意力機制的場景文本識別模型,它是一個端到端訓練的網絡模型,包括特征提取模塊MNC、多頭注意力模塊MHA、損失函數CTC[9]。
本文設計的MCMASTR 模型如圖1 所示。首先對于不規則輸入圖片進行預處理,將輸入圖片統一處理為192×32 大小,然后使用一種多網絡融合結構的特征提取模塊,從文本圖像中大量提取視覺特征;其次在多頭注意力模塊對輸入的視覺特征進行劃分,包括嵌入層、編碼層、分類層,嵌入模塊將視覺特征按49個patch劃分后,將每個patch通過線性映射,映射到一維向量,然后在每個向量中疊加字符類別特征和位置編碼,將50個調整好的特征向量輸入到編碼模塊中進行編碼,將編碼后的向量傳入分類模塊中,生成50 個對齊的一維序列特征,每個特征對應文本中的一個字符,輸出50個預測字符;最終,通過CTC算法根據多頭注意模塊預測的字符獲取圖像中的文本內容。

圖1 多網絡和多頭注意力融合的場景文本識別模型
基于多網絡融合結構的特征提取階段,在每一個卷積層都進行兩個以上的網絡并行融合操作,使得多個網絡融合為更加魯棒的模型,這些操作旨在不增加網絡深度的情況下提升模型泛化性,表征能力和感受野信息,從而提取更豐富的視覺特征。特征提取模塊是以改進的VGG-16作為骨干網絡。多網絡融合結構如圖2所示,將輸入特征圖分成兩個分支,分別用不同尺度的卷積核進行卷積,融合卷積后的兩張特征圖,再將其輸入到三分支的網絡中,使用不同尺度的卷積核進行卷積,再融合卷積后的三張特征圖,最終生成一張特征圖。這樣網絡可以通過多網絡的融合獲取不同的感受野,為后續處理提供了豐富的特征信息。

圖2 多網絡融合結構
圖3 詳細展示了多頭注意力模塊的處理流程,它集成了多個獨立運行的自注意力機制,而且為每個patch 添加位置編碼信息,使得模型可以在不同的patch子空間中學習到相關信息,針對這些相關信息實現并行編碼。自注意力機制針對當前patch 的位置的信息編碼時,會將注意力集中到自己所處的位置上并針對重要的信息特征進行學習,快速地提取局部特征之間的內部關系。

圖3 多頭注意力模塊結構圖
圖4表示了多頭注意力機制,其計算流程如下。

圖4 多頭注意力機制
⑴計算出每個注意力頭對應,對多頭注意力模型中的8個頭分別使用自注意力機制的運算過程得到對應的結果,其計算公式如下:
其中,Q 代表字符查詢向量;K 代表字符匹配向量;V代表字符值向量。從輸入向量中提取得到向量的Q和K 匹配過程中得到的值越大對應的V 的權重越高;dK代表了Q和K的維度,維度越大對應的dK越大。
⑵使用Concat 操作在channel 維度上進行拼接,將拼接的結果通過WO參數進行融合,得到最終的結果,其計算公式如下:
其中,head 表示多頭注意力模塊的第i 個自注意力機制,Concat表示拼接操作,num為拼接向量的數量。
1.2.1 嵌入層
多頭注意力模塊處理的是包含位置信息與分類信息的二維矩陣向量序列,而特征提取模塊輸入的特征圖是三維矩陣,需要將三維矩陣轉化為二維向量,再添加對應的位置信息與分類信息,然后輸入到編碼層,其邏輯結構如圖5 所示,其中左邊部分為位置信息,最后一條為分類信息。嵌入層輸出的特征向量是由圖像塊輸入特征、類別向量和位置編碼構成嵌入輸入向量z0,其公式如下:

圖5 特征圖轉為序列特征
1.2.2 編碼層
編碼層是重復堆疊多頭注意力和多層感知機塊。首先將嵌入層的輸出特征傳入歸一化層(Layer Normalization,簡稱LN),經過LN后將其傳入多頭注意力模塊,然后經過Dropout層,進行殘差連接,殘差之后經過LN,多層感知機塊,Dropout之后完成一次編碼。
多層感知機塊(MLP Block)是由兩個全連接、GELU激活函數和兩個Dropout組成。
編碼塊輸出的特征向量,其計算流程如下。
⑴計算出多頭注意力部分的輸出特征:由多頭注意力機制、層歸一化和跳躍連接構成,其計算公式為:
⑵計算出多層感知機部分的輸出特征,由前饋網絡、層歸一化和跳躍連接構成,其計算公式為:
其中,Zi表示多頭注意力模塊的第i 個特征向量,MLP表示多層感知機,LN表示層歸一化。
本文的損失函數使用CTC Loss(Connectionist Temporal Class)來定義標簽序列的概率,即通過CTC 將字符進行轉錄達到預測文本序列的目的。CTC 的輸入為多頭注意力模塊輸出的預測序列Y=y1,y2,…,yi,i表示輸入序列的全部長度。
每個序列在L上的概率分布用表示,用“-”來代表空白字符標簽,表示所有經過變換后生成標簽為的所有路徑的集合;然后映射函數過濾掉空白和重復的標簽,如“--s-s-t---rraw-berry”映射之后變成strawberry,其條件概率表達式如下:
損失函數表達式如下:
其中,x 表示全部訓練樣本,li代表數據集中真實標簽序列,yi代表多頭注意力模塊解碼后預測得到的序列。
實驗所使用的CPU 型號為E5-2666v3,內存為128G,使用的圖形處理器型號為NVIDIA Tesla P40,操作系統為Ubuntu,Python 版本為3.9,機器學習框架為Pytorch 1.12。模型在360 萬中文數據集和ICPR MTWI 2018數據集上進行了預訓練,所有圖像大小歸一化為32×192,圖像批處理尺寸為16,初始學習率設置為0.001,使用adam 優化器在訓練過程中對模型參數進行更新。
2.1.1 數據集
本次實驗所采用的預訓練集為360萬中文數據集和ICPR MTWI 2018數據集。360萬中文數據集其中有364 萬張圖片,數據集按照99:1 劃分為訓練集和驗證集兩部分。其圖片是通過對語料庫中的字體、大小、灰度、模糊、透視、拉伸等變化隨機生成的。ICPR WTMI2018 是中英文混合數據集,其中有20000 張圖片,數據集按照1:1 劃分為訓練集和驗證集兩部分。其中圖片全部來自網絡圖片,文本內容主要為水平、傾斜、模糊和殘缺文本,而且字體種類較多。
2.1.2 評價指標
自然場景文本識別的評價指標一般有兩種,一種是字符識別準確率(Character recognition accuracy,簡稱CRA),一種是文本識別準確率(Text recognition accuracy,簡稱TRA)[10]。字符識別準確率一般表示字符識別正確的個數占總字符的比例,評價指標比較直觀[10],其表達式為:
其中,W 表示為識別正確的字符數量,A 表示所有的字符數量。
文本識別準確率一般使用編輯距離,當一個字符需要轉換成另一個字符所需要的步驟數(包括刪除、插入和替換)就稱之為編輯距離[10],其表達式為:
其中,其中S 表示總字符的數量,D、I、R 分別表示刪除、插入、替換的步驟數[10]。
2.2.1 消融實驗
為了驗證本文識別算法的性能,實驗選取VGG+BiLSTM為基礎模型,在規則數據集(360萬中文、SVT)和不規則數據集(ICPR MTWI 2018、ICDAR 2015)共四個數據集上進行消融實驗,其結果如表1所示。

表1 規則與不規則文本數據集消融實驗
由表1 中的數據可得,添加了多網絡融合結構的特征提取模塊(MCN)后,MCMASTR 與基礎模型在規則文本和不規則文本上的平均字符準確率分別提升了0.7%、2.0%,平均文本準確率分別提升了0.6%、1.7%,證明了多網融合的可行性,它能提升文本特征提取的效果。而在使用本文提出的多頭注意力模塊(MHA)替換掉基礎模型中的BiLSTM 后與基礎模型相比,MCMASTR 在規則文本和不規則文本上的平均字符準確率分別提升了0.85%、2.0%,平均文本準確率分別提升了2.6%、2.3%,證明了多頭注意力模塊比BiLSTM 在字符解碼方面有更好的優越性。而在使用多頭注意力模塊替換掉基礎模型中的BiLSTM 后同樣使用多網絡融合結構為基礎模型,與基礎模型相比,MCMASTR 分別提升了1.9%、2.1%的字符準確率和2.45%、2.5%文本準確率,證明了多網絡融合與多頭注意力在字符識別方面有更好的表現。
圖6 可以得出,實驗中不斷地增加多頭注意力模塊數量,本文的模型在規則與不規則數據集上的準確率在穩定提升,但是當模塊的數量達到六個時模型整體表現最佳,而超過六個模塊后訓練時長增加,但是訓練速度、準確率都會下降,也說明單純的增加網絡深度與模塊數量不一定取得優異的結果,由于深層網絡中含有大量非線性變化,每次變化相當于丟失了特征的一些原始信息,從而導致層數越深退化現象越嚴重,所以如何提高模型的設計思路、改進訓練技巧也將成為研究的重點。

圖6 多頭注意力模塊數量對比實驗
2.2.2 對比試驗
由表2 可知,本文提出的算法在超過一半的標準數據集上取得了不錯的效果。本文算法在規則文本數據集SVT 上準確率能達91.4%,在不規則文本數據集ICDAR2015 和SVTP 上準確率分別能達82.4 和82.7%,均優于2019 年Yang M 等人提出的ScRN 算法[14]與2020 年Qiao Z 等人提出的SEED 算法[8]。本文算法在數據集ICDAR2013、IIT5k、CUTE80 三個數據集上準確率分別為93.1%、92.3%、84.2%與部分主流算法之間存在一定差距,但是相比于其他算法具有較強的競爭性。

表2 本文算法與近幾年的主流算法的對比實驗
圖7 直觀展示了本文方法的識別效果,可以看出在模糊情況、殘缺情況、扭曲變形情況和曝光條件下均能正確識別,而CRNN算法[7]和RARE算法[11]在圖片模糊、粘連、殘缺等情況下無法準確的預測和識別圖中的文本內容,這證明了多網絡融合與多頭注意力在字符識別方面有更好的表現。

圖7 文本識別效果展示
本文提出的算法在規則文本與不規則文本數據集上都取得了不錯的效果,而且能有效識別模糊、殘缺、扭曲和過度曝光文本,與一般文本識別算法相比,本文方法在自然場景中的實用性更強。
本文主要研究了自然場景的中英文文本識別,而對于提高模型準確率、識別速度以及硬件移植將成為未來研究的重點。