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