馮智達,陳 黎
(1.武漢科技大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,武漢 430065;2.智能信息處理與實時工業(yè)系統(tǒng)湖北省重點實驗室(武漢科技大學(xué)),武漢 430065)
近年來,學(xué)者們在自然場景文字檢測方面做了大量的研究,與基于傳統(tǒng)的機器學(xué)習(xí)的方法[1-6]相比,基于深度學(xué)習(xí)的方法取得了更高的精度。這些方法根據(jù)預(yù)測類別可以分為基于目標(biāo)預(yù)測的方法和基于分割的方法。
基于目標(biāo)預(yù)測的方法一般是對Faster R-CNN(Region-Conventional Neural Network)[7]、SSD(Single Shot Detector)[8]或YOLO(You Only Look Once)[9]等目標(biāo)檢測算的改進,使之更符合場景文字檢測。如為了應(yīng)對多方向的問題,R2CNN(Rotational Region CNN)[10]對Faster R-CNN 進行改進,增加了傾斜框的坐標(biāo)回歸來針對多方向的文本檢測;而RRPN(Rotation Region Proposal Network)[11]則是通過設(shè)計多方向的錨框來檢測傾斜的文字。隨著YOLO 和SSD 等單階段目標(biāo)檢測算法的出現(xiàn),極大地提高了算法檢測速度。SSTD(Single Shot Text Detector)[12]通過在SSD 算法中加入文本注意力,顯著地提高了文字檢測的速度;基于SSD 的TextBoxes[13]和TextBoxes++[14]算法不需要二次回歸并且可以檢測任意方向的文本;同樣是參考SSD 算法的SegLink[15]網(wǎng)絡(luò)首先預(yù)測文本行的各部分,再通過深度優(yōu)先搜索將屬于同一文本行的各部分連接起來。
隨著圖像分割技術(shù)的發(fā)展,特別是全卷積網(wǎng)絡(luò)(Fully Convolutional Network,F(xiàn)CN)的提出,圖像分割領(lǐng)域出現(xiàn)了很多優(yōu)秀算法,其中代表算法有Mask R-CNN[16]和DeepLab[17-20]系列等。受這些算法啟發(fā),文本檢測領(lǐng)域出現(xiàn)了很多基于分割的方法,基于分割的方法可以處理各種形狀的文本,并有效解決了邊界不準(zhǔn)問題。基于實例分割的PixelLink 算法[21]從實例分割結(jié)果中獲取文本位置信息,該網(wǎng)絡(luò)通過預(yù)測每個像素隸屬于文本/非文本類別和每個像素的8 個方向的近鄰是否連接2 個任務(wù)來表示文本實例。然而基于分割的方法一般產(chǎn)出為像素級的預(yù)測,難以區(qū)分文本級的實例。PSENet(Progressive Scale Expansion Network)[22]、DB(Differentiable Binarization)[23]等方法通過預(yù)測一個收縮的文本預(yù)選框來處理這一任務(wù)。PSENet 在不同收縮尺度的語義分割圖上,自下而上逐級擴張,融合得到文本級實例;但這一過程需要較長的推理時間。針對這一問題,DB 采用單一的收縮尺度,并用一個邊界預(yù)測圖來控制預(yù)測文本邊界。
在現(xiàn)實應(yīng)用場景中,除常規(guī)文字檢測情形外,還存在著文字混疊的情況。文字混疊是指文本行與行融合在一起難以區(qū)分的情況。在出現(xiàn)文字混疊的情形下,采用經(jīng)典的基于分割方法無法區(qū)分開互相混疊的文本實例(圖1)。
圖1 本文方法與經(jīng)典的基于分割的方法的比較Fig.1 Comparison of the proposed method and classical segmentation-based methods
本文首先分析了文字混疊情形,將文字混疊分為3 種,并提出了具體的指標(biāo);然后聚焦于高混疊度文字(主要是監(jiān)控場景下的文字),提出了一個文本實例建模模塊,對圖像水平方向進行實例建模;最后預(yù)測出文本實例分割圖,并對二值語義分割圖、水平實例表示、文本實例分割圖進行聯(lián)合訓(xùn)練,在高文字混疊情況下取得了很好的效果。
本文的主要工作有:1)首次系統(tǒng)性地分析了文字混疊情況,并提出了科學(xué)的指標(biāo);2)使用單向投影Transformer(Single Direction Projected Transformer,SDPT)建模文本全局特征,對文本進行實例分割;并在本文使用的混疊地點信息數(shù)據(jù)集上,取得了比現(xiàn)有其他方法更好的性能。
文字檢測旨在定位文本實例位置。文本中的文本實例指水平方向連續(xù)的多個字符,在下文中:文本行、文本、文字、文本實例都是相同含義。
圖2(a)為外混疊(Inter-Aliasing),指行與行有一定間隔,文本實例較容易判別;圖2(c)為內(nèi)混疊(Intra-Aliasing),內(nèi)混疊指行與行有重疊部分,很難分辨文本邊界框位置;圖2(b)為臨界混疊(Critical-Aliasing),為介于外混疊與內(nèi)混疊之間的混疊狀態(tài)。
圖2 文字混疊的3種情形Fig.2 Three situations of text aliasing
本文提出混疊度(Aliasing Level)來表示文字與文字混疊的程度,文本行ti和tj的混疊度可表示為:
其中:S表示文本行之間的縱向距離,D表示文本行字體高度的算術(shù)平均值,即:
其中:yi,yj為文本中心點的縱坐標(biāo);hi和hj為文本的字體高度?;殳B度計算示例圖見圖3。
圖3 混疊度計算示例Fig.3 Example of aliasing level calculation
基于所提出的混疊度,文字混疊度可分為3 種情形,這3種情形對應(yīng)文本行的外混疊(α<0)、臨界混疊(α=0)和內(nèi)混疊(α>0)。
本文方法的整體流程如圖4。
圖4 本文方法整體流程Fig.4 Overview flow of the proposed method
本文在基于分割方法的基礎(chǔ)上,受到具有全局感知的自注意力機制的啟發(fā),在分割模型中加入Transformer 編碼器[24]對圖像水平方向編碼,最終直接預(yù)測出文本的實例分割圖,有效解決了混疊文字的檢測問題。
文字存在字體大小不同的情況,即存在尺度多樣性的問題。為了解決這一問題,需要提取圖像中不同尺度的特征,因此使用特征金字塔網(wǎng)絡(luò)(Feature Pyramid Network,F(xiàn)PN)[25]來融合多尺度的特征。
本文方法的主干網(wǎng)絡(luò)使用深度殘差網(wǎng)絡(luò)(Residual Network,ResNet)[26]。網(wǎng)絡(luò)中不同深度的特征圖包含著不同級別的語義信息和比例特征信息:低層特征分辨率更高,包含更多位置、細節(jié)信息,但是由于經(jīng)過的卷積更少,其語義性更低;高層特征具有更強的語義信息,但是分辨率很低,對細節(jié)的感知能力較差。因此,融合高、低層的特征圖是很有必要的。
如圖5 所示,分別取出ResNet 中Stage1~Stage4 的特征圖,其分辨率分別為輸入圖像的1/4~1/16。然后使用Proj 模塊將不同分辨率、不同通道數(shù)的特征圖轉(zhuǎn)換到相同的分辨率和通道數(shù),Proj 模塊操作為:首先使用最近鄰差值將輸入特征圖上采樣到輸入圖像的1/4;然后使用1×1 卷積將通道投影到k維。隨后,將4 張?zhí)卣鲌D沿通道方向拼接,并使用1×1卷積將通道數(shù)由4k投影到k,得到輸出特征圖。這樣,輸出的特征圖就融合了多尺度的特征。
圖5 多尺度特征融合Fig.5 Multi-scale feature fusion
為減少非文本區(qū)域?qū)ξ谋緦嵗5挠绊懀疚脑O(shè)計了二值化掩碼模塊,即將深度特征圖與文本概率圖相乘,抑制了非文本即背景區(qū)域的特征。
文本概率圖由二值頭產(chǎn)生,二值頭由一層1×1 卷積和Sigmoid 激活函數(shù)構(gòu)成。將深度特征圖轉(zhuǎn)化為文本概率圖,每個像素點表示當(dāng)前位置有文本的概率,進行二值掩碼(Binary Masking,BM):
其中:F 為深度特征圖,?為哈達馬積,P為文本概率圖。
在本文的文字實例分割中,每個文本實例需要獲取其余所有文本實例的表示,并據(jù)此預(yù)測出本身隸屬的文本實例序號,因此需要獲取全局特征。Transformer 使用自注意力機制,使得每個位置與其他所有位置交互,從而獲得其余所有位置的信息,即具有全局的感受野。
Transformer 的計算時間復(fù)雜度與輸入序列長度呈平方關(guān)系,直接將特征圖送入Transformer 將會帶來巨額計算開銷。根據(jù)分析,文本數(shù)據(jù)多具有單方向的性質(zhì)(在本文所用的數(shù)據(jù)集中,文本都為橫向),因此本文設(shè)計了單向投影Transformer(SDPT)。首先使用投影操作將二維特征圖投影為一維特征序列,再送入Transformer 來降低時間復(fù)雜度。上述投影操作如下:
其中:為融合了多尺度的特征圖,W和H為特征圖的寬和高。然后輸入到Transformer Encoder 模塊中,結(jié)構(gòu)見圖6。Transformer Encoder 模塊為N層Transformer Encoder Layer 的疊加。
圖6 Transformer編碼器Fig.6 Transformer Encoder
每一層SDPT 模塊的操作可以解釋為:輸出的第i行的向量表示根據(jù)與其他行的相似度大小,并根據(jù)相似度獲得了其他行的表示,由于屬于同一文本實例的相似度高,所以經(jīng)過這一操作后屬于同一文本實例的特征表示會更加接近。
得到水平文本實例表示后,將其與特征圖相加,得到實例特征圖:
通過上述過程,在特征圖中同時包含文本的前景背景信息和文本實例信息。然后將其輸入到分割頭中,此模塊包含兩組上采樣層和一層分類層,上采樣到跟輸入圖片相同的分辨率,并根據(jù)所包含的文本信息及實例信息對文本實例形狀進行微調(diào),輸出最后的文本實例分割圖。
在網(wǎng)絡(luò)的訓(xùn)練優(yōu)化設(shè)計中,本文選擇對水平文本實例表示C、文本概率圖B和實例分割圖P進行聯(lián)合優(yōu)化。模型優(yōu)化的損失為:
其中:λC和LC為水平實例表示C的權(quán)重和損失,λB和LB為文本概率圖的損失及其權(quán)重,λP和LP為文本實例圖的損失及其權(quán)重。
在LC的計算上,本文使用二值交叉熵作為損失函數(shù),即:
其中:N為文本實例的個數(shù),p為模型預(yù)測,g為標(biāo)簽。
對于LB和LP,本文都使用Dice Loss。
其中:p表示網(wǎng)絡(luò)模型的預(yù)測,g表示標(biāo)簽。
本文的實驗數(shù)據(jù)為安防監(jiān)控場景圖像,安防監(jiān)控場景下的地點信息文字常出現(xiàn)文字間距過小和文字融入背景等情況,屬于典型的文字混疊場景。因保密需要,本文只給出真實數(shù)據(jù)集的實驗結(jié)果;另外,實驗中還使用了人工合成的仿真數(shù)據(jù)集,用于可視化和結(jié)果展示。在本文實驗中,分別使用仿真數(shù)據(jù)集BDD-SynText和真實數(shù)據(jù)集RealText組織實驗。
BDD-SynText為仿真數(shù)據(jù)集,制作過程是將自動駕駛數(shù)據(jù)集BDD-100K[27]作為背景,根據(jù)不同的混疊混印上字。在本文實驗中,使用不同的混疊度(-0.1~+0.5)生成了7 個數(shù)據(jù)集,每個數(shù)據(jù)集有3 000張訓(xùn)練圖片和1 000張測試圖片。圖7展示了BDD-SynText 數(shù)據(jù)集的圖片示例,從左至右混疊度遞增。
圖7 BDD-SynText圖片示例Fig.7 Image examples of BDD-SynText
RealText 為來自真實監(jiān)控攝像頭截取的監(jiān)控畫面圖像,采集地點為湖北、江蘇、江西、湖南等地,圖像中的地點信息存在大量文字與文字混疊情況。標(biāo)簽為人工標(biāo)注,共有6 000 張圖片作為訓(xùn)練集,2 070 張圖片作為測試集。因保密需要,實驗中將不會給出具體圖像。
在本文的所有實驗中,選擇ResNet 作為骨干網(wǎng)絡(luò)。在SDPT 模塊中,hidden size 設(shè)置為512,前饋網(wǎng)絡(luò)維度為2 048,head 數(shù)為8,網(wǎng)絡(luò)層數(shù)為6。訓(xùn)練的超參數(shù)如下:epoch 為15,batch size 為4。并且在本文實驗中使用了梯度累計,每訓(xùn)練4 個mini batch 更新一次參數(shù),模型訓(xùn)練的初始學(xué)習(xí)率為0.000 1,然后線性衰減至0。輸入圖像分辨率為長邊512,短邊保持比例放縮。
實驗使用的數(shù)據(jù)增強包括4 種:1)隨機翻轉(zhuǎn):輸入圖片以25%的概率進行水平或垂直翻轉(zhuǎn);2)隨機縮放:輸入圖片的長寬乘以縮放系數(shù);3)圖像模糊:25%的概率對圖像使用高斯模糊;4)增加噪聲:25%的概率給圖片增加高斯噪聲。
在模型評價部分,使用P(Precision),R(Recall)和F(F1-Score)作為評價指標(biāo)。不同于其他的場景文字檢測只使用IoU(Intersection over Union)閾值為50(記為IoU50),為驗證模型在混疊文字檢測上的準(zhǔn)確率,本文實驗將同時使用IoU50 和IoU75 作為正例評判標(biāo)準(zhǔn)。
為驗證本文方法的有效性,將其與較新方法在BBDSynText 數(shù)據(jù)集上做定量比較,對比方法為PSENet、PAN(Pixel Aggregation Network)[28]和DB。所有方法的訓(xùn)練超參數(shù)和數(shù)據(jù)增強參數(shù)都與本文方法相同。
在仿真數(shù)據(jù)集BDD-SynText上的實驗結(jié)果見表1、2。從表1、2 中可以看出,本文方法在Precision、Recall 和F1-Score 上均取得了最高分?jǐn)?shù)。在IoU75時,使用ResNet18時,比第2的方法PAN分別高出14.06、16.61和15.73個百分點;在骨干網(wǎng)絡(luò)使用ResNet50 情況下,比第2 的方法PSENet 分別高出了14.68、25.77和21.36個百分點,混疊文字檢測準(zhǔn)確率提升巨大。
表1 在BBD-SynText數(shù)據(jù)集上IoU50基準(zhǔn)的比較結(jié)果 單位:%Tab.1 Comparison results of IoU50 benchmark on BDD-SynText dataset unit:%
表3、4 為RealText 數(shù)據(jù)集上的實驗結(jié)果,在不同骨干網(wǎng)絡(luò)和不同的IoU 評價指標(biāo)下,本文方法都取得了最優(yōu)的結(jié)果。在IoU50 下,F(xiàn)1-Score 比第2 的方法PSENet 提高了3.14個百分點(ResNet18)和2.14 個百分點(ResNet50);在IoU75下,比第2 的方法PSENet 高了16.76 個百分點(ResNet18)和18.11 個百分點(ResNet50)。
表2 在BBD-SynText數(shù)據(jù)集上IoU75基準(zhǔn)的比較結(jié)果 單位:%Tab.2 Comparison results of IoU75 benchmark on BDD-SynText dataset unit:%
表3 在RealText數(shù)據(jù)集上IoU50基準(zhǔn)的比較結(jié)果 單位:%Tab.3 Comparison results of IoU50 benchmark on RealText dataset unit:%
表4 在RealText數(shù)據(jù)集上IoU75基準(zhǔn)的比較結(jié)果 單位:%Tab.4 Comparison results of IoU75 benchmark on RealText dataset unit:%
圖8 展示了各方法在混疊文本上的可視化結(jié)果。從第一行至最后一行混疊度遞增,可以看到隨著混疊度的提高,其他方法會把多個文本實例判斷為一個文本實例,導(dǎo)致準(zhǔn)確率下降;而本文方法隨著混疊度的提高仍保持著較高的準(zhǔn)確率。
圖8 不同方法的可視化結(jié)果Fig.8 Visualization results of different methods
圖9 展示了各方法在不同混疊度下的F1-Score 結(jié)果。在混疊度不大于0 的情況下,PSENet、PAN 等方法取得了不錯的效果,基本與本文方法持平;但隨著混疊度的提高,本文方法逐漸取得了最好的效果。這表明了本文方法在高混疊度文本檢測上的有效性。
圖9 不同混疊度下各方法的F1-ScoreFig.9 F1-Score of each method under different aliasing levels
在本節(jié)的消融實驗中,將分別驗證二值掩碼(BM)、SDPT 以及多目標(biāo)訓(xùn)練(Multi-Target Training,MTT)的有效性。消融實驗結(jié)果見表5。
表5 消融實驗結(jié)果Tab.5 Results of ablation experiment
在實驗1 和2、實驗7 和8 的對比中,加入二值掩碼,使F1-Score 分別提升了3.13 個百分點和0.93 個百分點,原因是對特征圖進行二值掩碼后,抑制了特征圖中的無文本區(qū)域,更有利于對有文本區(qū)域進行實例建模。
在實驗1 和3、實驗6 和8 的對比中可以看出,加入SDPT模塊后,F(xiàn)1-Score 分別提高了2.76 個百分點和2.30 個百分點,充分證明了SDPT 模塊在本文模型中的重要性。
在實驗1 和4、實驗5 和8 的對比中可以發(fā)現(xiàn),多目標(biāo)聯(lián)合優(yōu)化將F1-Score 分別提高了3.18 和2.85 個百分點,這說明了在模型訓(xùn)練中,對模型中間層的輸出設(shè)計多個損失函數(shù)聯(lián)合優(yōu)化,會帶來一定的收益。
本文聚焦混疊文字場景下的文本檢測,提出了一種快速的混疊文本檢測的方法,提出的SDPT 模型能夠快速對水平文本行實例建模,在很小的計算代價下準(zhǔn)確檢測出混疊文本實例。在BDD-SynText 和RealText 兩個混疊文本檢測數(shù)據(jù)集上對方法進行評估,實驗結(jié)果表明在混疊文本場景下所提出的方法優(yōu)于幾種對比文字檢測算法。另外,消融實驗也驗證了所提模塊的重要性。
接下來會尋求更加靈活的投影方法,投影任意方向的文本,進一步擴大模型的應(yīng)用范圍;另外,進一步探索如何將基于目標(biāo)檢測的文本檢測方法與本文方法結(jié)合起來,簡化后處理過程。