辜雙佳 栗智
摘??要:中文場景文字識別(STR)是光學(xué)字符識別(OCR)技術(shù)的重要研究方向,在拍照翻譯、無人駕駛等領(lǐng)域廣泛應(yīng)用。但是,中文場景下的文字面臨著字體和字符種類多、文字背景復(fù)雜等問題。本文著眼于“中國街景”圖像,基于CRNN模型提出了一種免分割、端到端的中文場景文字識別方法。首先CNN提取圖像卷積特征,然后RNN進(jìn)行序列特征預(yù)測,其中Bi-GRU有效抑制梯度消失或梯度爆炸,Dropout可以防止過擬合,最后引入CTC作為損失函數(shù)解決訓(xùn)練時字符無法對齊的問題。本文用Python實(shí)現(xiàn)了算法,以較好的效果完成了實(shí)驗(yàn)。
關(guān)鍵詞:中文OCR;CRNN;免分割;端到端;中國街景
Chinese?Scene?Text?Recognition?based?on?CRNN?model
Gu?Shuangjia1?Li?Zhi21.School?of?Computer?Science?and?Engineering,?Chongqing?University?of?Technology??Chongqing400054?2.School?of?Computer?Science,?Chongqing?UniversityChongqing???400044
Abstract:?Chinese?scene?character?recognition?(STR)?is?an?important?research?direction?of?optical?character?recognition?(OCR)?technology,?which?is?widely?used?in?the?fields?of?photo?translation?and?unmanned?driving.?However,?the?characters?in?Chinese?scene?are?faced?with?many?problems,?such?as?many?types?of?fonts?and?characters,?complex?text?background?and?so?on.?This?paper?focuses?on?the?"Chinese?street?view"?image,?and?proposes?a?segmentation?free,?end-to-end?Chinese?scene?text?recognition?method?based?on?crnn?model.?Firstly,?CNN?extracts?image?convolution?features,?and?then?RNN?performs?sequence?feature?prediction.?Bi?Gru?can?effectively?suppress?gradient?disappearance?or?gradient?explosion,?dropout?can?prevent?over?fitting.?Finally,?CTC?is?introduced?as?a?loss?function?to?solve?the?problem?that?characters?cannot?be?aligned?during?training.?In?this?paper,?Python?is?used?to?implement?the?algorithm,?and?the?experiment?is?completed?with?good?effect.
Keywords:?Chinese?OCR;?CRNN;?No?split;?End-to-End;?Chinese?street?scene
緒論
背景及意義
圖像和視頻中的文字包含了豐富而精確的高層語言描述,準(zhǔn)確有效地提取這些文字信息在多媒體檢索、人機(jī)交互、機(jī)器人導(dǎo)航和工業(yè)自動化等領(lǐng)域具有重要的應(yīng)用[1]。中國是一個世界性的大國,中文字符種類繁多,有篆書、楷書、行書等多種字體,如圖1所示。
目前CVPR、ICCV、ECCV?等國際頂級會議,已將場景文字檢測與識別列為其重要主題之一,場景文字檢測與識別技術(shù)廣泛運(yùn)用在圖片搜索和無人駕駛[2]等方面,是當(dāng)前研究的一個前沿課題。場景文字識別(STR,?Scene?Text?Recognition)是在各種復(fù)雜情況下將圖像輸入翻譯為自然語言輸出,需要包括文字檢測和文字識別兩個步驟,文字檢測即發(fā)現(xiàn)文字的位置和范圍,文字識別即將文字區(qū)域轉(zhuǎn)化為字符信息。如圖2所示。
在實(shí)際應(yīng)用中,?場景文字的檢測和識別往往串聯(lián)在一起,能同時檢測到文字位置并對其進(jìn)行識別的方法被稱為“端到端”文字識別方法[3]。由于中文場景中存在背景干擾、字體模糊、遮擋等多種復(fù)雜情況,如圖4所示,中文場景文本識別面臨更多的挑戰(zhàn)。
近幾年,國內(nèi)外大量的專家學(xué)者們也關(guān)注到了這個方面。Wang[4]等最早提出用深度學(xué)習(xí)的方法實(shí)現(xiàn)文字檢測,用卷積神經(jīng)網(wǎng)絡(luò)對每一處滑動窗進(jìn)行分類。但這類方法算法復(fù)雜度高又不能夠完全實(shí)現(xiàn)端到端的訓(xùn)練和測試。Zhou等[5]提出支持多方向文字定位的EAST網(wǎng)絡(luò),該方法可以檢測各個方向的文字,但是對較長文字檢測效果不佳,感受野不夠長。杜薇[6]等人在驗(yàn)證碼識別研究中指出字符分割有很明顯的弊端,如在文字重疊度高且文字結(jié)構(gòu)不規(guī)范時分割難度較大,準(zhǔn)確率低、效率低等問題。
研究內(nèi)容
綜上,本文立足于“中國街景”,基于CRNN模型對圖像進(jìn)行無分割、端到端的識別。CRNN并不像傳統(tǒng)的字符識別算法那樣對整行的字符串進(jìn)行分割后單字識別,而是直接整行循環(huán)卷積識別。這樣就大大提高了識別正確率[7]。同時,訓(xùn)練集的標(biāo)注也更加簡單,以行為單位進(jìn)行文字標(biāo)注[8]。
CRNN模型對街景圖像中不定長度的字符串進(jìn)行識別,該模型將整行文字作為一個文本單元,對圖像區(qū)域中的文字行進(jìn)行預(yù)測,返回文字行的內(nèi)容,直接端到端識別這個單元內(nèi)的文字序列。首先CNN提取圖像卷積特征,然后RNN進(jìn)一步預(yù)測圖像卷積特征中的序列特征,其中Bi-GRU有效抑制梯度消失或梯度爆炸,Dropout可以防止過擬合,最后引入CTC損失函數(shù)解決訓(xùn)練時字符無法對齊的問題。我們用Python實(shí)現(xiàn)了算法,在飛漿平臺上完成了實(shí)驗(yàn),提交結(jié)果表明該模型具有良好的正確識別率。
CRNN模型
卷積循環(huán)神經(jīng)網(wǎng)絡(luò)(CRNN,?Convolutional?Recurrent?Neural?Network)是一種新型的深度神經(jīng)網(wǎng)絡(luò)模型,將CNN、RNN和CTC三個模塊有機(jī)結(jié)合。CRNN網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
其中卷積層CNN針對背景復(fù)雜的輸入圖像“母嬰用品”,提取圖像卷積特征,得到特征圖(feature?map)。循環(huán)層RNN對CNN輸出的每一幀特征序列進(jìn)行預(yù)測,其中Bi-GRU有效抑制梯度消失或梯度爆炸,Dropout可以防止過擬合,RNN輸出未對齊的預(yù)測標(biāo)簽序列“母-嬰嬰-用用用-品”。最后經(jīng)過損失函數(shù)CTC獲取最大概率,對齊字符并輸出標(biāo)簽序列“母嬰用品”。
CNN
卷積神經(jīng)網(wǎng)絡(luò)(CNN,?Convolutional?Neural?Network)是第一個多層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)學(xué)習(xí)的算法,具有很強(qiáng)的魯棒性和抗干擾性。CNN由輸入層、卷積層、激活層、池化層、全連接層以及輸出層構(gòu)成[9]。
(1)卷積層。CNN的核心,用于提取特征,卷積核對圖像像素進(jìn)行卷積,計(jì)算卷積核和圖像像素之間的點(diǎn)積產(chǎn)生輸出特征圖[10]。
(2)激活層。CRNN采取了ReLu函數(shù)作為激活函數(shù)。ReLu函數(shù)具有寬的激活區(qū)域,
并且單側(cè)移植,稀疏激活,緩解網(wǎng)絡(luò)的過擬合[11]。
(3)池化層。池化層進(jìn)一步細(xì)化特征,保留主要特征,舍棄冗余特征。CRNN采取了最大值池化,它用大小為?2*2?的矩陣傳遞擁有最多特定屬性的像素[12]。
(4)全連接層。全連接層內(nèi)的每一個神經(jīng)元都與之前層每一個神經(jīng)元相連可以接收
到之前層所有的局部信息。
本模型中,輸入圖像為(Height,Width,Channel),其中Height=48,Channel=3。CNN提取輸入圖像的卷積特征圖,維度從3維擴(kuò)充到512維,維度增加有利于表達(dá)特征。
RNN
循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN,?Recurrent?Neural?Network)能夠訪問上下文信息,因此適合序列標(biāo)記任務(wù)[13],廣泛應(yīng)用于自然語言處理(NLP)中。對于本文要解決的中文場景文字識別問題,RNN能夠解決了不定長度中文文字識別的問題。
Bi-GRU。門控循環(huán)單元(GRU,?Gated?Recurrent?Unit)能夠有效捕捉長序列之間的語義關(guān)聯(lián),緩解梯度消失或梯度爆炸現(xiàn)象。GRU的核心結(jié)構(gòu)分為兩個部分:更新門和重置門。雙向門控循環(huán)單元(Bi-GRU,?Bi-directional?Gated?Recurrent?Unit)在隱藏層引入額外的一層神經(jīng)單元,保證了同時處理上下文的能力。本文使用了Bi-GRU模型,在捕捉長序列語義關(guān)聯(lián)時,?能有效抑制梯度消失或爆炸。
Dropout
Dropout是Hinton[14]提出的,訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型時,如果訓(xùn)練樣本較少,容易出現(xiàn)過擬合,Dropout可以暫時移除神經(jīng)網(wǎng)絡(luò)中的單元,進(jìn)而防止過擬合。圖8為沒有用Dropout的標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò)和應(yīng)用了Dropout的神經(jīng)網(wǎng)絡(luò)。
CTC模型。連接時序分類(Connectionist?Temporal?Classification,?CTC)也叫連結(jié)主義時間分類,用來解決輸入序列和輸出序列難以一一對應(yīng)的問題。CTC將循環(huán)層輸出的每幀預(yù)測結(jié)果概率值轉(zhuǎn)換成標(biāo)簽序列進(jìn)行輸出,使得輸入序列和輸出序列對齊。數(shù)學(xué)模型上,CTC可以看作根據(jù)輸入的每幀預(yù)測信息,尋找具有最高概率的標(biāo)簽序列進(jìn)行輸出[15]。CTC的損失函數(shù)[16]定義為:
實(shí)驗(yàn)
本次實(shí)驗(yàn)的“中國街景”圖像來自飛漿平臺,共33萬張圖片,其中21萬張圖片作為訓(xùn)練集,12萬張作為測試集。圖像經(jīng)過一些預(yù)處理,將文字區(qū)域利用仿射變化,等比映射為一張高為48像素的圖片。最終實(shí)驗(yàn)準(zhǔn)確率達(dá)到78.87%。
結(jié)語
本文立足于“中國街景”,基于CRNN模型進(jìn)行無分割、端到端的識別,將街景圖像中的整行不定長度的文字作為一個文本單元,對圖像區(qū)域中的文字行進(jìn)行預(yù)測,返回文字行的內(nèi)容。我們計(jì)劃下一步從參數(shù)上入手,進(jìn)一步提高正確識別率。
參考文獻(xiàn):
[1]YE?Q?X,?DAVID?D.?Text?Detection?and?Recognition?in?Imagery:?A?Survey[J].?IEEE?transactions?on?pattern?analysis?and?machine?intelligence,?2015,?37(7).
[2]趙逸群,劉富,康冰.基于車牌檢測的前方車輛識別方法[J].吉林大學(xué)學(xué)報:信息科學(xué)版,?2019,?37:168.
[3]白翔,楊明錕,石葆光,廖明輝.基于深度學(xué)習(xí)的場景文字檢測與識別[J].中國科學(xué):信息科學(xué),?2018,?48(05):?531-544.
[4]WANG?T,?WU?D?J.?COATES?A,?et?al.?End-to-End?Text?Recognition?with?Convolutional?Neural?Networks.?2012?International?Conference?on?Pattern?Recognition(?ICP?R?2012),?2012.
[5]ZHOU?X,?YAO?C,?WEN?H,?et?al.?EAST:?An?Efficient?and?Accurate?Scene?Text?Detector[J].?2017.
[6]杜薇,周武能.基于CTC模型的無分割文本驗(yàn)證碼識別[J].計(jì)算機(jī)與現(xiàn)代化,?2018(09):?48-51.
[7]陳強(qiáng),吳鍇,柏云濤.基于深度學(xué)習(xí)的車牌識別系統(tǒng)開發(fā)研究[J].現(xiàn)代計(jì)算機(jī),?2019(35):?63-66+80.
[8]LECUN?Y,?BOTTOU?L,?BENGIO?Y,?et?al.?Gradient-based?learning?applied?to?document?recognition[J].?Proceedings?of?the?IEEE,?1998,?86(11):?2278-2324.
[9]Tan?T,?Qian?Y,?Hu?H,?et?al.?Adaptive?very?deep?convolutional?residual?network?for?noise?robust?speech?recognition[J].?IEEE/ACM?Transactions?on?Audio,?Speech,?and?Language?Processing,?2018,?26(8):?1393-1405.
[10]BOUVRIE?J.?Notes?on?convolutional?neural?networks[R].?Cambridge,?MA:?MIT,?2006.
[11]O'SHEA?K,?NASH?R.?An?introduction?to?convolutional?neural?networks[J].?arXiv?preprint?arXiv:?1511.?08458,?2015.
[12]AI?科技大本營.詳解計(jì)算機(jī)視覺五大技術(shù)[J/OL].(2018-04-19)[2019-08-03].https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/80016353.
[13]GRAVES?ALEX.?Supervised?sequence?labelling?with?recurrent?neural?networks[J].?Studies?in?Computational?Intelligence,?2008,?385(5):?37-45.
[14]Hinton?G?E,?Srivastava?N,?Krizhevsky?A,?et?al.?Improving?neural?networks?by?preventing?co-adaptation?of?feature?detectors[J].?Computer?ence,?2012,?3(4):?págs.?212-223.
[15]石鑫,?董寶良,王俊豐.基于CRNN的中文手寫識別方法研究[J].信息技術(shù),?2019,?43(11):?141-144+150.
[16]GRAVES?A,?JAITLY?N.?Towards?end-to-end?speech?recognition?with?recurrent?neural?networks[C].International?conference?on?machine?learning,?2014:?1764-1772.
作者簡介:辜雙佳(1994—??),女,漢族,重慶人,碩士,研究方向:信息安全、深度學(xué)習(xí)。