金 靈 張 軼
(四川大學(xué)計算機(jī)學(xué)院 四川 成都 610065)
場景文字檢測是計算機(jī)視覺領(lǐng)域一個非常重要的研究課題,其研究成果可以被應(yīng)用于車輛輔助駕駛系統(tǒng)、社會場景識別、圖片文本分析、機(jī)器人導(dǎo)航、圖片檢索等實際場景。
場景文字的表現(xiàn)形式復(fù)雜,不僅具有較大的長寬比、任意方向性、字體和大小多種多樣等特點(diǎn),而且因環(huán)境限制,存在圖片曝光不均、目標(biāo)區(qū)域模糊等問題。場景文字檢測的主要手段是提取圖片特征,以區(qū)分圖片中背景和文字區(qū)域。傳統(tǒng)方法大多基于手工構(gòu)造特征,其檢測過程繁瑣,應(yīng)對復(fù)雜的自然場景時魯棒性不足。得益于日益增大的數(shù)據(jù)量和不斷提升的硬件計算性能,深度神經(jīng)網(wǎng)絡(luò)算法在計算機(jī)視覺研究的各個研究方向取得了突破,受其影響,越來越多的神經(jīng)網(wǎng)絡(luò)自然場景文字檢測算法被提出。
神經(jīng)網(wǎng)絡(luò)模型的自然場景文字檢測算法可分為基于錨框的方法和基于像素分割的方法。受目標(biāo)檢測算法啟發(fā),Liao等[1]設(shè)計了一組具有不同長寬比的錨框,通過在不同層次的特征圖上設(shè)置不同大小的錨框,檢測不同尺寸大小的文字區(qū)域,但是該方法只能檢測到水平方向的文字區(qū)域。Ma等[2]通過為錨框增加旋轉(zhuǎn)角度參數(shù),模型能夠檢測任意方向的文字區(qū)域,但是錨框更為復(fù)雜,增大了模型學(xué)習(xí)的難度。錨框能夠保證較好的召回率,但是如何設(shè)計錨框需要人的先驗經(jīng)驗作為指導(dǎo),并且難以應(yīng)對復(fù)雜多變的場景文字情況,模型中存在的錨框會產(chǎn)生不可忽視的計算資源開銷。因為模型學(xué)習(xí)的目標(biāo)是錨框與真實區(qū)域之間的偏移量,所以基于錨框的方法又被稱為間接回歸方法。
基于像素分割的方法中,He等[3]首先提出通過對每個像素點(diǎn)進(jìn)行分類和預(yù)測邊界距離,從而定位像素所在的文字區(qū)域。因為回歸的目標(biāo)是一個文字像素點(diǎn)與其所在文字區(qū)域邊界的距離,所以其又被稱為直接回歸方法。Zhou等[4]提出了RBOX標(biāo)簽生成機(jī)制,通過生成像素點(diǎn)分類標(biāo)簽,回歸距離標(biāo)簽和回歸角度標(biāo)簽,實現(xiàn)以像素點(diǎn)為單位標(biāo)記文字區(qū)域的目的,但同文提出的EAST算法在單個特征圖上學(xué)習(xí)目標(biāo)文字區(qū)域,未考慮文字區(qū)域大小不一,長寬比變化較大等問題。Deng等[5]對像素分類和相鄰像素鏈接分類,然后使用Union-Find算法得到像素連通域,實現(xiàn)文字區(qū)域?qū)嵗指?,最后使用最小外接矩形方法得到文字區(qū)域。該方法訓(xùn)練過程快,處理小區(qū)域文字效果較好,但是在處理文字密集區(qū)域時較為繁瑣的后處理過程耗時較長。
場景文字檢測的樣本圖片中往往只有少量文字區(qū)域,文字像素點(diǎn)和背景像素點(diǎn)的比例極不均衡。針對該問題,現(xiàn)有方法往往在訓(xùn)練過程中使用在線困難樣本挖掘算法[6],該算法啟發(fā)式地選取正負(fù)樣本,將其比例控制在一個相對較小的范圍以內(nèi),以緩解樣本比例懸殊問題,但其在模型訓(xùn)練過程中會產(chǎn)生不可忽視的計算資源消耗,且樣本選取具有隨機(jī)性,并不能充分利用現(xiàn)有的訓(xùn)練數(shù)據(jù)。
針對上述問題,本文提出在多尺度特征圖上學(xué)習(xí)不同大小的文字區(qū)域,解決因尺度變化大而引起的模型學(xué)習(xí)困難問題。設(shè)計了一個共享卷積核的檢測模塊,采用直接回歸方法定位文字區(qū)域;使用Focal Loss[7]作為分類損失函數(shù)解決正負(fù)樣例不均衡問題。
RetinaNet[7]是一種基于錨框的通用目標(biāo)檢測算法,該網(wǎng)絡(luò)模型使用特征金字塔網(wǎng)絡(luò)提取多層次的具有上下文語義的特征圖,并且在多個特征圖之間共享同一個檢測模塊,具有檢測效果好且速度快的特點(diǎn)。如圖1所示,RetinaNet檢測模塊使用class subnet和box subnet分別處理目標(biāo)類別分類任務(wù)和目標(biāo)定位任務(wù),其中K表示檢測目標(biāo)的類別個數(shù),A表示預(yù)設(shè)錨框的個數(shù)。
圖1 RetinaNet檢測模塊
本文提出的場景文字模型受RetinaNet啟發(fā),其整體架構(gòu)如圖2所示,分別由特征提取網(wǎng)絡(luò)、特征金字塔網(wǎng)絡(luò)、文字區(qū)域檢測模塊三部分組成。圖2左側(cè)的特征提取網(wǎng)絡(luò)和特征金字塔網(wǎng)絡(luò)共同用于構(gòu)建融合特征圖。首先,使用特征提取網(wǎng)絡(luò)提取輸入圖片的特征信息;然后,基于多尺度特征融合的思想,使用特征網(wǎng)絡(luò)金字塔構(gòu)建出尺寸不一且具有不同特征語義的融合特征圖。
圖2 模型整體結(jié)構(gòu)
針對場景文字檢測任務(wù)的特點(diǎn),本文設(shè)計了一個輕量級的文字區(qū)域檢測模塊,其架構(gòu)如圖2右側(cè)部分所示。目標(biāo)檢測任務(wù)的目標(biāo)類別數(shù)量K往往很大,如COCO數(shù)據(jù)集[8]含有80個類別,此外RetinaNet是基于錨框的目標(biāo)檢測方法,每一層有9個預(yù)設(shè)錨框,因此圖1中的class subnet輸出通道數(shù)為720,box subnet輸出通道數(shù)為36。因為本文方法無需預(yù)先設(shè)置錨框,僅需使用像素分類分支對輸入圖片中的像素進(jìn)行二分類,所以其輸出通道數(shù)設(shè)為1。在此基礎(chǔ)上,為了定位文字像素所在的預(yù)測文字區(qū)域,添加了距離回歸分支和角度回歸分支,分別用于預(yù)測像素到其所在文字區(qū)域邊界的距離,及文字區(qū)域方向角度,其輸出通道數(shù)分別為4和1。針對場景文字區(qū)域長寬比較大的特點(diǎn),本文提出了中心度預(yù)測分支,該分支輸出結(jié)果可用于重新調(diào)整像素分類置信度,其輸出通道數(shù)為1。所以本文提出的文字區(qū)域檢測模塊整體輸出通道數(shù)為7,相比于RetinaNet的檢測模塊,計算資源使用量下降了99%。為了進(jìn)一步節(jié)省計算資源開銷,在多個分支間共享卷積層。
綜上可知,本文提出的文字區(qū)域檢測模塊更為輕量,這有利于模型在計算資源有限的硬件環(huán)境下運(yùn)行。
本文模型采用ResNet-50[9]作為主干特征提取網(wǎng)絡(luò)。該網(wǎng)絡(luò)由多個殘差模塊組成,共生成多個原始特征圖,分別可記作C1、C2、C3、C4、C5,每個原始特征圖的步長對應(yīng)為2、4、8、16、32。因為卷積神經(jīng)網(wǎng)絡(luò)生成的不同尺寸的特征圖具有不同特征信息,網(wǎng)絡(luò)淺層特征圖尺寸較大,保留了較多圖像原始位置信息,網(wǎng)絡(luò)深層特征圖尺寸較小,具有更抽象的特征語義信息,因此使用特征金字塔網(wǎng)絡(luò)[10]將相鄰特征圖進(jìn)行融合,得到同時具有豐富位置信息和抽象語義信息的融合特征圖。
特征融合的具體實現(xiàn)直接采用了文獻(xiàn)[7]所述方法。選取C3、C4、C5作為基礎(chǔ)特征圖,步長分別為8、16、32。首先對C5施加卷積核尺寸為3、步長S為1、Padding為1的卷積運(yùn)算,即可得到同尺寸大小的P5。以P5為輸入,進(jìn)行一次卷積核尺寸為3,步長S為2的卷積運(yùn)算,即可得到P6,P7由P6反復(fù)此計算過程并施加ReLU作為激活函數(shù)得到,二者步長分別為64和128。將P3和P4統(tǒng)一記作Pi,具體地,首先對Pi+1進(jìn)行上采樣運(yùn)算,令其尺寸等于Ci,并且將二者疊加,最后通過卷積運(yùn)算進(jìn)一步融合特征。數(shù)學(xué)公式如下所示:
Pi=Conv(Ci⊕Upsample(Pi+1))
(1)
式中:Conv(·)表示卷積核大小為3×3的卷積運(yùn)算;Upsample(·)表示上采樣運(yùn)算。至此即可得到融合特征圖P3、P4、P5、P6、P7,尺寸分別為輸入圖像的1/8、1/16、1/32、1/64、1/128,并且通道數(shù)統(tǒng)一設(shè)置為256。這些具有豐富語義信息的融合特征圖將被用作檢測模塊的輸入,用于檢測候選文字區(qū)域。
場景文字圖片中的像素可以被分為兩類。處于文字區(qū)域中的像素被視作文字像素,其余為背景像素。像素分類分支用于對輸入圖片中的像素點(diǎn)進(jìn)行二分類,以文字像素為正例,背景像素為反例。
因為本文所設(shè)計的檢測模塊在多個不同層次的特征圖之間被共享,而且每個特征圖具有不同的尺寸大小,相對于原始輸入圖片的步長不同,所以需要將不同特征圖上的每一個位置映射回原始輸入圖片。具體地,融合特征圖可以被統(tǒng)一地表示為Pi∈RHi×Wi×C,另外記Hi和Wi分別為其長和寬,C為通道數(shù)量,此處設(shè)置為256,并記其步長為Si。對于Pi上的任意給定位置(x,y),其所對應(yīng)的原始輸入像素點(diǎn)坐標(biāo)為(x′,y′),二者之間的映射方式如下:
(2)
針對場景文字圖片中不同類別像素比例極為不均衡的問題,采用Focal Loss[7]作為分類損失函數(shù),具體計算公式如下所示:
(3)
為了定位文字像素所在的文字區(qū)域,使用距離回歸分支預(yù)測像素點(diǎn)與其所在文字區(qū)域邊界的距離,角度回歸分支預(yù)測該文字區(qū)域的傾斜角度。此處采用RBOX標(biāo)簽生成方法[4],如圖3所示。對于任意文字區(qū)域,計算其最小外接矩形框區(qū)域。對于文字區(qū)域內(nèi)的任意像素,其同樣位于對應(yīng)矩形框區(qū)域內(nèi)。計算文字區(qū)域內(nèi)每個像素點(diǎn)到矩形框上下左右四邊界的距離,記作(t,r,b,l),作為距離回歸分支的學(xué)習(xí)目標(biāo)。通過三角函數(shù)計算,可以得到矩形框的旋轉(zhuǎn)角度θ,作為角度回歸分支的學(xué)習(xí)目標(biāo)。場景文字圖片中的文字區(qū)域可能會有重疊,對于處在重疊區(qū)域的像素點(diǎn),設(shè)定其回歸目標(biāo)為具有相對較小尺寸的文字區(qū)域。
圖3 RBOX標(biāo)簽生成方法
距離回歸分支采用IoU Loss作為損失函數(shù),具體形式如下:
(4)
(5)
Lreg=Ldist+λθLθ
(6)
式中:λθ用于控制二者比例,實驗將其設(shè)置為10。
場景文字具有較大的長寬比,對于任意給定的文字區(qū)域,其中心位置的像素點(diǎn)感受野分布相比其他位置更為均勻,邊界距離回歸目標(biāo)更為平衡。受FCOS[11]啟發(fā),本文提出中心度預(yù)測分支,用于度量像素點(diǎn)相對其所在文字區(qū)域中心位置的偏離程度,其標(biāo)簽生成公式如下:
(7)
式中:t、b、l、r分別為像素點(diǎn)距上下左右四邊界的距離。式(7)可知,越靠近文字區(qū)域中心的像素點(diǎn),由于其到上、下邊界的距離相近,到左、右邊界的距離相近,則對應(yīng)的中心度得分越高,反之則越低。中心度回歸分支使用Binary Cross Entropy作為損失函數(shù),其具體形式如下:
(8)
(9)
模型采用多任務(wù)學(xué)習(xí)策略進(jìn)行訓(xùn)練,整體優(yōu)化目標(biāo)函數(shù)計算公式如下:
L=Lfl+λ(Lreg+Lcent)
(10)
式中:λ是比例因子,用于控制二者在整體損失中的比重。在實驗過程中,λ設(shè)置為1。
針對場景文字區(qū)域大小不一、尺度變化較大的問題,提出按文字區(qū)域大小為依據(jù)的分層學(xué)習(xí)策略。神經(jīng)網(wǎng)絡(luò)模型淺層特征圖的感受野較小,有利于學(xué)習(xí)小目標(biāo)區(qū)域,深層特征圖具有更大的感受野,常被用于學(xué)習(xí)大目標(biāo)區(qū)域。具體地,記每個像素點(diǎn)對應(yīng)的最大邊界回歸目標(biāo)k=max(t,r,b,l),設(shè)融合特征圖Pi最大可接受回歸距離為mi,若有mi-1≤k 為了驗證本文方法的有效性,實驗分別在ICDAR-2013[12]、ICDAR-2015[13]和MSRA-TD500[14]數(shù)據(jù)集上進(jìn)行了性能驗證。 ICDAR-2013數(shù)據(jù)集由227幅訓(xùn)練圖片和233幅測試圖片構(gòu)成,其中文字區(qū)域多為水平方向,文字內(nèi)容以英文為主,圖片內(nèi)容清晰,常用于驗證模型的基本性能。ICDAR-2015數(shù)據(jù)集共包含1 500幅圖片,其中1 000幅用于訓(xùn)練,其余500幅構(gòu)成了測試集。該數(shù)據(jù)集由Google Glass拍攝,包含大量聚焦模糊的圖片,文字內(nèi)容包含中英雙語,其中的文字區(qū)域尺度變化大,具有明顯的方向性,可以用于驗證本文模型能夠處理多方向及不同大小文字區(qū)域的能力。MSRA-TD500數(shù)據(jù)集的訓(xùn)練集包含300幅圖片,測試集有200幅圖片。該數(shù)據(jù)集的主要特點(diǎn)是其以行作為標(biāo)注單位,包含中英雙語文字內(nèi)容,且文字區(qū)域長寬比大,適用于驗證本文所述模型處理大長寬比文字區(qū)域的能力。 本文模型在上文所述各數(shù)據(jù)集上測試效果如圖4所示??梢钥闯?,該模型在應(yīng)對各種尺度大小、任意方向的文字區(qū)域時,具有令人滿意的檢測效果。針對較為密集的文字區(qū)域,或存在重疊的文字區(qū)域時,也能夠正確進(jìn)行處理。 (a) ICDAR-2013文字檢測結(jié)果 (b) ICDAR-2015文字檢測結(jié)果 (c) MSRA-TD500文字檢測結(jié)果圖4 文字檢測效果圖展示 本文所述模型使用maskrcnn-benchmark[15]框架進(jìn)行開發(fā)工作,開發(fā)語言為Python,使用一塊Nvidia 1060 6 GB顯卡對模型進(jìn)行訓(xùn)練。在實驗過程中,因硬件條件限制,調(diào)整圖片尺寸大小令最大邊長不超過800,并將batch size設(shè)為4,以最大程度利用顯卡計算資源,并且對輸入圖片進(jìn)行隨機(jī)的翻轉(zhuǎn)、旋轉(zhuǎn)、拉伸等操作,以達(dá)到數(shù)據(jù)增廣的目的,將變換后的圖片用作模型輸入。訓(xùn)練過程中,使用隨機(jī)梯度下降算法(SGD)對模型進(jìn)行優(yōu)化,為了讓模型優(yōu)化過程能夠穩(wěn)定地進(jìn)行,將初始學(xué)習(xí)率設(shè)為0.001,weight decay設(shè)置為0.000 5。除此之外,以實驗結(jié)果指標(biāo)為依據(jù),調(diào)整融合特征圖Pi能夠接受的最大歸回距離mi,具體地,m2、m3、m4、m5、m6、m7分別設(shè)置為0、48、96、192、384和∞。 Zhan等[16]提出了一個人工合成數(shù)據(jù)集,該數(shù)據(jù)集由10 000幅添加有隨機(jī)文字區(qū)域的圖片構(gòu)成,該類數(shù)據(jù)集常被用于對模型進(jìn)行預(yù)訓(xùn)練,以加速模型收斂。在模型訓(xùn)練階段,首先使用該數(shù)據(jù)集訓(xùn)練模型100個周期。在此基礎(chǔ)上,使用上文中所述三個不同的數(shù)據(jù)集分別在其上進(jìn)行微調(diào),直到損失函數(shù)無明顯的變化時停止訓(xùn)練過程。 本文方法在上述三個數(shù)據(jù)集上取得的測試效果如表1、表2和表3所示,表內(nèi)*表示多尺度檢測。 表1 ICDAR-2013數(shù)據(jù)集結(jié)果對比 表2 ICDAR-2015數(shù)據(jù)集結(jié)果對比 表3 MSRA-TD500數(shù)據(jù)集結(jié)果對比 在ICDAR-2013數(shù)據(jù)集上,準(zhǔn)確率、回歸率、F1分?jǐn)?shù)分別取得了0.90、0.84、0.87,檢測結(jié)果性能與現(xiàn)有方法具有可比性,證明該方法具備處理基本自然場景文字區(qū)域的能力。 在ICDAR-2015數(shù)據(jù)集上不僅測試了模型的檢測效果,還測試了模型的運(yùn)算速度。實驗結(jié)果表明,該方法能夠在一秒內(nèi)處理大約13.6幅輸入圖片,說明了模型設(shè)計過程中所提出的一系列節(jié)省計算資源開銷的方法的有效性,能夠有效地提高模型整體運(yùn)算速度。準(zhǔn)確率、回歸率、F1分?jǐn)?shù)分別為0.867、0.807、0.836,表明該方法能夠處理環(huán)境復(fù)雜的文字區(qū)域。具體地,該方法計算資源使用小,運(yùn)行速度快,且具有優(yōu)秀的檢測效果,說明該方法具有更好的實用性,能夠滿足某些對運(yùn)行速度要求的應(yīng)用場景。 最后,在MSRA-TD500數(shù)據(jù)集上,該方法分別取得了0.837、0.764、0.790的準(zhǔn)確率、回歸率和F1分?jǐn)?shù),表明該方法具有處理具有顯著長寬比的文字區(qū)域的能力。 另外還在該數(shù)據(jù)集上驗證了本文所提中心度分支的有效性。在測試階段,去除式(9),直接使用分類分支預(yù)測的輸出作為預(yù)測文字區(qū)域的置信度。準(zhǔn)確率、回歸率和F1分?jǐn)?shù)分別為0.824、0.748、0.784,與啟用中心度分支的測試結(jié)果相比有微幅下降,表明本文所引入的中心度分支能夠提高模型檢測結(jié)果的質(zhì)量。 本文所提多尺度檢測方法,將EAST算法[4]作為基線參考模型。從上述三個實驗結(jié)果對比可知,本文所提方法在檢測效果上均取得了更好的評價指標(biāo)。 為了驗證Focal Loss的有效性,修改本文模型設(shè)計,采用EAST方法中的設(shè)置,使用OHEM方法平衡正負(fù)樣例個數(shù),正負(fù)比例設(shè)置為1 ∶3,并且使用Balanced Cross Entropy作為像素分類損失函數(shù),其具體形式如下: (11) 模型性能的提升從評價指標(biāo)和運(yùn)行速度兩方面進(jìn)行分析。通過采用分層學(xué)習(xí)策略,將不同文字區(qū)域劃分到具有不同語義的融合特征圖上進(jìn)行學(xué)習(xí),減緩了文字區(qū)域尺度大小顯著的問題;采用Focal Loss作為分類損失函數(shù),減緩了樣例類別不平衡對模型學(xué)習(xí)的影響程度,并且令模型在學(xué)習(xí)過程中更多地關(guān)注困難樣例;引入的中心度分支能夠?qū)蜻x文字區(qū)域置信度進(jìn)行二次調(diào)整,有效地抑制了邊緣檢測不完整的區(qū)域。因此實驗中本文模型具有很好的評價指標(biāo)性能。該方法設(shè)計的文字區(qū)域檢測模塊設(shè)計輕量,并且在多個融合特征圖之間共享使用,降低了計算資源使用的增加量;使用Focal Loss替代在線困難樣本挖掘方法,避免了中間處理過程,減少了內(nèi)存使用;模型在整體計算過程中無需錨框,不僅消除了錨框匹配過程,也消除了因錨框而產(chǎn)生的內(nèi)存消耗。模型整體結(jié)構(gòu)簡潔,后處理過程僅使用標(biāo)準(zhǔn)的非極大值抑制算法。因此,該方法相比于現(xiàn)有方法更快。 針對自然場景中文字區(qū)域尺度變化顯著的問題,提出了依據(jù)文字區(qū)域大小進(jìn)行學(xué)習(xí)分配的分層學(xué)習(xí)策略,針對文字區(qū)域長寬比較大的問題,提出了中心度分支,針對文字區(qū)域圖片中像素樣例類別嚴(yán)重不均衡問題,提出了使用Focal Loss作為分類損失函數(shù)。在多個數(shù)據(jù)集上對模型的有效性進(jìn)行了驗證,實驗結(jié)果表明,本文方法相比于先前方法有所提高,且本文方法整體過程簡潔,無中間處理過程,后處理過程簡單,整體計算資源開銷小,運(yùn)行速度更快,因此具有更好的可用性。本文方法改進(jìn)空間如下:(1) 針對小字體區(qū)域和復(fù)雜字體區(qū)域的檢測效果尚顯不足;(2) 分層學(xué)習(xí)策略采用了啟發(fā)式方法,該方法不一定將文字區(qū)域分配到最佳融合特征圖上,后續(xù)工作可依據(jù)上述兩點(diǎn)展開。3 實 驗
3.1 數(shù)據(jù)集
3.2 實驗細(xì)節(jié)
3.3 實驗結(jié)果展示
3.4 模型性能分析
4 結(jié) 語