馬藝舒,余艷梅,陶青川
(四川大學電子信息學院,成都 610065)
由于文字可能攜帶著重要且精準的信息,因此從文本圖像中自動識別出文字逐漸成為重要的研究領域,光學字符識別(OCR)技術正是研究這一問題的有效手段[1]。目前OCR任務大多分兩個階段完成:文本檢測和文本識別,文本檢測旨在定位出圖像中文字區域的位置,文本識別則把檢測到的文本區域里的文字識別出來。文本檢測作為OCR任務的第一步,是識別任務的前提,檢測效果將會直接影響文本識別的效果[2]。而自然場景中的文本具有多樣性,其受光照、噪聲、遮擋等影響從而背景十分復雜,這給文本檢測帶來了極大的困難。傳統的場景文本檢測算法主要依賴人工設計特征,然后再用機器學習的方法學習文本信息,這樣的方法雖然取得一定的成效,但具有很大的弊端,因為它很大程度依賴人的先驗知識[3]。
近年來隨著深度學習的發展,場景文本檢測發展迅速,目前基于深度學習的文本檢測大致分為基于回歸和基于分割的方法:基于回歸的文本目標通常用具有一定旋轉角度的四邊形去表示,但通常不能處理具有任意方向且形狀不規則的文本;而基于分割的方法其基本思路為通過分割網絡結構進行像素級別的語義分割,再基于分割的結果構建文本邊界框,該方法目前因其靈活性備受關注[4]。Dan等[5]提出基于分割的PixelLink,其將同一實例內的像素鏈接在一起分割出文本實例,然后直接從分割結果中提取文本邊界框而不進行位置回歸,但后處理復雜,且模型推理速度非常慢;Zhou等[6]提出端到端的文本檢測算法EAST,其增加了方向信息,可以檢測任意形狀和方向上的文本,但由于感受野不夠,對長文本的檢測效果不好;Lyu等[7]提出一種結合目標檢測和語義分割的文本檢測算法Corner,其可以同時處理多方向文本和極端高寬比的文本,雖然速度上有所突破,但依然達不到理想效果;Liao等[8]提出可微分二值化網絡DBnet,其將二值化操作插入到分割網絡中進行聯合優化,并且在訓練時是完全可微的,該方法憑借高效的推理速度被廣泛應用在各大頭部互聯網的OCR任務中,但是,由于其特征提取部分使用的FPN會導致不同特征尺度不一致問題,直接concat進行特征融合可能會導致后續檢測結果不準確。為了進一步提升檢測準確率,同時不顯著降低速度,本文對DBnet[8]進行改進,將FPN輸出的多層特征采用自適應特征融合的策略進行融合。
本文所做的工作如下:
(1)改進了DBnet[8]中的特征融合結構,將concat結構改為本文提出的自適應特征融合結構。
(2)通過消融實驗評估了參與自適應特征融合層級的數量。
(3)通過實驗證明了在常用公開數據集上均得到了很好的檢測效果。
DBnet網絡結構主要分為三個部分:由Resnet+FPN組成的特征提取部分;特征融合concat以及可微分二值化模塊,本文在其基礎上進行改進。圖1所示為本文的整體網絡架構,分為特征提取、自適應特征融合、可微分二值化模塊三部分,其中特征提取部分和可微分二值化模塊與DBnet保持一致。由于FPN存在不同特征尺度不一致的問題,直接將FPN每一輸出特征層進行concat的融合結果可能會產生沖突,導致后續無法區分文字和背景[9]。為了解決上述問題,受文獻[10]的啟發,將DBnet中的特征融合部分改為本文提出的自適應特征融合結構(如圖1中間所示),該結構可以讓網絡在FPN不同輸出層級上直接學習如何在其他層上對特征進行篩選,從而只保留有效信息進行自適應的融合,最終將各個層級融合后的結果再相加,有效解決了FPN導致的融合結果沖突問題。

圖1 本文的整體網絡架構
1.1.1 特征提取結構
本文的特征提取部分采用與DBnet一致的策略,即ResNet+FPN結構,FPN包括一個自下而上的路徑,一個自上而下的路徑和一個橫向連接路徑,為了平衡模型檢測準確率和模型的推理時間,減少網絡需要學習的參數量,降低模型的復雜度[10],其中FPN自下向上的部分,即特征提取主干本文選用ResNet-18進行構建。
1.1.2 自適應特征融合
由于FPN存在不同特征尺度不一致的問題,當圖像同時含有大文本和小文本時,可能會導致后續融合結果發生沖突,無法將文本和背景區分開來。對此,本文改進了DBnet[8]中的特征融合部分,將其concat結構替換為本文提出的自適應特征融合結構。如圖2所示,對于FPN自頂向下每一層級的輸出特征圖采用類似文獻[11]中的策略,將其他層級特征圖通過卷積和上/下采樣操作調整通道數和尺寸,從而與該層級保持一致,然后進行自適應融合,具體公式為
其中:表示(i,j)處從層級n到層級l的特征向量;表示(i,j)位置融合后的結果;為(i,j)位置的空間權重,其滿足該權重可在反向傳播中自動生成,通過訓練自適應找到最優融合。本文最終從五個層級進行自適應融合,分別對應圖2中ASFF-1、ASFF-2、ASFF-3、ASFF-4和ASFF-5,并將每個層級融合后的 輸 出y1、y2、y3、y4、y5分別 調整 至y5大 小然后進行逐像素相加,這樣使得矛盾信息被過濾,進而后續檢測結果更加準確。

圖2 自適應特征融合
1.1.3 可微分二值化模塊
由于傳統的二值化方法不可微,不能在訓練時進行學習,所以本文使用了DBnet[8]網絡中提出的可微分二值化模塊,其用近似階躍函數來近似二值化過程,具體公式為
其中:B為最終得到的近似二值圖;T為學習得到的自適應閾值圖;k則根據經驗設置為50。
標簽的生成采用PSENet[12]中的方法,由原始多邊形以及收縮和擴張多邊形得到,其中原始多邊形為
式中n代表文本框多邊形的頂點個數,然后采用Vatti算法將G向內收縮為Gs,收縮的尺寸D為
其中:A和L為原始多邊形的面積和周長;r為收縮率,r根據經驗設置為0.4。再將G以D擴張得到Gd,Gs和Gd之間的部分則為文本區域的邊界,最后閾值圖也采用類似的標注方式,可通過計算到達G中最近段的距離來生成閾值圖的標簽。
為了得到更加準確的二值圖,從而將文字區域和背景部分區分開來,本文采用了文獻[8]中的損失函數,整個損失函數分為三個部分,即概率圖P的損失函數Ls、二值圖的損失函數Lb和自適應閾值圖的損失函數Lt:
其中:α和β分別設置為1.0和10,且Ls和Lb為二元交叉熵損失函數(BCE):
此外,本文使用hard negative mining的策略來解決文本分類中正負樣本不均衡問題,其中Sl是正負比為1∶3的采樣集。Lt為生成的擴張多邊形Gd里的預測結果和實際標簽之間的L1距離之和:
其中:Rd是擴張多邊形Gd內像素的索引;y*是自適應閾值圖的真實標簽。
由于真實場景文本數據集的數量有限,為了達到更好的檢測效果,本文首先對所有的模型使用合成數據集SynthText進行預訓練,然后再分別在公開數據集Icdar2015和Icdar2017-MLT上進行1000次的微調,訓練的批樣本量設置為8,學習率設置采用Poly策略。
本文使用與DBnet[8]一致的評價指標來評估改進后模型的文本檢測效果,即準確率、召回率和F分數。
準確率計算公式為
其中:TP代表實際為正例,預測也為正例的樣本;FP代表實際為負例但預測為正例的樣本,此數值越大越好。
召回率計算公式為
其中:TP代表實際為正例,預測也為正例的樣本;FN代表實際為正例但預測為負例的樣本,此數值越大越好。
F分數是召回率和準確率的加權調和平均,計算公式為
其中:P和R分別表示精準率、召回率,此數值越大越好。
本文所有的實驗均在Ubuntu16.04操作系統上進行,以Pytorch1.4.0作為深度學習框架,CUDA版本為10.1,實驗所用編程語言均為Python3.6,CPU為Intel(R)Xeon(R)Platinum 8255C,GPU為NVIDIA RTX 2080 Ti。
在Icdar2015上的消融實驗結果如表1所示。

表1 Icdar2015消融實驗對比結果
設未改進前的FPN+DB為方法0;在一個層級上進行自適應特征融合,即FPN+ASFF1+DB為方法1;在兩個層級上進行自適應特征融合,即FPN+ASFF2+DB為方法2;在三個層級上進行自適應特征融合,即FPN+ASFF3+DB為方法3;在四個層級上進行自適應特征融合,即FPN+ASFF4+DB為方法4;在五個層級上進行自適應特征融合,即FPN+ASFF5+DB為方法5;在六個層級上(加上原圖一起)進行自適應特征融合,即FPN+ASFF6+DB為方法6,可見方法5準確率、召回率和F分數均為最高。
在ICDAR 2017-MLT上的消融實驗結果如表2所示,可見方法5在該數據集上雖然準確率比方法6略有降低(0.03個百分點),但方法6的FPS下降程度偏高,為了在準確率和速度兩個方面進行權衡,最終本文選擇在五個層級上進行特征融合。

表2 ICDAR 2017-MLT消融實驗對比結果
為了突出本文優勢,我們還與其他方法進行了對比,表3展示了在Icdar2015數據集上進行對比實驗的結果,實驗結果直觀地顯示了本文方法具有不錯的表現(準確率、召回率、F分數均為最高,速度比最快的DBnet略有降低)。

表3 在Icdar2015上的對比結果
為改善自然場景文本檢測的效果,本文提出了一種基于DBnet改進的自適應特征融合的文本檢測方法,該方法可以克服FPN不同特征尺度不一致性引起的特征融合干擾,在公開數據集Icdar2015和ICDAR 2017-MLT上進行的對比實驗表明:相比較于其他方法,本文的方法在場景文本檢測任務上有更好的表現,提升文本檢測準確率的同時檢測速度僅有略微下降。且根據消融實驗結果,五個層級同時參與融合時效果最佳,基于此結果,本文最終選擇將五個層級的自適應特征融合輸出結果進行最終的融合。在未來的研究中,考慮加入其他預處理手段,使模型在速度不顯著下降的前提下進一步提升準確率。