陳 鵬, 李 鳴, 張 宇, 王志鵬
(南昌大學(xué) 信息工程學(xué)院,江西 南昌 330000)
自然環(huán)境下的文本識(shí)別一直是計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)挑戰(zhàn)性領(lǐng)域關(guān)注的熱點(diǎn)問(wèn)題之一[1-2]。傳統(tǒng)的光學(xué)字符識(shí)別(Optical Character Recognition,OCR)系統(tǒng)主要側(cè)重于從掃描文檔中提取文本,而場(chǎng)景文本識(shí)別從自然場(chǎng)景中捕獲的圖像中獲取文本[3]。場(chǎng)景文本識(shí)別分為文本檢測(cè)[4-9]和文本識(shí)別[10-11]兩個(gè)步驟,比起傳統(tǒng)OCR來(lái)說(shuō)更具有挑戰(zhàn)性,失真、遮擋、文本角度、背景繁雜等現(xiàn)存的挑戰(zhàn)[2]仍未完全解決。
現(xiàn)今出現(xiàn)了各種文本檢測(cè)技術(shù)解決方案,例如特征提取、區(qū)域建議網(wǎng)絡(luò)(Region Proposal Network,RPN)、非極大值抑制(Non-Maximum Suppression,NMS)等方法[12-13],但這些方法需要大量的運(yùn)算和內(nèi)存,特征金字塔網(wǎng)絡(luò)(Feature Pyramid Networks,FPN)[14]應(yīng)用于當(dāng)前主流檢測(cè)模型的特征融合結(jié)構(gòu),能夠很好地解決這一問(wèn)題。而在文本識(shí)別技術(shù)方面,RobustScanner模型[15]解決了基于注意框架的編碼器對(duì)無(wú)上下文文本圖像的誤識(shí)別問(wèn)題,但就目前來(lái)說(shuō),使用卷積網(wǎng)絡(luò)與循環(huán)網(wǎng)絡(luò)相結(jié)合的識(shí)別網(wǎng)絡(luò)結(jié)構(gòu)仍為主流[9],并存在很大提升空間。此結(jié)構(gòu)對(duì)解決脫離上下文環(huán)境、導(dǎo)致識(shí)別不準(zhǔn)確問(wèn)題效果明顯。端到端方面,DRRGCN模型[16]對(duì)形狀文本檢測(cè)提出了一種端到端的統(tǒng)一關(guān)系推理圖。
本文算法和理論分析基于FPN[14]與CRNN[9]模型推導(dǎo)。Lin等[14]通過(guò)采用特征金字塔的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行高層和低層融合的方式,得到空間細(xì)節(jié)飽滿、語(yǔ)義信息豐富的特征,從而提升準(zhǔn)確性。Shi等[9]認(rèn)為使用卷積網(wǎng)絡(luò)與循環(huán)網(wǎng)絡(luò)結(jié)合可以在場(chǎng)景文本識(shí)別領(lǐng)域取得非常好的效果。但特征金字塔常用于目標(biāo)檢測(cè)領(lǐng)域,而CRNN算法由于訓(xùn)練時(shí)容易出現(xiàn)梯度爆炸、消失和無(wú)法有效預(yù)測(cè)長(zhǎng)文本序列導(dǎo)致連續(xù)字符預(yù)測(cè)有誤等問(wèn)題,仍然需要進(jìn)一步進(jìn)行研究。
本文提出一種端到端的場(chǎng)景文本檢測(cè)與識(shí)別方法,通過(guò)基于特征金字塔的特征提取,編碼用深度雙向遞歸網(wǎng)絡(luò)、殘差網(wǎng)絡(luò)[17],解碼用連接時(shí)間分類損失、注意力機(jī)制,依次連接構(gòu)成的網(wǎng)絡(luò)模型,本文模型具有以下特點(diǎn):① 在速度和準(zhǔn)確率之間進(jìn)行權(quán)衡,可以獲得更加魯棒的語(yǔ)義信息,通過(guò)語(yǔ)義信息對(duì)長(zhǎng)文本檢測(cè)有很好的效果;② 針對(duì)解決梯度爆炸、消失等問(wèn)題達(dá)到了較優(yōu)的效果,在加快模型訓(xùn)練收斂速度的條件下提升了在自然場(chǎng)景下的文本識(shí)別的準(zhǔn)確率;③ 端到端檢測(cè)與識(shí)別模型,可進(jìn)行端到端訓(xùn)練。
本文創(chuàng)新點(diǎn)如下:① 針對(duì)小文本的檢測(cè)問(wèn)題,利用特征金字塔機(jī)制,有效地解決了小文本遺漏問(wèn)題;② 將殘差模塊融合進(jìn)循環(huán)神經(jīng)網(wǎng)絡(luò),不僅降低了訓(xùn)練難度且極大地提升了網(wǎng)絡(luò)的收斂速度;③ 通過(guò)增強(qiáng)語(yǔ)義信息提高識(shí)別率突破,在連接時(shí)間分類損失中引入注意力機(jī)制,在識(shí)別過(guò)程中完成不同序列的權(quán)重分配,避免了對(duì)標(biāo)簽進(jìn)行額外的預(yù)處理(對(duì)齊)及后期的語(yǔ)法處理,同時(shí)提高多樣本數(shù)據(jù)的處理速度。
當(dāng)前FPN應(yīng)用于位姿估計(jì)、語(yǔ)義分割等許多領(lǐng)域的計(jì)算機(jī)視覺(jué)任務(wù)。FPN作為特征金字塔概念設(shè)計(jì)的特征提取器,可根據(jù)其特性解決圖像目標(biāo)多尺度問(wèn)題,對(duì)不同場(chǎng)景可設(shè)計(jì)構(gòu)建不同的具有高級(jí)語(yǔ)義的特征金字塔。通過(guò)在原單個(gè)網(wǎng)絡(luò)將每個(gè)分辨率的特征圖與下一張縮放分辨率的特征圖相加,這樣每層預(yù)測(cè)所用的特征圖都包含多種分辨率、語(yǔ)義強(qiáng)度的信息,最后得出不同分辨率的融合特征圖能夠?qū)Σ煌叽?、分辨率大小目?biāo)的有效檢測(cè)。
FPN通過(guò)權(quán)衡速度和準(zhǔn)確率,獲得更加魯棒的語(yǔ)義信息,解決了以往的文本檢測(cè)算法只使用頂層特征進(jìn)行預(yù)測(cè)而不考慮其他層的特征導(dǎo)致的檢測(cè)效果不佳的問(wèn)題。
1.2.1 Bi-LSTM編碼與ResNet網(wǎng)絡(luò)
長(zhǎng)短期記憶人工神經(jīng)網(wǎng)絡(luò)(Long-Short Term Memory,LSTM)作為一種獨(dú)特設(shè)計(jì)結(jié)構(gòu)的時(shí)間遞歸神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN),LSTM內(nèi)部主要通過(guò)忘記階段、選擇記憶階段和輸出階段解決長(zhǎng)序列訓(xùn)練過(guò)程中的梯度消失、爆炸問(wèn)題。而同一時(shí)刻兩個(gè)不同方向的LSTM組成的Bi-LSTM 很好地優(yōu)化了LSTM無(wú)法編碼從后向前的信息問(wèn)題。Bi-LSTM在自然語(yǔ)言處理任務(wù)中都常被用來(lái)建模上下文信息。
而殘差網(wǎng)絡(luò)(ResNet)的靈感來(lái)源于使用全等映射直接將前一層輸出傳到后面的思想。圖1(a)和圖1(b)分別為ResNet及Bi-LSTM網(wǎng)絡(luò)結(jié)構(gòu)模型。
圖1 殘差網(wǎng)絡(luò)與雙向遞歸網(wǎng)絡(luò)結(jié)構(gòu)圖
1.2.2 CTC解碼與Attention機(jī)制
連接時(shí)序分類器(Connectionist Temporal Classification,CTC)[23]通過(guò)避開(kāi)傳統(tǒng)輸入與輸出手動(dòng)對(duì)齊方式從輸入序列找出預(yù)測(cè)概率最高的輸出序列,CTC利用輸出序列和最終標(biāo)簽空間映射關(guān)系(多對(duì)一)來(lái)解決傳統(tǒng)輸入輸出序列手動(dòng)對(duì)齊的問(wèn)題,如果輸入特征、輸出標(biāo)簽對(duì)齊存在不確定性問(wèn)題,CTC能夠自動(dòng)完成優(yōu)化模型參數(shù)和對(duì)齊切分邊界任務(wù)。
注意力機(jī)制(Attention mechanism)可以視作一種資源分配的機(jī)制,根據(jù)Attention對(duì)象重要程度,將原本平均分配的資源重新進(jìn)行分配。在深度神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)設(shè)計(jì)中,Attention模型能夠通過(guò)合理對(duì)源數(shù)據(jù)序列進(jìn)行數(shù)據(jù)加權(quán)變換從而學(xué)到多種類型模態(tài)間的相互關(guān)系,更好地表示信息。
本文提出了一種端到端的場(chǎng)景文本檢測(cè)與識(shí)別方法,利用FPN特殊結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)作為檢測(cè)器;在Bi-LSTM中加入ResNet作為編碼器,最后利用CTC融合Attention作為解碼器。算法流程框架如圖2所示。
圖2 算法框架流程圖
本文算法檢測(cè)網(wǎng)絡(luò)以FPN為主干網(wǎng)絡(luò),為了充分利用其高分辨率和強(qiáng)大的語(yǔ)義特征,F(xiàn)PN涉及自下而上的路徑、自上而下的路徑與橫向連接。自下而上的路徑是在每個(gè)階段定義一個(gè)金字塔級(jí)別,使用每階段最后一個(gè)殘差結(jié)構(gòu)特征激活輸出表示為{C2,C3,C4,C5},分別對(duì)應(yīng)conv2~conv5,相對(duì)于原輸入圖像,具有{4,8,16,32}像素步長(zhǎng)。而自上向下的數(shù)據(jù)傳輸路徑則從更高的金字塔層次對(duì)更強(qiáng)的特征圖進(jìn)行語(yǔ)義上的提升,從而產(chǎn)生更高分辨率的特征。然后,通過(guò)每個(gè)橫向連接將自下而上的路徑和自上而下的路徑具有相同空間大小的特征圖合并,這一步是為了利用底層的定位細(xì)節(jié)信息。最后,得到一組特征圖,標(biāo)記為{P2,P3,P4,P5}。將特征圖{P2,P3,P4,P5}作為連續(xù)輸入,輸入到文本識(shí)別部分。特征金字塔結(jié)構(gòu)如圖3所示。
圖3 特征金字塔結(jié)構(gòu)
2.3.1 Bi-LSTM編碼
文本識(shí)別部分采用經(jīng)典的Bi-LSTM結(jié)合CTC構(gòu)架,而Bi-LSTM組成部分RNN隨著距離的增大,存在將以前的信息連接到當(dāng)前的任務(wù)時(shí)容易導(dǎo)致梯度爆炸、消失等嚴(yán)重問(wèn)題。網(wǎng)絡(luò)層數(shù)越深,時(shí)間間隔越長(zhǎng),這些都會(huì)因梯度問(wèn)題致使模型不但訓(xùn)練困難,且無(wú)法處理長(zhǎng)距離信息傳遞反饋問(wèn)題,考慮到Bi-LSTM的缺陷,ResNet網(wǎng)絡(luò)的加入能夠很好地解決這個(gè)問(wèn)題。
將ResNet分別加入Bi-LSTM模型輸入和輸出層,不僅有效解決了Bi-LSTM固有的梯度爆炸、消失的問(wèn)題,同時(shí)也加快了模型的收斂速度,融合模型如圖4所示。
圖4 Bi-LSTM+Resnet融合模型
本文以F(x)為原模型,取x=3。
y=F(x)
(1)
則F(3)=3.1。
在F(x)中加入ResNet得到模型D(x)。
y=D(x)
(2)
根據(jù) ResNet可知:
D(x)=F′(x)+x
(3)
則
D(3)=F′(x)+x=F′(x)+3=3.1F′(x)=0.1
當(dāng)進(jìn)行模型訓(xùn)練,已知反向傳播中輸出與梯度產(chǎn)生強(qiáng)相關(guān),在網(wǎng)絡(luò)進(jìn)行反向傳播時(shí),隨著網(wǎng)絡(luò)層數(shù)的增加,梯度消失的情況越來(lái)越容易出現(xiàn)。假定輸出從3.1變?yōu)?.2,則
借鑒上述結(jié)論,引入ResNet將前一層輸出恒等映射到后面,輸出變化與權(quán)重的調(diào)整效果成正比,使網(wǎng)絡(luò)對(duì)輸出變化更靈敏,從而在反向傳播中梯度計(jì)算時(shí)避免梯度消失、爆炸,優(yōu)化了訓(xùn)練效果。
2.3.2 CTC解碼
由于CTC每幀標(biāo)簽是單獨(dú)輸出每個(gè)字符的概率,會(huì)忽略整體信息而只針對(duì)局部信息進(jìn)行預(yù)測(cè),導(dǎo)致CTC對(duì)于長(zhǎng)文本序列預(yù)測(cè)不盡人意。通過(guò)引入Attention的CTC實(shí)現(xiàn)對(duì)特征序列的解碼,有效解決了CTC解碼無(wú)法有效預(yù)測(cè)長(zhǎng)文本序列的問(wèn)題。
給定輸入特征序列X={x1,x2,…,xv},隱變量Z=(ztD∪blankt=1,2,…,V),輸出長(zhǎng)度為l的序列Z=(yiD|l=1,2,…,T)。其中,V為序列數(shù)(編碼);T為字符數(shù);D為字典(所有字符)。CTC假設(shè)標(biāo)簽之間是獨(dú)立的,利用貝葉斯計(jì)算預(yù)測(cè)序列的后驗(yàn)概率分布:
(4)
式中:p(Y)為字符級(jí)語(yǔ)言模型;p(zt|zt-1,Y)為已知上一時(shí)刻輸出的隱變量預(yù)測(cè)下一時(shí)刻的隱變量的條件概率;p(zt|X)為隱變量概率(由已知輸入特征可得)。
直接計(jì)算與Attention結(jié)合的CTC的聯(lián)合預(yù)測(cè)序列的概率:
(5)
式中:p(y1|y1∶l-1,X)為已知輸入特征X和前l(fā)個(gè)輸出得到l時(shí)刻的預(yù)測(cè)概率。
檢測(cè)模塊結(jié)束方式返回是否為文本分類及邊界框回歸,定義多任務(wù)損失:
(6)
以Softmax損失作為分類損失,以光滑損失L1作為回歸損失,有
(7)
(8)
(9)
式中:Lcls為分類通道的損失。
筆者提出的算法可進(jìn)行端到端訓(xùn)練。在Ubuntu 16.4系統(tǒng)上,框架選用Tensorflow,選取知名競(jìng)賽數(shù)據(jù)集ICDAR(International Conference on Document Analysis and Recognition) 2013[24]和ICDAR 2015[25]進(jìn)行訓(xùn)練(訓(xùn)練圖片為ICDAR 2013、ICDAR 2015數(shù)據(jù)集229、1000張圖像),模型其他新層權(quán)值是均值為0、標(biāo)準(zhǔn)差為0.01的隨機(jī)高斯分布的隨機(jī)權(quán)值。為訓(xùn)練檢測(cè)器,本文通過(guò)為每個(gè)錨點(diǎn)分配一個(gè)標(biāo)簽來(lái)定義正負(fù)標(biāo)簽。文本是正錨,背景是負(fù)錨。利用SGD算法對(duì)模型進(jìn)行優(yōu)化,即每次更新時(shí)使用一個(gè)隨機(jī)樣本進(jìn)行梯度下降,隨機(jī)樣本表示所有樣本對(duì)超參數(shù)進(jìn)行調(diào)整,加快了迭代速度。將學(xué)習(xí)率、動(dòng)量、動(dòng)量衰減和批量大小分別設(shè)置為0.0002、0.8、0.0004和1。預(yù)訓(xùn)練完成后分別將ICDAR 2013、ICDAR 2015數(shù)據(jù)中233、500張圖像用于測(cè)試。
實(shí)驗(yàn)機(jī)器配置為Intel i7 9700 CPU、Nvidia 1080ti GPU和16 GB RAM。標(biāo)定的訓(xùn)練圖像,高度不大于600像素,寬度不大于1200像素,比例不變。
3.2.1 文本檢測(cè)性能測(cè)試
本文采用ICDAR自然場(chǎng)景文本檢測(cè)競(jìng)賽系列數(shù)據(jù)集檢驗(yàn)各類方法模型的性能。ICDAR2013數(shù)據(jù)集包括復(fù)雜背景、不均勻光照和強(qiáng)干擾背景,同樣,ICDAR2015背景比ICDAR2013更加復(fù)雜,光照、失焦等干擾因素更多。表1、表2為本模型檢測(cè)端與其他檢測(cè)模型的比較結(jié)果。
表1 檢測(cè)模型在ICDAR2013數(shù)據(jù)集性能比較
表2 檢測(cè)模型在ICDAR2015數(shù)據(jù)集性能比較
可見(jiàn),本文模型檢測(cè)端與著名模型在數(shù)據(jù)集ICDAR2013、ICDAR2015中進(jìn)行性能測(cè)試,識(shí)別準(zhǔn)確率有2%~4%提升,計(jì)算速度有3%~8%提升。引入特征金字塔的檢測(cè)端充分地利用多尺度特征,提升了文本定位準(zhǔn)確性。
3.2.2 端到端性能測(cè)試
本文端到端系統(tǒng)采用ICDAR2013和ICDAR2015數(shù)據(jù)集,評(píng)估方案分為“文本檢測(cè)”標(biāo)準(zhǔn)和“端到端”標(biāo)準(zhǔn)[26]。文本檢測(cè)中性能評(píng)估只關(guān)注圖像中出現(xiàn)在預(yù)先指定詞匯中的文本實(shí)例,忽略其他實(shí)例。端到端關(guān)注所有出現(xiàn)在場(chǎng)景圖像中的文本實(shí)例。端到端下候選轉(zhuǎn)錄包含了了強(qiáng)上下文、弱上下文和泛型3個(gè)詞匯表。
如表3所示,將近幾年著名端到端模型的性能進(jìn)行總結(jié)比較。
表3 端到端模型在ICDAR2013和ICDAR2015數(shù)據(jù)集性能比較
由表3可見(jiàn),本文端到端模型與其他端到端模型在數(shù)據(jù)集ICDAR2013、ICDAR2015中進(jìn)行性能測(cè)試,統(tǒng)一使用512×512的比例測(cè)試時(shí),本文端到端模型在精度、召回率和F值上均有優(yōu)勢(shì),識(shí)別準(zhǔn)確率有1%~8%的提升,識(shí)別速度遠(yuǎn)超其他模型,且本文方法計(jì)算和存儲(chǔ)增量很小。實(shí)驗(yàn)證明,本文端到端模型不僅提高了識(shí)別準(zhǔn)確率,還提高了識(shí)別速度。
3.2.3 識(shí)別損失函數(shù)、準(zhǔn)確率變化曲線
在測(cè)試數(shù)據(jù)集測(cè)試,進(jìn)行2000000個(gè)時(shí)期,批量大小為32,初始學(xué)習(xí)率為0.01,指數(shù)衰減為每500000個(gè)時(shí)期0.1。引入殘差網(wǎng)絡(luò)、注意力機(jī)制后的模型明顯解決了梯度爆炸、消失問(wèn)題,同時(shí)網(wǎng)絡(luò)訓(xùn)練收斂更快。圖5為改良前后的模型斂散狀態(tài)。
圖5 模型改良前后loss曲線收斂性
3.2.4 識(shí)別結(jié)果
識(shí)別結(jié)果如圖6所示,選用3組圖片進(jìn)行識(shí)別(分別為上、中、下),左圖為原圖片,中圖為識(shí)別圖片(識(shí)別文字),右圖為框住圖中文本的文本框的坐標(biāo)數(shù)據(jù)與識(shí)別結(jié)果。顯然,第2組和第3組圖中不定長(zhǎng)的小文本得到準(zhǔn)確的識(shí)別。
圖6 ICDAR2013、ICDAR2015數(shù)據(jù)集上測(cè)試的結(jié)果
本文利用特征金字塔來(lái)提取多尺度特征,通過(guò)引入殘差網(wǎng)絡(luò)、注意力機(jī)制的Bi-LSTM、CTC分別進(jìn)行編碼及解碼,達(dá)到端到端識(shí)別模型的識(shí)別。該方法不僅解決了梯度爆炸、消失等問(wèn)題,降低了訓(xùn)練難度,還提升了網(wǎng)絡(luò)的收斂速度,提高了文本識(shí)別準(zhǔn)確率。該模型在不同數(shù)據(jù)集上均獲得良好結(jié)果。在后續(xù)工作中,將首先改進(jìn)檢測(cè)網(wǎng)絡(luò)架構(gòu),解決任意形狀或者多角度的文本檢測(cè)問(wèn)題,擴(kuò)展模型應(yīng)用范圍;其次增加多語(yǔ)種數(shù)據(jù);最后在識(shí)別網(wǎng)絡(luò)架構(gòu)上進(jìn)行進(jìn)一步的優(yōu)化,提升識(shí)別率。