董夢帥 郄佳婷 孫佳樂 劉瑞峰
摘?要:基于反向傳播算法的多層前饋網(wǎng)絡(簡稱BP神經(jīng)網(wǎng)絡)在圖像處理方面應用較為廣泛。目前,身份證號碼識別技術在圖像識別領域迅猛發(fā)展,為提高識別身份證號碼的速度及準確性,本文研究一種基于BP神經(jīng)網(wǎng)絡的身份證號碼識別系統(tǒng)。首先,將身份證圖像進行預處理,接著利用MATLAB對身份證號碼進行定位以及分割,然后利用BP神經(jīng)網(wǎng)絡,通過調(diào)用MATLAB神經(jīng)網(wǎng)絡工具箱,設置相關參數(shù)對身份證號碼進行訓練、匹配數(shù)據(jù)庫中的數(shù)字,最后識別并輸出身份證號碼。實驗結果表明,基于BP神經(jīng)網(wǎng)絡的身份證號碼識別正確率為95%,該系統(tǒng)具有較高的準確率以及魯棒性。
關鍵詞:BP神經(jīng)網(wǎng)絡;預處理;定位;分割;訓練
中圖分類號:TP391.4文獻標識碼:A
Research on IDNumber Recognition Based on BP Neural Network
Dong Mengshuai?Qie Jiating?Sun Jiale?Liu Ruifeng
College of Electronical and Information Engineering,Langfang NormalUniversity?HebeiLangfang?065000
Abstract:The multi?layer feedforward network based on back propagation algorithm (referred to as BP neural network) is widely used in image processing.At present,ID card number identification technology is developing rapidly in the field of image recognition.In order to improve the speed and accuracy of identification of ID card numbers,this paper studies a ID number recognition system based on BP neural network.First,pre?process the ID card image,then use MATLAB to locate and segment the ID number,and then use the BP neural network to set the relevant parameters to train the ID number in the database by calling the MATLAB neural network toolbox.Number,finally identify and output the ID number.The experimental results show that the recognition rate of ID card number based on BP neural network is 95%,and the system has high accuracy and robustness.
Key words:bp neural network;preprocessing;location;segmentation;training
自身份證在我國開始使用以來,身份證號碼便被廣泛應用于確定身份信息。在大多數(shù)情況下,采用人工方式來登記身份證號碼,浪費了大量的時間和人力資源。另外,身份證號碼識別技術[1]屬于圖像識別領域的研究,隨著圖像識別技術越來越普 遍,利用神經(jīng)網(wǎng)絡[2]處理圖像識別技術也吸引了群眾的關注。其中,BP神經(jīng)網(wǎng)絡[3]數(shù)據(jù)流的正向傳播與誤差函數(shù)的反向傳播相互結合,大大提高了圖像識別的準確性和魯棒性。
本文將BP神經(jīng)網(wǎng)絡應用于身份證號碼的識別。結合Matlab便捷的神經(jīng)網(wǎng)絡工具箱,[4]不僅避免了編程代碼的復雜性,又能自動分析出網(wǎng)絡性能。BP神經(jīng)網(wǎng)絡只需輸入身份證圖像,經(jīng)過預處理后對字符進行訓練,即可學習字符的特征,識別出身份證號碼。
1 身份證號碼圖像的預處理
為了提高計算機處理時的運行速度和身份證號碼識別的準確率,我們需要對圖像進行預處理。
首先運用加權平均值的方法,對圖像灰度化。
然后使用直方圖法來確定二值化閾值。在灰度直方圖中,前景和背景都會形成高峰,兩個峰間的最低點即閾值點。根據(jù)此閾值對圖像二值化。
由于圖像噪聲的存在,需要先對圖像進行開運算,[5]來去除孤點、毛刺、消除小物體的邊界,這里采用方形結構進行開運算。
2 身份證號碼的定位與剪切
身份證是一種格式相對規(guī)范的證件,從整體來看,它的布局是一樣的,所以要想完成身份證號碼的提取,首先要提取出身份證號碼在身份證上對應的區(qū)域,它位于證件下方,距離上、下、左、右邊緣分別為44 mm,6 mm,29 mm,10 mm。
為了能夠準確的提取出身份證號碼圖像,去除多余的部分,這里采用連通域標記算法[6]進行提取。連通域標記圖如圖1所示。在Matlab中運用imcrop函數(shù)對圖像進行剪切,如圖2所示。身份證號碼采用水平投影和垂直投影分割的方式進行切割,得到18個字符圖像。如圖3所示。
3 基于Bp神經(jīng)網(wǎng)絡的字符識別
3.1 Bp神經(jīng)網(wǎng)絡
BP神經(jīng)網(wǎng)絡由三部分組成,如圖4所示。分別是輸入層,若干隱含層和輸出層。各層通過線路連接,并且每條連接線具有相應的權重值w,通常,除了輸入層之外,每個神經(jīng)元還有相應的偏置b。[7]除了輸入層中的神經(jīng)元外,每個神經(jīng)元通過加權求和得到輸入值z,z通過Sigmoid函數(shù)非線性轉化后得到輸出值a,計算公式如公式(1)、公式(2)所示。
Zlj=∑ni=1?w?ij?.a?l-1ij?-blj(1)
alj=f(z?(l)?j)=11+e?-z?(l)?j?(2)
BP算法包括前向傳輸和逆向反饋。前向傳輸即從輸入層=>隱含層=>輸出層,逐層計算所有神經(jīng)元輸出值的過程。逆向反饋即誤差信號的反向傳播,誤差信號從輸出端反饋到輸入端來調(diào)整網(wǎng)絡的權值,通過反復改變網(wǎng)絡權值使網(wǎng)絡的輸出不斷逼近期望值。
3.2 模型建立
本文中Bp神經(jīng)網(wǎng)絡模型的建立分為五個步驟,如圖5所示。
在參數(shù)設置方面,我們選用留一法,[8]分別將輸入層、隱含層、輸出層維數(shù)設置為24,35,11。在原始初始化以后,將隱含層和輸出層的閾值b1、b2置0,在此基礎上,采用rand函數(shù)隨機產(chǎn)生隱含層到輸出層的權重參數(shù)。
一般來說,學習率[9]選取為0.01?0.08,學習率過大可能導致系統(tǒng)的不穩(wěn)定,但學習率過小會導致收斂太慢,需要較長的訓練時間。采用變化的自適應學習率,使網(wǎng)絡在不同的階段設置不同的學習率,可以減少尋找最佳學習率的訓練次數(shù)和時間。學習率設置為0.1,期望誤差設置為0.001。
參數(shù)設置完成后,我們調(diào)用MATLAB的bpnn工具箱,利用newff函數(shù)輸入?yún)?shù),利用net函數(shù)對身份證字符圖像進行訓練。
3.3 實驗結果及分析
實驗時通過對大量身份證號碼圖像的剪切,建立訓練數(shù)據(jù)庫。輸入需要識別的身份證原圖,通過對圖像的預處理及字符的切割,得到測試集。識別時,測試集和數(shù)據(jù)庫相匹配,得到識別結果,如圖6所示,識別出的身份證號碼將按順序排列顯示,如果未能識別成功,則顯示“識別錯誤”。MATLAB對于bp神經(jīng)網(wǎng)絡的性能如圖7所示。
實驗采用150張圖像進行測試,成功的身份證圖像共143張,準確率為95%。將身份證號碼用以上方法進行分割,共得到2700個數(shù)字圖片。其中有六張圖像各有1個數(shù)字識別失敗,有一張圖像由于亮度太暗導致切割錯誤,數(shù)字識別的準確率達到99.1%。
訓練經(jīng)過四次迭代,用時0.01s,誤差為0.00916,最大驗證失敗次數(shù)為0。網(wǎng)絡訓練次數(shù)少,既省時又準確。
4 結論
本文圍繞身份證號碼的識別展開研究。將Bp神經(jīng)網(wǎng)絡應用于身份證號碼的識別中,該網(wǎng)絡結構簡單且訓練時間短。此外,運用Matlab神經(jīng)網(wǎng)絡工具箱編寫程序時,只需更改訓練參數(shù)即可達到仿真效果,節(jié)省了大量的測試時間。實驗結果表明,該方法識別的正確率達到95%,具有很高的準確性和魯棒性。
參考文獻:
[1]趙興旺,李天陽,汪亮,等.基于數(shù)碼設備的二代身份證號碼識別系統(tǒng)[J].計算機與現(xiàn)代化,2014(6):132?136.
[2]李晶晶.基于神經(jīng)網(wǎng)絡的圖像識別方法研究[D].北京:華北電力大學,2018.
[3]馮立穎.改進的BP神經(jīng)網(wǎng)絡算法及其應用[J].計算機仿真2010,27(12):172?175.
[4]崔鑫.基于神經(jīng)網(wǎng)絡工具箱的能源預測[J].科技視界,2018(13):50?52.
[5]沈陽,宓超,鳳宇飛.形態(tài)學開運算在車型圖像去噪中的應用[J].中國科技信息,2015(18):52?53.
[6]馬益杭,占利軍,謝傳節(jié),等.連通域標記算法的并行化研究[J].地理與地理信息科學,2013,29(4):67?71.
[7]付海兵,曾黃麟.BP神經(jīng)網(wǎng)絡的算法及改進[J].中國西部科技,2012,11(8):23?24.
[8]蔣文斌,彭晶,葉閣焰.深度學習自適應學習率算法研究[J].華中科技大學學報(自然科學版),2019,47(05):79?83.
[9]王雪紅,劉曉青,陶海龍,等.優(yōu)化BP神經(jīng)網(wǎng)絡的位移預測模型[J].水利水運工程學報,2014(02):38?42.