朱 莉,陳 宏,景小榮,3
(1.重慶郵電大學 通信與信息工程學院,重慶 400065;2.四川師范大學 物理與電子工程學院,成都 610101;.重慶郵電大學 移動通信技術(shù)重慶市重點實驗室,重慶 400065)
隨著智能設(shè)備的普及,人們可輕易地獲取圖像。文本作為圖像中的高層語義信息,能夠幫助人們更好地理解圖像。將圖像中的文本信息轉(zhuǎn)換為計算機可讀可編輯的字符,對提高多媒體檢索能力、工業(yè)自動化水平、場景理解能力等具有重要意義。與自然場景文本識別相對應的是光學字符識別,光學字符識別一般針對的是白底黑字,易于區(qū)分的文檔類文本,文檔類文本的識別目前已經(jīng)得到了很好的解決。而在自然場景文本中,由于文字類型多樣,場景復雜多變,場景噪聲等因素的存在,其識別被視作計算機視覺領(lǐng)域一項極具挑戰(zhàn)性的任務。
早期的場景文本識別分別對單個字符進行檢測和分類,再將分類結(jié)果轉(zhuǎn)換為序列信息[1-4]。這類方法需要字符級別的標注信息,人工標注的成本過高。同時字符分類和檢測的錯誤會累計并直接影響最終的識別精度。
受語音識別技術(shù)的啟發(fā),近年來,幾乎所有的算法都將場景文本識別看作序列預測問題[5-11]。基于序列的場景文本識別算法,常常用到序列特征提取器長短時記憶模塊(long short-term memory,LSTM)[12]或者編碼-解碼-注意力模塊(encode-decode-attention,EDA)[13]。由于LSTM的狀態(tài)轉(zhuǎn)換層采用的全連接,因此,進行序列特征提取前需要將二維信息壓縮成一維序列,這勢必會造成重要信息的丟失或者引入不必要的噪聲。而EDA模塊是一種編解碼注意力機制,解碼過程中循環(huán)使用上一次解碼輸出作為下一次解碼輸入,這種機制容易造成蝴蝶效應,一個解碼錯誤會導致一連串的錯誤。
為了解決基于序列的方法存在的問題,出現(xiàn)了基于二維視角的文本識別方法,該方法在保持圖像二維信息的同時進行預測。文獻[14]使用分割網(wǎng)絡,對輸入圖像進行像素級的分類。文獻[15]為了保存圖像的二維信息使用二維時序分類(two-dimensional connectionist temporal classification,2D-CTC)算法進行預測。這類方法雖然保存了圖像的二維信息,卻也忽略了圖像的序列信息。
為了解決現(xiàn)有方法存在的問題,本文提出一種新的任意方向的自然場景文本識別算法,通過3個方面提高識別性能:①使用高分辨率分割網(wǎng)絡對圖像進行像素級的分類;②將文本識別看作一個時空序列預測問題,在特征提取階段使用卷積長短時記憶模塊(convolutional long short-term memory,ConvLSTM)[16]提取文本的時空序列信息;③在網(wǎng)絡中加入字符注意力機制,告訴網(wǎng)絡應該把注意力放在圖像的什么位置。
為了解決現(xiàn)有文本識別方法存在的問題,提出一種新的任意方向的自然場景文本識別方法,與該方法對應的網(wǎng)絡結(jié)構(gòu)見圖1。在該結(jié)構(gòu)中,包括高分辨率分割模塊、ConvLSTM模塊和字符掩模模塊,下面分別給出詳細的說明。
圖1 任意方向場景文本識別框架Fig.1 Any direction scene text recognition architecture
本文提出的任意方向場景文本識別算法使用的基礎(chǔ)框架是高分辨率分割網(wǎng)絡(high resolution network,HRNet)[17]。HRNet網(wǎng)絡結(jié)構(gòu)簡化示意圖見圖2,其中1×,2×,4×,8×分別表示不同分辨率的特征。以往的分割網(wǎng)絡沿用了分類網(wǎng)絡的串行連接高低分辨率卷積的結(jié)構(gòu),在此結(jié)構(gòu)的基礎(chǔ)上,為了恢復高分辨率通常采用上采樣操作,但上采樣本身并不能完整地彌補局部信息的丟失。針對這一問題,HRNet提出一種新的并行連接高低分辨率卷積網(wǎng)絡。整個網(wǎng)絡始終保持高分辨率特征,逐步引入低分辨率卷積,并且將不同分辨率的卷積并行連接。同時,通過不斷在多分辨率特征之間進行信息交換,來提升高分辨率和低分辨率特征的表達能力,讓多分辨率特征之間更好地相互促進。其中,在進行多分辨率特征之間的信息交換時,高分辨率降到低分辨率采用步長為2的3*3卷積;低分辨率特征到高分辨率特征時,先利用1*1卷積進行通道數(shù)的匹配,再利用最近鄰插值的方式來提高分辨率;相同分辨率的特征則采用恒等映射。
圖2 HRNet網(wǎng)絡結(jié)構(gòu)Fig.2 HRNet network framework
考慮到文本的上下文通常都有聯(lián)系,經(jīng)典的文本識別算法常把文本識別看作序列預測問題。而LSTM是文本識別任務中最常用的序列特征提取器,由于LSTM的狀態(tài)轉(zhuǎn)換層是全連接,因此,使用LSTM進行序列特征提取時需要將二維圖像壓縮成一維序列信息,會造成空間信息的丟失。針對這個現(xiàn)象,本文將文本識別看作時空序列預測問題,本文在HRNet的基礎(chǔ)上,引入了ConvLSTM模塊,ConvLSTM可在保證圖像二維信息的同時提取文本的序列信息。下面詳細說明LSTM和ConvLSTM分別如何提取信息。
1)LSTM信息提取。傳統(tǒng)的文本識別方法把文本識別看作序列預測問題,并使用LSTM進行序列特征提取。LSTM有3個門,分別為遺忘門fi、記憶門ii和輸出門ot。LSTM中的門是一種讓信息選擇性通過的方法,LSTM門結(jié)構(gòu)示意圖見圖3,主要由sigmoid激活函數(shù)跟元素點乘操作組成。sigmoid函數(shù)輸出[0,1]的數(shù),這個數(shù)代表了信息保留的比率,例如數(shù)值1代表信息全部保留。
LSTM的內(nèi)部結(jié)構(gòu)示意圖見圖4,遺忘門的作用是選擇性地舍棄上一個狀態(tài)ct-1的信息。使用sigmoid激活函數(shù)作用于輸入ht-1,xt,計算式為
ft=σ(wf[ht-1,xt]+bf)
(1)
it=σ(wi[ht-1,xt]+bi)
(2)
(3)
圖3 LSTM門結(jié)構(gòu)示意圖Fig.3 LSTM door structure diagram
圖4 LSTM內(nèi)部結(jié)構(gòu)示意圖Fig.4 LSTM schematic diagram of internal structure
將遺忘門跟記憶門作用的結(jié)果相加,即可得到下一個狀態(tài)ct,計算式為
(4)
輸出門的作用是決定網(wǎng)絡最終的輸出狀態(tài)。輸出門的計算如(5)式,和(1)式,(2)式一樣,使用sigmoid激活函數(shù)作用于ht-1,xt。對(4)式得到的ct使用tanh進行歸一化后再與輸出門得到的輸出ot做元素點乘操作得到網(wǎng)絡最終的輸出狀態(tài)ht。
ot=σ(wo[ht-1,xt]+bo)
(5)
ht=ot?tanh(ct)
(6)
(1)—(6)式中:wn,bn(n代表f,i,c,o)均為需要網(wǎng)絡學習的權(quán)重參數(shù);?代表元素點乘,等價于卷積操作。由此可見,LSTM的狀態(tài)轉(zhuǎn)換層均為全連接,見圖5,因此,LSTM的輸入只能是序列信息,這也成為了使用LSTM進行序列特征提取的性能瓶頸。
圖5 FC-LSTM示意圖Fig.5 Diagram of FC-LSTM
2)ConvLSTM信息提取。使用LSTM進行序列特征提取,必須將二維圖像壓縮為一維序列,這必然會丟失信息。文本識別準確地說應該是一個空間序列預測問題,ConvLSTM正好是解決空間序列信息的有力武器,ConvLSTM過程示意圖見圖6,ConvLSTM將LSTM中的狀態(tài)轉(zhuǎn)換層換成了卷積層,按照(7)—(12)式進行計算。本文使用ConvLSTM替換LSTM,有效地提取到了文本的時空序列信息,提升了最終的識別精度。
圖6 ConvLSTM示意圖Fig.6 Diagram of ConvLSTM
(7)
it=σ(wi?[ht-1,xt]+bi)
(8)
(9)
(10)
ot=σ(wo?[ht-1,xt]+bo)
(11)
ht=ot?tanh(ct)
(12)
場景文本有許多噪聲,為了解決這個問題,常在網(wǎng)絡中加入注意力機制。受文獻[14]啟發(fā),在網(wǎng)絡中使用字符掩模,可以幫助網(wǎng)絡將注意力放在應該注意的地方。字符掩模模塊加在每個ConvLSTM的后面,字符掩模模塊的計算式為
Fo=Fi⊕(Fi?Cdb)
(13)
(13)式中:Fi,F(xiàn)o分別代表輸入和輸出特征;⊕,?分別代表元素相加和元素相乘;Cdb代表對字符掩模模塊的輸出特征p進行近似二值化,計算式為
(14)
(14)式中,k代表二值化的程度,根據(jù)經(jīng)驗值k設(shè)置為50。字符掩模模塊是由二層卷積和一個二分類的softmax函數(shù)組成,字符掩模模塊的輸出特征p中的所有元素都是0~1的概率值。對輸出特征p中的所有元素使用可微分近似二值化函數(shù)得到非0即1的值,可以加大網(wǎng)絡對前景的注意力,同時削弱對背景區(qū)域的關(guān)注。值得注意的是,可微分二值化函數(shù)僅在網(wǎng)絡微調(diào)階段使用。這是因為網(wǎng)絡微調(diào)階段的精度較高,網(wǎng)絡中間得到的輸出更加可信,此時,對分類分數(shù)高于0.5的概率值置1,對分類分數(shù)小于0.5的概率值置0,可以有效地抑制背景,高亮前景。
網(wǎng)絡輸出為H×W×C的概率圖,其中,H,W分別代表輸出圖像的高和寬;C代表網(wǎng)絡預測的類別數(shù)。文本轉(zhuǎn)錄模塊就是將概率圖轉(zhuǎn)換為文本信息,見圖7。文本轉(zhuǎn)錄模塊的步驟為①手動設(shè)置一個閾值,將概率圖轉(zhuǎn)換為二值圖,這里的閾值根據(jù)經(jīng)驗設(shè)置為225;②根據(jù)二值圖得到外輪廓的最小外接矩形,計算矩形所在區(qū)域的概率圖的各通道概率值之和,取概率值最大的通道數(shù)的索引為最終的預測類別;③按照從左到右的順序排列字符,得到最終的文本信息。
網(wǎng)絡的中間使用了字符注意力機制,它需要字符框標注信息輔助網(wǎng)絡學習每個字符的位置。直接使用原始的字符框標注容易造成相鄰字符粘連,因此,本文使用原始框標注的1/2大小用于輔助定位網(wǎng)絡中間的字符信息。針對網(wǎng)絡輸出,為了避免網(wǎng)絡對文本的邊緣學習效果不佳,使用原始框1/4大小的區(qū)域代表整個字符。網(wǎng)絡中間的標簽需要將字符框的1/2大小區(qū)域像素值置為1,其余區(qū)域的像素值置為0。網(wǎng)絡最終輸出的標簽需要將字符框的1/4大小區(qū)域像素值置為字符編碼后的數(shù)值。字符編碼對應關(guān)系為數(shù)字0-9編碼后的值為1-10,字母a-z編碼后的值為11-36,其余的一律編碼為0。
圖7 文本轉(zhuǎn)錄模塊Fig.7 Text transcription module
與文獻[14]相同,網(wǎng)絡的損失由2部分組成,表示為
(15)
Lo的計算式為
(16)
(16)式中:c∈{0,1,…,C-1};yc代表真實的類別標簽;pc代表網(wǎng)絡對該像素點的類別預測概率;Wij是每個像素點的權(quán)重平衡因子。
假設(shè)N=H×W,Npos表示前景的像素點個數(shù),則Wij的計算式為
(17)
(18)
(18)式中,Hs,Ws分別表示對應層的輸出圖像的高和寬。
本文提出的算法只需在合成數(shù)據(jù)集SynthText上訓練,不需要真實數(shù)據(jù)對網(wǎng)絡進行微調(diào)。在通用的6個測試集上進行網(wǎng)絡性能評估,包括規(guī)則文本數(shù)據(jù)集IIIT5K、低分辨率和強噪聲的文本數(shù)據(jù)集SVT、透視文本數(shù)據(jù)集SVTP、彎曲文本數(shù)據(jù)集CUTE等。值得注意的是,本文均采用無詞典識別方式,直接通過網(wǎng)絡預測的輸出計算正確率,正確率為正確識別的文本數(shù)跟所有文本總數(shù)的比值。
1) SynthText[18]是用于場景文本檢測的數(shù)據(jù)集。原始數(shù)據(jù)集包含有80萬的場景文本圖像,每幅圖上包含有多個文本。該數(shù)據(jù)集中的文本字體多樣,背景復雜,且文本方向具有任意性。該數(shù)據(jù)集中的每個字符都有文本框標注。最終,從該數(shù)據(jù)集中裁剪出約7百萬的數(shù)據(jù)用于文本識別。
2) IC03[19]過濾掉非字母數(shù)字字符或少于3個的單詞的圖像后還包含860張可用于文本識別訓練的圖像。
3) IC13[20]大部分數(shù)據(jù)繼承自IC03,包含233張原圖,裁剪后包含1 015張圖像。
4) IIIT5K是由Mishra等[21]提出的。該數(shù)據(jù)集包含3 000張剪裁過的文本圖像,大部分圖像是規(guī)則的。
5) SVT是由Wang等[3]提出的。該數(shù)據(jù)集從谷歌街景中獲取,共包含647張文本圖像,由于該數(shù)據(jù)的低分辨率和強噪聲導致該數(shù)據(jù)集的識別十分具有挑戰(zhàn)性。
6) SVTP[22]是專為透視文本識別而設(shè)計的。包含238張跟SVT取自相同地址的街道拍攝圖像,裁剪后包含645張圖像。
7) CUTE是由文獻[23]提出的,該數(shù)據(jù)集雖然只有288張圖像,但該數(shù)據(jù)集大部分圖像都是嚴重的彎曲文本,因此,該數(shù)據(jù)集相較其他數(shù)據(jù)集更具有挑戰(zhàn)性。
固定輸入圖像尺寸,高設(shè)置為64,寬設(shè)置為256。在訓練階段使用數(shù)據(jù)增強,包括模糊、隨機亮度、對比度、色度、飽和度、隨機旋轉(zhuǎn)。特別地,設(shè)置隨機旋轉(zhuǎn)角度為[-15°,15°]。使用自適應矩估計(adaptive moment estimation,Adam)[24]進行網(wǎng)絡優(yōu)化,網(wǎng)絡的學習率初始化為10-4,學習率每3萬步下降為原來的0.1,降至10-6時不再變化。網(wǎng)絡分類的類別數(shù)為37,包括10個阿拉伯數(shù)字,26個英文字母,1個背景。
為了方便描述,將本文進行的所有對比實驗進行編號,自對照實驗見表1。表1共包含8個實驗,其中,實驗1,2,3為不同大小的HRNet基礎(chǔ)框架的性能比較,HRNet根據(jù)模型的大小分為了3種分割網(wǎng)絡,分別記為hrnet-w18-v1,hrnet-w18-v2,hrnet-w48-v2;實驗4,5,6在實驗1,2,3的基礎(chǔ)上分別加入了數(shù)據(jù)增強;實驗7在實驗6的基礎(chǔ)上增加了字符注意力機制;實驗8在實驗7的基礎(chǔ)上加入了ConvLSTM模塊。在進行自對照實驗時,采用了最具有挑戰(zhàn)性的彎曲文本數(shù)據(jù)集CUTE作為測試數(shù)據(jù),同時使用正確率(accuracy)定量評估不同因素對性能的影響。
表1 自對照實驗的正確率Tab.1 Accuracy of ablation experiment
由表1可知,實驗1,2,3中性能最好的為hrnet-w48-v2,相較于另外2個基礎(chǔ)框架,hrnet-w48-v2模型較大,犧牲了部分運行時間,但獲得的收益是十分明顯的,正確率超過hrnet-w18-v1約18%。實驗4,5,6使用本文提到的數(shù)據(jù)增強方法可以帶來約2%的性能提升。基于此,本文選擇了實驗6即hrnet-w48-v2-aug作為后續(xù)實驗的基礎(chǔ)框架。實驗7加入本文提出的字符注意力機制,可以在基礎(chǔ)框架上獲取1.3%的性能提升,充分說明了字符注意力機制的有效性。實驗8引入本文提出的時空序列特征提取模塊ConvLSTM,同樣帶來了1%的性能提升。
除了自對照實驗,還將本文算法跟世界領(lǐng)先水平的算法進行了比較,將現(xiàn)有的場景文本識別算法分為基于序列和基于二維視角兩大類,將本文提出的算法分別跟這兩大類的經(jīng)典算法進行比較,實驗結(jié)果分別見表2、表3。
表2 與基于序列的文本識別算法的正確率比較Tab.2 Accuracy comparison with sequence-based text recognition algorithms %
由表2可知,本文提出的算法在超過一半的標準數(shù)據(jù)集上取得了領(lǐng)先。現(xiàn)有的經(jīng)典算法往往僅在某一類文本上有不錯的表現(xiàn),如文獻[23]專門針對水平文本進行網(wǎng)絡設(shè)計,在水平文本識別上取得了不錯的性能,但無法處理傾斜甚至彎曲的文本。文獻[28]專門針對不規(guī)則文本設(shè)計網(wǎng)絡,但該算法僅在數(shù)據(jù)集SVTP上超過了本文提出算法的0.1%,在更加復雜的彎曲文本數(shù)據(jù)集CUTE上,本文提出的算法遠超文獻[28]。因此,與基于序列的識別算法相比,本文提出的算法能在任意方向的場景文本識別中取得非常不錯的效果。
與同樣基于二維視角的場景文本識別算法相比,本文提出的算法仍然取得了非常不錯的成績,見表3。
表3 與基于二維視角的文本識別算法的正確率比較Tab.3 Accuracy comparison with text recognition algorithms based on two-dimensional perspective %
文獻[29]跟本文一樣,使用ConvLSTM進行時空序列特征提取,由于本文額外的字符注意力機制,本文提出的算法幾乎在所有數(shù)據(jù)集上的性能都優(yōu)于文獻[29]。文獻[14]雖然也使用了字符注意力機制,但本文提出的算法在超過一半的標注數(shù)據(jù)集上的性能要優(yōu)于文獻[14],這得益于本文使用的時空序列特征提取ConvLSTM模塊??梢钥吹剑疚奶岢龅乃惴ㄊ俏墨I[29]和文獻[14]這2個算法優(yōu)勢的結(jié)合。
綜上,從定量的角度分析,本文提出的算法能在任意方向的場景文本識別中取得不錯的效果。
為了進一步體現(xiàn)本文提出算法的性能,接下來給出識別結(jié)果示意圖進行定性分析。為了方便描述,將實驗結(jié)果按照圖8進行展示。圖8是由5張圖拼接而來,其中,第1張圖為文本真值標注;第2張圖為輸入;第3張圖為網(wǎng)絡輸出的概率圖進行二值化后的二值圖;第4張圖為網(wǎng)絡輸出的概率圖;第5張圖為網(wǎng)絡最終的識別結(jié)果。
圖8 實驗結(jié)果拼接圖Fig.8 Experimental results mosaic
按照圖8的實驗結(jié)果拼接圖,本文提出的算法在CUTE,IIIT,SVTP等數(shù)據(jù)集上的識別結(jié)果示例圖見圖9。圖9列出的識別示例中包含了強噪聲、光照不均、低分辨率等情形。圖9中,第1行存在不同顏色、不同字體、不同尺寸的文本;第2行的文本均存在嚴重彎曲;第3行中的文本清晰度極低,肉眼都難以識別;第4—6行中的文本存在仿射變換、文本被遮擋、光照不均等問題。無論上述哪種情形,本文提出的算法均能有效識別,足以說明本文提出算法的有效性。
本文針對任意方向的自然場景文本提出了一種新的識別算法。在該算法中,首先使用高低分辨率分割網(wǎng)絡進行有效的特征提??;然后使用ConvLSTM在保持二維空間信息的同時進行序列特征提取;設(shè)計字符注意機制使得模型的注意力在字符上,同時使用可微分二值化函數(shù)進一步加大網(wǎng)絡對前景的注意力,削弱對背景區(qū)域的關(guān)注;最后使用文本轉(zhuǎn)錄模塊將網(wǎng)絡輸出的概率圖轉(zhuǎn)換為文本。在多個數(shù)據(jù)集上對本文提出的算法進行測試,結(jié)果表明,該算法能對任意方向的文本進行有效識別。
圖9 文本識別結(jié)果示意圖Fig.9 Schematic diagram of text recognition results
本文提出的算法雖然設(shè)計了字符注意力機制,但使用的是字符框區(qū)域表示字符前景,這個字符框區(qū)域難免大于或小于真實的字符區(qū)域,造成字符注意力的引導信息不夠準確,因此,可以考慮使用提供更加準確的像素級的字符區(qū)域進行前背景引導。同時,由于網(wǎng)絡的輸出是概率圖,需要將概率圖轉(zhuǎn)錄為文本,在這個過程中,本文使用的是將轉(zhuǎn)錄的文本按照從左到右的順序進行排列組成最后的文本行。這樣做的一大弊端是,網(wǎng)絡無法識別上下排列的文本。因此,如何設(shè)計一個更加合理的轉(zhuǎn)錄模塊是下一步工作需要考慮的問題。