馮宇靜,賈世杰
(大連交通大學 電氣信息工程學院,遼寧 大連 116028)
文本檢測是指用邊界框把文本從圖像中檢測出來。隨著互聯(lián)網(wǎng)產(chǎn)品需求量的不斷增加,越來越多的應用涉及圖像中的文本信息,如智能交通系統(tǒng)[1]、圖像檢索[2]等。文本檢測是實現(xiàn)圖像文本識別的基礎(chǔ),直接影響文本識別的性能。文本檢測可分為文檔文本檢測和自然場景文本檢測。文檔文本檢測主要針對文本圖像,因其背景單一,文本大小比較一致,角度變化較少,使用傳統(tǒng)的OCR檢測技術(shù)可實現(xiàn)良好的檢測效果。自然場景文本是指拍攝照片中包含的文本。自然場景文本檢測面臨背景干擾、文本角度變化多樣、字體大小不同等多方面挑戰(zhàn)。
20世紀90年代中期開始出現(xiàn)自然場景文本檢測方面的研究[3-5]。傳統(tǒng)方法的自然場景文本檢測是指基于規(guī)則的特征提取方法,代表性的方法有 Epshtein等[6]提出的筆畫寬度變換(stroke width transform,SWT)算法和Neumann等[7]提出的最大穩(wěn)定極值區(qū)域(maximally stable extremal regions,MSER)算法。SWT和MSER主要依賴于文本連通區(qū)域的檢測結(jié)果,但要在復雜的自然場景圖像中精準地檢測出文本連通區(qū)域,存在很大難度。在光照多變、背景復雜、背景模糊等情況下容易造成相鄰文本粘連、過分割、欠分割現(xiàn)象,影響文本檢測性能。
與傳統(tǒng)方法不同,基于深度學習的自然場景文本檢測方法是通過訓練深度網(wǎng)絡自動提取圖像特征。近年來,這類方法在檢測性能上取得了顯著的提升?;谏疃葘W習的自然場景文本檢測方法可分為兩類:基于區(qū)域建議的文本檢測方法[8-9]和基于圖像分割的文本檢測方法[10-12]。基于區(qū)域建議的文本檢測方法主要通過算法提取候選區(qū)域,然后對該候選區(qū)域進行分類(是/不是文本)以及回歸。該類方法采取整體思想避免了各階段誤差積累,計算速度快,但需要同時預測置信度和文本定位,存在著定位不準確和模型利用率不高的問題?;趫D像分割的文本檢測方法利用語義分割中的全卷積等方式對每個像素進行預測。該方法本身包含分類信息、位置信息以及幾何信息,對多方向性文本有好的檢測效果,經(jīng)過多階段的級聯(lián)或者多信息融合,分割效果性能良好,但是仍存在著2種缺點:①通常需要后續(xù)處理步驟,以解決將噪聲誤預測為文本等問題,需要時間較長;②模型普遍缺少特征級的精細化,導致原本設計良好的模型不能被充分利用,限制了整體性能。
綜上所述,基于深度學習的自然場景文本檢測方法普遍存在模型利用率不足的問題,為此本文在基于圖像分割的文本檢測方法(Pixellink[11])基礎(chǔ)上,結(jié)合特征融合和特征金字塔注意力模塊[13]提取更精細化的特征表示,以進一步提升自然場景文本檢測性能。對于深度網(wǎng)絡來說,較深層包含更多的語義信息,但是分辨率低,對細節(jié)感知能力不強,而淺層包含更多的細節(jié)信息,但是語義信息較弱。特征融合的目的是讓各層級的特征信息相結(jié)合,從而增加了特征映射層的信息量。采用特征金字塔注意力模塊的原因:①注意力網(wǎng)絡可以增大感受野的同時不提高計算力;②自然場景中的文本具有多尺度性,空間金字塔結(jié)構(gòu)可利用不同的網(wǎng)格尺度或不同的擴張率融合多尺度的特征信息。
本文算法的網(wǎng)絡結(jié)構(gòu)圖見圖1。
PixelLink提取特征網(wǎng)絡的基礎(chǔ)框架是VGG16[14]網(wǎng)絡,采用Unet結(jié)構(gòu)。Unet由自上而下路徑、自下而上路徑以及橫向連接構(gòu)成。
自上而下路徑采用VGG16網(wǎng)絡,它是由多個3*3卷積串聯(lián)和最大池化構(gòu)成的深層次網(wǎng)絡。使用多個卷積串聯(lián)的優(yōu)點:比只使用一個較大的卷積核,需要的參數(shù)量更少以及具有更多的非線性變化。
自下而上路徑,通過上采樣技術(shù)使特征圖大小保持一致。上采樣用雙線性插值法。雙線性插值法的公式為
(1)
(1)式中:Q11為(x1,y1),Q21為(x2,y1),Q12為(x1,y2),Q22為(x2,y2)是(x,y)相鄰的4點;f()是指該點的像素值。
采用橫向連接的目的是防止VGG16輸出的特征映射直接進行上采樣,從而丟失上下文信息。它將自上而下路徑與自下而上路徑空間大小相同的特征圖進行相加,從而補全丟失的信息,使其特征表示能力更強。
圖1 本文算法的網(wǎng)絡結(jié)構(gòu)Fig.1 Illustration of our overall pipeline
特征融合是指把基本提取特征網(wǎng)絡(PixelLink算法)得到的3個特征映射層(h1,h2,h3)分別上采樣至h4的大??;然后對4個特征映射層(h1,h2,h3,h4)經(jīng)過加權(quán)后進行疊加。特征融合的公式為
(2)
(2)式中:d為h4的權(quán)重值;Up×2(·),Up×4(·)分別表示擴大2倍,4倍。
在預測是/不是文本分類時,輸出通道數(shù)是2個;在預測是/不是同一個實例文本時,輸出通道數(shù)是16個。
特征金字塔注意力模塊由3個分支組成:金字塔網(wǎng)絡分支、非線性變換分支以及全局平均池化分支。該網(wǎng)絡將特征融合后的結(jié)果經(jīng)過1*1的卷積與金字塔網(wǎng)絡分支進行像素級相乘,并將相乘結(jié)果與全局平均池化分支結(jié)果相加。金字塔網(wǎng)絡分支中分別用了2個7*7,2個5*5,2個3*3的卷積,目的是從不同的金字塔尺度中提取信息。相同的卷積核采用串聯(lián)的形式,不同卷積核之間采用并聯(lián)形式。本文對金字塔網(wǎng)絡分支做了精細化處理而不是把提取的信息簡單相加。精細化過程如下:特征融合后的特征映射層先分別經(jīng)過Conv7_1,Conv5_1,Conv3_1和Conv3_2;然后對Conv3_2進行上采樣后的結(jié)果與Conv5_1做像素值疊加并輸入到Conv5_2;最后對Conv5_2進行上采樣后的結(jié)果與Conv7_1做像素值疊加并輸入到Conv7_2。其中,上采樣用的是反卷積,核的大小是4*4,步長為2,使用了BN和Relu激活函數(shù)。特征金字塔注意力模塊網(wǎng)絡結(jié)構(gòu)見圖2。
PixelLink輸出網(wǎng)絡主要包括2部分:①預測該像素是文本/不是文本,即像素級文本分類預測;②預測該像素與其周圍的8個像素是否屬于同一個文本實例,即像素級連接預測。使用正連接將正例像素連起來,形成一個連通組件,每個組件就是一個文本實例。
圖2 特征金字塔注意力模塊Fig.2 Feature pyramid attention module
損失函數(shù)主要由2部分構(gòu)成:①預測該像素是文字/不是文字,稱為Lpixel;②預測像素級連接,稱為Llink。其中,λ設為2,因為Lpixel比Llink更加重要。損失函數(shù)表示為
L=λLpixel+Llink
(3)
具體公式見文獻[11]。
自然場景下,文本檢測主要用到的實驗硬件和軟件設置如下:處理器為Intel(R) Core i7-6700 CPU 3.40 GHz;顯卡為NVIDIA GeForce GTX 1080;操作系統(tǒng)為Linux Ubuntu 14.04;軟件平臺為Pycharm Python 2.7;深度學習框架為Tensorflow-gpu==1.3.0;主要需要的庫為Opencv2,setproctitle,matplotlib。
本文實驗的數(shù)據(jù)集用的是ICDAR2015[15]和ICDAR2013[16]。
ICDAR2015數(shù)據(jù)集共有1 500幅分辨率大小為1 280×720的自然場景圖像,其中,訓練圖像1 000幅,測試圖像500幅。與之前ICDAR比賽圖像不同的是,這些圖像主要由谷歌眼鏡獲得,且拍攝時非常隨意,文本存在著傾斜和模糊的情況,其目的是為檢測增加難度。
ICDAR2013數(shù)據(jù)集中含有229幅訓練圖像,233幅測試圖像。該數(shù)據(jù)集為ICDAR2011的一個子集,刪除了ICDAR2011重復圖像以及修復了圖像標注不正確的問題,它雖然只含有水平文本,但在文本檢測中應用廣泛。
文本檢測算法的評估參數(shù)主要由精度(precision,P)、召回率(recall,R)、綜合指標(F-measure,F(xiàn))構(gòu)成。精度表示檢測到的真實文本在所有檢測文本中的占比,精度高則意味著誤檢少。召回率又稱“查全率”,表示檢測到的真實文本在全部真實文本中占比,召回率高則表示漏檢少。綜合指標是精度和召回率的加權(quán)調(diào)和平均結(jié)果,更能綜合評價算法的總體性能,具體公式為
(4)
2.4.1 ICDAR2015多方向性文本檢測
針對ICDAR2015文本檢測實驗,訓練圖像分辨率大小為256×256像素,測試圖像分辨率大小為1 280×704像素,得到的召回率、精度以及綜合指標的測試結(jié)果見表1。表1中,F(xiàn)F(feature fusion)是特征融合;FPA(feature pyramid attention)是特征金字塔注意力模塊;PixelLink+FF(0.22)+FPA(本文)中0.22表示d的值。
表1 ICDAR2015圖像測試結(jié)果Tab.1 Result on ICDAR2015
從表1可以得到如下結(jié)論。
1)在基礎(chǔ)算法(PixelLink算法)中僅加入特征融合,精度可以達到最高(0.766 8),相對于基礎(chǔ)算法提升0.61%,召回率雖然不能達到以下所有模型的最高值,但相對于基礎(chǔ)算法仍有所提高(0.14%);F值從0.745 0提升到0.748 6。
2)在基礎(chǔ)算法(PixelLink算法)中僅加入特征金字塔注意力模塊[13],召回率(0.776 1)相對于基礎(chǔ)算法(0.729 9)提升4.62%,精度(0.722 2)相對于基礎(chǔ)算法(0.760 7)下降了3.85%;F值有小幅提升,從0.745 0提升到0.748 2。僅加入本文的特征金字塔注意力模塊召回率為0.761 7,相對于基礎(chǔ)算法(0.729 9)提升3.18%,精度(0.742 7)相對于基礎(chǔ)算法(0.760 7)下降了1.8%;F值有所提升,從0.745 0提升到0.752 1。
3)特征融合有利于召回率和精度的提升,特征金字塔注意力模塊有利于召回率的提升,本文算法可以更好地平衡召回率和精度,使綜合指標達到最高。相較于PixelLink算法,召回率提高6.02%,精度下降0.2%,綜合指標提升2.91%。
圖3為ICDAR2015測試效果展示圖,從圖3a、圖3b可以看出,PixelLink算法檢測結(jié)果均有1處小分辨率文本漏檢,而本文算法則全部檢測正確。
圖3 ICDAR2015測試效果展示Fig.3 Detection samples of ICDAR2015
2.4.2 ICDAR2013水平文本檢測
ICDAR2013數(shù)據(jù)集訓練過程如下:先用ICDAR2015的收斂模型(90k)作為預訓練模型,然后再用ICDAR2015,TD500和ICDAR2013數(shù)據(jù)集做微調(diào),直到該模型收斂。針對ICDAR2013文本檢測實驗,訓練圖像分辨率大小為256×256像素,測試圖像分辨率大小為384×384像素,得到的召回率、精度以及綜合指標的測試結(jié)果見表2。PixelLink+FF(0.25)+FPA(本文)中0.25表示d的值。
從表2可以得到如下結(jié)論。
1)在基礎(chǔ)算法(PixelLink算法)中僅加入特征融合,精度可以達到最高(0.790 7),相對于基礎(chǔ)算法提升3.99%,召回率雖然不能達到以下所有模型的最高值,但相對于基礎(chǔ)算法仍有所提高(3.7%);F值從0.720 1提升到0.758 6。
表2 ICDAR2013圖像測試結(jié)果Tab.2 Result on ICDAR2013
2)在基礎(chǔ)算法(PixelLink算法)中僅加入特征金字塔注意力模塊[13],召回率可以達到0.766 4,相對于基礎(chǔ)算法提升7.45%,精度相對于基礎(chǔ)算法下降了4.29%;F值有小幅提升,從0.720 1提升到0.736 0。僅加入本文的特征金字塔注意力模塊召回率為0.797 6,相對于基礎(chǔ)算法提升10.57%,精度相對于基礎(chǔ)算法下降了6.02%;F值從0.720 1提升到0.740 3。
3)特征融合有利于召回率和精度的提升,特征金字塔注意力模塊有利于召回率的提升,本文算法可以更好地平衡召回率和精度,綜合指標值達到最高(0.760 5)。相較于PixelLink算法,召回率提高12.18%,精度下降3.69%,綜合指標提升4.04%。
圖4為ICDAR2013測試效果展示圖,從圖4a、圖4b可以看出,PixelLink算法檢測結(jié)果總共存在2處漏檢和2處誤檢,而本文算法則全部檢測正確。
圖4 ICDAR2013測試效果展示Fig.4 Detection samples of ICDAR2013
本文基于PixelLink自然場景文本檢測算法,結(jié)合特征融合技術(shù)和特征金字塔注意力模塊進一步優(yōu)化特征提取過程,以提升自然場景文本檢測性能。實驗結(jié)果表明,本文算法在ICDAR2015和ICDAR2013數(shù)據(jù)集上綜合指標比PixelLink分別提升了2.91%和4.04%。以后將在本文算法的基礎(chǔ)上,針對自然場景小分辨率文本檢測問題,研究特定特征提取及優(yōu)化問題。