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