《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于TensorFlow深度學(xué)習(xí)手寫體數(shù)字識別及應(yīng)用
基于TensorFlow深度學(xué)習(xí)手寫體數(shù)字識別及應(yīng)用
2018年電子技術(shù)應(yīng)用第10期
黃 睿,陸許明,鄔依林
廣東第二師范學(xué)院 計算機科學(xué)系,廣東 廣州510303
摘要: 手寫體數(shù)字的識別是人工智能識別系統(tǒng)中的重要組成部分。因個體手寫數(shù)字的差異,現(xiàn)有識別系統(tǒng)準(zhǔn)確率較低。基于TensorFlow深度學(xué)習(xí)框架完成手寫體數(shù)字的識別及應(yīng)用,首先建立TensorFlow深度學(xué)習(xí)框架,并分析了Softmax、卷積神經(jīng)網(wǎng)絡(luò)(CNN)模型結(jié)構(gòu),再對手寫體數(shù)據(jù)集MNIST的60 000個樣本進行深度學(xué)習(xí),然后進行10 000個樣本的測試對比,最后移植最優(yōu)模型到Android平臺進行應(yīng)用。實測數(shù)據(jù)驗證,相對于傳統(tǒng)的Softmax模型,基于TensorFlow深度學(xué)習(xí)CNN模型識別率高達99.17%,提升了7.6%,為人工智能識別系統(tǒng)的發(fā)展提供了一定的科研價值。
中圖分類號: TP391.413
文獻標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.182249
中文引用格式: 黃睿,陸許明,鄔依林. 基于TensorFlow深度學(xué)習(xí)手寫體數(shù)字識別及應(yīng)用[J].電子技術(shù)應(yīng)用,2018,44(10):6-10.
英文引用格式: Huang Rui,Lu Xuming,Wu Yilin. Handwriting digital recognition and application based on TensorFlow deep learning[J]. Application of Electronic Technique,2018,44(10):6-10.
Handwriting digital recognition and application based on TensorFlow deep learning
Huang Rui,Lu Xuming,Wu Yilin
Department of Computer Science,Guangdong University of Education,Guangzhou 510303,China
Abstract: The recognition of handwritten digits is an important part of the artificial intelligence recognition system. Due to the difference in individual handwritten numbers, the existing recognition system has a lower accuracy rate. This paper is based on the TensorFlow deep learning framework to complete the recognition and application of handwritten numbers. Firstly, the Softmax and Convolutional Neural Network(CNN) model structure is established and analyzed. Secondly, deep learning is performed on 60 000 samples of the handwritten data set MNIST, and then 10 000 samples are tested and compared. Finally, the optimal model is transplanted to the Android platform for application. Compared with the traditional Softmax model, the recognition rate based on TensorFlow deep learning CNN model is as high as 99.17%, an increase of 7.6%, which provides certain scientific research value for the development of artificial intelligence recognition system.
Key words : TensorFlow;deep learning;Convolutional Neural Network(CNN);digital recognition

0 引言

    隨著科技的發(fā)展,人工智能識別技術(shù)已廣泛應(yīng)用于各個領(lǐng)域,同時也推動著計算機的應(yīng)用朝著智能化發(fā)展。一方面,以深度學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)為代表的人工智能模型獲國內(nèi)外學(xué)者的廣泛關(guān)注;另一方面,人工智能與機器學(xué)習(xí)的系統(tǒng)開源,構(gòu)建了開放的技術(shù)平臺,促進人工智能研究的開發(fā)。本文基于TensorFlow深度學(xué)習(xí)框架,構(gòu)建Softmax、CNN模型,并完成手寫體數(shù)字的識別。

    LECUN Y等提出了一種LeNet-5的多層神經(jīng)網(wǎng)絡(luò)用于識別0~9的手寫體數(shù)字,該研究模型通過反向傳播(Back Propagation,BP)算法進行學(xué)習(xí),建立起CNN應(yīng)用的最早模型[1-2]。隨著人工智能圖像識別的出現(xiàn),CNN成為研究熱點,近年來主要運用于圖像分類[3]、目標(biāo)檢測[4]、目標(biāo)跟蹤[5]、文本識別[6]等方面,其中AlexNet[7]、GoogleNet[8]和ResNet[9]等算法取得了較大的成功。

    本文基于Google第二代人工智能開源平臺TensorFlow,結(jié)合深度學(xué)習(xí)框架,對Softmax回歸算法和CNN模型進行對比驗證,最后對訓(xùn)練的模型基于Android平臺下進行應(yīng)用。

1 TensorFlow簡介

    2015年11月9日,Google發(fā)布并開源第二代人工智能學(xué)習(xí)系統(tǒng)TensorFlow[10]。Tensor表示張量(由N維數(shù)組成),F(xiàn)low(流)表示基于數(shù)據(jù)流圖的計算,TensorFlow表示為將張量從流圖的一端流動到另一端的計算。TensorFlow支持短期記憶網(wǎng)絡(luò)(Long Short Term Memory Networks,LSTMN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks,RNN)和卷積神經(jīng)網(wǎng)絡(luò)(CNN)等深度神經(jīng)網(wǎng)絡(luò)模型。TensorFlow的基本架構(gòu)如圖1所示。

rgzd2-t1.gif

    由圖1可知,TensorFlow的基本架構(gòu)可分為前端和后端。前端:基于支持多語言的編程環(huán)境,通過調(diào)用系統(tǒng)API來訪問后端的編程模型。后端:提供運行環(huán)境,由分布式運行環(huán)境、內(nèi)核、網(wǎng)絡(luò)層和設(shè)備層組成。

2 Softmax回歸

    Softmax回歸算法能將二分類的Logistic回歸問題擴展至多分類。假設(shè)回歸模型的樣本由K個類組成,共有m個,則訓(xùn)練集可由式(1)表示:

    rgzd2-gs1.gif

式中,x(i)∈R(n+1),y(i)∈{1,2,…,K},n+1為特征向量x的維度。對于給定的輸入值x,輸出的K個估計概率由式(2)表示:

rgzd2-gs2-4.gif

    對參數(shù)θ1,θ2,…,θk進行梯度下降,得到Softmax回歸模型,在TensorFlow中的實現(xiàn)如圖2所示。

rgzd2-t2.gif

    對圖2進行矩陣表達,可得式(5):

    rgzd2-gs5.gif

    將測試集數(shù)據(jù)代入式(5),并計算所屬類別的概率,則概率最大的類別即為預(yù)測結(jié)果。

3 CNN

    卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一種前饋神經(jīng)網(wǎng)絡(luò),通常包含數(shù)據(jù)輸入層、卷積計算層、ReLU激勵層、池化層、全連接層等,是由卷積運算來代替?zhèn)鹘y(tǒng)矩陣乘法運算的神經(jīng)網(wǎng)絡(luò)。CNN常用于圖像的數(shù)據(jù)處理,常用的LenNet-5神經(jīng)網(wǎng)絡(luò)模型圖如圖3所示。

rgzd2-t3.gif

    該模型由2個卷積層、2個抽樣層(池化層)、3個全連接層組成。

3.1 卷積層

    卷積層是通過一個可調(diào)參數(shù)的卷積核與上一層特征圖進行滑動卷積運算,再加上一個偏置量得到一個凈輸出,然后調(diào)用激活函數(shù)得出卷積結(jié)果,通過對全圖的滑動卷積運算輸出新的特征圖,如式(6)~式(7)所示:

rgzd2-gs6-7.gif

3.2 抽樣層

    抽樣層是將輸入的特征圖用n×n窗口劃分成多個不重疊的區(qū)域,然后對每個區(qū)域計算出最大值或者均值,使圖像縮小了n倍,最后加上偏置量通過激活函數(shù)得到抽樣數(shù)據(jù)。其中,最大值法、均值法及輸出函數(shù)如式(8)~式(10)所示:

rgzd2-gs8-10.gif

3.3 全連接輸出層

    全連接層則是通過提取的特征參數(shù)對原始圖片進行分類。常用的分類方法如式(11)所示:

rgzd2-gs11.gif

4 實驗分析

    本文基于TensorFlow深度學(xué)習(xí)框架,數(shù)據(jù)源使用MNIST數(shù)據(jù)集,分別采用Softmax回歸算法和CNN深度學(xué)習(xí)進行模型訓(xùn)練,然后將訓(xùn)練的模型進行對比驗證,并在Android平臺上進行應(yīng)用。

4.1 MNIST數(shù)據(jù)集

    MNIST數(shù)據(jù)集包含60 000行的訓(xùn)練數(shù)據(jù)集(train-images-idx3)和10 000行的測試數(shù)據(jù)集(test-images-idx3)。每個樣本都有唯一對應(yīng)的標(biāo)簽(label),用于描述樣本的數(shù)字,每張圖片包含28×28個像素點,如圖4所示。

rgzd2-t4.gif

    由圖4可知,每一幅樣本圖片由28×28個像素點組成,可由一個長度為784的向量表示。MNIST的訓(xùn)練數(shù)據(jù)集可轉(zhuǎn)換成[60 000,784]的張量,其中,第一個維度數(shù)據(jù)用于表示索引圖片,第二個維度數(shù)據(jù)用于表示每張圖片的像素點。而樣本對應(yīng)的標(biāo)簽(label)是介于0到9的數(shù)字,可由獨熱編碼(one-hot Encoding)進行表示。一個獨熱編碼除了某一位數(shù)字是1以外,其余維度數(shù)字都是0,如標(biāo)簽0表示為[1,0,0,0,0,0,0,0,0,0],所以,樣本標(biāo)簽為[60 000,10]的張量。

4.2 Softmax模型實現(xiàn)

    根據(jù)式(5),可以將Softmax模型分解為矩陣基本運算和Softmax調(diào)用,該模型實現(xiàn)方式如下:(1)使用符號變量創(chuàng)建可交互的操作單元;(2)創(chuàng)建權(quán)重值和偏量;(3)根據(jù)式(5),實現(xiàn)Softmax回歸。

4.3 CNN模型實現(xiàn)

    結(jié)合LenNet-5神經(jīng)網(wǎng)絡(luò)模型,基于TensorFlow深度學(xué)習(xí)模型實現(xiàn)方式如下:

    (1)初始化權(quán)重和偏置;

    (2)創(chuàng)建卷積和池化模板;

    (3)進行兩次的卷積、池化;

    (4)進行全連接輸出;

    (5)Softmax回歸。

4.4 評估指標(biāo)

    采用常用的成本函數(shù)“交叉熵”(cross-entropy),如式(12)所示:

rgzd2-gs12.gif

4.5 模型檢驗

    預(yù)測結(jié)果檢驗方法如下:

    (1)將訓(xùn)練后的模型進行保存;

    (2)輸入測試樣本進行標(biāo)簽預(yù)測;

    (3)調(diào)用tf.argmax函數(shù)獲取預(yù)測的標(biāo)簽值;

    (4)與實際標(biāo)簽值進行匹配,最后計算識別率。

    根據(jù)上述步驟,分別采用Softmax模型和卷積神經(jīng)網(wǎng)絡(luò)對手寫數(shù)字0~9的識別數(shù)量、識別率分別如圖5、表1所示。

rgzd2-t5.gif

rgzd2-b1.gif

    根據(jù)表1的模型預(yù)測結(jié)果可知,Softmax模型對數(shù)字1的識別率為97.9%,識別率最高。對數(shù)字3和數(shù)字8的識別率相對較小,分別是84.9%、87.7%。Softmax模型對手寫體數(shù)字0~9的整體識別率達91.57%。

    結(jié)合圖5和表1可知,基于CNN模型的整體識別率高于Softmax模型,其中對數(shù)字3的識別率提高了14.7%,對數(shù)字1的識別率只提高了1.7%?;谏疃葘W(xué)習(xí)CNN模型對手寫體數(shù)字0~9的整體識別率高達99.17%,比Softmax模型整體提高了7.6%。

4.6 模型應(yīng)用

    通過模型的對比驗證可知,基于深度學(xué)習(xí)CNN的識別率優(yōu)于Softmax模型?,F(xiàn)將訓(xùn)練好的模型移植到Android平臺,進行跨平臺應(yīng)用,實現(xiàn)方式如下。

    (1)UI設(shè)計

    用1個Bitmap控件顯示用戶手寫觸屏的軌跡,并將2個Button控件分別用于數(shù)字識別和清屏。

    (2)TensorFlow引用

    首先編譯需要調(diào)用的TensorFlow的jar包和so文件。其次將訓(xùn)練好的模型(.pb)導(dǎo)入到Android工程。

    (3)接口實現(xiàn)

    ①接口定義及初始化:

    inferenceInterface.initializeTensorFlow(getAssets(), MODEL_FILE); 

    ②接口的調(diào)用:

    inferenceInterface.fillNodeFloat(INPUT_NODE, new int[]{1, HEIGHT, WIDTH, CHANNEL}, inputs);

    ③獲取預(yù)測結(jié)果

    inferenceInterface.readNodeFloat(OUTPUT_NODE, outputs);

    通過上述步驟即可完成基于Android平臺環(huán)境的搭建及應(yīng)用,首先利用Android的觸屏功能捕獲并記錄手寫軌跡,手寫完成后單擊識別按鈕,系統(tǒng)將調(diào)用模型進行識別,并將識別結(jié)果輸出到用戶界面。識別完成后,單擊清除按鈕,循環(huán)上述操作步驟可進行手寫數(shù)字的再次識別,部分手寫數(shù)字的識別效果如圖6所示。

rgzd2-t6.gif

    由圖6可知,在Android平臺上完成了基于TensorFlow深度學(xué)習(xí)手寫數(shù)字的識別,并且采用CNN的訓(xùn)練模型有較好的識別效果,實現(xiàn)了TensorFlow訓(xùn)練模型跨平臺的應(yīng)用。

5 結(jié)論

    本文基于TensorFlow深度學(xué)習(xí)框架,采用Softmax回歸和CNN等算法進行手寫體數(shù)字訓(xùn)練,并將模型移植到Android平臺,進行跨平臺應(yīng)用。實驗數(shù)據(jù)表明,基于Softmax回歸模型的識別率為91.57%,基于CNN模型的識別率高達99.17%。表明基于深度學(xué)習(xí)的手寫體數(shù)字識別在人工智能識別方面具有一定的參考意義。

參考文獻

[1] HUBEL D H,WIESEL T N.Receptive fields and functional architecture of monkey striate cortex[J].Journal of Physiology,1968,195(1):215-243.

[2] 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.

[3] ZEILER M D,F(xiàn)ERGUS R.Visualizing and understanding convolutional networks[J].arXiv:1311.2901[cs.CV].

[4] 賀康建,周冬明,聶仁燦,等.基于局部控制核的彩色圖像目標(biāo)檢測方法[J].電子技術(shù)應(yīng)用,2016,42(12):89-92.

[5] LI H,LI Y,PORIKLI F.DeepTrack:learning discriminative feature representations online for robust visual tracking[J].IEEE Transactions on Image Processing,2015,25(4):1834-1848.

[6] GOODFELLOW I J,BULATOV Y,IBARZ J,et al.Multi-digit number recognition from street view imagery using deep convolutional neural networks[J].arXiv:1312.6082[cs.CV].

[7] KRIZHEVSKY A,SUTSKEVER I,HINTON G E.ImageNet classifycation with deep convolutional neural networks[C].International Conference on Neural Information Processing Systems.Curran Associates Inc.,2012:1097-1105.

[8] SZEGEDY C,LIU W,JIA Y,et al.Going deeper with convoluteons[C].IEEE Conference on Computer Vision and Pattern Recognition.IEEE,2015:1-9.

[9] HE K,ZHANG X,REN S,et al.Deep residual learning for image recognition[J].arXiv:1512.03385[cs.CV].

[10] ABADI M,AGARWAL A,BARHAM P,et al.TensorFlow:large-scale machine learning on heterogeneous distributed systems[J].arXiv:1603.04467[cs.DC].



作者信息:

黃  睿,陸許明,鄔依林

(廣東第二師范學(xué)院 計算機科學(xué)系,廣東 廣州510303)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。