鞠云霞 王希常 陳祥喜 鄭偉


摘 要:文章針對光學標記閱讀(OMR)識別技術中存在的背景虛化和復雜操作導致加大人力勞動的問題,提出一種基于TensorFlow平臺的卷積神經(CNN)模型架構。以提高OMR識別技術為目的,涵蓋深度學習開源工具TensorFlow與神經網絡研究領域,以基于TensorFlow框架構建卷積神經網絡為研究對象,運用TensorFlow學習系統構建神經網絡模型,實現對OMR識別問題的研究。文章利用TensorFlow對OMR輸入數據進行預處理,得到TFRecord文件,再在CNN神經網絡架構基礎上搭建訓練模型實現對OMR答題卡數據的識別,得到標準數據。并運用視圖工具TensorBoard來有效顯示TensorFlow模型在運行過程中的計算流圖以及模型參數隨著訓練的變化。
關鍵詞:OMR;TensorFlow;CNN
光學符號閱讀器(Optical Mark Reader,OMR)由美國科學家20世紀60年代發明,成為國際流行的標準化符號、表格數據讀取模式,在大規模信息采集中廣泛使用。目前,在OMR閱卷技術中,主要采用傳統的圖像增強處理、圖像分割、特征提取、統計分類模型等技術,在出現背景分離不好、污點、用筆較輕等問題時,其識別率明顯低于人類,也容易出現誤識和拒識,需要使用大量人力進行人工校驗。如何實現填涂點的準確識別,減輕人工校驗的繁重勞動,是考試技術中急需解決的問題,而從現在技術發展動態來看,人工智能技術是解決這個問題的最優可行的方案[1-2]。
TensorFlow作為一個開源的深度學習平臺,實現了對卷積神經網絡的良好支持。通過卷積神經網絡(Convolutional Neural Networks,CNN),ImageNet數據集[3]中的分類錯誤率在2012年降低了15.3%[4],效果遠遠高于傳統手工特征算法,如SIFI和LBP方法。本文在OMR閱卷系統識別問題的基礎上,將深度學習模型中的數字圖像處理技術應用到網上閱卷的試卷處理中,并通過TensorFlow平臺的CNN卷積神經網絡模型來研究OMR涂點識別問題。通過試驗結果表明,基于神經網絡模型識別的結果達到了99.9%的準確率,驗證了該網絡模型和框架對解決OMR識別問題的有效性。
1 相關原理
1.1 TensorFlow框架
TensorFlow是谷歌開源的一個計算機框架,該計算框架可以很好地實現各種深度學習算法,實現了對卷積神經網絡的良好支持。本文汲取TensorFlow的優越性,將其應用到了本實驗中去,以CNN構建網絡結構,用TensorFlow做支撐,來解決OMR圖像識別的實用問題。
TensorFlow框架在使用過程中,為了弱化與圖像識別無關的因素,我們將輸入數據進行統一的數據預處理。統一輸入數據的格式,有助于在之后的模型中更加方便地處理。本研究使用TFRecord數據格式將不同格式的原始圖像數據進行統一處理。而復雜的圖像處理函數有可能降低訓練的速度。為了加速數據預處理的處理過程,本研究利用TensorFlow多線程數據預處理技術。
1.2 CNN卷積神經網絡
CNN模型的設計和訓練是取得CNN高性能的關鍵步驟。CNN結構主要是由多個卷積層、池化層、全連接層構成。通常卷積層是將輸入圖像或者特征圖做卷積,利用滑動窗口將圖片或者特征圖與卷積核做卷積,得到多個特征圖;池化層將得到的特征圖做一個下采樣(降維),循環進行直至得到1×1尺寸的特征圖,得到圖像的特征向量。隔層特征圖對應的特征是不一樣的,第一層是特征圖對應圖像的顏色或灰度值特征,第二層對應著邊緣特征,第三層對應著幾何紋理特征等[5]。
1.2.1 卷積
卷積神經網絡中的卷積層是通過函數將圖片映射成特征向量,根據其對應的非線性映射關系,加入非線性激活函數,使網絡模型得到學習非線性特征變換的能力。卷積原理如下:
其中:f(x)是非激活函數;ki,j是卷積核,Tjl(x,y)和Tjl+1(x,y)是連續的特征圖。其中需要人為設定卷積核大小是K×K,卷積的步長是S,且小于K。通常設為1。bjl+1是指偏移量,由訓練獲得。
1.2.2 非線性激活函數
在線性模型中,模型的輸出是輸入的加權和,若一個模型的輸出和輸入符合以下條件,那一定為線性模型:
其中:wi,b∈R為模型的參數。線性模型最大的特點是任意線性模型的組合仍然是線性模型。然而CNN的特征提取過程是將輸入數據映射成一個高維度的特征向量,這一映射關系往往需要非線性變換。因此,在CNN卷積層后添加非線性激活函數,可以將輸入數據轉換為非線性模型特征向量,更好地實現提取特征能力。常見的非線性激活函數有sigmoid函數:
本文為了達到更好的分類結果,采用非線性激活函數引用了Relu函數。
1.2.3 池化
池化層在卷積層之后,每一個特征面對應于其上一層的一個特征面,不會改變特征面的個數,即池化層不會改變矩陣的深度。但池化層可以縮小矩陣的大小,通過池化可以進一步縮小最后全鏈接層中節點的個數,進而達到減少整個神經網絡中參數的目的。池化分為平均池化和最大值池化,公式如下[6]:
其中:P表示池化結果,S是指池化中滑動窗口的步長大小,K表示卷積核大小或者是需在特征圖K×K鄰域內進行池化。
1.2.4 正則化和邏輯回歸
丟失數據技術(Dropout)是常在全鏈接層應用的正則化技術,Dropout技術是由Hinton提出來的[7]。當隱藏層中有大量神經元時,就會導致過于表現的模型,此時就會發生過擬合,當模型的參數數量超過輸入的維度時,更容易產生過擬合。因此,為了避免出現過擬合現象,在本模型中,我們采用Dropout,它會在softmax層前先調用tf.nn.dropout函數。
邏輯回歸又稱logistic回歸分析,是一種廣義的線性回歸分析模型,常用作二分類,多分類可采用Softmax回歸算法,該算法通過對指定的訓練數據同個標簽的像素加權平均,得到每個標簽在不同像素點上的權值;若該權值為負數,則說明該圖片不屬于該類,相反,若該權值為正值,則說明屬于該類。
最后一層的全鏈接層的輸出,可以用softmax邏輯回歸(softmax gression)進行分類,目的是將數據轉化為某一標簽類別的概率(0~1)。計算公式如下:
其中:w和b分別為邏輯回歸的權值和偏置。定義前向傳播過程和損失函數:
#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 識別過程
2.1 數據描述
根據本文試圖建立的模型,制定OMR圖像數據的基本標準規范,即涂點區域圖像的格式、大小和灰度范圍,對于大量的圖像數據,TensorFlow提供了一種統一的格式來存儲數據—TFRecord。TFRecord文件是以二進制進行存儲數據的,適合以串行的方式讀取大批量數據,雖然它的內部格式復雜,但是它可以很好地利用內存,方便復制和移動,更符合TensorFlow執行引擎的處理方式。本文所投入實驗的數據集共有94 070張OMR數據圖片(見圖1),本實驗將此數據集分為3個TFRecord文件作為實驗數據集。
2.2 模型配置
本文使用的CNN模型包括兩個卷積層,兩個池化層,兩個全鏈接層。該模型輸入層大小為12×16,第一個卷積層的卷積核大小是4×6,輸出特征向量大小維度為32;第二個卷積層的卷積核大小是4×4,輸入特征向量大小維度是32維,輸出維度為128,超參數選擇如表1所示。
2.3 網絡訓練
本文的識別方法是將輸入數據分為訓練數據、驗證數據和測試數據。其中,訓練數據中,將數據和標簽文件做好標記,保存為TFRecord文件,來作為輸入數據,經過輸入層,讀取文件到卷積層經過卷積池化和回歸計算后,得到一個基本的模型結構,再通過BP算法反向傳播算法將模型參數優化到最佳數值,做出分類結果。
3 實驗結果
實驗的判斷指標為準確率,以TFReocrd文件中標簽數據為基準,對模型進行訓練。將訓練好的模型進行測試后,數據集越多準確率越高。實驗采用了BP反向傳播算法,不斷優化模型參數,保存并不斷增加測試數據集來自學習優化模型。
訓練數據集大小為100時,模型訓練結果如圖2所示。
訓練集大小為10 000并不斷增加時,模型訓練結果如圖3所示。
由此可見,當訓練數據越大,結果的精確度越高,網絡模型的健壯性就越高。結合正則化Dropout技術,防止模型過擬合現象的發生,使模型保存為完整的可實驗模型。
4 結語
TensorFlow被廣泛應用到學術界,尤其是神經網絡模型構建和參數優化等問題的研究上。利用這一優勢,對于解決OMR識別問題如虎添翼。可以代替當前設備和人力資源,節省了大部分時間和資金,值得深入研究和推廣。
[參考文獻]
[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,FERGUS R.Visualizing and understanding convolutional networks[M].New York:Springer International Publishing,2013.
[5]姚家雄,楊明輝,朱玉琨,等.利用卷積神經網絡進行毫米波圖像違禁物體定位[J].紅外與毫米波學報,2017(3):100-106.
[6]周飛燕,金林鵬,董軍.卷積神經網絡研究綜述[J].計算機學報,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.