湯 敬,吾守爾·斯拉木,許苗苗,熊黎劍,王明輝
(1.新疆大學(xué)軟件學(xué)院,新疆 烏魯木齊 830091;2.新疆大學(xué)信息科學(xué)與工程學(xué)院,新疆 烏魯木齊 830046)
中國(guó)作為一個(gè)多民族的國(guó)家,維吾爾文是目前中國(guó)使用比較多的少數(shù)民族語(yǔ)言之一,尤其是新疆作為維吾爾族的主要聚居地,人們平時(shí)的交流、學(xué)習(xí)等方面都會(huì)頻繁地使用維吾爾文,并且有關(guān)維吾爾文的文獻(xiàn)資料也相當(dāng)多,而現(xiàn)有技術(shù)在中文的圖像文字識(shí)別中已經(jīng)廣泛應(yīng)用,相比之下維吾爾文圖像文字識(shí)別的研究相對(duì)落后了很多,因此研究維吾爾文的圖像文字識(shí)別有著重要的意義.
文獻(xiàn)[1-4]針對(duì)維吾爾文圖像識(shí)別是采用對(duì)單詞文字進(jìn)行先切分,然后再來(lái)識(shí)別的思想,分析如何切分更好才能使識(shí)別結(jié)果更優(yōu).其中有關(guān)將單詞不進(jìn)行切分,整體直接識(shí)別的研究相對(duì)來(lái)說(shuō)還是較少.由于維吾爾文文字自身的特點(diǎn),其是粘連型的文字,所以在進(jìn)行切分的時(shí)候具有很大的難度,是過(guò)往切分研究中的難點(diǎn)之一.
隨著深度學(xué)習(xí)在視覺(jué)研究領(lǐng)域所展現(xiàn)出的強(qiáng)大性能,其在英文和中文的圖像文字識(shí)別中也表現(xiàn)非凡,從眾多科研人員展示的實(shí)驗(yàn)研究結(jié)果中也可以看出深度學(xué)習(xí)優(yōu)于傳統(tǒng)方法.所以在維吾爾文圖像文字識(shí)別中使用深度學(xué)習(xí)的方法來(lái)整體識(shí)別文字就可以避免切分.已有的關(guān)于維吾爾文的研究中,賈建忠[5]在研究維吾爾文文字識(shí)別時(shí)采用的神經(jīng)網(wǎng)絡(luò)研究是對(duì)單個(gè)字符的識(shí)別,在單字符的識(shí)別上有著不錯(cuò)的效果.
本文建立了維吾爾文圖像識(shí)別的數(shù)據(jù)集,提出了TRBGA模型.
深度學(xué)習(xí)(deep leaning,DL)來(lái)源于人工神經(jīng)網(wǎng)絡(luò),其概念是由G.E.Hinton等[6]在2006年提出,從此開(kāi)啟了深度學(xué)習(xí)在學(xué)術(shù)界和工業(yè)界的浪潮.深度學(xué)習(xí)是目前最成功的表示學(xué)習(xí)方法,它把表示學(xué)習(xí)的任務(wù)分成幾個(gè)小的目標(biāo),可以先從原始的數(shù)據(jù)中學(xué)習(xí)低級(jí)表示,之后從低級(jí)表示學(xué)習(xí)到高級(jí)表示.這樣,機(jī)器就更容易自主地將這些小目標(biāo)學(xué)好,從而完成最終學(xué)習(xí)任務(wù),并且省去了人工選取過(guò)程[7].目前深度學(xué)習(xí)在算法、模型、硬件設(shè)施與開(kāi)發(fā)社區(qū)都取得了重要的突破[8],解決了之前神經(jīng)網(wǎng)絡(luò)難于優(yōu)化、應(yīng)用有限等問(wèn)題.目前深度學(xué)習(xí)在計(jì)算機(jī)視覺(jué)領(lǐng)域大放異彩,其中卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)、深度殘差網(wǎng)絡(luò)、密集卷積網(wǎng)絡(luò)等常被使用.
1.2.1 卷積神經(jīng)網(wǎng)絡(luò)
卷積神經(jīng)網(wǎng)絡(luò)(CNN)的英文全稱(chēng)是“Convolutional Neural Network”.而神經(jīng)網(wǎng)絡(luò)的靈感來(lái)自于生物神經(jīng)網(wǎng)絡(luò)的功能和結(jié)構(gòu),并以此提出一種計(jì)算模型.CNN可以從端到端的通過(guò)傳統(tǒng)的方法訓(xùn)練并學(xué)習(xí)圖像的特征[9].CNN網(wǎng)絡(luò)最早可以追溯到1989年[10].近些年它在圖像分類(lèi)的問(wèn)題上獲得了成功.目前,CNN在圖像識(shí)別領(lǐng)域也有著廣泛的應(yīng)用.CNN作為一種人工神經(jīng)網(wǎng)絡(luò),其結(jié)構(gòu)特征主要由輸入層、卷積層、池化層、全連接層組成,其中卷積層主要是提取特征,池化層下采樣,全連接層用來(lái)做分類(lèi).其結(jié)構(gòu)如圖1所示.得益于現(xiàn)在GPU所提供的強(qiáng)大算力支撐以及網(wǎng)絡(luò)中加入激活函數(shù)RuLu,原來(lái)難于處理的大量數(shù)據(jù),現(xiàn)在處理起來(lái)變得容易很多,計(jì)算時(shí)間大幅減少、收斂速度也更快.
圖1 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
1.2.2 循環(huán)(遞歸)神經(jīng)網(wǎng)絡(luò)
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks,RNN)[11]中神經(jīng)元的輸出可以在下一個(gè)時(shí)間戳直接作用到自身,這樣可以在普通的CNN或全連接網(wǎng)絡(luò)里解決,由于每層神經(jīng)元的信號(hào)只能向上一層傳播導(dǎo)致樣本的處理在各個(gè)時(shí)刻是獨(dú)立的,以及全連接的DNN會(huì)因?yàn)闀r(shí)間序列上的變化而無(wú)法對(duì)其進(jìn)行建模等問(wèn)題.RNN被設(shè)計(jì)出來(lái)的目的是用來(lái)處理序列相關(guān)的數(shù)據(jù),其核心思想就是將當(dāng)前時(shí)刻的輸入與上一個(gè)時(shí)刻的輸入一起作用于當(dāng)前時(shí)刻輸入的計(jì)算,這樣隱藏層之間的節(jié)點(diǎn)就變得有連接了,而傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)每層之間的節(jié)點(diǎn)是無(wú)連接的.與CNN網(wǎng)絡(luò)通過(guò)空間上參數(shù)共享從而減少參數(shù)的思想不同,RNN的參數(shù)共享體現(xiàn)在時(shí)間序列上.目前RNN在語(yǔ)言建模、語(yǔ)音識(shí)別[12]、機(jī)器翻譯[13]、生成圖像描述、視頻標(biāo)記等領(lǐng)域都有很好的應(yīng)用.RNN結(jié)構(gòu)示意圖如圖2所示.
1.2.3 殘差網(wǎng)絡(luò)
理論上講,神經(jīng)網(wǎng)絡(luò)層數(shù)越多能提取到的特征信息就越豐富,也就越具有語(yǔ)義信息.在計(jì)算機(jī)視覺(jué)領(lǐng)域,兼有分辨率信息和語(yǔ)義信息的網(wǎng)絡(luò)才能獲得更好的性能,單靠淺層網(wǎng)絡(luò)提取的分辨率信息獲取的效果會(huì)降低.采用堆積神經(jīng)網(wǎng)絡(luò)層數(shù)來(lái)提取特征應(yīng)該會(huì)有好的性能,但實(shí)際情況卻與之相反,深層的網(wǎng)絡(luò)結(jié)構(gòu)不僅會(huì)出現(xiàn)性能退化,而且?guī)?lái)了梯度消失或爆炸的問(wèn)題,通過(guò)初始化數(shù)據(jù)和正則化等傳統(tǒng)方法解決了梯度的問(wèn)題.
圖2 RNN結(jié)構(gòu)
文獻(xiàn)[14]提出來(lái)的殘差網(wǎng)絡(luò)(ResNet)在提升性能的同時(shí)也很好地解決了加深神經(jīng)網(wǎng)絡(luò)層數(shù)帶來(lái)的缺陷.ResNet的核心思想是引入了身份近路連接(IdentityShortcut Connention),也就是淺層特征和深層特征的一個(gè)簡(jiǎn)單相加,將一個(gè)跳躍(skip connection)添加到標(biāo)準(zhǔn)前饋卷積網(wǎng)絡(luò)來(lái)繞過(guò)一些中間層,實(shí)際效果相當(dāng)好,在保持原有網(wǎng)絡(luò)性能的同時(shí),通過(guò)加深網(wǎng)絡(luò)層數(shù)來(lái)提高網(wǎng)絡(luò)性能.目前殘差網(wǎng)絡(luò)已經(jīng)在計(jì)算機(jī)視覺(jué)[15]等領(lǐng)域得到了廣泛的使用.其結(jié)構(gòu)如圖3所示.
圖3 殘差網(wǎng)絡(luò)結(jié)構(gòu)
1.2.4 密集卷積網(wǎng)絡(luò)
加深的網(wǎng)絡(luò)可以帶來(lái)豐富的表達(dá),從AlexNet和VGG等可以看出研究人員在深度問(wèn)題上一直在研究.但更深的網(wǎng)絡(luò)又不可避免帶來(lái)梯度消失問(wèn)題,隨后ResNet、Highway Networks、Stochastic depth[16-18]等網(wǎng)絡(luò)都是針對(duì)該問(wèn)題提出的,盡管這些網(wǎng)絡(luò)結(jié)構(gòu)不同,但是它們的核心點(diǎn)是相似的,都是構(gòu)建一個(gè)從早期層到后期層的短路徑.
G.Huang等[19]提出的密集卷積網(wǎng)絡(luò)(DenseNet)借鑒了ResNet的設(shè)計(jì)理念,并在此基礎(chǔ)上推陳出新.為了保證網(wǎng)絡(luò)之間各層能有最大的信息流動(dòng)來(lái)進(jìn)行更加有效地訓(xùn)練,DenseNet采用了一種更為密集的連接方法,通過(guò)前向傳播將各層和其他層密集地連接起來(lái).在普通卷積神經(jīng)網(wǎng)絡(luò)里,網(wǎng)絡(luò)有多少層就有多少連接,其模式是一對(duì)一的,在DesnseNet網(wǎng)絡(luò)中就不一樣了,各層會(huì)和所有的其他層進(jìn)行連接,L層的DenseNet網(wǎng)絡(luò)將有L(L+1)/2個(gè)連接,對(duì)于每層來(lái)說(shuō),在它前面的各層的特征都將作為它的輸入,同時(shí)它的特征也將會(huì)和它前面的層一起作為其后各層的輸入.DenseNet網(wǎng)絡(luò)結(jié)構(gòu)有效地緩解了梯度上的問(wèn)題,網(wǎng)絡(luò)層間特征的傳播得以加強(qiáng),支持特征重用,同時(shí)也在很大程度上減少了參數(shù)量,其結(jié)構(gòu)如圖4所示.
圖4 密集卷積網(wǎng)絡(luò)結(jié)構(gòu)
維吾爾語(yǔ)的圖像文字的識(shí)別過(guò)程主要步驟是先對(duì)輸入進(jìn)來(lái)的圖像進(jìn)行特征提取,在經(jīng)過(guò)循環(huán)層來(lái)學(xué)習(xí)上下文的語(yǔ)義信息,最后通過(guò)CTC或者Attention生成最終的標(biāo)簽.如圖5所示.
圖5 識(shí)別模型結(jié)構(gòu)示意圖
CRNN(Convolutional Recurrent Neural Network)[20]是一種端到端的模型,該網(wǎng)絡(luò)結(jié)合了DCNN和RNN 2個(gè)模型,可以用來(lái)對(duì)長(zhǎng)度不固定的圖像進(jìn)行序列識(shí)別.在該模型出來(lái)之前傳統(tǒng)的識(shí)別方式都是先切分,然后再來(lái)識(shí)別的,用來(lái)識(shí)別的算法不僅煩瑣而且可讀性也很差,同時(shí)存在著許多的問(wèn)題無(wú)法解決,比如粘連型的文字.CNN在提取圖像表征特征上表現(xiàn)優(yōu)異,RNN在處理序列相關(guān)的問(wèn)題上具有優(yōu)勢(shì),這樣將兩者結(jié)合起來(lái)的神經(jīng)網(wǎng)絡(luò)在需要對(duì)有時(shí)序的數(shù)據(jù)建模上表現(xiàn)驚人,因此不僅在音頻、自然語(yǔ)言等領(lǐng)域得到了廣泛應(yīng)用,在文本序列識(shí)別研究的領(lǐng)域也帶來(lái)了本質(zhì)革新.
CRNN模型由3部分網(wǎng)絡(luò)結(jié)構(gòu)組成,分別是卷積層、循環(huán)層以及轉(zhuǎn)錄層(CTC)[21].
卷積層部分通過(guò)普通神經(jīng)網(wǎng)絡(luò)中的卷積層和最大池化層來(lái)提取輸入進(jìn)來(lái)的圖像的序列信息,經(jīng)過(guò)該層后的圖像將被統(tǒng)一到相同的高度,也就是在空間上對(duì)圖片進(jìn)行了保序和壓縮處理,相當(dāng)于在水平方向上,圖像被切成了若干片,然后從這些切片中提取出相對(duì)應(yīng)的特征向量作為下一步循環(huán)層的輸入.雖然卷積學(xué)習(xí)到的是每一列上的特征,但是這些特征與輸入圖像的一塊區(qū)域是相對(duì)應(yīng)的,也就是卷積網(wǎng)絡(luò)的感受野之間是重疊的,這樣就有了上下文有關(guān)的信息,為后面的RNN學(xué)習(xí)上下文特性提供了可能.
循環(huán)層部分使用一個(gè)雙向雙層的LSTM結(jié)構(gòu),LSTM是RNN的變形,其在學(xué)習(xí)序列有關(guān)的上下文信息上表現(xiàn)出色,因此圖像識(shí)別時(shí)加入LSTM使得模型變得更穩(wěn)定和有效.在網(wǎng)絡(luò)訓(xùn)練中,RNN可以將誤差值再反向傳給卷積層,這樣,卷積層和循環(huán)層就可以一起訓(xùn)練.另外RNN可以訓(xùn)練并學(xué)習(xí)長(zhǎng)度不定的序列.
CTC層的工作是將RNN層每一幀的預(yù)測(cè)轉(zhuǎn)成序列標(biāo)簽,在模擬動(dòng)態(tài)規(guī)劃的過(guò)程找出最高概率的序列標(biāo)簽.CTC中加入了空白類(lèi),通過(guò)一定的映射法則去除重復(fù)的序列,得到最終目標(biāo).其示意圖如圖6所示.
圖6 CTC轉(zhuǎn)錄示意圖
本文中測(cè)試運(yùn)行了CRNN網(wǎng)絡(luò),其在維吾爾語(yǔ)識(shí)別中也有著不錯(cuò)的表現(xiàn).
TPS的主要功能是將輸入進(jìn)來(lái)的圖形X轉(zhuǎn)換成歸一化的圖形X′.傳統(tǒng)的池化方式(Max Pooling/Average Pooling)所帶來(lái)卷積網(wǎng)絡(luò)的位移不變性和旋轉(zhuǎn)不變性只是局部的和固定的,而且池化并不擅長(zhǎng)處理其他形式的仿射變換.TPS是一種基于樣條的數(shù)據(jù)插值和平滑技術(shù),是空間變換網(wǎng)絡(luò)(STN)[22]的一種變體形式,而TPS非常強(qiáng)大的一點(diǎn)是它可以近似所有和生物有關(guān)的變形.因此,使用TPS可以在圖像上找到多個(gè)基準(zhǔn)點(diǎn),然后基于這些基準(zhǔn)點(diǎn)進(jìn)行TPS轉(zhuǎn)換成我們所期望的矩形,從而減輕網(wǎng)絡(luò)的學(xué)習(xí)負(fù)擔(dān).
根據(jù)實(shí)驗(yàn)的需要選擇適合實(shí)驗(yàn)的網(wǎng)絡(luò),本文選擇了用ResNet來(lái)提取特征,并做了層數(shù)上的調(diào)整,采用了33層的ResNet提升網(wǎng)絡(luò)的識(shí)別性能.
本文的序列層采用了和CRNN模型一樣的BiLSTM,另外稍微做了調(diào)整,將第一層的LSTM換成了GRU層,GRU也是RNN的變體形式.
預(yù)測(cè)模型部分的主要任務(wù)是將輸入H預(yù)測(cè)出一個(gè)字符的序列Y(Y=y,y,…).
本文的預(yù)測(cè)選擇是基于Attention的模型,從文獻(xiàn)[23]所做的大量對(duì)比實(shí)驗(yàn)可以看出,在提升識(shí)別的性能上面Attention的模型要優(yōu)于基于CTC[24]的模型,所以在實(shí)驗(yàn)中直接選用了Attention的模型作為該階段的預(yù)測(cè)模型[25],通過(guò)Attention來(lái)自動(dòng)捕獲輸入進(jìn)來(lái)的序列的信息流,并以此來(lái)預(yù)測(cè)出字符的輸出序列.
在該Attention中用了一層基于LSTM的注意力機(jī)制的解碼器.在第t步時(shí),LSTM解碼器將預(yù)測(cè)一個(gè)輸出
yt=Softmax(WoSt+bo).
(1)
其中:Wo和bo是訓(xùn)練參數(shù),St是LSTM解碼器隱藏層在t時(shí)刻的狀態(tài).其中
St=LSTM(yt-1,ct,St-1).
(2)
式中ct是權(quán)重H(H=h1,…)的和,h來(lái)自于前面的網(wǎng)絡(luò).其中
(3)
式中的αti是attention的權(quán)重,計(jì)算公式為
(4)
eti的計(jì)算公式為
eti=vTtanh(Wst-1+Vhi+b).
(5)
式中v,W,V和b都是網(wǎng)絡(luò)訓(xùn)練中的參數(shù),該LSTM隱藏層使用的維數(shù)設(shè)置為256.
實(shí)驗(yàn)訓(xùn)練中,訓(xùn)練數(shù)據(jù)集用TD= {Xi,Yi}來(lái)表示,其中Xi表示用來(lái)訓(xùn)練的圖像,Yi表示訓(xùn)練的圖像對(duì)應(yīng)的單詞標(biāo)簽.公式為
(6)
該目標(biāo)函數(shù)通過(guò)圖像及其對(duì)應(yīng)標(biāo)注的單詞標(biāo)簽來(lái)計(jì)算成本,從而進(jìn)行端到端的模型訓(xùn)練.
為了保證實(shí)驗(yàn)各項(xiàng)環(huán)境的一致性,本文所有的結(jié)果都是在相同的訓(xùn)練數(shù)據(jù)集、驗(yàn)證數(shù)據(jù)集、測(cè)試數(shù)據(jù)集以及計(jì)算性能上完成的.
本文是在CPU Intel Xeon 1.70 GHz、12 GB的GPU內(nèi)存、Ubuntu18.04系統(tǒng)下搭建Pytorh的環(huán)境下進(jìn)行的.實(shí)驗(yàn)環(huán)境以及配置參數(shù)如表1所示.
表1 實(shí)驗(yàn)環(huán)境配置參數(shù)
針對(duì)目前用于維吾爾文訓(xùn)練的數(shù)據(jù)集不足,難以達(dá)到深度學(xué)習(xí)訓(xùn)練的數(shù)據(jù)量.首先是收集整理維吾爾文圖像文字的相關(guān)數(shù)據(jù),為此從兩方面進(jìn)行了數(shù)據(jù)集的收集工作.
(1) 真實(shí)樣本的采集.在新疆的天山網(wǎng)站上收集了大概50份的維吾爾語(yǔ)的新聞,然后通過(guò)腳本去除重復(fù)的單詞以及符號(hào)寫(xiě)入word文檔,一共采集了9 379個(gè)維吾爾文單詞.然后通過(guò)打印機(jī)打印出來(lái)后用掃描儀掃入電腦,通過(guò)工具以單詞為單位裁剪出可用于訓(xùn)練的圖像.其中訓(xùn)練集7 397張、驗(yàn)證集991張、測(cè)試集991張.如圖7所示.
圖7 真實(shí)掃描體數(shù)據(jù)
(2) 合成數(shù)據(jù)集.盡管訓(xùn)練集采用真實(shí)數(shù)據(jù)集對(duì)實(shí)驗(yàn)的提升有著極大的幫助,但考慮到真實(shí)數(shù)據(jù)集的制作需要耗費(fèi)大量的時(shí)間和人力,所以采用真實(shí)樣本加合成樣本的方案有其必要性,根維吾爾文由32個(gè)字母組成,有的字母的變體形式多達(dá)4種,所以形式一共有128種.本文中一個(gè)字符的多個(gè)變形仍視為該字符本身.因?yàn)楹痛硗粋€(gè)字母,計(jì)算機(jī)沒(méi)有做區(qū)分,所以顯示的是33個(gè)字符.之后通過(guò)腳本以?huà)呙梵w圖片為背景,在上面合成隨機(jī)的維吾爾文字符生成了10萬(wàn)張的圖片,并請(qǐng)維吾爾族的同學(xué)做了后續(xù)的檢查后,將合成數(shù)據(jù)集與真實(shí)樣本的訓(xùn)練集一起作為本實(shí)驗(yàn)的訓(xùn)練集,一共是107 395張圖像.合成數(shù)據(jù)如圖8所示.
圖8 合成數(shù)據(jù)示意圖
在該數(shù)據(jù)集上分別使用CRNN模型、RBA(ResNet+BiLSTM+attn)、CLOVA-AI v2(TPS+ResNet(29)+BiLSTM+attn)以及TRBGA(TPS+ResNet(33)+BiLSTM+GRU+attn)模型做了對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表2所示.
表2 實(shí)驗(yàn)結(jié)果
從表2中可以看出神經(jīng)網(wǎng)絡(luò)在維吾爾文圖像文字識(shí)別中有著優(yōu)異的表現(xiàn),其中我們提出的模型TRBGA準(zhǔn)確率達(dá)到了99.395%,是目前幾個(gè)模型中最優(yōu)的算法.
本文對(duì)維吾爾文圖像文字識(shí)別進(jìn)行了深入的研究,收集制作維吾爾圖像識(shí)別數(shù)據(jù)集和改進(jìn)維吾爾圖像文字識(shí)別的算法.其中構(gòu)建的維吾爾文圖像文字?jǐn)?shù)據(jù)集對(duì)后續(xù)的維吾爾文識(shí)別研究有積極的促進(jìn)意義,提出的TRBGA模型與主流的網(wǎng)絡(luò)做了對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果顯示所提出的識(shí)別準(zhǔn)確率達(dá)到了99.395%,優(yōu)于傳統(tǒng)模型算法.