一种身份证图像识别的方法及其设备转让专利

申请号 : CN201810969824.8

文献号 : CN110858304A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 周晔穆海洁裔隽

申请人 : 上海汇付数据服务有限公司

摘要 :

本发明公开了一种身份证图像的识别方法,包括以下步骤:采集身份证图像,对身份证图片进行预处理,识别身份证区域,将身份证区域图像转换成相同大小的矩阵作为神经网络的输入数据形成样本库;构建卷积神经网络模型,设置卷积层,池化层,隐藏层和分类层,设置卷积神经网络模型参数;对卷积神经网络模型进行调优;使用训练集样本训练卷积神经网络模型,使用测试集测试训练后卷积神经网络的准确性和稳定性;对识别的身份证图像并进行预处理,将图像转换成相同大小的矩阵;调用调优后的卷积神经网络模型的输出分类模型对识别的身份证图像数据进行识别。本发明创新性地将计算机识别技术应用到身份证的识别当中,结合深度学习的方式,输出效果理想。

权利要求 :

1.一种身份证图像的识别方法,其特征在于,包括以下步骤:

步骤1:采集身份证图像,对身份证图片进行预处理,识别身份证区域,并将身份证区域图像转换成相同大小的矩阵作为神经网络的输入数据形成样本库;

步骤2:构建卷积神经网络模型,设置卷积层,池化层,隐藏层和分类层,并设置卷积神经网络模型参数;

步骤3:对步骤2中的卷积神经网络模型进行调优;将身份证样本库分为训练集和测试集,使用训练集样本训练卷积神经网络模型,使用测试集测试训练后卷积神经网络的准确性和稳定性,记录分类结果,保存最优结果模型并调整步骤2中的分层结构及模型参数,获得调优卷积神经网络模型;

步骤4:对待识别的身份证图像并进行预处理,去除背景后进行统一压缩,并将图像转换成相同大小的矩阵;

步骤5:调用调优后的卷积神经网络模型的输出分类模型对待识别的身份证图像数据进行识别,并将该身份证图像数据加入身份证样本库进行模型持续训练。

2.根据权利要求1所述的身份证图像的识别方法,其特征在于,所述步骤1中的图片预处理过程包括:步骤1.1:将彩色图像灰度化;

步骤1.2:将灰度图像直方图均衡化及二值化,将灰度图像转化成位图模式图像,并进行投射变换校正,膨胀腐蚀操作,倾斜校正,水平垂直投影获得训练图像样本,标识出身份证号码区域,姓名区域,地址区域,有效期限区域和签发机构区域;

步骤1.3:按区域对训练图像样本进行边缘切割,统一分辨率,形成训练图像样本库。

3.根据权利要求2所述的身份证图像的识别方法,其特征在于,所述训练图像样本库为三个;选取切割完整的字符,将姓名、地址和签发机构获得的中文,数字,英文和符号归为一个样本库;选取切割完整的身份证号作为一个样本库;选取切割完整的有效期数字和中文字符作为一个样本库;对以上三个样本库归为不同模型进行训练。

4.根据权利要求2所述的身份证图像的识别方法,其特征在于,所述相同大小的矩阵的像素尺寸为32*32。

5.根据权利要求2所述的身份证图像的识别方法,其特征在于,在采集身份证图像录入样本库的同时,针对真实样本中不存在的生僻字和样本量少的中文字符,采用造字方式扩充中文字符样本。

6.根据权利要求1所述的身份证图像的识别方法,其特征在于,所述步骤2中所述的卷积神经网络模型参数主要包括:批次尺寸,训练步数和优化器。

7.根据权利要求1所述的身份证图像的识别方法,其特征在于,所述步骤5中的身份证图像数据在加入身份证样本库前进行压缩处理;在卷积神经网络模型调优过程中对该预处理数据进还原处理。

8.根据权利要求7所述的身份证图像的识别方法,其特征在于:所述压缩处理过程包括:去除身份证周围背景;身份证图像大小压缩;图片编码;传至后端。

9.根据权利要求7所述的身份证图像的识别方法,其特征在于:所述还原处理过程包括:图像解码;统一身份证图像大小;传至识别系统进行识别。

10.一种身份证图像识别的设备,其特征在于,包括:

身份证图像样本库收集模块:用于采集身份证图像,对身份证图片进行预处理,识别身份证区域,并将身份证区域图像转换成相同大小的矩阵作为神经网络的输入数据形成样本库;

卷积神经网络模型构建模块:用于构建卷积神经网络模型,设置卷积层,池化层,隐藏层和分类层,并设置卷积神经网络模型参数;

卷积神经网络模型训练模块:用于对卷积神经网络模型进行调优;将身份证样本库分为训练集和测试集,使用训练集样本训练卷积神经网络模型,使用测试集测试训练后卷积神经网络的准确性和稳定性,记录分类结果,保存最优结果模型并调整步骤2中的分层结构及模型参数,获得调优卷积神经网络模型;

身份证图像收集处理模块:用于对待识别的身份证图像并进行预处理,去除背景后进行统一压缩,并将图像转换成相同大小的矩阵;

身份证图像识别模块:用于调用调优后的卷积神经网络模型的输出分类模型对待识别的身份证图像数据进行识别,并将该身份证图像数据加入身份证样本库进行模型持续训练。

说明书 :

一种身份证图像识别的方法及其设备

技术领域

[0001] 本发明涉及图像识别技术领域,尤其涉及一种身份证图像识别的方法及其设备。

背景技术

[0002] 随着电子金融的快速发展,网络支付业务开始逐渐的进入每个人的生活,身份验证是一种最为基础的网络支付安全手段被广泛使用,故近几年来快速准确的获取身份证图片中的信息的需求与日俱增。本发明主要识别用户上传的身份证正反面图像中的姓名、身份证号、地址、签发机构和有效期信息。基于机器学习的身份证正反面信息识别技术可以大幅提升获取身份证信息的效率。不同于以往的人工录入方式,使用自动识别技术可以提高用户体验,降低机构的人力成本,能有效的推动电子金融的快速发展。
[0003] 广义上,图像就是所有具有视觉效果的画面,包括纸介质上的、底片或照片上的、电视、投影仪或计算机屏幕上的画面。
[0004] 一幅图像可以定义为一个二维函数f(x,y),其中x和y是空间坐标,在任何一对空间坐标(x,y)处的幅值f称为图像在该点的强度或灰度。当x,y,f(x,y)是有限的离散数值时,该图像称为数字图像。数字图像由一个个元素组成,每个元素都有一个特定的位置和幅值,这些元素称为像素。
[0005] 像素实质是一个物理尺寸单位。例如,17英寸大的电脑屏幕可以用800*1280个像素来显示图像,也可以用600*800个像素来显示,而前者画面看起来会更清晰,因为在相同大小的屏幕下,前者每一个像素所表示的物理尺寸更小,意味着画面更精细,分辨率更高。一幅图像可以用由像素组成的二维矩阵表示。
[0006] 常见图像色彩模式包括:
[0007] 位图模式:图像只有黑色和白色的像素,每个像素只有2个值可取。
[0008] 灰度模式:使用256级灰度来表示像素,每个像素有一个0(黑)到255(白)之间的强度。
[0009] RGB模式:用红、绿、蓝三基色形成的三元组来表示像素,三元组的每个数值按照0(相应的基色在该像素中没有)到255(相应的基色在该像素中取得最大值)来表示。当三元组相等时,该像素产生灰色。
[0010] HSB模式:根据日常生活中人眼的视觉对色彩的观察制定的一套模式,最接近人类对色彩的辨认思考方式。所有像素用色彩的三个属性来描述:H(色相)从物体反射或透过物体传播的颜色;S(饱和度)颜色的强度或纯度,表示色相中灰色成份的比例;B(亮度)颜色的相对明暗程度。
[0011] 在现有的网络支付业务中,用户身份证信息的录入是必不可少的一个环节。但完全采用手动输入的方式,既耗时又容易出错,非常容易导致用户体验的降低。并且对于商户来说,注册和认证步骤操作越简单快速,才可以使用户尽快开始进行交易,提高交易量。采用人工输入的传统方式已经不能满足现阶段业务拓展的高速进行。

发明内容

[0012] 本发明的目的是解决现有技术中的问题,提供一种将计算机识别(图像识别)技术应用到非规范身份证的识别当中,结合深度学习的方式,有效防范此类身份证带给交易的风险,更加灵活和可靠的异常身份证识别方法。
[0013] 本发明提供一种异常身份证的识别方法,包括以下步骤:
[0014] 步骤1:采集身份证图像,对身份证图片进行预处理,识别身份证区域,并将身份证区域图像转换成相同大小的矩阵作为神经网络的输入数据形成样本库;
[0015] 步骤2:构建卷积神经网络模型,设置卷积层,池化层,隐藏层和分类层,并设置卷积神经网络模型参数;
[0016] 步骤3:对步骤2中的卷积神经网络模型进行调优;将身份证样本库分为训练集和测试集,使用训练集样本训练卷积神经网络模型,使用测试集测试训练后卷积神经网络的准确性和稳定性,记录分类结果,保存最优结果模型并调整步骤2中的分层结构及模型参数,获得调优卷积神经网络模型;
[0017] 步骤4:对待识别的身份证图像并进行预处理,去除背景后进行统一压缩,并将图像转换成相同大小的矩阵;
[0018] 步骤5:调用调优后的卷积神经网络模型的输出分类模型对待识别的身份证图像数据进行识别,并将该身份证图像数据加入身份证样本库进行模型持续训练。
[0019] 优选地,所述步骤1中的图片预处理过程包括:
[0020] 步骤1.1:将彩色图像灰度化;
[0021] 步骤1.2:将灰度图像直方图均衡化及二值化,将灰度图像转化成位图模式图像,并进行投射变换校正,膨胀腐蚀操作,倾斜校正,水平垂直投影获得训练图像样本,标识出身份证号码区域,姓名区域,地址区域,有效期限区域和签发机构区域;
[0022] 步骤1.3:按区域对训练图像样本进行边缘切割,统一分辨率,形成训练图像样本库。
[0023] 优选地,所述训练图像样本库为三个;选取切割完整的字符,将姓名、地址和签发机构获得的中文,数字,英文和符号归为一个样本库;选取切割完整的身份证号作为一个样本库;选取切割完整的有效期数字和中文字符作为一个样本库;对以上三个样本库归为不同模型进行训练。
[0024] 优选地,所述相同大小的矩阵的像素尺寸为32*32。
[0025] 优选地,在采集身份证图像录入样本库的同时,针对真实样本中不存在的生僻字和样本量少的中文字符,采用造字方式扩充中文字符样本。
[0026] 优选地,所述步骤2中所述的卷积神经网络模型参数主要包括:批次尺寸,训练步数和优化器。
[0027] 优选地,所述步骤5中的身份证图像数据在加入身份证样本库前进行压缩处理;在卷积神经网络模型调优过程中对该预处理数据进还原处理。
[0028] 优选地,所述压缩处理过程包括:去除身份证周围背景;身份证图像大小压缩;图片编码;传至后端。
[0029] 优选地,所述还原处理过程包括:图像解码;统一身份证图像大小;传至识别系统进行识别。
[0030] 一种身份证图像识别的设备,其特征在于,包括:
[0031] 身份证图像样本库收集模块:用于采集身份证图像,对身份证图片进行预处理,识别身份证区域,并将身份证区域图像转换成相同大小的矩阵作为神经网络的输入数据形成样本库;
[0032] 卷积神经网络模型构建模块:用于构建卷积神经网络模型,设置卷积层,池化层,隐藏层和分类层,并设置卷积神经网络模型参数;
[0033] 卷积神经网络模型训练模块:用于对卷积神经网络模型进行调优;将身份证样本库分为训练集和测试集,使用训练集样本训练卷积神经网络模型,使用测试集测试训练后卷积神经网络的准确性和稳定性,记录分类结果,保存最优结果模型并调整步骤2中的分层结构及模型参数,获得调优卷积神经网络模型;
[0034] 身份证图像收集处理模块:用于对待识别的身份证图像并进行预处理,去除背景后进行统一压缩,并将图像转换成相同大小的矩阵;
[0035] 身份证图像识别模块:用于调用调优后的卷积神经网络模型的输出分类模型对待识别的身份证图像数据进行识别,并将该身份证图像数据加入身份证样本库进行模型持续训练。本发明的优点是:1,摈弃了原来耗费人力、效率低下、识别准确率低的人工和规则的方式,创新性地将计算机识别(图像识别)技术应用到非规范身份证的识别当中,结合深度学习的方式,通过监督式学习,将输入的图片进行归类。一方面,一旦模型训练完成,标记样本仅需要少量的人工参与,模型进行自动更新和训练,降低了对于人的依赖;另一方面,系统能够随着收集的样本及数据的增加,针对新的不合规身份证可以迭代式更新,防范此类身份证带给交易的风险,更加灵活和可靠。2、模型训练过程总的图片预处理方式、图片尺寸、样本选择比例等较为合理,可以获得最优的训练效果。3、卷积神经网络模型的分层设置方式和参数设置较为合理,输出效果理想。
[0036] 为了使本发明实现的技术手段、技术特征、发明目的与技术效果易于明白了解,下面结合具体图示,进一步阐述本发明。

附图说明

[0037] 图1为本发明的逻辑流程图;
[0038] 图2为本发明实施例中卷积神经网络模型的分层示意图;
[0039] 图3为本发明实施例中的数据压缩流程示意图;
[0040] 图4为本发明实施例中的数据还原处理流程示意图。

具体实施方式

[0041] 神经网络算法是一类模仿生物神经网络而构建的计算机算法的总称,由若干人工神经元结点(简称“神经元”)互联而成。神经元之间通过突触两两连接,突触记录了神经元间联系的强弱(权值)。人脑通过几十亿神经元和千万亿个突触对视觉、听觉等各类刺激物做出反应,而学习的过程,也就是神经元改变相互连接方式的过程,从而使得人类能对刺激做出合理的反应,神经网络即模拟了人脑神经工作的过程。
[0042] 卷积神经网络是近年发展起来,并引起广泛重视的一种高效识别方法。20世纪60年代,Hubel和Wiesel在研究猫脑皮层中用于局部敏感和方向选择的神经元时发现其独特的网络结构可以有效地降低反馈神经网络的复杂性,继而提出了卷积神经网络。现在,CNN已经成为众多科学领域的研究热点之一,特别是在模式分类领域,由于该网络避免了对图像的复杂前期预处理,可以直接输入原始图像,因而得到了更为广泛的应用。
[0043] 本发明将一种将计算机识别(图像识别)技术应用到非规范身份证的识别当中,结合深度学习的方式,有效防范此类身份证带给交易的风险。
[0044] 本发明实施例的用于异常身份证的识别方法流程如图1所示,整体分为相对独立的两个流程:在线验证流程和模型持续训练过程。
[0045] 验证环节通过调用分类模型进行身份证图像鉴定,并将身份证图像资源入库以便作为训练集参与持续训练。
[0046] 一、模型训练流程
[0047] (一)样本准备和预处理
[0048] 1、图像二值化。
[0049] 图像二值化又称灰度分划,是将灰度图片转化成位图模式图片的技术,适合于做文字识别或条纹辨认的图像。二值化的基本过程如下:
[0050] A:对原始图像作中低通滤波,降低或去除噪声
[0051] B:用算法确定最佳阀值
[0052] C:凡是像素的灰度值大于阀值的设为255,小于阀值的设为0,将图像转变成位图模式(只有黑白两个颜色)
[0053] 常用的二值化算法包括有:
[0054] (1)Otsu算法(最大类间方差法)
[0055] 基本原理:用某个假定的灰度值将图像灰度分成两类,当两类的类间方差最大时,该灰度值就是图像二值化的最佳阀值。
[0056] 设图像有M个灰度值,在[0,M-1]范围内选取灰度值t将图像分成两类G0和G1,则G0和G1包含像素的灰度值分别在[0,t]和[t+1,M-1]之间。用N表示图像的像素总数,ni表示灰度为i的像素的个数,则每一个灰度值i出现的概率为:
[0057] Pi=ni/N
[0058] G0和G1类出现的概率和灰度均值是:
[0059]
[0060]
[0061] 两类的类间方差:
[0062] σ2=(μ0-μ1)2ω0ω1
[0063] 最佳阀值t就是使类间方差最大化的t的值。
[0064] (2)灰度拉伸法
[0065] 当图像的目标和背景对比不明显,即灰度相差不大或图片有噪声时,Ostu算法的效果不太理想,为此有人提出了灰度拉伸的增强的Otus算法。灰度拉伸即用图像原有灰度乘以一个大于1的系数,从而增加像素灰度的差别。
[0066] (3)类Otsu算法
[0067] 在Otsu算法基础上,引入类内方差:
[0068] σ12=ω0μ02ω1μ12
[0069] 求类间方差和类内方差的比值:
[0070] S(t)=σ2/σ12
[0071] 当该比值最大时,所得到的t就是最佳阀值。
[0072] (4)Bernsen算法
[0073] Bernsen算法是一种典型的局部二值化算法,是一种动态选择阀值的自适应方法。设图像在像素(x,y)处的灰度值为f(x,y),考虑以像素(x,y)为中心的(2w+1)*(2w+1)窗口,则Bernsen算法可以描述为:
[0074] 计算图像中各点(x,y)的阀值w(x,y);
[0075] w(x,y)=0.5×(argmaxf(x+m,y+n)+argminf(x+m,y+n)),m,n∈[-w,w][0076] 对图像中各个像素(x,y)用w(x,y)值逐点二值化。
[0077] 本发明的一个较佳实施例中优选采用了Bernsen算法。
[0078] 2、图像信息预处理
[0079] 本发明的一个较佳实施例中采集业务中的身份证照片共125,030张,包括身份证正面和背面图像,识别出身份证轮廓并将身份证成功裁剪出来的共90,473张。将图片的身份证区域识别出后,依次对图片进行灰度化-二值化-透射变换校正-膨胀腐蚀操作-倾斜校正-水平垂直投影,标识出身份证号码、姓名、地址、有效期限和签发机构区域进行切割,选取切割完整的字符,将姓名、地址和签发机构获得的中文,数字,英文和符号等单个字符样本共434,959个(2,545个种类)归为一个样本库,身份证号图片共330,750个(11个种类,0-9数字及“X”英文字符)作为一个样本库,有效期切割后获得的数字和中文字符图片共31,648个(12个种类,0-9数字及“长”和“期”中文字符)归为一个样本库。有效期和身份证号码虽然都为数字,但属于不同的印刷体,为了保证识别准确度,不归为同一个模型进行训练。
[0080] 由于中文字符类别中,真实样本数量大于等于30的类别仅有859个,真实样本包含的中文字符覆盖范围有限,生僻字缺乏,针对真实样本中不存在的生僻字和样本量少的中文字符,饱和度、阴影、光照等相关值取一定范围内的随机数,采用造字方式扩充中文类别,共造字6,165类,每个字造108个假样本。将从姓名、地址和签发机构中获取的真实字符样本和造字字符样本归为一个样本库,共得到7024个种类。
[0081] 将三个样本库中的图片都进行一系列预处理步骤,包括灰度化、直方图均衡化、二值化、切割边缘和统一分辨率,作为模型训练的输入样本,每个字符的图片尺寸最后处理为32*32像素,这是为了能够将每张图像转换成相同大小的矩阵作为神经网络的输入参数。
[0082] (二)卷积神经网络模型设置。
[0083] 卷积神经网络(CNN)的基本结构包括输入层、卷积层(conv)、池化层(pooling)、全连接层、输出层(分类器)。网络的层数越多,需要计算的节点权重就越多,学习到的特征越多,越能处理复杂的任务。但相对应的,所需要的计算资源和训练时间也越多。
[0084] 图像处理中,由于图像往往像素过多,如果放到神经网络中训练,将会导致计算量过于巨大。因此,必须首先减少输入到神经网络中的参数,而卷积神经网络通过卷积和池化操作能有效的做到这一点。
[0085] 卷积:自然图像有其固有特性,也就是说,图像的一部分的统计特性与其他部分是一样的,这也意味着在图像一部分学习的特征也能用在另一部分上,所以对于这个图像上的所有位置,我们都能使用同样的学习特征。
[0086] 当从一个大尺寸图像中随机选取一小块,比如说8x8作为样本,并且从这个小块样本中学习到了一些特征,这时我们可以把从这个8x8样本中学习到的特征作为探测器,应用到这个图像的任意地方中去。特别是,我们可以用从8x8样本中所学习到的特征跟原本的大尺寸图像作卷积,从而对这个大尺寸图像上的任一位置获得一个不同特征的激活值。
[0087] 假设给定了r×c的大尺寸图像,将其定义为xlarge。首先通过从大尺寸图像中抽取的a×b的小尺寸图像样本xsmall训练稀疏自编码,计算f=σ(W(1)xsmall+b(1)),其中σ是一个sigmoid型函数,得到了k个特征,其中W(1)和b(1)是可视层单元和隐含单元之间的权重和偏(1) (1)差值,对于每一个a×b大小的小图像xs,计算出对应的值fs=σ(W xs+b ),对这些值做卷积,就可以得到k×(r-a+1)×(c-b+1)个卷积后的特征的矩阵。
[0088] 池化:通过卷积获得特征后,容易出现过拟合,且特征依然过多,通过池化的方法进一步减少特征值。池化的假设是,在一个图像区域有用的特征极有可能在另一个区域同样适用。因此,为了描述大的图像,一个很自然的想法就是对不同位置的特征进行聚合统计,例如,人们可以计算图像一个区域上的某个特定特征的平均值(或最大值)。这些概要统计特征不仅具有低得多的维度(相比使用所有提取得到的特征),同时还会改善结果(不容易过拟合)。这种聚合的操作就叫做池化,有时也称为平均池化或者最大池化(取决于计算池化的方法)。
[0089] 一般采用多层卷积+池化,然后使用全连接层(隐藏层)进行训练,多层卷积目的是一层卷积学到的特征往往是局部的,层数越高,学到的特征就越全局化。
[0090] 本发明的一个较佳实施例中采用如图2所示的方式构建卷积神经网络模型,设置输入层、卷积层、池化层、全连接层和分类层,其中包括1个输入层、3个卷积层、2个池化层、一个全连接层、1个分类层;并设置卷积神经网络模型参数;
[0091] 在确定了神经网络的结构之后,我们需要对算法的参数进行调优,观察不同参数条件下测试集的分类准确率和稳定性。我们抽取姓名-地址-签发机构共911,406个样本建立模型,对各个参数进行调优,我们经过大量实验调整的参数包括:
[0092] A:Batch_size批次尺寸:
[0093] Batch_size指的是一次使用多少量的样本输入到神经网络模型中,计算这个batch中所有样本的平均损失,batch_size的数量就是一次计算中所包含的样本数,这个参数会影响到模型的优化速度和程度。当训练样本量非常大时,将这个参数的值相应的设置大一些,会有效提升训练速度。对于我们的姓名-地址-签发机构识别模型,由于训练样本量为911,406,达到九十万级别,相应的batch_size设置为2000或以上,会有利于模型的训练效果和训练速度。
[0094] B:N_epoches训练步数
[0095] N_epoches指的是最大的训练步数,比如设成50,就表示训练将在遍历数据集50遍后结束。这个参数只用来控制训练结束的时间,需要根据训练过程中损失函数的下降情况来调整。比如说,如果设置最大训练步数为100,但观察到每一次遍历后测试集的准确率依然在不断上升,则说明模型还有继续提升的空间,可以将该参数设置的更大。
[0096] C:优化器
[0097] 调节优化器是编译Keras模型必要的两个参数之一,通过调用优化器优化,就是通过增加数据量来进行cross_entropy最小化。有限实施例中尝试的优化器包括:
[0098] ●SGD
[0099] ●RMSprop
[0100] ●Adagrad
[0101] ●Adadelta
[0102] ●Adam
[0103] ●Adamax
[0104] ●Nadam
[0105] 由于可调的参数过多,如果把所有可能的参数排列组合情况逐一实验将会耗费大量的时间。因此,我们先将优化器固定,确定另两个参数batch_size和n_epochs的最优组合,再回过来对优化器进行选择。最后我们确定采用的模型结构和相应参数如下:本发明的一个优选实施例的具体模型参数设置如下:
[0106] #第一个卷积层,16个卷积核,每个卷积核大小3*3。1表示输入的图片的通道,灰度图为1通道。
[0107] #border_mode可以是valid或者full,具体看这里说明:http://deeplearning.net/software/theano/library/tensor/nnet/conv.html#
theano.tensor.nnet.conv.conv2d
[0108] #激活函数用tanh
[0109] #池化层采用maxpooling,poolsize为(2,2)
[0110] model.add(Convolution2D(16,3,3,border_mode=’valid’,input_shape=(32,32,1)))
[0111] model.add(Activation(’tanh’))
[0112] model.add(MaxPooling2D(pool_size=(2,2)))
[0113] #第二个卷积层,32个卷积核,每个卷积核大小3*3。
[0114] #激活函数用tanh
[0115] #池化层采用maxpooling,poolsize为(2,2)
[0116] model.add(Convolution2D(32,3,3,border_mode=’valid’))[0117] model.add(Activation(’tanh’))
[0118] model.add(MaxPooling2D(pool_size=(2,2)))
[0119] #第三个卷积层,32个卷积核,每个卷积核大小3*3
[0120] #激活函数用tanh
[0121] model.add(Convolution2D(32,3,3,border_mode=’valid’))[0122] model.add(Activation(’tanh’))
[0123] #全连接层,先将前一层输出的二维特征图flatten为一维的。
[0124] #Dense就是隐藏层。
[0125] #全连接有128个神经元节点,初始化方式为glorot_normal
[0126] #为防止过拟合严重,添加Dropout层
[0127] model.add(Flatten())
[0128] model.add(Dense(128,init=’glorot_normal’))
[0129] model.add(Activation(’tanh’))
[0130] model.add(Dropout(0.5))
[0131] #此时训练姓名-地址-签发机构模型
[0132] #Softmax分类,输出是7024类别
[0133] model.add(Dense(7024,init=’glorot_normal’))
[0134] model.add(Activation(’softmax’))
[0135] #############
[0136] #开始训练模型
[0137] ##############
[0138] #设置loss损失函数和优化算法
[0139] #model.compile里的参数loss就是损失函数(目标函数)
[0140] model.compile(loss=’poisson’,optimizer=’adam’,metrics=[″accuracy″])
[0141] #调用fit方法,就是一个训练过程.训练的epoch数设为20,batch_size为2500.[0142] #shuffle=True表示是否每次训练的batch随机挑选。
[0143] #verbose=1表示训练过程中是否输出过程信息,0、1、2三种方式都可以,无关紧要。
[0144] #show_accuracy=True表示训练时每一个epoch都输出accuracy。
[0145] #validation_split=0.2表示将20%的数据作为验证集。
[0146] model.fit(data,label,bateh_size=2500,nb_epoch=20,shuffle=True,verbose=1,validation_split=0.2)
[0147] 选取姓名-地址-签发机构模型的结构和相应参数的训练作为基准,因为这个模型所包含的样本类别最多最为复杂,若这个模型的表现良好,则有理由相信相应的模型结构在样本库更换为身份证号码或有效期限后,准确率仍会保持稳定。
[0148] 通过尝试大量不同参数的选择进行模型训练,最终得到姓名-地址-签发机构模型,身份证号码模型和有效期限模型的识别结果分别如下:
[0149] 姓名:取身份证正面照片9907张,姓名完全识别正确9808张,准确率为99.00%[0150] 地址:取身份证正面照片1733张,单张地址信息完全识别正确1309张,准确率为75.53%;允许错1-2个字符则准确率为98.21%
[0151] 签发机构:取身份证背面照片2076张,签发机构完全识别正确1772张,准确率为85.36%
[0152] 身份证号码:取身份证正面照片2000张,身份证号码完全识别正确1962张,准确率为98.10%
[0153] 有效期限:取身份证背面照片1999张,有效期限完全识别正确1922张,准确率为96.15%
[0154] 由于身份证地址中包含有例如“10”,“21”等门牌号信息,这类信息由于样本量较少,识别错误的概率较高。但由于其不属于地址中需要采集的主要信息,所以在实际应用中影响不大。
[0155] 二、在线验证流程
[0156] 本发明的一个较佳实施例中,为最大限度的压缩身份证图像,提升传输与存储效率,身份证识别系统在识别与持续训练过程中,分别对图像进行了预处理与还原处理。
[0157] 首先将获取客户身份证图像并进行预处理,将图像转换成相同大小的矩阵,需要验证的身份证图像数据在加入身份证样本库前进行压缩处理;在卷积神经网络模型调优过程中对该预处理数据进还原处理。之后调用调优后的卷积神经网络模型的输出分类模型对预处理后的客户身份证图像数据进行识别,并将该身份证图像数据加入身份证样本库进行模型持续训练。
[0158] 其中压缩处理过程如图3所示,包括:身份证图像去背景,并进行统一标准的图像压缩;对图像数据进行数字签名,以便进行来源合法性教研与防篡改;进行JBIG2压缩,实现最大化的压缩率
[0159] 其中还原处理过程如图4所示,包括:逆向图像预处理过程,并图像还原后,统一处理成856*540矩阵,对图像进行一系列预处理步骤后,送入机器学习引擎进行训练。
[0160] 对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。