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