鞠云霞 王希常 陳祥喜 鄭偉
摘 要:文章針對(duì)光學(xué)標(biāo)記閱讀(OMR)識(shí)別技術(shù)中存在的背景虛化和復(fù)雜操作導(dǎo)致加大人力勞動(dòng)的問題,提出一種基于TensorFlow平臺(tái)的卷積神經(jīng)(CNN)模型架構(gòu)。以提高OMR識(shí)別技術(shù)為目的,涵蓋深度學(xué)習(xí)開源工具TensorFlow與神經(jīng)網(wǎng)絡(luò)研究領(lǐng)域,以基于TensorFlow框架構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)為研究對(duì)象,運(yùn)用TensorFlow學(xué)習(xí)系統(tǒng)構(gòu)建神經(jīng)網(wǎng)絡(luò)模型,實(shí)現(xiàn)對(duì)OMR識(shí)別問題的研究。文章利用TensorFlow對(duì)OMR輸入數(shù)據(jù)進(jìn)行預(yù)處理,得到TFRecord文件,再在CNN神經(jīng)網(wǎng)絡(luò)架構(gòu)基礎(chǔ)上搭建訓(xùn)練模型實(shí)現(xiàn)對(duì)OMR答題卡數(shù)據(jù)的識(shí)別,得到標(biāo)準(zhǔn)數(shù)據(jù)。并運(yùn)用視圖工具TensorBoard來有效顯示TensorFlow模型在運(yùn)行過程中的計(jì)算流圖以及模型參數(shù)隨著訓(xùn)練的變化。
關(guān)鍵詞:OMR;TensorFlow;CNN
光學(xué)符號(hào)閱讀器(Optical Mark Reader,OMR)由美國科學(xué)家20世紀(jì)60年代發(fā)明,成為國際流行的標(biāo)準(zhǔn)化符號(hào)、表格數(shù)據(jù)讀取模式,在大規(guī)模信息采集中廣泛使用。目前,在OMR閱卷技術(shù)中,主要采用傳統(tǒng)的圖像增強(qiáng)處理、圖像分割、特征提取、統(tǒng)計(jì)分類模型等技術(shù),在出現(xiàn)背景分離不好、污點(diǎn)、用筆較輕等問題時(shí),其識(shí)別率明顯低于人類,也容易出現(xiàn)誤識(shí)和拒識(shí),需要使用大量人力進(jìn)行人工校驗(yàn)。如何實(shí)現(xiàn)填涂點(diǎn)的準(zhǔn)確識(shí)別,減輕人工校驗(yàn)的繁重勞動(dòng),是考試技術(shù)中急需解決的問題,而從現(xiàn)在技術(shù)發(fā)展動(dòng)態(tài)來看,人工智能技術(shù)是解決這個(gè)問題的最優(yōu)可行的方案[1-2]。
TensorFlow作為一個(gè)開源的深度學(xué)習(xí)平臺(tái),實(shí)現(xiàn)了對(duì)卷積神經(jīng)網(wǎng)絡(luò)的良好支持。通過卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN),ImageNet數(shù)據(jù)集[3]中的分類錯(cuò)誤率在2012年降低了15.3%[4],效果遠(yuǎn)遠(yuǎn)高于傳統(tǒng)手工特征算法,如SIFI和LBP方法。本文在OMR閱卷系統(tǒng)識(shí)別問題的基礎(chǔ)上,將深度學(xué)習(xí)模型中的數(shù)字圖像處理技術(shù)應(yīng)用到網(wǎng)上閱卷的試卷處理中,并通過TensorFlow平臺(tái)的CNN卷積神經(jīng)網(wǎng)絡(luò)模型來研究OMR涂點(diǎn)識(shí)別問題。通過試驗(yàn)結(jié)果表明,基于神經(jīng)網(wǎng)絡(luò)模型識(shí)別的結(jié)果達(dá)到了99.9%的準(zhǔn)確率,驗(yàn)證了該網(wǎng)絡(luò)模型和框架對(duì)解決OMR識(shí)別問題的有效性。
1 相關(guān)原理
1.1 TensorFlow框架
TensorFlow是谷歌開源的一個(gè)計(jì)算機(jī)框架,該計(jì)算框架可以很好地實(shí)現(xiàn)各種深度學(xué)習(xí)算法,實(shí)現(xiàn)了對(duì)卷積神經(jīng)網(wǎng)絡(luò)的良好支持。本文汲取TensorFlow的優(yōu)越性,將其應(yīng)用到了本實(shí)驗(yàn)中去,以CNN構(gòu)建網(wǎng)絡(luò)結(jié)構(gòu),用TensorFlow做支撐,來解決OMR圖像識(shí)別的實(shí)用問題。
TensorFlow框架在使用過程中,為了弱化與圖像識(shí)別無關(guān)的因素,我們將輸入數(shù)據(jù)進(jìn)行統(tǒng)一的數(shù)據(jù)預(yù)處理。統(tǒng)一輸入數(shù)據(jù)的格式,有助于在之后的模型中更加方便地處理。本研究使用TFRecord數(shù)據(jù)格式將不同格式的原始圖像數(shù)據(jù)進(jìn)行統(tǒng)一處理。而復(fù)雜的圖像處理函數(shù)有可能降低訓(xùn)練的速度。為了加速數(shù)據(jù)預(yù)處理的處理過程,本研究利用TensorFlow多線程數(shù)據(jù)預(yù)處理技術(shù)。
1.2 CNN卷積神經(jīng)網(wǎng)絡(luò)
CNN模型的設(shè)計(jì)和訓(xùn)練是取得CNN高性能的關(guān)鍵步驟。CNN結(jié)構(gòu)主要是由多個(gè)卷積層、池化層、全連接層構(gòu)成。通常卷積層是將輸入圖像或者特征圖做卷積,利用滑動(dòng)窗口將圖片或者特征圖與卷積核做卷積,得到多個(gè)特征圖;池化層將得到的特征圖做一個(gè)下采樣(降維),循環(huán)進(jìn)行直至得到1×1尺寸的特征圖,得到圖像的特征向量。隔層特征圖對(duì)應(yīng)的特征是不一樣的,第一層是特征圖對(duì)應(yīng)圖像的顏色或灰度值特征,第二層對(duì)應(yīng)著邊緣特征,第三層對(duì)應(yīng)著幾何紋理特征等[5]。
1.2.1 卷積
卷積神經(jīng)網(wǎng)絡(luò)中的卷積層是通過函數(shù)將圖片映射成特征向量,根據(jù)其對(duì)應(yīng)的非線性映射關(guān)系,加入非線性激活函數(shù),使網(wǎng)絡(luò)模型得到學(xué)習(xí)非線性特征變換的能力。卷積原理如下:
其中:f(x)是非激活函數(shù);ki,j是卷積核,Tjl(x,y)和Tjl+1(x,y)是連續(xù)的特征圖。其中需要人為設(shè)定卷積核大小是K×K,卷積的步長是S,且小于K。通常設(shè)為1。bjl+1是指偏移量,由訓(xùn)練獲得。
1.2.2 非線性激活函數(shù)
在線性模型中,模型的輸出是輸入的加權(quán)和,若一個(gè)模型的輸出和輸入符合以下條件,那一定為線性模型:
其中:wi,b∈R為模型的參數(shù)。線性模型最大的特點(diǎn)是任意線性模型的組合仍然是線性模型。然而CNN的特征提取過程是將輸入數(shù)據(jù)映射成一個(gè)高維度的特征向量,這一映射關(guān)系往往需要非線性變換。因此,在CNN卷積層后添加非線性激活函數(shù),可以將輸入數(shù)據(jù)轉(zhuǎn)換為非線性模型特征向量,更好地實(shí)現(xiàn)提取特征能力。常見的非線性激活函數(shù)有sigmoid函數(shù):
本文為了達(dá)到更好的分類結(jié)果,采用非線性激活函數(shù)引用了Relu函數(shù)。
1.2.3 池化
池化層在卷積層之后,每一個(gè)特征面對(duì)應(yīng)于其上一層的一個(gè)特征面,不會(huì)改變特征面的個(gè)數(shù),即池化層不會(huì)改變矩陣的深度。但池化層可以縮小矩陣的大小,通過池化可以進(jìn)一步縮小最后全鏈接層中節(jié)點(diǎn)的個(gè)數(shù),進(jìn)而達(dá)到減少整個(gè)神經(jīng)網(wǎng)絡(luò)中參數(shù)的目的。池化分為平均池化和最大值池化,公式如下[6]:
其中:P表示池化結(jié)果,S是指池化中滑動(dòng)窗口的步長大小,K表示卷積核大小或者是需在特征圖K×K鄰域內(nèi)進(jìn)行池化。
1.2.4 正則化和邏輯回歸
丟失數(shù)據(jù)技術(shù)(Dropout)是常在全鏈接層應(yīng)用的正則化技術(shù),Dropout技術(shù)是由Hinton提出來的[7]。當(dāng)隱藏層中有大量神經(jīng)元時(shí),就會(huì)導(dǎo)致過于表現(xiàn)的模型,此時(shí)就會(huì)發(fā)生過擬合,當(dāng)模型的參數(shù)數(shù)量超過輸入的維度時(shí),更容易產(chǎn)生過擬合。因此,為了避免出現(xiàn)過擬合現(xiàn)象,在本模型中,我們采用Dropout,它會(huì)在softmax層前先調(diào)用tf.nn.dropout函數(shù)。
邏輯回歸又稱logistic回歸分析,是一種廣義的線性回歸分析模型,常用作二分類,多分類可采用Softmax回歸算法,該算法通過對(duì)指定的訓(xùn)練數(shù)據(jù)同個(gè)標(biāo)簽的像素加權(quán)平均,得到每個(gè)標(biāo)簽在不同像素點(diǎn)上的權(quán)值;若該權(quán)值為負(fù)數(shù),則說明該圖片不屬于該類,相反,若該權(quán)值為正值,則說明屬于該類。
最后一層的全鏈接層的輸出,可以用softmax邏輯回歸(softmax gression)進(jìn)行分類,目的是將數(shù)據(jù)轉(zhuǎn)化為某一標(biāo)簽類別的概率(0~1)。計(jì)算公式如下:
其中:w和b分別為邏輯回歸的權(quán)值和偏置。定義前向傳播過程和損失函數(shù):
#y_conv = tf.nn.softmax(tf.matmul(h_fc1_drop, w_fc2) + b_fc2)
#cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y_conv),reduction_indices=[1]))
2 識(shí)別過程
2.1 數(shù)據(jù)描述
根據(jù)本文試圖建立的模型,制定OMR圖像數(shù)據(jù)的基本標(biāo)準(zhǔn)規(guī)范,即涂點(diǎn)區(qū)域圖像的格式、大小和灰度范圍,對(duì)于大量的圖像數(shù)據(jù),TensorFlow提供了一種統(tǒng)一的格式來存儲(chǔ)數(shù)據(jù)—TFRecord。TFRecord文件是以二進(jìn)制進(jìn)行存儲(chǔ)數(shù)據(jù)的,適合以串行的方式讀取大批量數(shù)據(jù),雖然它的內(nèi)部格式復(fù)雜,但是它可以很好地利用內(nèi)存,方便復(fù)制和移動(dòng),更符合TensorFlow執(zhí)行引擎的處理方式。本文所投入實(shí)驗(yàn)的數(shù)據(jù)集共有94 070張OMR數(shù)據(jù)圖片(見圖1),本實(shí)驗(yàn)將此數(shù)據(jù)集分為3個(gè)TFRecord文件作為實(shí)驗(yàn)數(shù)據(jù)集。
2.2 模型配置
本文使用的CNN模型包括兩個(gè)卷積層,兩個(gè)池化層,兩個(gè)全鏈接層。該模型輸入層大小為12×16,第一個(gè)卷積層的卷積核大小是4×6,輸出特征向量大小維度為32;第二個(gè)卷積層的卷積核大小是4×4,輸入特征向量大小維度是32維,輸出維度為128,超參數(shù)選擇如表1所示。
2.3 網(wǎng)絡(luò)訓(xùn)練
本文的識(shí)別方法是將輸入數(shù)據(jù)分為訓(xùn)練數(shù)據(jù)、驗(yàn)證數(shù)據(jù)和測試數(shù)據(jù)。其中,訓(xùn)練數(shù)據(jù)中,將數(shù)據(jù)和標(biāo)簽文件做好標(biāo)記,保存為TFRecord文件,來作為輸入數(shù)據(jù),經(jīng)過輸入層,讀取文件到卷積層經(jīng)過卷積池化和回歸計(jì)算后,得到一個(gè)基本的模型結(jié)構(gòu),再通過BP算法反向傳播算法將模型參數(shù)優(yōu)化到最佳數(shù)值,做出分類結(jié)果。
3 實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)的判斷指標(biāo)為準(zhǔn)確率,以TFReocrd文件中標(biāo)簽數(shù)據(jù)為基準(zhǔn),對(duì)模型進(jìn)行訓(xùn)練。將訓(xùn)練好的模型進(jìn)行測試后,數(shù)據(jù)集越多準(zhǔn)確率越高。實(shí)驗(yàn)采用了BP反向傳播算法,不斷優(yōu)化模型參數(shù),保存并不斷增加測試數(shù)據(jù)集來自學(xué)習(xí)優(yōu)化模型。
訓(xùn)練數(shù)據(jù)集大小為100時(shí),模型訓(xùn)練結(jié)果如圖2所示。
訓(xùn)練集大小為10 000并不斷增加時(shí),模型訓(xùn)練結(jié)果如圖3所示。
由此可見,當(dāng)訓(xùn)練數(shù)據(jù)越大,結(jié)果的精確度越高,網(wǎng)絡(luò)模型的健壯性就越高。結(jié)合正則化Dropout技術(shù),防止模型過擬合現(xiàn)象的發(fā)生,使模型保存為完整的可實(shí)驗(yàn)?zāi)P汀?/p>
4 結(jié)語
TensorFlow被廣泛應(yīng)用到學(xué)術(shù)界,尤其是神經(jīng)網(wǎng)絡(luò)模型構(gòu)建和參數(shù)優(yōu)化等問題的研究上。利用這一優(yōu)勢,對(duì)于解決OMR識(shí)別問題如虎添翼。可以代替當(dāng)前設(shè)備和人力資源,節(jié)省了大部分時(shí)間和資金,值得深入研究和推廣。
[參考文獻(xiàn)]
[1]GIRSHICK R,DONAHUE J,DARRELL T,et a1.Rich feature hierarchies for accurate object detection and semantic segmentation[J].Columbus:2014 IEEE Conference on Computer Vision and Pattern Recognition(CVPR),2014:580-587.
[2]DENG J,DONG W,SOCHER R,et a1.Imagenet: a large-scale hierarchical image database[C].Miami:Computer vision and pattern recognition(CVPR),2009:248-255.
[3]KRIZHEVSKY A,SUTSKEVER I,HINTON G E.ImageNet classification with deep convolutional neural networks[J].Advances in Neural Information Processing Systems,2012(2):2012.
[4]ZEILER M D,F(xiàn)ERGUS R.Visualizing and understanding convolutional networks[M].New York:Springer International Publishing,2013.
[5]姚家雄,楊明輝,朱玉琨,等.利用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行毫米波圖像違禁物體定位[J].紅外與毫米波學(xué)報(bào),2017(3):100-106.
[6]周飛燕,金林鵬,董軍.卷積神經(jīng)網(wǎng)絡(luò)研究綜述[J].計(jì)算機(jī)學(xué)報(bào),2017(6):1229-1251.
[7]NAIR V,HINTON G E.Rectified linear units improve restricted boltzmann machines[C].Haifa:Proceedings of the 27th International Conference on Machine Learning,2010:807-814.