• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于深度學(xué)習(xí)的數(shù)字識別模塊在安卓系統(tǒng)的實(shí)現(xiàn)

      2017-04-13 08:07:45梁淑芬胡帥花秦傳波鄧志強(qiáng)
      關(guān)鍵詞:手寫身份證號碼

      梁淑芬,胡帥花,秦傳波,鄧志強(qiáng)

      (五邑大學(xué) 信息工程學(xué)院,廣東 江門 529020)

      基于深度學(xué)習(xí)的數(shù)字識別模塊在安卓系統(tǒng)的實(shí)現(xiàn)

      梁淑芬,胡帥花,秦傳波,鄧志強(qiáng)

      (五邑大學(xué) 信息工程學(xué)院,廣東 江門 529020)

      針對手寫數(shù)字、印刷體數(shù)字和身份證號碼識別問題,研究了深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)算法,并在安卓系統(tǒng)上開發(fā)了數(shù)字識別應(yīng)用模塊,實(shí)現(xiàn)了數(shù)字圖像的采集、裁剪和定位等預(yù)處理,并運(yùn)用卷積神經(jīng)網(wǎng)絡(luò)的LeNet網(wǎng)絡(luò)模型進(jìn)行數(shù)字識別. 實(shí)驗(yàn)結(jié)果表明,本文實(shí)現(xiàn)的數(shù)字識別程序使用簡便,對手寫數(shù)字、印刷體數(shù)字和身份證號碼識別率分別為94.77%、98.32%和99.78%,識別率較高,具有很好的推廣前景.

      深度學(xué)習(xí);卷積神經(jīng)網(wǎng)絡(luò);數(shù)字識別

      數(shù)字序列號是代表物品信息的重要特征之一,如銀行卡號、金融票據(jù)號碼、車牌號碼、身份證號碼等[1-2]. 目前應(yīng)用于數(shù)字識別的算法主要有:鄰近算法[6]、SVM算法[7]、神經(jīng)網(wǎng)絡(luò)法等[3-5]. 鄰近算法的識別率相對較低,分類時(shí)間長. SVM算法是針對兩類的分類問題,要實(shí)現(xiàn)如手寫數(shù)字識別這樣的多類識別就需要構(gòu)造合適的多級結(jié)構(gòu)的分類器,樣本的存儲和計(jì)算需要耗費(fèi)大量的機(jī)器內(nèi)存和運(yùn)算時(shí)間,對大規(guī)模訓(xùn)練樣本難以實(shí)施. 神經(jīng)網(wǎng)絡(luò)具有很強(qiáng)的學(xué)習(xí)性和自適應(yīng)性,具有其他傳統(tǒng)方法不具有的并行處理能力、容錯(cuò)能力、自學(xué)習(xí)功能和對圖像識別中特征自動提取的能力.

      LeCun等人[3]提出的卷積神經(jīng)網(wǎng)絡(luò)采用多層二維卷積模型,模擬人的視覺神經(jīng)皮質(zhì)的分層特性與功能,更符合仿生學(xué)特性,除神經(jīng)網(wǎng)絡(luò)的一般特性外,還通過感受野和權(quán)值共享減少了神經(jīng)網(wǎng)絡(luò)需要訓(xùn)練的參數(shù)的個(gè)數(shù),直接使用圖像作為網(wǎng)絡(luò)的輸入,避免了傳統(tǒng)識別算法中復(fù)雜的特征提取和數(shù)據(jù)重建過程. 卷積神經(jīng)網(wǎng)絡(luò)中的LeNet網(wǎng)絡(luò)模型采用Softmax多分類器進(jìn)行分類,對手寫數(shù)字識別這樣的多類識別具有很好的分類效果,速度較快. 因此,本文基于深度學(xué)習(xí)的LeNet網(wǎng)絡(luò)模型設(shè)計(jì)了一款應(yīng)用于安卓手機(jī)的數(shù)字識別App,并分別對手寫數(shù)字、印刷體數(shù)字和身份證號碼進(jìn)行識別測試.

      1 數(shù)字識別系統(tǒng)的設(shè)計(jì)框架

      數(shù)字識別系統(tǒng)整體設(shè)計(jì)采用通用MVC(Model-View-Controller)框架,即視圖層、控制層和模型層. 如圖1所示,視圖層由3個(gè)layout界面組成:圖像采集、圖像處理和結(jié)果應(yīng)用交互. 控制層由圖像基本處理、字符切割、CNN、結(jié)果處理等算法邏輯組成,以響應(yīng)用戶的功能操作. 模型層使用了Android支持的SQLite數(shù)據(jù)庫,用于保存用戶的配置信息和初始化程序的運(yùn)行參數(shù).

      圖1 數(shù)字識別系統(tǒng)的邏輯架構(gòu)

      2 數(shù)字字符圖像處理與識別過程

      數(shù)字識別算法流程如圖2所示,其包含圖像采集、圖像預(yù)處理、數(shù)字識別等幾個(gè)部分. 訓(xùn)練樣本采用mnist手寫體數(shù)據(jù)庫、自建樣本庫.

      2.1 數(shù)字字符圖像預(yù)處理

      對采集到的圖像進(jìn)行預(yù)處理,如圖2所示,主要包括降噪、二值化、形態(tài)學(xué)處理、定位切割數(shù)字字符(對含多行多個(gè)數(shù)字字符的圖像進(jìn)行行切割,得到多個(gè)單行的數(shù)字字符圖像,記錄其坐標(biāo),再對單行數(shù)字字符圖像中的多個(gè)數(shù)字字符進(jìn)行列切割,最后得到單個(gè)數(shù)字字符圖像)和歸一化等一系列常用圖像預(yù)處理方法.

      圖2 數(shù)字識別算法流程

      2.2 數(shù)字識別算法

      數(shù)字識別系統(tǒng)的核心是采用深度學(xué)習(xí)算法卷積神經(jīng)網(wǎng)絡(luò)(CNN)[3]進(jìn)行數(shù)字識別. CNN中的LeNet架構(gòu)與LeCun在1998年提出的LeNet-5卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)類似[3],兩者之間的區(qū)別是將LeNet-5中的Sigmoid激活函數(shù)換成Relu激活函數(shù). 本文設(shè)計(jì)的數(shù)字識別App采用Caffe中的LeNet網(wǎng)絡(luò)模型,其網(wǎng)絡(luò)模型結(jié)構(gòu)如圖3所示. LeNet網(wǎng)絡(luò)模型包含兩個(gè)卷積層、兩個(gè)降采樣層、兩個(gè)全連接層和一個(gè)激活層,卷積層主要對上層數(shù)據(jù)進(jìn)行特征提取抽象,降采樣層則是對數(shù)據(jù)進(jìn)行降維.

      Dataset是輸入層,輸入batch_size張歸一化為28×28大小的數(shù)字圖像,共有batch_size×1×28×28個(gè)數(shù)據(jù).

      Conv1是卷積層,包含20個(gè)卷積特征圖,通過5×5大小的卷積核對輸入圖像進(jìn)行卷積提取圖像的內(nèi)在特征,步長為1,卷積后輸出20個(gè)大小為(28-5+1)×(28-5+1)的特征圖,共有batch_size×20×24×24個(gè)數(shù)據(jù). Pool1是降采樣層,降采樣的核為2×2,步長為2,通過降采樣將特征圖的寬和高的尺寸降采樣到上一層的一半大小,輸出20個(gè)大小為12×12的特征圖,共有batch_size×20×12×12個(gè)數(shù)據(jù).

      Conv2依然是卷積層,包含50個(gè)卷積特征圖,卷積核的大小為5×5,步長為1,通過卷積之后,輸出50個(gè)大小為(12-5+1)×(12-5+1)的特征圖,共有batch_size×50×8×8個(gè)數(shù)據(jù). Pool2是降采樣層,方法同Pool1,通過降采樣輸出50個(gè)大小為4×4的特征圖,共有batch_size×50×4×4個(gè)數(shù)據(jù).

      圖3 LeNet網(wǎng)絡(luò)結(jié)構(gòu)圖

      LeNet中本層的輸入即為上一層的輸出. 如從Pool1層到Conv2層整個(gè)過程可以表示為:

      其中0≤m<M,M=20是Pool1層的特征圖個(gè)數(shù);0≤n<50,N=50是Conv2層的特征圖個(gè)數(shù);0≤x<X,0≤y<Y ,X=Y=12表示Pool1層每個(gè)特征圖數(shù)據(jù)的行和列;0≤p<P,0≤q<Q ,P=Q=5表示Conv2層卷積核的行和列;yL-1(m; x+p, y+q)為Pool1層的輸出,w(m, n; p, q)是對應(yīng)的權(quán)值參數(shù).

      IP1為全連接層,含有500個(gè)特征圖,大小為1×1,共有batch_size×500×1×1個(gè)數(shù)據(jù). Rule1是激活層,對IP1輸出的數(shù)據(jù)進(jìn)行Rule函數(shù)變換,Rule能夠最大程度的保留數(shù)據(jù)特征,其數(shù)學(xué)表達(dá)式為r=max(0,x),大于0的保留,其他全部置為0,自行引入稀疏性,提高了數(shù)據(jù)處理的效率,加快收斂速度. IP2也為全連接層,含有10個(gè)特征圖,大小為1×1,共有batch_size×10×1×1個(gè)數(shù)據(jù).

      SofemaxLoss層采用Softmax回歸模型對輸入的數(shù)據(jù)進(jìn)行分類和歸一化,并計(jì)算給出的每個(gè)樣本對應(yīng)的損失函數(shù)值. 本層有兩個(gè)輸入,分別為IP2的輸出和標(biāo)簽值label. Softmax公式為:

      其中,n對應(yīng)于分類種類,此處網(wǎng)絡(luò)是要對0-9這10個(gè)數(shù)字進(jìn)行識別,故n=10,如果某個(gè)zj大于其他z,這個(gè)映射的分量就逼近于1,其他分量逼近于0,并對所有輸入數(shù)據(jù)進(jìn)行歸一化.

      計(jì)算損失:

      其中,k為該樣本的label.

      3 數(shù)字識別App在安卓系統(tǒng)的實(shí)現(xiàn)

      基于該數(shù)字識別算法在安卓系統(tǒng)上設(shè)計(jì)一款數(shù)字識別App. 該程序通過java編程實(shí)現(xiàn),將java源代碼生成一個(gè)jar包,創(chuàng)建一個(gè)安卓項(xiàng)目,在此項(xiàng)目中導(dǎo)入該jar包,通過調(diào)用jar包中的方法實(shí)現(xiàn)數(shù)字識別系統(tǒng)中圖像預(yù)處理和數(shù)字識別等功能. 運(yùn)行此項(xiàng)目生成一個(gè).apk文件,這個(gè).apk文件就是一個(gè)數(shù)字識別App,把.apk文件下載到安卓手機(jī)并安裝就能運(yùn)行此App并實(shí)現(xiàn)數(shù)字識別功能.

      圖4 App運(yùn)行示意圖

      3.1 App的運(yùn)行流程

      App的運(yùn)行流程如圖4所示,程序整體設(shè)計(jì)分為3個(gè)模塊:圖像采集及顯示、圖像處理及識別、結(jié)果顯示及應(yīng)用.

      3.2 App的功能

      數(shù)字識別App實(shí)現(xiàn)了以下3種主要功能:

      1)數(shù)字識別是App的主要功能. 可通過攝像頭采集圖像或從本地打開的圖像選擇指定的圖像區(qū)域進(jìn)行識別,能實(shí)現(xiàn)印刷或手寫的不粘連的多行數(shù)字識別.

      2)App具有簡單的圖像處理功能,如圖像裁剪、翻轉(zhuǎn)、調(diào)整亮度與透明度、轉(zhuǎn)灰度圖以及形態(tài)處理等. 識別到的數(shù)字串可編輯或修改,可調(diào)整數(shù)字字符的大小、顏色、間隔等.

      3)識別結(jié)果可保存及分享. 識別結(jié)果確定無誤后可直接轉(zhuǎn)成電話號碼進(jìn)行呼叫、發(fā)短信、或保存聯(lián)系方式. 另外提供保存本地、復(fù)制粘貼和分享到第三方應(yīng)用(如QQ、微信等)等功能.

      3.3 App界面設(shè)計(jì)及識別過程

      App界面設(shè)計(jì)及識別過程如圖5所示.

      圖5 App界面設(shè)計(jì)及識別過程

      4 實(shí)驗(yàn)測試結(jié)果與分析

      對于App測試和訓(xùn)練所用到的數(shù)據(jù),是利用Caffe庫快速完成LeNet網(wǎng)絡(luò)模型訓(xùn)練,LeNet訓(xùn)練所用到的訓(xùn)練樣本和測試樣本如表1所示. 除了mnist庫70 000張手寫數(shù)字圖像外,自行采集約5 000張樣本用于訓(xùn)練. 采集的圖像使用了多種不同的采集設(shè)備對印刷和手寫數(shù)字進(jìn)行采集,并模擬不同光照下采集得到,使得樣本更接近于手機(jī)的實(shí)際應(yīng)用,同時(shí)識別難度也相應(yīng)增大.

      表1 訓(xùn)練樣本與測試樣本

      4.1 LeNet-5和LeNet在mnist庫的測試

      在mnist手寫標(biāo)準(zhǔn)庫上,分別使用LeNet-5和LeNet進(jìn)行測試,識別率如表2所示,LeNet-5和LeNet識別率分別為99.20%、99.27%,LeNet識別效果略優(yōu)于LeNet-5. LeNet可同時(shí)識別多張圖像,識別效率略高,更適用于實(shí)時(shí)識別.

      表2 LeNet-5和LeNet在mnist中測試樣本識別率

      4.2 手寫數(shù)字的測試結(jié)果及分析

      采集了300張手寫數(shù)字圖像進(jìn)行測試. 這300張圖像來自于30人的筆跡,共3000個(gè)數(shù)字. 測試結(jié)果如表3所示,由于手寫數(shù)字風(fēng)格眾多,人為隨意性較大、無規(guī)律可循,因而識別比較困難,手寫數(shù)字識別率相對較低,僅94.77%.

      4.3 印刷體數(shù)字的測試結(jié)果及分析

      采集了700張印刷體數(shù)字圖像進(jìn)行測試. 這700張圖像由11位數(shù)字的電話號碼圖像、19位數(shù)字的銀行卡號圖像、20位數(shù)字的藥品電子監(jiān)管碼圖像等其他印刷體數(shù)字圖像組成. 其識別率為98.32%,雖然印刷體數(shù)字字體較多,但與手寫數(shù)字因人而異的字體風(fēng)格相比識別比較簡單,識別率也較高.

      4.4 身份證號碼的測試結(jié)果及分析

      采集了100張身份證號碼圖像進(jìn)行識別,由表3可知,身份證號碼的識別率最高. 身份證號碼圖像上的字體單一,字體間隔一致,即使在多變的圖像采集環(huán)境下,識別率也能高達(dá)99.78%. 其中10張身份證號碼圖像和識別結(jié)果如圖6所示.

      表3 采集的測試樣本識別率

      圖6 部分身份證號碼識別圖像及結(jié)果

      5 總結(jié)

      本文采用卷積神經(jīng)網(wǎng)絡(luò)中的LeNet網(wǎng)絡(luò)模型建立的數(shù)字識別模塊具備較高數(shù)字識別的能力,不僅能識別印刷體數(shù)字及身份證號碼,同時(shí)還能識別手寫數(shù)字,其識別率均超過94%. 在實(shí)名注冊時(shí)輸入身份證號碼、交易時(shí)輸入銀行卡號、對藥品進(jìn)行真?zhèn)螜z驗(yàn)時(shí)輸入其電子監(jiān)管碼等場景中,都可以采用本文開發(fā)的App進(jìn)行數(shù)字識別,同時(shí)該App還初步實(shí)現(xiàn)了識別手寫數(shù)字的功能,準(zhǔn)確率高,識別速度快,具有一定的應(yīng)用價(jià)值. 下一步將對手寫數(shù)字識別的性能進(jìn)行提高,可以增加更多不同手寫字體的訓(xùn)練樣本,改進(jìn)單個(gè)字符圖像切割的方法等.

      [1] 程習(xí)武,李旭偉,張德江,等. 基于像素匹配的Android平臺身份證號碼實(shí)時(shí)識別[J]. 現(xiàn)代計(jì)算機(jī),2016(4): 75-80.

      [2] 范春梅. 車牌識別算法的研究與實(shí)現(xiàn)[D]. 江門:五邑大學(xué),2013.

      [3] LECUN Y, BOTTOU L, BENGIO Y, et al. Gradient-based learning applied to document recognition [J]. Proc of the IEEE, 1998, 86(11): 2278-2324.

      [4] LIU Caihua, LIU Jie, YU Fang, et al. Handwritten character recognition with sequential convolutional neural network [C]//International Conference on Machine Learning and Cybernetics, July 14-17, 2013, [s.l.]: IEEE, c2013: 291-296.

      [5] CIRESAN D C, MEIER U, GAMBARDELLA L M, et al. Convolutional neural network committees for handwritten character classification [C]//International Conference on Document Analysis and Recognition. IEEE Computer Society, September 18-21,2011, Beijing: IEEE, c2011: 1135-1139.

      [6] 任美麗,孟亮. 基于原型生成技術(shù)的手寫體數(shù)字識別[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2015, 36(8): 2211-2216.

      [7] 李瓊,陳利,王維虎. 基于SVM的手寫體數(shù)字快速識別方法研究[J]. 計(jì)算機(jī)技術(shù)與發(fā)展,2014, 24(2): 205-208.

      [責(zé)任編輯:韋韜]

      Realization of a Digital Recognition Program Based on Deep Learning in the Android System

      LIANG Shu-fen, HU Shuai-hua, QIN Chuan-bo, DENG Zhi-qiang
      (School of Information Engineering, Wuyi University, Jiangmen 529020, China)

      In order to solve the problem of identifying handwriting, print numbers and ID numbers, the deep learning convolutional neural network (CNN) algorithm is studied, and an App of digits recognition system is developed on the Android smart phone platform to achieve preprocessing such preprocessing as digital image acquisition, cutting and positioning. Also the LeNet network model of the convolution neural network is used to conduct numeral recognition. The experimental results show that this App digital recognition system is convenient to use and achieves 94.77%, 98.32%, and 99.78% accuracy for handwriting numbers, print numbers, and ID numbers respectively.

      deep learning; convolutional neural network; digits recognition

      TP391.4

      A

      1006-7302(2017)01-0040-06

      2016-11-01

      廣東省特色創(chuàng)新類(教育科研類)資助項(xiàng)目(2015GXJK151);廣東省教育廳特色創(chuàng)新類資助項(xiàng)目(2015KTSCX148);廣東省江門市資助項(xiàng)目(江科[2014]145號).

      梁淑芬(1975—),女,廣東江門人,副教授,碩士生導(dǎo)師,主要研究方向?yàn)樾盘柵c信息處理.

      猜你喜歡
      手寫身份證號碼
      手寫比敲鍵盤更有助于學(xué)習(xí)和記憶
      都有身份證
      我手寫我心
      抓住身邊事吾手寫吾心
      說號碼 知顏色
      辣椒也有身份證
      一個(gè)號碼,一個(gè)故事
      猜出新號碼
      基于集成學(xué)習(xí)的MINIST手寫數(shù)字識別
      電子制作(2018年18期)2018-11-14 01:48:08
      趣說古人的“身份證”
      边坝县| 师宗县| 菏泽市| 吉安市| 仙桃市| 资阳市| 云林县| 西藏| 甘德县| 大厂| 巨鹿县| 衡南县| 上虞市| 武汉市| 壶关县| 原平市| 陈巴尔虎旗| 赣榆县| 虹口区| 县级市| 神农架林区| 嘉义市| 九寨沟县| 海南省| 勐海县| 聊城市| 新民市| 和静县| 宁蒗| 云和县| 沿河| 青阳县| 正安县| 读书| 黑山县| 凤庆县| 云龙县| 奇台县| 嵊泗县| 炉霍县| 南溪县|