[发明专利]一种自动识别社保卡的数据识别系统及其实现方法有效

专利信息
申请号: 202210649456.5 申请日: 2022-06-10
公开(公告)号: CN114742188B 公开(公告)日: 2023-04-07
发明(设计)人: 朱忠池;韩长青;陈萍;张玉洁;刘晓辉;魏华良;王月聪 申请(专利权)人: 潍坊明晟信息科技有限公司
主分类号: G06K17/00 分类号: G06K17/00;G06V30/42;G06V30/414;G06V30/416;G06V30/146;G06V30/18;G06V40/16;G06V10/74;G06V10/94;G06Q50/26;H04L12/46
代理公司: 山东华君知识产权代理有限公司 37300 代理人: 程静静
地址: 261072 山东省潍坊市高新区健康东街*** 国省代码: 山东;37
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 自动识别 社保 数据 识别 系统 及其 实现 方法
【权利要求书】:

1.一种自动识别社保卡的数据识别系统的实现方法,其特征在于:所述数据识别系统包括中央处理器模块,中央处理器模块包括读卡控制管理模块和图像和数据比对模块,读卡控制管理模块连接有读卡模块和解密模块,图像和数据比对模块连接有图像采集模块、卡管系统持卡库和存储模块;

所述读卡模块,用于完成社保卡的识别、读取芯片信息的操作;

所述图像采集模块,用于采集卡面文字信息和照片;

所述读卡控制管理模块用于控制读卡模块对卡片的各项操作,同时作为与解密模块通信的中间件,处理解密信息的传递;图像和数据比对模块通过图像识别技术完成对卡面的文字和照片的提取,同时通过联网获取卡管系统持卡库的人员信息和照片数据,完成数据和图像比对工作;

所述存储模块用于存储系统运行过程中产生的数据和日志信息;

所述解密模块用于接收读卡控制管理模块发送的外部认证过程因子、外部认证鉴别所需的原始信息,并返回内部认证和外部认证所需的信息;

所述卡管系统持卡库用于接收数据请求,完成数据查找并返回数据;

所述实现方法应用于所述的自动识别社保卡的数据识别系统中;

所述实现方法包括以下步骤:

步骤一,通过读卡模块对卡内信息的读取和解析来验证卡芯片的真伪;

步骤二,验证芯片内的信息、卡面印刷的文字信息、持卡库信息三者是否一致;

步骤三,验证卡面照片与持卡库的照片是否一致;

所述步骤一中通过接触或非接触方式将社保卡放到所述读卡模块进行读取,当卡不可用或者卡不是社保卡时,将无法被识别,会提示用户换卡重试,直到识别到社保卡;识别为社保卡后,所述读卡模块将继续读取卡芯片信息,此时二代社保卡和三代社保卡的读取和解析方式不同,能成功读取并解析到芯片内个人信息的,则证明卡芯片为符合社保卡芯片结构的IC卡芯片,即卡芯片为真,否则为假;

所述步骤一中二代社保卡的通用读卡和解析的具体流程如下:

步骤1.1,所述中央处理器模块向所述读卡模块COM1端口发送上电指令,对社保卡进行上电复位操作;

步骤1.2,所述中央处理器模块发送选择社保卡社会保障系统环境指令,同时根据卡片返回的应答信息确定算法环境,若获取正确的算法环境则证明此卡为社保卡,否则不是;

步骤1.3,所述中央处理器模块读取卡内规范版本数据项,共4位格式为1.0x、2.0x、3.0x,分别对应为1.0卡、2.0卡、3.0卡;

步骤1.4,2.0卡可直接读取卡内数据,读个人基本信息时需读出“姓名扩展”,与“姓名”拼接后返回完整姓名,读出的社保卡基本信息各数据项;

步骤1.5,所述中央处理器模块向读卡模块COM1端口发送关闭指令,终止对读卡模块的操作,释放端口;

所述步骤一中三代社保卡基于PSAM卡的通用读卡和解析的具体流程如下:

步骤1.6,所述中央处理器模块向读卡模块的COM1端口发送上电指令,对社保卡和PSAM卡进行上电复位操作;

步骤1.7,所述中央处理器模块发送选择社保卡社会保障系统环境指令,同时根据卡片返回的应答信息确定算法环境,若获取正确的算法环境则证明此卡为社保卡,否则不是;

步骤1.8,所述中央处理器模块读取卡内规范版本数据项,共4位格式为1.0x、2.0x、3.0x,根据前3位进行规范版本判断,规范版本为“1.0x”、“2.0x”、“3.0x”的社保卡,分别对应为1.0卡、2.0卡、3.0卡;

步骤1.9,3.0卡需执行RKSSSE密钥外部认证,提取密钥分散因子,形成8个字节的二级分散因子;

步骤1.10,依次读取各项数据,读个人基本信息时需读出“姓名扩展”,与“姓名”拼接后返回完整姓名,读出的社保卡基本信息各数据项;

步骤1.11,所述中央处理器模块向所述读卡模块COM1端口发送关闭指令,终止对读卡模块的操作,释放端口;

所述步骤一中三代社保卡基于加密机的通用读卡和解析的具体流程如下:

步骤1.12,所述中央处理器模块向读卡模块COM1端口发送上电指令,对社保卡进行上电复位操作;

步骤1.13,所述中央处理器模块发送选择社保卡社会保障系统环境指令,同时根据卡片返回的应答信息确定算法环境,若获取正确的算法环境则证明此卡为社保卡,否则不是;

步骤1.14,从卡片取2个随机数执行内部认证计算,获取卡片返回的内部认证鉴别数据;

步骤1.15,判断是否为3.0卡,若是则从卡片取2个随机数用于外部认证计算,否则输出参数的最后两项应全部为空;

步骤1.16,所述中央处理器模块将外部认证过程因子、外部认证鉴别所需的原始信息通过网络发给人社部加密机,并接收返回值;

步骤1.17,返回值为内部认证和外部认证所需的信息,比对卡片和加密机返回的内部认证鉴别数据,验证卡片有效性;

步骤1.18,判断输入参数中是否含有外部认证鉴别数据,如果有,执行外部认证;认证通过后依次读取各项数据,读个人基本信息时需读出“姓名扩展”,与“姓名”拼接后返回完整姓名;

读出的社保卡基本信息各数据项;

步骤1.19,所述中央处理器模块向所述读卡模块COM1端口发送关闭指令,终止对读卡模块的操作,释放端口;

所述步骤二中卡面文字采集和提取的具体流程如下:

步骤2.1,获取到所述图像采集模块,所采集到的卡面图像;

步骤2.2,通过加权平均值法对获取到的卡面图像的彩色图像进行灰度化处理,使识别时的运算量更小;

加权平均值法:即利用公式来计算每个像素点中R、G、B的分量乘以各自对应的加权系数后再进行求和运算,最后将计算结果作为该点的图像灰度值;

步骤2.3,通过Bernsen算法对步骤2.2中得到的灰度图像进行二值化处理,去掉底纹干扰,减少图像计算量,突出字符信息;

Bernsen算法的实现方式:在灰度图像上选取点w(x,y)为中心,建立一个大小为的区域块,利用该区域内像素最大和最小值的平均值作为该区域块的阈值进行计算,计算方法如式1所示:

式1;

其中x和y是一幅图像中像素的坐标,f(x,y)是对应坐标(x,y)处的像素值,由于m和n分别是上述区域块的长宽;

步骤2.4,通过均值滤波的方法对步骤2.3中得到的二值化图像进行去噪,均值滤波算法在一定程度上能抑制颗粒噪声的影响,能够完成对社保卡图像的去噪处理,给后续的识别工作带来了方便,提高了字符识别的效果;

步骤2.5,对去噪图像进行Canny边缘检测和Hough变换+透视变换倾斜矫正,得到字符信息准确位置;

步骤2.5.1,通过Canny方法进行边缘检测;

Canny边缘检测算法具有流程如下:

步骤5.1.1、为了尽可能的降低噪声对边缘检测结果的影响,使用高斯滤波器与图像进行卷积,平滑图像,设高斯平滑函数如式2所示:

式2;

使用平滑函数滤波公式为,其中f(x,y)为原图片:

式3;

其中x和y是一幅图像中像素的坐标,f(x,y)是对应坐标(x,y)处的像素值,z是高斯函数的方差,Z(x,y,z)是高斯函数,g(x,y)是对图像的像素应用高斯模糊,使得图像的边缘的宽度增大;

步骤5.1.2、计算梯度强度和方向,使用一阶偏导的有限差分来计算梯度的强度和方向;先计算出在两个方向上的偏导数,由此便可以求出像素点的梯度Q和梯度方向θ,从而可以确定边缘方向,计算公式如下:

式4;

式5;

式6;

式7;

其中x和y是一幅图像中像素的坐标,f(x,y)是对应坐标(x,y)处的像素值,Gx是对应像素在水平方向的梯度,Gy是对应像素在竖直方向的梯度,分别用来表示水平方向和竖直方向上灰度值的变化程度和方向,那么该像素的整体梯度就是Q(x,y),方向为θ,那么tanθ=Gx(x,y)/Gy(x,y),所以θ=arctan [Gx(x,y)/Gy(x,y)];

步骤5.1.3.对梯度强度进行非极大值抑制;

进行非极大值抑制的目的是帮局部最大值之外的所有梯度抑制为0,对梯度图像中每个像素进行非极大值抑制的算法是:首先将当前像素的梯度强度与前后方向的像素进行比较,如果当前像素的梯度比他们大,那么就保留当前像素点为边缘点,否则该像素点被抑制;

步骤5.1.4.用双阈值算法检测和连接边缘;

经过非极大值抑制后的像素点能更精准的表示图像中真实存在的边缘,但是,此时还会存在一些由于噪声或者颜色变化引起的一些边缘像素点,为了清除这部分边缘像素点,必须通过高低阈值方法将多余的边缘过滤掉,最后再通过抑制弱边缘的方法,精准的将真实边缘保留下来;

步骤2.5.2,通过Hough进行直线检测;

Hough直线检测的算法流程:

在一个平面Q-xy中,有一个直线方程为:

式8;

其中,k是直线的斜率,t是直线的截距,那么,对应的一条直线y=kx+t可以唯一的对应平面Q-xy中的一个点(k,t),换言之,对于一个平面Q-xy中给定的一个点(k,t),唯一地确定了一条直线;

这其实就是Hough变换的原理;

对于给定的直线y=k0x+t0上的任意三点(x1,y1)、(x2,y2)、(x3,y3),对于(x1,y1)、(x2,y2)两点所对应的平面Q-xy中的两条直线:

式9;

式10;

可以算得这两条直线的交点为:

式11;

由此公式可以推得:直线y=kx+t上各个点对应平面Q-xy中的各直线交于一点(k,t),可以通过这个特性来检测共线的点,由于直线的斜率可能有近于无穷大的情况,可以改用法线的方法表示直线,用极坐标形式为:

式12;

其中,β是直线到坐标系原点的距离;θ是直线法线与x轴的夹角;

所以,直角平面Q-xy中的直线与极坐标平面Q-βθ中的点就有一一对应的关系了,Q-xy中的共线点与对应的Q-βθ中的曲线交于一点;

根据一定比例,将Q-βθ平面划分为多个等间隔的小方块,这个小方块对应一个初始值为零的累加器,对于Q-xy平面中的每一个点,按照上边的原理,都可以在Q-βθ平面中可以画出它对应的曲线,如果曲线经过小方块,对应累加器加一,通过同一个小块的曲线所对应的点几乎共线,累加器的值与共线的点数一致;

如果图像中包含一条直线,则应有一个对应的累加器会出现局部最大值;

设定一个合适的阈值,若局部最大值大于该阈值,则说明有直线存在,若局部值小于该阈值,则认为点是孤立点,应该去除掉;

通过检测Hough空间中的局部最大值,可以确定与直线对应的一对参数(k,t),这个参数(k,t)便是直线的参数,从而把该直线检测出来,而社保卡是一个正规的矩形,由两对互相平行且垂直的直线组成,所以我们可以通过直线检测的结果判断图像中社保卡的四边,然后确定其参数,再由这四条直线的参数就可以计算出四个交点的坐标,这样我们就获取了社保卡轮廓的相关参数;

步骤2.5.3,对图像进行透视变换;

首先通过Hough直线检测将图形的四条边检测出来,并标记出他们的交点;

然后通过其次坐标系中透视变换基本公式如式13所示:

 式13;

再将其次坐标系公式转为普通坐标系公式可得:

 式14;

转换成矩阵形式为:

 式15;

其中是畸变图像的像素坐标,是正视图的像素坐标,-是透视变换参数;

令输入图像的四角坐标为,输出图像的四角坐标为代入上述公式可得:

 式16;

由两式可以推出,如果知道四对透视变换前后对应点的坐标,就能算出畸变参数-,对于给定的输入、输出图像和他们各自的四个坐标点,只要四个坐标电中任意三个点没有共线,就可以解得k11到k32的变换参数,从而可以通过公式获得8个线性方程,求得变换前后关系,达到还原图形,这样就能实现透视变换了;

步骤2.6,社保卡关键信息块裁剪识别;

二代卡:通过社保卡的标准尺寸,根据二代卡的卡面标准规范,在获取到的社保卡图像中,以左上角顶点为原坐标,分别找到其姓名、社会保障号码、社会保障卡号、发卡日期、有效日期、金融账户卡号字符块所在位置和范围,然后将这个范围用一个矩形标注出来,设定这个矩形的长宽高,这样,系统就可以根据预定义的版面数据直接在社保卡图像中将矩形文字块抠出来,然后再交给Tesseract-OCR引擎进行识别即可得到人员信息;

三代卡:通过社保卡的标准尺寸,根据三代卡的卡面标准规范,在获取到的社保卡图像中,以左上角顶点为原坐标,分别找到其姓名、社会保障号码、卡号、发卡日期、金融账户卡号字符块所在位置和范围,然后将这个范围用一个矩形标注出来,设定这个矩形的长宽高,这样,系统就可以根据预定义的版面数据直接在社保卡图像中将矩形文字块抠出来,然后再交给Tesseract-OCR引擎进行识别即可得到人员信息;

所述步骤三中人脸识别方法如下:

步骤3.1,将所述图像采集模块所采集到的卡面图像通过yolo_v5算法处理得到人脸图像,以下称为图像KM;

步骤3.2,通过识别出来的身份证号码去社保卡持卡库中取回在系统中存储的人脸图像,以下称为图像CKK;

步骤3.3,通过三元组损失函数对图像KM与图像CKK进行处理;

所有人的CKK图像组成一个图像数据库, 每个人的CKK图像相对于自己是A图,其他人的CKK图像相对于这个人为N图,每个人的KM图像相对于自己是P图,这样就可以用triplet损失函数进行下面的训练,训练过程就是使用梯度下降法不停的对总的损失函数J逼近最小值;

具体而言:

定义Anchor图片,即原图片、Positive图片,即同一个人的另一张图片、Negative图片,即非同一人图片,以下简称A图、P图、N图;

用三元组损失函数的术语来说,人脸识别就是让A图和P图的距离很接近;而A图与N图的距离很远;

距离函数为:

 式17;

得到的方程是:

 式18;

||…||²为L2范数,即f(A)与f(P)的欧式距离,该方程的意思是图片A与图片P之间的距离要小于图片A与图片N之间的距离;

如果所有图像的都是一个零向量,那么总能满足这个方程;为了网络出现这种情况,我们对方程进行优化,加入一个超参数-,称它为间隔,用来阻止网络输出无用的结果,将上述的方程加上这个参数得:

 式19;

定义损失函数,取最大值:

 式20;

则网络整个的损失函数为:

 式21;

该损失函数是训练集中这些单个三元组损失的总和;

步骤3.4,将得到的图像KM与图像CKK比对,通过设定一个阈值,当相似度超过这一阈值时,则人脸识别成功,验证照片信息为真。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于潍坊明晟信息科技有限公司,未经潍坊明晟信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202210649456.5/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top