徐頌民 江玉珍
摘要:CNN卷積神經(jīng)網(wǎng)絡(luò)是圖像識別和分類等領(lǐng)域的前沿研究方法。由于CNN模型訓練效果與實際測試之間存在較大的差距,為提高自由手寫數(shù)字的識別率,嘗試使用TensorFlow搭構(gòu)CNN網(wǎng)絡(luò)模型,在完成MNIST數(shù)據(jù)集訓練的基礎(chǔ)上實現(xiàn)對自由手寫數(shù)字的識別,并根據(jù)兩種樣本狀態(tài)的差別和識別結(jié)果提出效果分析及改進方法,實驗證明該改進方法獲得明顯效果。
關(guān)鍵詞:手寫數(shù)字;卷積;神經(jīng)網(wǎng)絡(luò);深度學習;訓練本樣
中圖分類號:TP399 文獻標識碼:A
文章編號:1009-3044(2020)13-0011-02
3實驗效果及分析
3.1 MNIST訓練結(jié)果
MNIsT訓練實驗在迭代5000次后,獲得接近100%的準確率和0.0033的低代價值。測試集也獲得整體98.17%的高準確率,充分證明該CNN模型的強擬合性能。
3.2自由手寫數(shù)字的測試結(jié)果
實驗先在白紙上用黑色中性筆隨機寫下一串數(shù)字,攝取圖像,裁切、縮小于28*28像素并保存為PNG灰度圖,在該基礎(chǔ)上進行單字識別及批量識別測試。
實驗1:單字識別。圖2為手寫單數(shù)字6及其識別的輸出結(jié)果,softmax函數(shù)輸出所有10類結(jié)果中,第7個值是0.9053704,明顯高于其他分類值,因此argmax函數(shù)識別結(jié)果為數(shù)字“6”(第1個分類值由“0”計起),這個結(jié)果與我們的實驗期望是相符的。
實驗2:批量自動識別。在隨機長度的批量識別中發(fā)現(xiàn),準確率與期望值存在不少差距,如對圖3手寫"5347"經(jīng)批量分類計算后輸出為“5847”,系統(tǒng)將“3”識別為“8”。實驗對100個自由手寫數(shù)字進行批量識別計算,整體的正確識別率僅為76%。
3.3結(jié)果分析及方法改進
經(jīng)過對自由案例和訓練集案例的比對,不難發(fā)現(xiàn)訓練與實測差距的原因:1)在MNIST數(shù)據(jù)集數(shù)字樣本是黑底白字,而手寫數(shù)字樣本經(jīng)反相處理后底色是深灰色的,背景色之間存在較大差異;2)手寫數(shù)字樣是在白紙上書寫后經(jīng)手機攝像輸入處理,紙面的紋理在一定程度上形成了噪聲而影響了檢測。如圖4,對“3”字的輸入圖進行反相及放大后可明顯反映出以上2個特點。
針對上述問題,改進的方法有2種:
1)擴充訓練集,擴增大量帶噪和帶背景的訓練樣本。這種方法可直接讓系統(tǒng)具有帶噪及帶背景的識別力,從本質(zhì)上能提升系統(tǒng)的魯棒性,但樣本集的擴增需要非常大的工作量。
2)調(diào)整現(xiàn)有待測數(shù)據(jù),即對待測圖再進行增強預(yù)處理使其更接近訓練集的樣式。
相比之下,方法2)更加簡單易行,實驗用python程序PIL庫的ImageEnhance模塊對所有手寫數(shù)字圖進行明亮度和對比度的增強處理,明亮度參數(shù)和對比度參數(shù)均為1.5,增強后待測圖集如圖6。重新對數(shù)據(jù)進行識別計算,系統(tǒng)的正確識別率提升至93%。
4結(jié)束語
CNN是目前公認的深度學習的一種成功算法,尤其適用于圖像分類和識別處理。基于CNN的圖像識別算法已被證明優(yōu)于傳統(tǒng)算法,但CNN算法也并非就是萬能算法,一個好的識別模型,與內(nèi)部函數(shù)選取、訓練集質(zhì)量及規(guī)模等因素息息相關(guān)。此外,待檢測圖像的預(yù)處理效果對算法的識別效果也起著舉足輕重的作用。在深度學習圖像識別計算中,目標區(qū)域分割、分割區(qū)形狀矯正、去噪、紋理增強等都是圖像識別前預(yù)處理的研究熱點。