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