李新煒 殷韶坤
摘要
在本論文中使用了深度學(xué)習(xí)的DenseNet網(wǎng)絡(luò)及CTC進(jìn)行了深度學(xué)習(xí),用來實(shí)現(xiàn)漢字印刷體OCR的功能,同時(shí)與傳統(tǒng)OCR開源軟件Tesseract進(jìn)行了性能對比,證明了深度學(xué)習(xí)的效果好,速度快的優(yōu)勢,但又暴露了深度學(xué)習(xí)需要的較多數(shù)據(jù)進(jìn)行訓(xùn)練的缺點(diǎn)。
【關(guān)鍵詞】深度學(xué)習(xí) DenseNet TensorflowTesseract
1引言
本文會(huì)通過在印刷體文字OCR領(lǐng)域?qū)煞N技術(shù)進(jìn)行一些對比,驗(yàn)證、討論深度學(xué)習(xí)對比傳統(tǒng)機(jī)器學(xué)習(xí)有什么優(yōu)點(diǎn),深度學(xué)習(xí)未來是否會(huì)完全取代其他的人工智能算法。
2算法介紹
2.1機(jī)器學(xué)習(xí)與深度學(xué)習(xí)
機(jī)器學(xué)習(xí)是經(jīng)由各種算法用大量的數(shù)據(jù)來“訓(xùn)練”讓機(jī)器實(shí)現(xiàn)人工智能的一種方式。利用算法來解析現(xiàn)實(shí)中的數(shù)據(jù)做出預(yù)測和做出判斷后再從中學(xué)習(xí)并不斷完善的過程。這與傳統(tǒng)的使用固定編碼來解決特定任務(wù)的軟件程序是不同的。
深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的其中一種技術(shù),其訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)也會(huì)用到有、無監(jiān)督的方法。但由于近年來該領(lǐng)域發(fā)展迅猛,一些獨(dú)有的學(xué)習(xí)手段相繼被提出,因此越來越多的人將其單獨(dú)看作一種學(xué)習(xí)的方法。
2.2 DenseNet
DenseNet是一種具有密集連接的CNN。DenseNet有以下長處:首先如要在ImageNer分類數(shù)據(jù)集上達(dá)到類似的準(zhǔn)確率,DenseNer網(wǎng)絡(luò)結(jié)構(gòu)比ResNet節(jié)省了一半的參數(shù)量。其次只需要ResNet算法計(jì)算量的50%左右,DenseNet算法就可以達(dá)到與ResNet相當(dāng)?shù)木?。最后該算法有較強(qiáng)的抗過擬合能力,密集連接具備正則化效果,極大的降低了對訓(xùn)練集數(shù)量較少的任務(wù)的過擬合量。
2.3 Tesseract與Tensorflow
Tesseract是一個(gè)開源光學(xué)字符識別引擎,它是基于Apache許可證的自由軟件,支持多種的操作系統(tǒng)。由于其Tesseract4.0版本應(yīng)用了基于深度學(xué)習(xí)的算法,因此在這里使用的是之前的版本用來做對比試驗(yàn)。Tensorflow屬于第二代人工智能學(xué)習(xí)系統(tǒng),由谷歌公司研發(fā)。它可用于語音識別或圖像識別等多項(xiàng)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)領(lǐng)域,在本文中主要通過使用Tensorflow來進(jìn)行深度學(xué)習(xí)訓(xùn)練用來對比識別效果。
3算法實(shí)現(xiàn)
3.1數(shù)據(jù)集的準(zhǔn)備
首先選擇基于TensorFlow通過DenseNet和CTC進(jìn)行文字識別的訓(xùn)練,其中數(shù)據(jù)利用了中文語料庫,使用模糊、拉伸、灰度、字體等轉(zhuǎn)變方式隨機(jī)生成了大量圖片。圖片分辨率統(tǒng)一為280x32,共約364萬張圖片,按照99:1劃分成訓(xùn)練集和驗(yàn)證集,每個(gè)樣本固定10個(gè)字符,字符隨機(jī)截取自語料庫中的句子。
3.2基于TensorFlow對算法的實(shí)現(xiàn)
3.2.1通過CTPN進(jìn)行文本檢測
用卷積神經(jīng)網(wǎng)絡(luò)VGG16取前五層得到一個(gè)多層矩形陣列的特征圖,在這個(gè)特征圖的每層里都取一個(gè)3*3的窗口特征量,并且讓這個(gè)窗口特征量滑動(dòng)。向一個(gè)雙向的LSTM神經(jīng)網(wǎng)絡(luò)輸入得到的特征量,得到一個(gè)結(jié)果為寬度x256長度的輸出,然后配合長度為512的全連接層開始輸出。然后能得到一個(gè)密集預(yù)測的文本結(jié)果,并用一個(gè)標(biāo)準(zhǔn)的非極大值抑制算法來處理該結(jié)果。最后將大量的文本段利用基于圖的文本行構(gòu)造算法組合成文本行。
3.2.2通過DenseNet和CTC進(jìn)行文字識別
DenseNet網(wǎng)絡(luò)選用Relu作為激活函數(shù),使用了3個(gè)Dense Block層進(jìn)行演算,各個(gè)Dense Block之間通過Transition結(jié)構(gòu)連接在一起組成的DenseNet網(wǎng)絡(luò),配合CTC loss進(jìn)行訓(xùn)練并得出最終的數(shù)據(jù)模型。該算法的數(shù)據(jù)經(jīng)由DenseBlock層處理后,進(jìn)行卷積操作然后傳送給Transition結(jié)構(gòu)進(jìn)行參數(shù)整合規(guī)范,通過池化減少參數(shù)后傳送給下層的Dense Block結(jié)構(gòu),從而達(dá)到較高的精度。
4與傳統(tǒng)的OCR軟件Tesseract效果進(jìn)行對比
4.1使用兩種方法對數(shù)據(jù)集識別效果對比
隨機(jī)抽取1000張測試集圖片,分別進(jìn)行識別測試。測試結(jié)果如表1所示。
4.2準(zhǔn)確率接近情況下的資源消耗對比
對Tesseract訓(xùn)練識別天貓工商執(zhí)照圖片,使用498張?jiān)瓐D,通過人工標(biāo)注后進(jìn)行訓(xùn)練的方式,訓(xùn)練后準(zhǔn)確率達(dá)到96.8%,此時(shí)使用深度學(xué)習(xí)方式識別此類圖片準(zhǔn)確率下降至97.1%,準(zhǔn)確率相近。
5結(jié)論
顯然通過深度學(xué)習(xí)訓(xùn)練后的模型識別效果要遠(yuǎn)好于Tesseract的效果,但是并不能說明“深度學(xué)習(xí)最終會(huì)淘汰其他傳統(tǒng)機(jī)器學(xué)習(xí)算法”。目前深度學(xué)習(xí)在計(jì)算機(jī)視覺和自然語言處理領(lǐng)域的應(yīng)用已經(jīng)遠(yuǎn)超過傳統(tǒng)機(jī)器學(xué)習(xí)的方法。雖然深度學(xué)習(xí)方法在機(jī)器學(xué)習(xí)領(lǐng)域非常熱門,但通過本文的比較測試可以發(fā)現(xiàn)深度學(xué)習(xí)目前還存在兩個(gè)問題。首先,深度學(xué)習(xí)需要大量的數(shù)據(jù)進(jìn)行訓(xùn)練,才能表現(xiàn)出它的優(yōu)勢,面對小樣本的問題,深度學(xué)習(xí)方法的效果就會(huì)差強(qiáng)人意,而傳統(tǒng)的機(jī)器學(xué)習(xí)方法就可以處理;其次,在個(gè)別領(lǐng)域只需要采用傳統(tǒng)的機(jī)器學(xué)習(xí)方法,便可以較好的解決問題,無需使用復(fù)雜的深度學(xué)習(xí)方法。
參考文獻(xiàn)
[1] Graves A, Gomez F. Connectionisttemporal classification: labellingunsegmented sequence data withrecurrent neural networks[C].International Conference on MachineLearning.ACM,2006.
[2]降小龍,基于語義結(jié)構(gòu)和視覺焦點(diǎn)的場景目標(biāo)識別[D].中北大學(xué),2016.
[3]吳杰.基于卷積神經(jīng)網(wǎng)絡(luò)的行為識別研究[D].電子科技大學(xué),2015.