張高明
(上海電力大學(xué)電子與信息工程學(xué)院,上海 201306)
近年來(lái),圖像文字檢測(cè)在自動(dòng)駕駛、圖像分割[2]、商品識(shí)別等領(lǐng)域被廣泛應(yīng)用,伴隨著大數(shù)據(jù)的支持及深度學(xué)習(xí)的發(fā)展,自然場(chǎng)景文字檢測(cè)引起了計(jì)算機(jī)視覺界的廣泛關(guān)注。文字檢測(cè)的任務(wù)是定位圖像中的文字區(qū)域,印刷文檔中的文字往往排列整齊、背景簡(jiǎn)單,文字與非文字區(qū)域存在明顯差異。由于現(xiàn)實(shí)場(chǎng)景中圖像中的文本大多排列樣式多樣,且具有形狀不規(guī)則、背景干擾較大等特點(diǎn),均使得在該場(chǎng)景中進(jìn)行文字檢測(cè)面臨著巨大的挑戰(zhàn)。
隨著深度學(xué)習(xí)技術(shù)的興起和不斷發(fā)展,神經(jīng)網(wǎng)絡(luò)也開始應(yīng)用于自然場(chǎng)景文字檢測(cè)之中。若設(shè)計(jì)多個(gè)相關(guān)性較強(qiáng)的任務(wù)進(jìn)行多任務(wù)學(xué)習(xí)[3],如TextSnake[4]、PSENet[5]等,在主任務(wù)確定的條件下,在網(wǎng)絡(luò)結(jié)構(gòu)中額外增加與主任務(wù)相關(guān)性較高的輔助任務(wù),可顯著提高模型效果。
為此,本文提出在自然場(chǎng)景文字檢測(cè)網(wǎng)絡(luò)中增加質(zhì)心預(yù)測(cè)分支,與網(wǎng)絡(luò)中文本分類分支結(jié)合,通過(guò)增大靠近文字實(shí)例中心處的分類概率值,減小遠(yuǎn)離中心處的分類概率值,提升模型性能。
經(jīng)實(shí)驗(yàn)發(fā)現(xiàn),即使用anchor free 方法可對(duì)多個(gè)不同尺寸特征圖進(jìn)行預(yù)測(cè),但效果仍不如anchor based方法,主要原因是神經(jīng)網(wǎng)絡(luò)的分類任務(wù)只考慮當(dāng)前位置屬于文字的概率,許多遠(yuǎn)離目標(biāo)質(zhì)心位置處的文字分類概率較高,而受限于感受野的影響,距離文字中心較遠(yuǎn)位置處得到的回歸結(jié)果往往準(zhǔn)確度較低。因此若簡(jiǎn)單將分類結(jié)果高于閾值區(qū)域?qū)?yīng)的回歸結(jié)果保留,將可能導(dǎo)致在后續(xù)非極大值抑制過(guò)程中保留錯(cuò)誤回歸結(jié)果,丟棄正確回歸結(jié)果,對(duì)模型準(zhǔn)確率造成極大影響,如CTPN[6]、RRPN[7]等,因此,借鑒FCOS[8]的想法,本文在分類網(wǎng)絡(luò)中增設(shè)文字質(zhì)心預(yù)測(cè),判斷每個(gè)像素點(diǎn)屬于文字區(qū)域質(zhì)心的概率。像素點(diǎn)越靠近文字區(qū)域的質(zhì)心,則對(duì)應(yīng)位置處的值越接近1,相反則越接近0。
與FCOS 通過(guò)邊框內(nèi)每個(gè)位置與其對(duì)應(yīng)xmin、xmax、ymin、ymax關(guān)系得到質(zhì)心預(yù)測(cè)目標(biāo)值不同,考慮到自然場(chǎng)景文字檢測(cè)任務(wù)的對(duì)象往往具有多種形式(水平、傾斜、彎曲),直接使用矩形邊框?qū)χ行牡挠?jì)算方法不能保證中心點(diǎn)始終在文字實(shí)例中心。為此,本文根據(jù)自然場(chǎng)景中的文字形式設(shè)置了新的質(zhì)心預(yù)測(cè)目標(biāo)值計(jì)算方法,如圖1 所示。
給定文字區(qū)域內(nèi)某像素坐標(biāo)(xi,yi),分別計(jì)算其與該文字實(shí)例x軸最值(xmin,yi)、(xmax,yi)的距 離li、ri,和垂 直 方向 與上 下邊 界(xi,) 、(xi,) 距離ti、bi,即可計(jì)算該位置質(zhì)心得分wi,wi的計(jì)算方式如下:
wi的取值范圍為0~1,與文本分類相似,表示每個(gè)像素點(diǎn)位于質(zhì)心的概率。在測(cè)試階段將分類與質(zhì)心結(jié)果逐像素相乘,得到最終分類結(jié)果。
模型輸出包含分類與回歸2 個(gè)部分。其中分類任務(wù)部分同時(shí)得到文本、非文本分類和質(zhì)心、非質(zhì)心分類2 個(gè)結(jié)果,考慮到樣本中正例遠(yuǎn)小于負(fù)例,為應(yīng)對(duì)類別不均衡的分類問(wèn)題,2 個(gè)分類任務(wù)均采用Focal Loss[9]作為損失函數(shù),定義如下:
回歸任務(wù)部分采用ⅠOU 損失作為損失函數(shù),如圖2 所示,ⅠOU 損失定義如下:
圖2 ⅠOU 損失計(jì)算示意圖
式(1)中:Gi為實(shí)際文本位置;Pi為預(yù)測(cè)的文本位置。
因此,模型總的損失函數(shù)為L(zhǎng)=Lcls1+Lcls2+Lreg。
本文采用自然場(chǎng)景文字檢測(cè)問(wèn)題中常用指標(biāo)(精確率、召回率、F-score)對(duì)方法的有效性進(jìn)行評(píng)估。
精確率表示預(yù)測(cè)為文字的區(qū)域內(nèi)實(shí)際為文字區(qū)域的比例,召回率表示實(shí)際為文字的區(qū)域同時(shí)也被預(yù)測(cè)為文字區(qū)域的比例,公式如下:
式(2)(3)中:Gi為實(shí)際為文字的區(qū)域;Di為預(yù)測(cè)為文字的區(qū)域。
根據(jù)精確率與召回率反映檢測(cè)模型的綜合性能,F(xiàn)-score 的定義如下:
為驗(yàn)證本文提出的質(zhì)心預(yù)測(cè)分支網(wǎng)絡(luò)有效性,分別訓(xùn)練無(wú)質(zhì)心預(yù)測(cè)分支和包含質(zhì)心預(yù)測(cè)分支的網(wǎng)絡(luò),進(jìn)行消融實(shí)驗(yàn)。使用SynthText 對(duì)網(wǎng)絡(luò)進(jìn)行預(yù)訓(xùn)練,然后在TotalText 數(shù)據(jù)集中進(jìn)行相同輪數(shù)的微調(diào)和推理,比較不同網(wǎng)絡(luò)效果。實(shí)驗(yàn)使用的編程環(huán)境為Python3.6.4 和Pytorch 1.1.0,在Ubuntu16.04 操作系統(tǒng)中利用一張顯存為12 GB 的GTX TⅠTAN X 顯卡進(jìn)行模型訓(xùn)練和測(cè)試,CUDA 版本為11.0。
通過(guò)隨機(jī)旋轉(zhuǎn)(旋轉(zhuǎn)范圍為[-5°,+5°])、抖動(dòng)(對(duì)圖像加入輕微噪聲)、翻轉(zhuǎn)(50%概率對(duì)圖像左右翻轉(zhuǎn))對(duì)圖像進(jìn)行數(shù)據(jù)增強(qiáng),并將圖像分辨率修改為512×512。將常用的ResNet50-FPN 作為基礎(chǔ)網(wǎng)絡(luò),設(shè)置batch 數(shù)量為12,每個(gè)文字實(shí)例的長(zhǎng)邊使用K=10個(gè)插值進(jìn)行表示,并采用帶動(dòng)量的隨機(jī)梯度下降為優(yōu)化器,動(dòng)量為0.9。首先設(shè)置學(xué)習(xí)率為0.000 1,使用人工合成數(shù)據(jù)集SynthText 對(duì)網(wǎng)絡(luò)進(jìn)行80 萬(wàn)次預(yù)訓(xùn)練,再將學(xué)習(xí)率修改為0.001,分別在TotalText 數(shù)據(jù)集中進(jìn)行微調(diào)和測(cè)試[10]。測(cè)試結(jié)果如表1 所示。
表1 TotalText 數(shù)據(jù)集結(jié)果對(duì)比
本文方法在TotalText 數(shù)據(jù)集上進(jìn)行測(cè)試,在其他條件保持一致的情況下,比較神經(jīng)網(wǎng)絡(luò)包含和不包含質(zhì)心預(yù)測(cè)分支時(shí)的效果情況。由表1 可知,網(wǎng)絡(luò)模型中增添質(zhì)心預(yù)測(cè)分支后,模型效果得到了顯著提升,其中精確率的提升尤其明顯。
本文提出一種質(zhì)心檢測(cè)網(wǎng)絡(luò)分支,用于在自然場(chǎng)景文字檢測(cè)場(chǎng)景中提升模型效果。在FCOS 的質(zhì)心計(jì)算基礎(chǔ)上,修改質(zhì)心的計(jì)算方法,使其更適用于自然場(chǎng)景文字檢測(cè)問(wèn)題,提高了模型的準(zhǔn)確度。經(jīng)過(guò)數(shù)據(jù)對(duì)比,本文提出的方法在TotalText 等包含任意形狀文字實(shí)例的數(shù)據(jù)集中均取得了較好的實(shí)驗(yàn)效果,驗(yàn)證了方法的可行性和有效性。