基于深度学习的身份证号码识别方法

  1. 课题背景

为了对二代身份证进行拍照获得图像后,实现对身份证号码的识别,提出了一种基于深度学习的身份证号码识别方法。该方法的思想是先通过先验知识确定身份证号码的大致位置,然后用迭代二值化和连通域技术提取出身份证号码图像;采用投影法分割出身份证号码单个灰度化字符,再利用基于深度学习卷积神经网络的方法,直接输入原始图像,避免对图像进行复杂的预处理工作,利用训练出来的模型识别出字符。

2004 年我国开始使用二代居民身份证,由于身份证编号能唯一确定一张身份证,并能得到一些个人信息,所以在大多数情况下,身份证一般只登记身份证号码,但登记还是采用人工方式,这不仅耗时而且效率低下,因此,如何快速录入身份证号码成为急需解决的问题,尤其是光学字符识别

(Optical Character Recognition,OCR)技术被成功引用到证件行业上来,身份证识别技术也得到广泛运用。

  1. 常用的方法

身份证号码的识别技术属于图像字符识别领域,目前国 内外采用较多的方法主要有两类:基于模板匹配 OCR 算法和基于神经网络的 OCR 算法 [1-2]。目前随着人工智能领域深度学习的快速发展,图像识别技术的研究和应用飞速发展, 并取得突破性进展,光学字符识别技术也开始采用深度学习。其中卷积神经网络是深度学习 [3] 的一种高效识别算法,将卷积神经网络(Convolutional Neural Network,CNN)运用到身份证号码识别中,能够提高识别精度和增强鲁棒性。卷积 神经网络可以直接输入原图像进行训练,学习图像的特征, 经过训练后的网络可以用于字符的识别。

  1. 身份证号码的定位和提取

3.1、身份证号码的定位

虽然第二代居民身份证的大小是固定的,但是拍照不像 扫描获得的身份证图像固定,因此,不能直接通过身份证图像 的大小来获取它的位置。图1(a) 为通过拍照获得的身份证图像, 要求拍照的背景不要复杂,比较简单,能够和身份证形成比较 大的差异,并且身份证在图像中的位置要居中和占据 80% 左右的空间,倾斜角不要太大,以保证能够检测到身份证,并 不会对身份证号码的定位造成影响。不管身份证的尺寸如何, 身份证号码在身份证上的位置总是固定的,结合先验知识和获

得的身份证图像,身份证号码位置要大于图像宽度的 1/3。身份证上身份证号码总是处于人脸之下,可以采用 Matlab 自带的 Vision 工具箱检测到人脸(如图 1(b) 所示),身份证号码大概在检测到的人脸长度的 1.2 倍之下,从而截取出包括身份证号码区域的一部分图像,如图 1(c) 所示。

获得的一部分图像是彩色图像,需要进行灰度化和二值化处理。常见的灰度化处理方法有平均值法、加权平均值法和最大值法等。通常加权平均值法 [4],按公式(1)对 RGB 三个分量进行加权平均能得到灰度图像。

F=0.2989R+0.5870G+0.1140B (1)

式(1)中,F 为像素的灰度值,R 为彩色图像中红色分量的值,G 为彩色图像中绿色分量的值,B 为彩色图像蓝色分量的值。常见的二值化处理方法有全局固定阈值、自适应阈值二值化和 OSTU 法。采用了迭代法进行二值化 [5],其思想是利用迭代的方法最终找到一个最佳的分割阈值,二值化后得到如图 1(d) 所示。

通常二值化后会用投影分割切割出身份证号码,但是图像区域还是略大,而且还有些其他的非号码区域,因此,继续采用一些图像处理技术来更好地提取出身份证号码图像, 达到要求。首先是对图像进行开运算,使得图像形成几个连通域,接着用 8 邻域标记连通域。因为身份证号码高度基本一致,所以身份证号码连通域将被合并。图像形成的连通域可能不止包括身份证号码,还有其他的部分,因此,需要计算连通域的面积来进行号码区域匹配,选取匹配度接近 1 的

连通域,并对目标区域分别向上下左右延伸 7 个像素,最后

在原图像上提取出身份证号码图像,如图 2 所示。

图 2 身份证号码图像

3.2、单个字符提取

获得身份证号码图像后,需要对图像进行字符分割,提取出单个字符。可以通过投影分割的方法来实现,步骤如下:

  1. 对图像进行加权灰度化;
  2. 用迭代二值化方法二值化灰度图像;
  3. 采用像素水平投影和垂直投影 [6] 法切割出单个字符,图 3 为切割后的 18 个灰度化字符。

图 3 18 个灰度化的字符

  1. 基于卷积神经网络的字符识别

4.1、深度学习

深度学习是机器学习研究中的一个新的领域,目的在于 模仿人脑的机制来解释数据,例如图像、声音和文本。深度 学习采用了神经网络的分层结构,系统包括输入层、隐藏层 和输出层组成的多层网络,只有相邻的节点之间有连接,同 一层以及跨层节点之间相互无连接,通过对给定的训练集不 断训练,主动学习一些特征,从而建立模型。深度学习首先 利用无监督学习对每一层网络进行逐层预训练,每次用无监 督学习只训练一层,并将训练结果作为更高一层的输入,最 后用监督学习去调整所有层。CNN[7-9] 是深度学习的一个重要算法,也是一种多层神经网络,通过卷积来模拟特征区分, 并且通过卷积的权值共享及池化,来降低网络参数数量级, 最后通过神经网络 [10-11] 完成分类等任务。

4.2、CNN 网络模型

深度学习的 CNN 网络结构主要考虑网络层数、卷积层神经元数和子采样层神经层数,以及最后输出层的神经层数。

CNN 网络结构如图 4 所示,参考了 CaffeNet[12] 模型,网络共有 8 层,其中前 5 层是卷积层,后 3 层是全连接层,由于

身份证号码有 0 ~ 9 和 X 共 11 类,因此,最后一个输出分类层是作为分类的总数。

图 4 CNN 网络模型

  1. 实 验

本文由于采用了基于深度学习的身份证号码识别方法, 训练需要大量的数据集,而从实际中获取不现实,因此本文采用自己合成的数据集,用身份证号码区域的背景,身份证号码字体 OCR-B 10 BT,融合了不同的高斯噪声、不同的字体倾斜角、字体大小不同、RGB 不同以及区域大小,并且将

18 位身份证号码加入验证,确保符合真实的身份证号码要求, 得到了 10W 张身份证号码图像,如图 5 所示,并且每一张图像都有标签。

图 5 合成的数据集

用二值化和投影分割切出字符,将其分到 11 类中。本次实验是基于 ubuntu 14.10,GTX 980 的机器,深度学习的框架是Caffe,通过输入原图像,将图像归一化为 64*64 大小, 训练图像接近 18W,其中有 768 个字符没有切割出来,训练迭代 5W 次,得到模型,训练准确率接近 100%。通过自己拍照获得了 541 张身份证图像,身份证号码数共 9 738 个,

用之前的方法切割出 9 643 个字符,切割正确率为 99%,测试的识别率为 98%,其中错误的共 195 个。实验过程中有一些身份证号码图像切割出错,测试识别出错最多的是 0,图6 为切割出错的真实身份证号码图像示例。

图 6 切割出错的真实身份证号码图像示例

  1. 结 语

本文针对二代身份证拍照识别的问题进行了研究,提出了基于深度学习的字符识别方法,该方法对身份证的号码有很高的识别率,对字符的倾斜和大小有很好的鲁邦性。但当分割出来的字符不太完整、图像质量比较差时识别会有一定影响。

  1. 参考文献
  2. 凌小静 , 路小波 , 黄卫 . 车牌字符识别 [C]// 全国交通运输领域青年学术会议 ,2003.
  3. 王敏 , 黄心汉 , 魏武 , 等 . 一种模板匹配和神经网络的车牌字符识别方法 [J]. 华中科技大学学报 : 自然科学版 ,2001,29(3):48-50.
  4. 孙志军 , 薛磊 , 许阳明 , 等 . 深度学习研究综述 [J]. 计算机应用研究 ,2012,29(8):2806-2810.
  5. 李贞培 , 李平 , 郭新宇 , 等 . 三种基于 GDI+ 的图像灰度化实现方法 [J]. 计算机技术与发展 ,2009,19(7):73-75.
  6. 李开 , 陈礼安 , 曹计昌 . 基于灰度多值化的身份证号码识别 [J]. 计算机工程与应用 ,2015,51(13):191-196.
  7. 杨晓娟 , 宋凯 . 基于投影法的文档图像分割算法 [J].

成都大学学报 : 自然科学版 ,2009,28(2):139-141.

  1. 李彦冬 , 郝宗波 , 雷航 . 卷积神经网络研究综述 [J].

计算机应用 ,2016,36(9):2508-2515.

  1. 徐姗姗 . 卷积神经网络的研究与应用 [D]. 南京 : 南京林业大学 ,2013.
  2. 郑永森 . 基于卷积神经网络的身份证号码识别研究与实现 [J]. 计算机光盘软件与应用 ,2015(3):13-14.
  3. 施少敏 , 马彦恒 , 陈建泗 . 基于 BP 神经网络的数字识别方法 [J]. 兵工自动化 ,2006,25(10):40-41.
  4. 陈先昌 . 基于卷积神经网络的深度学习算法与应用研究 [D]. 杭州 : 浙江工商大学 ,2013.

[12]A Krizhevsky,I Sutskever,GE Hinton.ImageNet classification with deep convolutional neural networks[C]// International Conference on Neural Information Processing Systems,2012:1097-1105.

基于深度学习的身份证号码识别方法相关推荐

  1. 基于深度学习的身份证号码识别(OCR,Opencv,Pytorch)

    文章目录 前言 模型结构 数据集 模型训练 项目结构&源码下载 前言 最近做了一个身份证号码识别项目,在此分享一下.视频效果如下所示,共有两种识别方法,其一就是直接上传身份证号码的截图进行识别 ...

  2. 基于linux火焰识别算法,一种基于深度学习模型的火焰识别方法与流程

    本发明属于通信领域,具体涉及一种基于深度学习模型的火焰识别方法. 背景技术: 随着我国工业化与城镇水平的不断提高,现代设施大型公共建筑朝着空间大.进深广功能复杂的多元化方向发展,这对于防烟火朝着空间大 ...

  3. 基于深度学习的命名实体识别研究综述——论文研读

    基于深度学习的命名实体识别研究综述 摘要: 0引言 1基于深度学习的命名实体识别方法 1.1基于卷积神经网络的命名实体识别方法 1.2基于循环神经网络的命名实体识别方法 1.3基于Transforme ...

  4. DeepEye:一个基于深度学习的程序化交易识别与分类方法

    DeepEye:一个基于深度学习的程序化交易识别与分类方法 徐广斌,张伟 上海证券交易所资本市场研究所,上海 200120  上海证券交易所产品创新中心,上海 200120    摘要:基于沪市A股交 ...

  5. opencv交通标志识别_教你从零开始做一个基于深度学习的交通标志识别系统

    教你从零开始做一个基于深度学习的交通标志识别系统 基于Yolo v3的交通标志识别系统及源码 自动驾驶之--交通标志识别 在本文章你可以学习到如何训练自己采集的数据集,生成模型,并用yolo v3算法 ...

  6. 《基于深度学习的加密流量识别研究》-2022毕设笔记

    参考文献: 基于深度学习的网络流量分类及异常检测方法研究_王伟 基于深度学习的加密流量分类技术研究与实现_马梦叠 基于深度学习的加密流量识别研究综述及展望_郭宇斌 基于深度学习的加密流量算法识别研究_ ...

  7. 书法特征提取matlab,基于深度学习的软笔书法临摹评价方法与流程

    本发明属于计算机视觉技术领域,涉及手写汉字行书字体的评价,尤其是一种基于深度学习的软笔书法临摹评价方法. 背景技术: 书法是我国具有几千年历史的传统艺术,是我们中华民族的特色文化代表之一,它不仅记录着 ...

  8. 【手写汉字识别】基于深度学习的脱机手写汉字识别技术研究

    写在前面 最近一段时间在为本科毕业设计做一些知识储备,方向与手写识别的系统设计相关,在看到一篇2019年题为<基于深度学习的脱机手写汉字识别技术研究>的工学硕士论文后,感觉收获比较大,准备 ...

  9. 基于深度学习的农作物病虫害识别系统

    1 简介 今天向大家介绍一个帮助往届学生完成的毕业设计项目,基于深度学习的农作物病虫害识别系统. ABSTRACT 及时.准确地诊断植物病害,对于防止农业生产的损失和农产品的损失或减少具有重要作用.为 ...

  10. 基于深度学习的人脸性别识别系统(含UI界面,Python代码)

    摘要:人脸性别识别是人脸识别领域的一个热门方向,本文详细介绍基于深度学习的人脸性别识别系统,在介绍算法原理的同时,给出Python的实现代码以及PyQt的UI界面.在界面中可以选择人脸图片.视频进行检 ...

最新文章

  1. 黑php的称呼,称呼
  2. android中变量作用域,在 Android 和 Hilt 中限定作用域
  3. 在Windows 7中设置Java开发环境
  4. 单片机与PC机一样都是计算机,51单片机与PC机通信资料
  5. 一个基于Node.js的本地快速测试服务器 1
  6. 软件工程复习提纲——第九章
  7. java过去不到空单元格,Java POI。空白时跳过单元格
  8. 机器人模仿人类动作一学就会,还能举一反三了 | 论文
  9. python爬虫股票数据分析判断股票好坏_教你用Python爬虫股票评论,简单分析股民用户情绪...
  10. java实现带logo的二维码
  11. H264视频编码原理基础分析
  12. 海康视频WEB插件 V1.5.2 开发总结
  13. 论文阅读: (ECCV 2022) Content-Oriented Learned Image Compression
  14. 星球日报 | Huobi Prime 首期项目 TOP “中签率”2%,开盘暴涨 27 倍
  15. 计算机组成原理分部实验,《计算机组成原理》课程建设的一点思考参考.pdf
  16. 腾讯课堂课程汇总 CourseList(1000000-1001000)
  17. 就靠一刀999的手游广告,这些隐形公司可以月赚百万
  18. 超赞!世界10个著名悖论的最终解答来了!
  19. 看视频可以倍速播放的(主流播放器都可以)
  20. 数据结构PTA 基础实验7-2.1 魔法优惠券

热门文章

  1. bp神经网络算法的优缺点,bp神经网络缺点及克服
  2. 数学建模——论文排版
  3. 勤哲web配置教程_勤哲Excel服务器新手教程
  4. mcafee完全彻底卸载方法
  5. PC Logo入门指南
  6. 计算机辅助工程分析及应用论文,浅谈计算机辅助工程(CAE) 毕业设计(论文).doc...
  7. 21种网页在线客服代码实例演示
  8. 商淘软件S2B2C供应链系统 支持多种电商模式
  9. SIM900A—发送、接收中英文短信
  10. php怎么调用php语言包,thinkphp里怎么调用语言包