魏哲亮,李岳陽,羅海馳
1.江南大學 人工智能與計算機學院,江蘇 無錫 214122
2.江南大學 物聯網工程學院,江蘇 無錫 214122
自然場景文本檢測是計算機視覺領域中一個基礎而又關鍵的任務,它的目的是檢測定位出場景圖片中的文本實例。作為理解場景語義的重要一環,它在文字翻譯、自動駕駛等應用場景中發揮著重要作用。如何快速準確實現場景文本檢測也成為計算機視覺領域一個重要的研究課題。
隨著深度學習的快速發展,圖像分類、目標檢測和語義分割等方向的研究都取得了很大突破,基于深度學習的自然場景文本檢測方法逐漸成為主流。一般而言,基于深度學習的文本檢測方法大致可以分為兩類[1]:(1)基于回歸的文本檢測方法;(2)基于分割的文本檢測方法。基于回歸的文本檢測方法一般由通用目標檢測方法改進而來,使其更加適合文本檢測。TextBoxes[2]修改了原始SSD[3]中卷積核的大小,同時調整了參考框的形狀和長寬比,使其更適用于文本檢測。EAST[4]提出了一種無錨區域建議網絡,直接根據特征圖預測出文本行的坐標,擺脫了復雜的參考框設計。基于回歸的方法通常具有簡單的后處理流程,但是對于自然場景中的多種形狀的文本,尤其是彎曲文本,其檢測性能不佳。
基于分割的文本檢測方法首先對自然場景圖片進行分割,獲取像素級別的標簽預測,再通過后處理算法構建文本行。PixeLink[5]預測文本像素之間的連接關系,采用實例分割的方法得到文本行。PAN[6]提出了一個可學習的后處理方法,通過預測像素的相似度向量來快速的聚合同一文本實例的像素。DBNet[7]提出了可微二值化模塊,將二值化過程加入到分割網絡中來簡化后處理過程。基于分割的方法可以檢測任意形狀的文本實例,其分割性能的好壞會極大地影響文本檢測的效果。
自然場景文本檢測主要存在以下兩個挑戰:(1)自然場景中圖像背景復雜多樣,網絡難以對文本場景進行準確的解析;(2)文本大小差異較大,存在多尺度問題,對極端尺寸文本檢測困難。
現有的基于分割的網絡大多采用ResNet提取文本圖片特征,盡管理論上ResNet的感受野已經大于輸入圖像,但文獻[8]表明,CNN的經驗感受野遠小于理論感受野,這使得網絡沒有充分整合重要的全局上下文信息,無法準確理解復雜的文本場景,從而造成某些誤檢發生,如圖1(a)。通常,上下文信息可以通過不同的池化操作獲得。語義分割領域使用各種池化操作提升了網絡對場景的解析能力。但現有方法中常用的正方形池化窗口不能很好地適應文本實例的特點。考慮到場景圖片中的文本實例大多為長條形且有著各種長寬比,本文設計了多尺度池化模塊(multi-scale pooling,MP)通過不同長寬比窗口的空間池操作來獲取場景文本圖片中不同層次的上下文信息,指導網絡進行更加準確的分割。

圖1 文本檢測問題Fig.1 Text detection problem
主干網絡提取的不同層特征適合處理不同大小的物體。淺層特征感受野小,適合處理小目標;深層特征感受野大,適合處理大目標。有效地表示和處理這些不同層特征,可以提高網絡的尺度魯棒性。現有文本檢測網絡大多采用特征金字塔結構(FPN[9])來融合不同尺度特征,以此緩解文本的多尺度問題。但FPN結構僅具備一條自上而下的融合路徑,受到單向信息流的限制。對一些極端尺寸的文本,網絡仍然沒有辦法很好地檢測,如圖1(b)。針對這一問題,本文設計了一種雙向特征融合模塊(bidirectional feature fusion,BiFF),通過額外增加一條自下而上的融合路徑,來改善網絡的信息傳播路徑,提升網絡對不同尺度文本的檢測性能。
綜上所述,本文設計了多尺度池化和雙向特征融合兩個模塊來提升網絡性能,主要貢獻如下:
(1)將多尺度池化引入文本檢測領域,構建了一種新的多尺度池化模塊,提升了文本檢測網絡的性能。
(2)設計了一種雙向特征融合模塊,提升了網絡對不同尺度文本的檢測性能。
(3)基于多尺度池化和雙向特征融合構建了一種新的文本檢測框架,在三個公開數據集上取得了競爭性的結果。
本文設計了一種基于多尺度池化和雙向特征融合的文本檢測網絡。整體結構如圖2所示,包含四部分:主干網絡特征提取、多尺度池化(MP)、雙向特征融合(BiFF)和可微分二值化預測。主干網絡使用包含可變形卷積的ResNet18或ResNet50,可變形卷積可以為模型提供靈活的感受野,使其適應不同形狀的文本實例。MP模塊作用于主干網絡的中間層特征輸出,通過不同長寬比窗口的空間池對特征圖進行池化操作,以獲取場景文本圖片中不同層次的上下文信息。雙向特征融合結構用于融合主干網絡輸出的不同尺度特征,提升網絡對不同尺度文本的檢測性能。最后,模型的預測部分使用DBNet的可微分二值化模塊,得到近似二值圖。

圖2 網絡結構Fig.2 Network structure
上下文信息對像素級的預測任務很重要,近年來,很多方法使用空間池來獲取圖片中的上下文信息。PSPNet[10]提出金字塔池化模塊,將特征圖劃分為大小不同的子區域,然后對每個子區域進行池化操作,以獲取原圖中不同區域的上下文信息。大量實驗證明,空間池是獲取遠程上下文信息和執行像素級預測任務的有效手段。
然而,現有方法中常用的正方形池化窗口不能很好地適應文本實例的特點,因在場景圖片中的文本實例大多為長條形且有著各種長寬比如圖3所示,正方形窗口無法靈活地捕捉文本場景中的各種上下文信息。

圖3 正方形池化窗口Fig.3 Square pooling window
1.1.1 多尺度池化模塊
考慮一般的池化操作:設x∈RC×H×W為輸入張量,其中H和W分別為特征圖的高度和寬度,C為通道數,池化窗口大小和步長為k。池化后的輸出為y,那么。平均池化操作可以描述為如下公式:
為此,結合文本實例的特點,本文提出了多尺度池化模塊,通過設計不同長寬比的池化窗口,來適應文本實例的特點。給定輸入張量x∈RC×H×W,在多尺度池化中,需要池化的空間范圍設置為(h,w),h和w可以根據處理對象的特點動態設置。池化后得到張量表示為:
在本文中,多尺度池化模塊具有四種不同尺度的池化操作(如圖4),分別表示為avgPool1、avgPool2、avgPool3和avgPool4。對于給定的輸入特征x∈RC×H×W,首先使用一個組合模塊(包括1×1卷積+批歸一化處理BN+激活函數ReLU)進行通道數降維,得到,然后對x1進行不同的池化操作:

圖4 多尺度池化模塊Fig.4 Multi scale pooling module
其中,up(?)表示將特征圖上采樣到H×W大小。不同層次的上下文信息通過不同的池化層來獲取。最終的特征輸出y表示為:
其中,C(?)表示特征圖按通道維度拼接,⊕代表特征圖元素按位相加。
1.1.2 池化窗口設置
文獻[11]統計了不同數據集中文本實例的尺度信息,參考該文獻的統計,本文將四個池化層的窗口大小分別設置為2×20、2×8、4×8和4×4,池化窗口的步長和padding設置為窗口大小的一半。2×20池核的空間池可以對那些具有極端縱橫比的文本實例進行遠程建模,提高模型對狹長文本的檢測能力;4×4池核的空間池可以有效地捕獲密集文本區域的上下文信息。由圖2所示,MP模塊可分別提取主干網絡的C3和C4特征圖中的上下文信息。
為了提高網絡的性能,FPN結構被廣泛使用,如圖5(a)所示,它通過一條自上而下的路徑融合主干網輸出的不同尺度特征,將高層特征圖中的語義信息傳播到低層特征圖中。EfficientDet[12]分析了各種多尺度特征融合結構,提出自頂向下的FPN結構會受到單向信息流的限制。PANet[13]通過添加一條自下而上的路徑來改善信息在網絡中的傳播路徑。

圖5 征融合框架Fig.5 Feature fusion framework
通過對各種特征融合框架的分析,本文提出了一種雙向特征融合結構(BiFF)如圖5(c)所示,主要有如下兩個改進點:(1)借鑒PANet添加了一條自下而上的融合路徑;(2)去除那些只有一條輸入邊的節點。
如圖5(c)主干網絡的C2、C3、C4和C5特征圖為BiFF的四個輸入,通過一條自上而下的路徑可以得到中間特征td4和td3,計算公式為:
其中,up×2(?)表示對特征圖進行兩倍上采樣。輸出特征P2的計算如下:
然后從P2開始自下而上逐層降采樣再級聯可以得到P3、P4和P5,公式為:
其中,down×2(?)表示對特征圖進行兩倍降采樣。最后,將P5、P4、P3經過上采樣與P2拼接,再卷積得到特征圖Fp,如圖2所示,公式為:
其中,conv(?)是1×1卷積,C(?)表示特征圖在通道維度進行拼接,up×8(?)、up×4(?)和up×2(?)分別表示8倍、4倍和2倍上采樣操作。
BiFF結構在FPN的基礎上額外配備一條自下而上的路徑,改善了信息在網絡中的傳遞路徑,可以提升網絡對不同尺度文本的檢測性能。BiFF和EfficientDet中的BiFPN具有類似的結構,不同之處在于BiFPN為每條輸入邊配備了一個權重并且同一層的節點存在跳躍連接,同時整個結構是可級聯的。而本文的BiFF結構相對更加簡潔,參數量也更小。文章2.3節分析了這兩種特征融合結構的性能。
預測部分使用可微分二值化模塊(DB)得到文本區域。二值化是基于分割的文本檢測算法中必不可少的一步,它將分割網絡生成的概率圖轉化為二值圖,用于后續的文本框生成。常用的二值化操作使用固定的閾值,結果依賴于閾值的選取。可微分二值化模塊將二值化操作加入到分割網絡,可以自適應地預測每個像素位置的閾值,以得到更加魯棒的二值圖,簡化后處理步驟。如圖2所示,由雙向特征融合得到特征圖Fp,分別預測得到概率圖P和閾值圖T,然后根據下式生成近似二值圖:
其中,k為放大因子,設定為50;i,j,Pi,j和Ti,j分別為近似二值圖、概率圖和閾值圖上(i,j)位置的值。該近似二值化函數的功能類似于標準二值化函數,但是可微,因此可以在訓練過程中隨著網絡一起進行優化。可微分二值化操作不僅有助于模型區分文字區域和背景區,還可以讓模型有效分離距離很近的文本實例。
在訓練過程中,需要對網絡輸出的概率圖、閾值圖和近似二值圖分別進行有監督學習。概率圖標簽和閾值圖標簽可以通過如下方法獲得。
如圖6所示的一張訓練集圖片,數據集中會給定圖片對應的文本框標簽,可用G來表示。概率圖標簽通過收縮原始文本框得到,其中的正樣本區域Gs是將G通過Vatti裁剪算法向內收縮距離d得到的,d由如下公式給出:

圖6 標簽制作Fig.6 Label making
其中,S是文本框G的面積,r是縮小比例,可設置為0.4,C為文本框G的周長。類似的,在閾值圖標簽中,將G向外擴張同樣的距離d可以得到GL。可將Gs和GL中間的區域視為文本的邊框區域,邊框區域的閾值設置為0.7,其他部分的閾值設置為0.3。
本文損失函數L可以表示為Lb、Lp和Lt三部分損失的加權求和,公式如下:
其中,Lb、Lp和Lt分別是近似二值圖損失、概率圖損失和閾值圖損失。α、β分別設置為5和10。
本文對Lb、Lp應用二值交叉熵(binary cross-entropy,BCE)損失。為了解決正負樣本不平衡的問題,在BCE損失中使用困難樣本挖掘。
其中,Sl是用于計算損失的樣本集合,正負樣本的比例是1∶3,yi是概率圖的標簽值,xi是網絡輸出的預測值。閾值圖損失Lt定義為預測值和標簽之間的L1距離之和,公式如下:
其中,RL是文本框擴張區域GL中的像素集合,是閾值圖標簽,是模型預測值。
在推理階段,文本框的形成過程包括三個步驟:(1)首先使用固定閾值0.2對近似二值圖進行二值化,得到二值圖;(2)獲取二值圖中的連通域得到文本收縮區域,根據連通域生成文本框;(3)使用Vatti裁剪算法對文本框進行擴張,擴張比例d′由如下公式計算得到:
其中,S′是文本框的面積;C′是文本框的周長;r′是擴張比例,設置為1.5。
為了驗證本文提出方法的有效性,首先在ICDAR2015和Total-Text數據集上對MP模塊和BiFF結構進行了消融實驗。然后,在三個公開數據集ICDAR2015、MSRA-TD500和Total-Text上進行了對比實驗,將本文的結果與其他文本檢測方法進行了比較。實驗環境如下:CPU:Intel?Xeon?Silver 4210R 2.40 GHz、GPU:GeForce RTX 3090、深度學習框架Pytorch和圖像處理庫OpenCV-Python。
SynthText[14]:是一個包含80萬張圖片的大型合成文本檢測數據集,其中的圖片是由8 000張背景圖片加上文本合成得到。本文用這個數據集來預訓練本文的模型。
ICDAR2015[15]:是一個由1 000張訓練圖片和500張測試圖片組成的純英文文本檢測數據集,其中的圖片由谷歌眼鏡獲取,包含大量小且模糊的文本實例。
Total-Text[16]:是一個由1 255張訓練圖片和300張測試圖片組成的彎曲文本檢測數據集,該數據集中文本方向形狀多樣,包含很多曲線文本,其中的文本實例使用多邊形表示。
MSRA-TD500[17]:MSRA-TD500是包含英語和中文的多語言文本檢測數據集,其中300張圖片作為訓練集,200張圖片作為測試集。由于該數據集訓練圖片較少,依照之前的方法,本文將HUST-TR400[18]數據集中的400張圖片添加到訓練集一并訓練。
為了充分利用訓練數據,本文對訓練圖片應用如下三種數據增強方式:(1)隨機旋轉(-10°,10°);(2)隨機裁剪;(3)隨機翻轉。為了提高訓練的效率,訓練圖片大小設置為640×640像素。在每個數據集上,本文對模型進行1 200個epoch的訓練。訓練批次大小設置為16。網絡優化算法使用隨機梯度下降方法(SGD),學習率調整遵循Poly Learning Rate Policy,當前學習率lr=l0×,初始學習率l0設置為0.007,power設置為0.9。
在測試階段,對不同的數據集,本文保持圖片的寬高比,再將圖片調整到合適的高度輸入到網絡。模型評估使用準確率、召回率和F-measure評價指標。
其中,rd和rg是文本框,G是標注的文本框集合,D是模型檢測出的文本框集合。||D是集合D的元素個數。m(r,R)為匹配函數,若文本框集合R能找到與r匹配的文本框則為1,否則為0。
綜合指標(F-measure)是召回率和準確率的加權調和平均,可以反映模型的綜合性能,計算公式如下:
為了驗證MP模塊和BiFF結構的有效性,本文在ICDAR2015和Total-Text數據集上進行了消融實驗,并與基準網絡DBNet進行了比較。為了保證一致性,在這些實驗中,所有模型都沒有使用SynthText數據集進行預訓練,ICDAR2015和Total-Text測試圖像的短邊分別設置為736像素和800像素。
MP模塊:如1.2節所述,本文在主干網絡之后加入MP模塊,來驗證其有效性。實驗結果如表1所示,第一行是基準網絡DBNet在兩個數據集上的實驗結果,第二行是加入MP模塊的實驗結果。從這兩行可以看到,MP模塊在兩個數據集上有1.2個百分點左右的提升。具體來說,在ICDAR2015數據集上,F1-measure值提升了1.24個百分點;在Total-Text數據集上,F1-measure值提升了1.29個百分點。

表1 消融實驗結果Table 1 Results of ablation experiment
BiFF結構:DBNet使用FPN將主干網絡輸出的四個不同尺度特征進行融合,本文使用BiFF替換FPN,以更好地利用主干網絡輸出的不同尺度特征。實驗結果如表1第三行。在ICDAR2015數據集上,BiFF能夠為模型帶來2.07個百分點的召回率提升和1.63個百分點的F-measure值提升。在彎曲文本數據集Total-Text上,模型的準確率和F-measure值分別提升了1.36個百分點和0.81個百分點。第四行是使用BiFPN的實驗結果,BiFPN也可以為模型帶來一定的性能提升,但其結構更加復雜,參數量也相對更大。
本文還驗證了MP模塊和BiFF結構一起作用在模型的效果。實驗結果如表1第五行,當使用BiFF結構做特征融合并且在主干網絡后加入MP模塊時(網絡結構如圖2),模型達到了最好的性能。相比于基準網絡DBNet,F-measure值在ICDAR2015數據集和Total-Text數據集上分別提升了2.96和1.91個百分點。
三個公開數據集比較了本文提出方法和一些現有方法的性能,包括一個多方向文本數據集、一個多語言文本數據集和一個曲線文本數據集。在這些實驗中,用SynthText數據集對模型進行2個epoch的預訓練。
多方向文本檢測:ICDAR2015是一個多方向文本檢測數據集,其中包含許多小而低分辨率的文本實例。表2選取了一些比較經典和主流的文本檢測算法和本文方法進行比較。其中,EAST和RRD是經典的基于回歸的文本檢測算法;PSENet和SPCNet是經典的基于分割的文本檢測算法,PAN、DBNet和DBNet++是主流的基于分割的文本檢測算法。本文提出的方法在該數據集上的實驗結果優于目前的主流方法,在召回率和F1-measure指標上取得了最好的結果,分別為85.9%和87.7%。圖7展示了本文算法和DBNet在ICDAR2015部分測試圖片上的檢測結果。

表2 ICDAR2015數據集結果Table 2 Results on ICDAR2015 單位:%

圖7 ICDAR2015數據集檢測結果對比Fig.7 Comparison of results on ICDAR2015 dataset
多語言文本檢測:表3是本文方法在多語言文本檢測數據集MSRA-TD500上的實驗結果,本文的方法在該數據上取得了最好的準確率,在召回率和F值上比DBNet++略低。相比于DBNet,本文方法在三個指標上都有所提升,在準確率、召回率和F-measure上分別提升了0.7、2.6和1.8個百分點。

表3 MASR-TD500數據集結果Table 3 Results on MASR-TD500 單位:%
彎曲文本檢測:為了驗證本文方法對彎曲文本的檢測效果,本文在Total-Text數據集上進行了實驗,并與一些主流方法進行比較。實驗結果如表4所示。

表4 Total-Text數據集結果Table 4 Results on Total-Text 單位:%
可以看到,本文方法在準確率、召回率和F-measure指標上都取得了較好的結果,三個指標分別為88.7%、82.6%和85.5%。此外,注意到本文方法在該數據集上較DBNet++尚有一些差距,主要原因是多尺度池化模塊中的池化窗口為方形,無法很好地捕捉彎曲文本場景中的各種上下文信息,限制了網絡對彎曲文本的檢測性能。
本文提出了一種新的自然場景文本檢測方法,主要從兩個方面進行改進,提高了文本檢測網絡的性能。多尺度池化模塊設計了不同長寬比的池化操作,幫助網絡獲取場景文本圖片中不同層次的上下文信息,減少了網絡誤檢的情況。雙向特征融合結構,在FPN的基礎上額外添加了一條自下而上的路徑,提升了網絡對不同尺度文本的檢測能力。在三個公開文本檢測數據集上,本文提出的方法在準確率、召回率和F-measure指標上都取得了競爭性的結果,驗證了本文方法的有效性。
本文方法對彎曲文本的檢測效果還需要進一步提高。主要原因是多尺度池中的方形池化窗口無法很好地適應彎曲文本。下一步,將繼續改進該模塊,提升網絡對彎曲文本的檢測性能。