摘 要:基于反向传播算法的多层前馈网络(简称BP神经网络)在图像处理方面应用较为广泛。目前,身份证号码识别技术 在图像识别领域迅猛发展,为提高识别身份证号码的速度及准确性,本文研究一种基于BP神经网络的身份证号码识别系统。首 先,将身份证图像进行预处理,接着利用MATLAB对身份证号码进行定位以及分割,然后利用BP神经网络,通过调用MATLAB神 经网络工具箱,设置相关参数对身份证号码进行训练、匹配数据库中的数字,最后识别并输出身份证号码。实验结果表明,基于 BP神经网络的身份证号码识别正确率为95% ,该系统具有较高的准确率以及鲁棒性。
自身份证在我国开始使用以来,身份证号码便被广泛应用 于确定身份信息。在大多数情况下,采用人工方式来登记身份 证号码,浪费了大量的时间和人力资源。另外,身份证号码识 别技术⑴属于图像识别领域的研究,随着图像识别技术越来越 普遍,利用神经网络⑵处理图像识别技术也吸引了群众的关 注。其中,BP神经网络a数据流的正向传播与误差函数的反 向传播相互结合,大大提高了图像识别的准确性和鲁棒性。
本文将BP神经网络应用于身份证号码的识别。结合 Matlab便捷的神经网络工具箱,⑷不仅避免了编程代码的复杂 性,又能自动分析出网络性能。BP神经网络只需输入身份证 图像,经过预处理后对字符进行训练,即可学习字符的特征,识 别出身份证号码。
1身份证号码图像的预处理
为了提高计算机处理时的运行速度和身份证号码识别的 准确率,我们需要对图像进行预处理。
首先运用加权平均值的方法,对图像灰度化。
然后使用直方图法来确定二值化阈值。在灰度直方图中, 前景和背景都会形成高峰,两个峰间的最低点即阈值点。根据 此阈值对图像二值化。
由于图像噪声的存在,需要先对图像进行开运算,⑸来去 除孤点、毛刺、消除小物体的边界,这里采用方形结构进行开 运算。
2身份证号码的定位与剪切
身份证是一种格式相对规范的证件,从整体来看,它的布 局是一样的,所以要想完成身份证号码的提取,首先要提取出 身份证号码在身份证上对应的区域,它位于证件下方,距离上、 下、左、右边缘分另U为44 mm,6 mm,29 mm, 10 mm0
为了能够准确的提取出身份证号码图像,去除多余的部 分,这里采用连通域标记算法⑹进行提取。连通域标记图如图 1所示。在Matlab中运用imcrop函数对图像进行剪切,如图2 所示。身份证号码采用水平投影和垂直投影分割的方式进行 切割,得到18个字符图像。如图3所示。
3基于Bp神经网络的字符识别
3. 1 Bp神经网络
BP神经网络由三部分组成,如图4所示。分别是输入层, 若干隐含层和输出层。各层通过线路连接,并且每条连接线具 有相应的权重值w,通常,除了输入层之外,每个神经元还有相 应的偏置b。⑺除了输入层中的神经元外,每个神经元通过加 权求和得到输入值z。
BP算法包括前向传输和逆向反馈。前向传输即从输入 层二〉隐含层二〉输出层,逐层计算所有神经元输出值的过程。 逆向反馈即误差信号的反向传播,误差信号从输出端反馈到 输入端来调整网络的权值,通过反复改变网络权值使网络的 输出不断逼近期望值。


实验时通过对大量身份证号码图像的剪切,建立训练数据 库。输入需要识别的身份证原图,通过对图像的预处理及字符 的切割,得到测试集。识别时,测试集和数据库相匹配,得到识 别结果,如图6所示,识别出的身份证号码将按顺序排列显示, 如果未能识别成功,则显示“识别错误”。MATLAB对于bp神 经网络的性能如图7所示。
输入层 隐含层 输出层 图4 Bp神经元结构图
Fig. 4 Neuron structure chart
3.2模型建立
本文中Bp神经网络模型的建立分为五个步骤,如图5 所示。
-
建立训练库
络始并置数 网初化设参
调 用 | 数据流 | 结 |
---|
图5流程图
Fig. 5 Flow chart
在参数设置方面,我们选用留一法,:8]分别将输入层、隐含 层、输出层维数设置为24,35,11。在原始初始化以后,将隐含
层和输出层的阈值bl、b2置0,在此基础上,采用rand函数随 机产生隐含层到输出层的权重参数。
一般来说,学习率9选取为0.01-0. 08,学习率过大可能导 致系统的不稳定,但学习率过小会导致收敛太慢,需要较长的 训练时间。采用变化的自适应学习率,使网络在不同的阶段设
置不同的学习率,可以减少寻找最佳学习率的训练次数和时 间。学习率设置为0.1,期望误差设置为0.001。
参数设置完成后,我们调用MATLAB的bpnn工具箱,利用 newff函数输入参数,利用net函数对身份证字符图像进行训练。
3.3实验结果及分析
训练经过四次迭代,用时0.01s,误差为0.00916,最大验证 失败次数为0。网络训练次数少,既省时又准确。
图7 BP网络性能
Fig. 7 Bp network performance image
实验采用150张图像进行测试,成功的身份证图像共143 张,准确率为95%。将身份证号码用以上方法进行分割,共得 到2700个数字图片。其中有六张图像各有1个数字识别失 败,有一张图像由于亮度太暗导致切割错误,数字识别的准确 率达到99.1%0
识别出的数字是2
识别出的数字是1
识别出的数字是。
识别出的数字是2
识别出的数字是1
识别出的数字是1
识别出的数字是1
识别出的数字是9
识别出的数字是8
识别出的数字是2
识别出的数字是1
识别出的数字是2
识别出的数字是1
识别出的数字是8
识别出的数字是1
识别出的数字是4
识别出的数字是1
识别出的数字是x
id =
'21021119821218141x,
图6识别结果
Fig. 6 Recognition result image
4结论
本文围绕身份证号码的识别展开研究。将Bp神经网络应 用于身份证号码的识别中,该网络结构简单且训练时间短。此 外,运用Matlab神经网络工具箱编写程序时,只需更改训练参数 即可达到仿真效果,节省了大量的测试时间。实验结果表明,该 方法识别的正确率达到95% ,具有很高的准确性和鲁棒性。
参考文献:
[1 ]赵兴旺,李天阳,汪亮,等.基于数码设备的二代身份证 号码识别系统[J].计算机与现代化,2014(6) : 132-136.
[2] 李晶晶.基于神经网络的图像识别方法研究[D].北 京:华北电力大学,2018.
[3] 冯立颖.改进的BP神经网络算法及其应用[J].计算 机仿真 2010,27(12) :172-175,
[4] 崔鑫.基于神经网络工具箱的能源预测[J].科技视界, 2018(13) :50-52,
[5] 沈阳,宓超,凤宇飞.形态学开运算在车型图像去噪中 的应用[J].中国科技信息,2015(18) :52-53.
[6 ]马益杭,占利军,谢传节,等.连通域标记算法的并行化 研究[J].地理与地理信息科学,2013,29(4) :67-71,
[7] 付海兵,曾黄麟.BP神经网络的算法及改进[J].中国 西部科技,2012,11(8) :23-24.
[8] 蒋文斌,彭晶,叶阁焰.深度学习自适应学习率算法研 究[J]•华中科技大学学报(自然科学版),2019,47(05) :79-83,
[9] 王雪红,刘晓青,陶海龙,等.优化BP神经网络的位移 预测模型[J].水利水运工程学报,2014(02) :38-42.