劉會江,曾 浩,陳 陽
(重慶郵電大學 通信與信息工程學院,重慶 400065)
隨著深度學習的快速發(fā)展,當前自然場景下的文本檢測與識別在計算機視覺中也引起了更多的關注[1,2]。對于傳統(tǒng)的OCR技術而言,要求檢測的背景清晰、簡潔、簡單。檢測的文字要求大小相互均等,文字與文字的間隔適中。只有在苛刻的條件要求下,傳統(tǒng)的OCR技術才會檢測好的結果,這就限制了傳統(tǒng)OCR技術的應用。而自然場景的圖片文本會受到許多不可控制因素的影響,比如圖片清晰度、光照強度、拍攝角度、字體間的間隔與大小等。正是由于文本圖片背景的不可預測性,如果直接把傳統(tǒng)的OCR技術運用到對自然場景文本圖片檢測與識別上,會導致檢測困難程度增加,識別效果不好,魯棒性很差。
從2012年開始,深度學習獲得快速的發(fā)展。AlexNet[3]神經網絡到DenseNet[4]神經網絡再到SeNet[5]神經網絡,神經網絡層級越來越深,結構越來越復雜,效果也越來越好?,F在OCR技術的研究也轉向了深度學習方向?;谏疃葘W習的OCR算法比傳統(tǒng)的OCR算法準確率上得到了很大的提升。但是前人基于深度學習的OCR算法運用在自然場景的文本檢測與識別上面,準確率與召回率還有進一步的改良空間。
本文提出了一種基于DenseNet網絡作為基礎網絡的DenseText網絡模型。DenseNet網絡的核心模塊dense block的設計使得網絡雖然有很深的網絡結構,但是參數量更少、網絡更窄。對緩解梯度下降問題,加強特征傳播與特征重用等具有優(yōu)勢。同時這種dense block模塊使得特征和梯度的傳遞更加有效,網絡也易于訓練。
研究工作者早在上個世紀90年代就對自然場景文本檢測展開了關注。主要通過顏色聚類的方法來劃分目標區(qū)域,或者通過提取目標的紋理特征來進行文本檢測。隨后,Huang等[6]提出了最大穩(wěn)定極值區(qū)域算法(MSER),Rathod等[7]提出了筆畫寬度變換算法(SWT)。
基于深度學習的目標檢測算法也歷經變化,分為Two-stage與One-Stage。Two-stage算法代表網絡是RCNN系列。開始版本R-CNN[8]算法,利用選擇性搜索(Selective Search)從圖像提取2000個候選區(qū)域(Region Prosal),最后送入分類器支持向量機(SVM)[9]輸出結果。2015年,Girshick又提出了Fast R-CNN[10]算法。同年,Girshick和Ren等又提出了Faster R-CNN[11]網絡,大大提高了檢測精度。One-Stage算法代表網絡如:SSD[12]、YOLO[13]、YOLO9000[14]等。One-Stage算法的優(yōu)勢提升檢測速度?;谝陨线@些通用的目標檢測方法,研究者通過對這一些方法改進使其適用于自然場景文本檢測。2014年,Jaderberg等[15]借鑒R-CNN邊界框回歸算法提出了基于區(qū)域建議機制的文本算法。2016年,CTPN算法[16]被提出來了,使用VGG為基礎網絡進行檢測,結果輸入到BiLSTM[17]再經過轉錄層輸出識別結果。2017年以后,更多自然場景文本的檢測算法被提出來,EAST[18]、SegLink[19]、Textbo-xes[20]、Deep TextSpotter[21]等基于目標檢測或者目標分割算法的改進,使其能夠適應于自然場景的文本檢測。
一般基于文本識別的算法分為兩種:①基于字符識別,②基于序列識別。傳統(tǒng)上,基于字符檢測一般使用人工設計的算子提取特征(HOG[22],SIFI[23])。Rodriguez等[24]通過把識別問題轉換成為檢索問題,把文本字符嵌入到公共向量子空間中。Yao等[25]通過筆畫特征在HOG特征譜上面進行濾波操作得到響應譜,然后在通過分類器Random Forests[26]進行分類。在基于深度學習識別中,Zhang等[27]構建了一個卷積神經網絡來對英文的62個字符使用滑窗技術進行判別。而Alrnazan等[28]把單詞圖像設置為固定長度,再利用編碼空間進行特征表示與識別。
基于字符識別的缺點很明顯,需要非常大的分類網絡,特別是是像中文這種字符,會造成訓練困難等問題?,F在更常用的是基于序列識別的方法?;谛蛄凶R別是利用循環(huán)神經網絡來進行識別。循環(huán)神經網絡代表性網絡是LSTM[29]網絡。Shi等[30]利用CNN網絡提取文本特征,再使用BiLSTM網絡獲取上下文信息,最后加入一個轉錄層用來進行結果輸出。另外還有一種基于編碼-解碼-注意力模型(EDA)模型,先把序列編碼成固定長度的向量,再把固定長度向量進行解碼,變成輸出序列。其中Lee等[31]的R2AM結構以及Ghosh等[32]的結構都是根據編碼-解碼-注意力模型而提出來的。
本文提出的基于DenseNet自然場景文本檢測是一個端到端可訓練的網絡。本論文設計的網絡與SSD網絡的思想類似,對不同的層進行不同卷積大小的映射,能夠得到不同尺度的特征圖,網絡示意圖如圖1所示。SSD網絡采用VGG-16作為基礎網絡。保留了conv_1層至conv4_3層,并把最后兩個全連接層換成卷積層,即conv_6層至pool11層。本文采用DenseNet作為基礎網絡,取前conv_4層,同樣增加了一些卷積層與池化層,并在conv_5層后面增加卷積層進行不同尺度的輸出。最后,在進行后處理前增加一個文本框層,也就是DenseText layers,用來聚合所有層的輸出。總體來說,整個網絡結構只包含卷積層和池化層,可以對任意大小的圖像文本進行訓練。
DenseText layers是進行文本框回歸的核心組件,進行邊框的回歸以及文本的預測。對于每一個特征映射的位置,通過卷積運算把文本分類的得分以及邊框的偏移量輸出到相關聯(lián)的默認框。假設特征圖的中心位置為(i,j),默認框設為b0=(x0,y0,w0,h0),DenseText layers則是用來預測偏移量的值(Δx,Δy,Δw,Δh),置信度為c,邊界框b預測值為b=(x,y,w,h)。預測值、偏移量、真實值三者之間關系如下
(1)
為了能夠檢測多尺度文本圖像,每一個特征層都有不同大小與比率的默認框。遍歷每一個默認框與實際框的IOU進行匹配。由于單詞的自身特點,為此我們設計6個縱橫比,分別為1、2、3、5、7、10。但是這就會導致默認框在水平方向上表現的更加密集,豎直方向上面則表現稀疏。就會匹配不到最佳的默認框,或者出現最佳默認框不能夠完整回歸整個文本圖片,導致豎直方向上面檢測結果不良。參考Textboxes結構,為此我們對每一個默認框都設置垂直偏移量(如圖2所示)。圖中只繪制部分的縱橫比,在4*4的網格上面,正方形框表示縱橫比為1的默認框,長方形框表示縱橫比5的默認框。虛線加粗正方形框為實線加粗正方形框的垂直偏移量。虛線長方形框為實線長方形的垂直偏移量。
圖1 基于DenseNet網絡改進的DenseText網絡模型
圖2 垂直偏移量
對于通用目標檢測算法而言,檢測目標一般具有明顯的邊界,對不同大小的目標設置不同的縱橫比與比率,把物體邊界檢測出來再進行回歸,輸出結果。但對于自然場景文本圖像而言,圖像文本并沒有明顯的邊界,且文本圖像的中的單詞具有本身的特點,像英文單詞與中文句等語言,一般都是長條形,表現的特點是水平方向比較密集,豎直方向比較稀疏。針對此特點,我們使用1*5的卷積核(最后一層使用1*1卷積核)代替一般目標檢測中使用的3*3卷積核。長方形卷積濾波器產生的接收域能夠更好適應圖像文本的特點,且能夠避免方形濾波器帶來噪聲的影響。
我們使用了與SSD相同的損失函數。x的取值為1或者0,當xi,j=1表示第i個默認框與第j實際框相匹配,反之表示不相匹配??偰繕藫p失函數由兩部分組成,分別為位置損失和置信度損失,公式如下
(2)
其中,N表示默認框與實際框匹配的數量。如果N=0,則損失函數設置為0。c表示置信度,l表示預測框位置,g表示地面真實框位置。位置損失函數則是預測框(l)與地面真實框(g)參數之間的Smooth L1損失[14]。置信度損失是采用softmax損失。
通用目標檢測算法通常都會用非極大值抑制算法(non-maximum suppression,NMS)對大量的候選框進行后處理,刪除冗余的候選框,得到一個最佳的檢測框。NMS算法的原理,選取得分最高的候選框依次遍歷所有剩余的候選框求IOU(人工為IOU設定一個閾值Nt),把大于該閾值的候選框強制性置為0。這樣會產生兩個問題:①如果被置為零的候選框內存在目標,就會造成對該目標檢測失敗,并降低檢測率。②NMS的閾值不容易確定,閾值設置小就會出現誤刪,閾值設置過大就會增加誤檢風險,增加了算法假陽性。
基于NMS算法存在的以上問題。本文將使用Soft-NMS[33]算法對后處理進行改良。Soft-NMS算法的原理是,如果得分最高的檢測框與剩余候選框IOU大于閾值,那么該候選框就會有很低的分數,并不會像NMS算法那樣直接把候選框置為零。如果該檢測框與遍歷剩下的候選框的IOU低于已設定的閾值,那么對檢測得分分數并不會有很大的影響。并且Soft-NMS算法不會增加額外的參數與訓練量,易于實現。該算法得分重置函數有兩種計算方式,分別為線性加權函數式(3)和高斯加權函數式(4)。
線性加權
(3)
高斯加權
(4)
目前文本識別主要包括兩個方向,基于字符/單詞的識別和基于文本序列的識別。基于字符/單詞的識別一般采用人工設計的算子(或者CNN網絡)進行特征提取,再使用分類模型完成字符的識別?;谖谋拘蛄凶R別的算法一般采用兩種常用的識別模型,EDA模型和CNN+BiLSTM+CTC[34]模型。
本文所采用的識別網絡CRNN就是一種CNN+BiLSTM+CTC模型結構。CRNN是一個特征提取、特征建模以及轉錄為一體的神經網絡框架。CRNN網絡具有能夠實現端到端訓練、能處理任意長度的序列且不限于任何預定詞匯等優(yōu)點。一般的步驟是用CNN網絡對自然場景文本圖像進行特征提取,再用BiLSTM(bidirectional long short-term memory)網絡對序列上下文信息進行捕獲,并對序列進行標注,最后將BiLSTM網絡每幀預測轉換成為標簽序列,并采用CTC作為損失函數進行網絡的優(yōu)化。
CRNN的轉錄方式是按照每幀預測yi對標簽序列l(wèi)定義概率,并且忽略l中每個標簽所在的位置。條件概率被定義為由映射到l上所有概率的和,參看式(5),轉錄公式如式(6)所示
(5)
(6)
ICDAR[35]:ICDAR數據集是舉行文本檢測與識別競賽的公開數據集,包含訓練(training)與測試(testing)兩個子集。本文使用的是ICDAR2013數據集,主要針對水平方向的文本檢測。該數據集標注效果好、準確率高。
Synth Text:Synth Text數據集不是現實中的圖片,是將單詞與自然圖像進行合成的圖片。該數據集包含了80萬個圖像,大約有800萬個合成單詞。每一個文本目標都對文本字符串、字符以及字符邊界框進行標注。本實驗使用該數據集進行預訓練。
本文訓練的圖像尺寸為300*300,使用隨機梯度算法(SGD)進行訓練。初始學習率設置為10-3,當迭代了4萬次以后學習率設置為10-4。動量設置為0.9,權重衰減設置為5×10-4。本文DenseText網絡模型先在Synth Text數據集進行預訓練,然后在ICDAR2013數據集進行微調。對所有的圖片都采用隨機裁剪和翻轉的方式進行數據增強。實驗的設備使用兩臺GTX 1080在PC端進行實驗。識別的模型采用CRNN網絡。
本文實驗的評估標準參數主要依賴于如下3個參數:準確率(P)、召回率(R)和F-measure(F),具體公式計算如下
(7)
(8)
(9)
其中,TP表示將正樣本預測為正樣本數目,FP表示將負樣本預測為正樣本的誤報數,FN表示將正樣本預測為負樣本的漏報數目。準確率(P)與召回率(R)之間可能會出現矛盾的情況,其中一個測試指標較高,而另外一個測試指標較低。這時就需要綜合考慮兩者指標的情況,就采取F-measure評估方法。
DenseText在ICDAR2013數據集上進行了測試,評估該模型的性能。如表1所示,在準確率(P)上面表現出良好的性能結果,召回率(R)的表現結果比前人的結果都要優(yōu)異。對于準確率與召回率之間平衡的檢測指標F-mea-sure,我們的網絡表現出來的結果也比前人的結果更加的優(yōu)秀。
如表1所示,為了進一步驗證我們DenseText層的有效性,我們也把目標檢測的優(yōu)秀網絡SSD與Faster R-CNN網絡與我們網絡進行同等環(huán)境的實驗。在IC13 Eval與Det Eval進行測試,實驗結果表明,直接把目標檢測的網絡運用到自然場景的文本檢測效果并不理想,特別是召回率很低,存在很多假陽性框。而我們的網絡則表現出來更加優(yōu)秀的結果,驗證了對網絡改良的必要性。對比選用VGG16作為基礎網絡TextXBoxes,我們則選用DenseNet網絡作為基礎網絡,實驗結果表明DenseNet網絡能夠提取更多的細節(jié)特征,網絡有效性比VGG網絡更好。對比當前水平檢測效果最好的CTPN網絡,我們的準確率比它低了0.03,但是我們的召回率結果比CTPN網絡的召回率更加優(yōu)秀,召回率高了0.02。
表1 水平方向文本檢測對比結果
綜上所示,我們網絡的準確率是表現結果最好的網絡之一,我們的召回率則比之前的網絡都要優(yōu)秀。原因之一是我們的網絡還使用Soft-NMS算法對后處理進行改進。傳統(tǒng)方法都是使用NMS進行后處理,如果候選框與得分最高框的IOU大于設定的閾值,就把該候選框直接置為零。這樣會增加檢測假陽性,降低結果的準確率。為了驗證我們使用Soft-NMS算法代替?zhèn)鹘y(tǒng)的NMS算法能夠在召回率表現更好的效果,我們在ICDAR2013數據集進行測試。對Soft-NMS(G)表示高斯加權、Soft-NMS(L)表示線性加權、傳統(tǒng)的NMS算法進行了實驗對比(見表2)。
表2 后處理對比實驗結果
為了更好測試效果,固定高斯加權系數σ并設置為0.5,分別在閾值Nt取值0.3、0.5、0.7下進行實驗。實驗結果表明,在同等條件下,不管是高斯加權還是線性加權的Soft-NMS算法的召回率比NMS算法的召回率都要高。對于Soft-NMS的兩種加權方式,采用高斯加權的表現結果比采取線性加權的表現結果要優(yōu)秀。當Nt取值為0.5時召回率的比在Nt取為0.3和0.7表現的更高。綜上所述,我們采取Soft-NMS算法進行后處理的結果比采取NMS進行后處理的結果表現的更加優(yōu)秀,能夠提高網絡的召回率。
對自然場景文本圖片的部分檢測與識別結果如圖3所示。圖3前兩排是檢測結果:我們可以觀察到不管是對圖片中大跨度單詞、小文字單詞或者是數字,都能夠很好檢測出來,具有良好的泛化性。圖3第三排,是用CRNN網絡識別的結果,當DenseText網絡能夠檢測出來很好的結果的時候,CRNN網絡大部分能夠識別出來。但是我們注意到,最后一張圖片中的Farm單詞,盡管被很好檢測出來了,但是卻被CRNN網絡識別成rarm單詞。下一步的研究工作,改良網絡使其對任意方向文本圖片有較好檢測率,并改善網絡的識別率。
圖3 水平方向自然場景文本圖片的檢測與識別結果
由于自然場景圖片文本的多樣性與復雜性,并容易受到光照、文字跨度等不可控因素的影響,難度遠遠大于傳統(tǒng)OCR技術。本文提出一種基于DenseNet為基礎網絡的DenseText文本檢測算法。為了適應文本的特點,使用長方形的卷積核代替?zhèn)鹘y(tǒng)的正方形卷積核,并且用Soft-NMS算法進行后處理,能夠有有效提高文本檢測的準確率。最后使用CRNN網絡進行識別。形成一個端到端的自然場景文本檢測與識別的系統(tǒng)。實驗結果表明,本文提出的算法準確率上表現出優(yōu)異的結果,特別是召回率較前人結果有顯著的提升。