一种复杂背景下身份证号识别算法的制作方法

文档序号:11920634阅读:307来源:国知局

本发明涉及计算机视觉技术领域,具体为一种复杂背景下身份证号识别算法。



背景技术:

随着互联网的普及,众多服务公司实现传统柜台业务办理的网络化,在柜台业务网络化中自动的定位证件在图像中的位置,并准确识别证件号具有重要的意义。

身份证作为日常生活中最常用的证件,快速准确地在复杂图像中定位并识别身份证号具有重要的实用价值,当前技术对身份证识别主要面临以下两个问题:

一是如何从复杂图像中快速定位身份证的位置。复杂背景下图像中具有较多的干扰信息,比如身份证周围的环境信息、手持身份证的人、身份证上除身份证号之外的其他信息,这些噪声都对身份证号的定位造成较大的影响。

二是如何辨识出低分辨率且较为模糊的数字。在对身份证的拍摄过程中,因光照、尺度、倾斜角、翻转等原因都对身份证号码的识别提出的挑战,特别是在低分辨率下,身份证号字符模糊不清,如何准确高效的识别身份证号依旧是一个巨大的挑战。



技术实现要素:

本发明的目的在于提供一种复杂背景下身份证号识别算法,该算法具体步骤如下:

S1:使用一种基于统计亮度信息量评估算法定位身份证在复杂图像中的位置:

1)通过人脸检测算法在图像中获得n个人脸坐标Rn(x,y,w,h),本发明中使用了PICO算法用于人脸检测,由于是已有算法此处不再赘述,其中n是检测到的人脸个数,(x,y,w,h)是框定人脸矩形框的左上角二维坐标和矩形框的宽和高,Ri(i∈n)定义为图像中身份证人脸的候选区域;

2)获取每个Ri(i∈n)右侧与检测人脸矩形框同样大小的图像区域R′i(x′,y′,w′,h′),按下式计算R′i的统计参考计数,

其中F是灰度亮度判断函数,d(i,j)是图像中坐标(i,j)处的灰度值,α表示高亮度灰度统计值,通过上式可得待检测区域的高亮度信息量,计算信息量的对比表述值

按同样的方法,计算出Ri(i∈n)低亮度信息量,和低亮度灰度统计值β,如下式:

函数定义与上文相同,低亮度信息量的对比度表述值

当P、P′满足约束条件P>0.8×w×h,P′<0.2×w×h时,此候选区域Ri(i∈n)处于身份证上,最后通过人脸区域按照身份证的比例估计出身份证的区域N;

S2:使用区域中心直线拟合算法定位身份证号码所在位置以实现字符切割:

1)首先,定位后的身份证区域包含大量背景信息,这些背景信息极大的干扰了身份证号的提取,为了消除背景信息的干扰,本文将包含身份证的图片转换成二值图,并获取k个联通区域的中心位置pi(x,y),(i∈k),其中k表示联通区域的个数,p(x,y)表示联通区域的几何中心坐标,

将定位后的图像转换成二值图,获取图像中的k个联通区域,并计算联通区域中心坐标pi(x,y),(i∈k),

2)其次,身份证号是身份证上最长的连续字符串,根据这个性质,将pi(x,y),(i∈k)按以下公式映射到一个二维平面上得到映射后的坐标p′,

pi(x,y)=Kp′(x′,y′),(i∈k),其中K为转换系数,作用是将不同分辨率下的输入图片转换到同一分辨率下,采用HOUGH变换拟合出所有直线,直线定义为l={p1,p2…pn,n∈(0,20)},通过此方法可拟合出多条直线,根据身份证号是身份证上最长的连续字符串的性质,判定所有拟合出的直线中最长的直线MAX(lj(count(p))),j=1,2,...,h为身份证号所在的位置,其中h是拟合出所有直线的数量,count函数的功能是计算直线上点的个数;

3)最后,截取拟合的直线区域,并通过纵向像素点直方图和横向像素的直方图分割出数字字符,将去除表层土壤的盐碱地上平铺上改良材料,平铺量为每亩地需要改良材料总量的三分之一,平铺要求均匀,避免局部堆积过多的改良材料;

S3:提出一种数字字符错误分割矫正算法:定位身份证号所在区域,并实现数字字符分割,有时会出现分割错误,即分割出的数字字符数不等于18个,具体的错误情况如下:分割字符总数Schar<18,可能的情况为:1.字符粘连,2.字符缺失,分割字符总数Schar>18,可能的情况为:1.字符间有裂痕,2.身份证号两侧有噪声,针对以上可能出现的情况,本文计算所有字符的平均宽度mean_w和平均间隔mean_i,并通过以下策略实现对错误分割的矫正:

(1)Schar<18:

1)将数字字符区域扩大为原来的1.2倍,并对此区域重新进行字符切割,

2)判断每个字符的宽度Wi(i=1,2,...,end),若Wi>1.5×mean_w,则将此字符从中间分割为两个,

(2)Schar<18:

1)若两个数字字符的间隔Ii<0.2×mean_i,则将两个数字字符合并为一个字符,

2)若数字字符的宽度Ii<0.5×mean_w,则删除此字符,

若数字字符的宽度Ii>1.5×mean_w,并且此字符处于字符串的头部或尾部,则删除此数字字符;

S4:利用标准字体库生成数字字符样本:通过少量采样样本生成大量低分辨率的样本,解决低分辨率数字字符难以区分的问题,步骤如下:

(1)因为拍摄亮度、角度、倾斜角的不同,使得获取的身份证字符多种多样,而在数字字符样本缺失的情况下,身份证字符的识别是一个巨大的挑战,为了解决身份证样本不足的问题,我们提出了一种随机生成身份证号样本的方法,其中根据标准字体库生成大量数字字符样本的方法如下:

1)将标准数字字符转换成二值图像,其中背景像素值为0,前景像素值为1,

2)获取随机旋转角度R,R为±8°之间的随机数字,以R为角度旋转标准数字字符的二值图像,

3)为了获取不同尺度下的数字字符样本,获取随机尺度resizeY和resizeX,其中resizeY和resizeX是在5到100之间选取的随机数字,将数字字符样本转换成高为resizeY,宽为resizeX的二值图像,二值图像即为数字字符样本,

(2)获取真实事例中的低分辨率样本,重复步骤(1),生成大量低分辨率随机样本,

(3)使用深度学习算法完成对字符样本的训练,其中网络为4个卷成层加三个全连接层。

与现有技术相比,本发明的有益效果是:本发明可以有效定位复杂图像中身份证的位置,并完成对身份证号的识别,该方法首先通过统计亮度信息量评估算法定位身份证在复杂图像中的位置,然后通过区域中心直线拟合算法定位身份证上的身份证号位置,并实现字符分割,最后通过样本自生成算法生成大量不同尺度下的随机样本,并用生成的随机样本训练深度卷积神经网络,实现对身份证号码的识别。

附图说明

图1为本发明算法流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合具体实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

实施例1

一种复杂背景下身份证号识别算法,该算法具体步骤如下:

S1:使用一种基于统计亮度信息量评估算法定位身份证在复杂图像中的位置:

1)通过人脸检测算法在图像中获得n个人脸坐标Rn(x,y,w,h),本发明中使用了PICO算法用于人脸检测,由于是已有算法此处不再赘述,其中n是检测到的人脸个数,(x,y,w,h)是框定人脸矩形框的左上角二维坐标和矩形框的宽和高,Ri(i∈n)定义为图像中身份证人脸的候选区域;

2)获取每个Ri(i∈n)右侧与检测人脸矩形框同样大小的图像区域R′i(x′,y′,w′,h′),按下式计算R′i的统计参考计数,

其中F是灰度亮度判断函数,d(i,j)是图像中坐标(i,j)处的灰度值,α表示高亮度灰度统计值,通过上式可得待检测区域的高亮度信息量,计算信息量的对比表述值

按同样的方法,计算出Ri(i∈n)低亮度信息量,和低亮度灰度统计值β,如下式:

函数定义与上文相同,低亮度信息量的对比度表述值

当P、P′满足约束条件P>0.8×w×h,P′<0.2×w×h时,此候选区域Ri(i∈n)处于身份证上,最后通过人脸区域按照身份证的比例估计出身份证的区域N;

S2:使用区域中心直线拟合算法定位身份证号码所在位置以实现字符切割:

1)首先,定位后的身份证区域包含大量背景信息,这些背景信息极大的干扰了身份证号的提取,为了消除背景信息的干扰,本文将包含身份证的图片转换成二值图,并获取k个联通区域的中心位置pi(x,y),(i∈k),其中k表示联通区域的个数,p(x,y)表示联通区域的几何中心坐标,

将定位后的图像转换成二值图,获取图像中的k个联通区域,并计算联通区域中心坐标pi(x,y),(i∈k),

2)其次,身份证号是身份证上最长的连续字符串,根据这个性质,将pi(x,y),(i∈k)按以下公式映射到一个二维平面上得到映射后的坐标p′,

pi(x,y)=Kp′(x′,y′),(i∈k),其中K为转换系数,作用是将不同分辨率下的输入图片转换到同一分辨率下,采用HOUGH变换拟合出所有直线,直线定义为l={p1,p2...pn,n∈(0,20)},通过此方法可拟合出多条直线,根据身份证号是身份证上最长的连续字符串的性质,判定所有拟合出的直线中最长的直线MAX(lj(count(p))),j=1,2,...,h为身份证号所在的位置,其中h是拟合出所有直线的数量,count函数的功能是计算直线上点的个数;

3)最后,截取拟合的直线区域,并通过纵向像素点直方图和横向像素的直方图分割出数字字符,将去除表层土壤的盐碱地上平铺上改良材料,平铺量为每亩地需要改良材料总量的三分之一,平铺要求均匀,避免局部堆积过多的改良材料;

S3:提出一种数字字符错误分割矫正算法:定位身份证号所在区域,并实现数字字符分割,有时会出现分割错误,即分割出的数字字符数不等于18个,具体的错误情况如下:分割字符总数Schar<18,可能的情况为:1.字符粘连,2.字符缺失,分割字符总数Schar>18,可能的情况为:1.字符间有裂痕,2.身份证号两侧有噪声,针对以上可能出现的情况,本文计算所有字符的平均宽度mean_w和平均间隔mean_i,并通过以下策略实现对错误分割的矫正:

(1)Schar<18:

1)将数字字符区域扩大为原来的1.2倍,并对此区域重新进行字符切割,

2)判断每个字符的宽度Wi(i=1,2,...,end),若Wi>1.5×mean_w,则将此字符从中间分割为两个,

(2)Schar<18:

1)若两个数字字符的间隔Ii<0.2×mean_i,则将两个数字字符合并为一个字符,

2)若数字字符的宽度Ii<0.5×mean_w,则删除此字符,

若数字字符的宽度Ii>1.5×mean_w,并且此字符处于字符串的头部或尾部,则删除此数字字符;

S4:利用标准字体库生成数字字符样本:通过少量采样样本生成大量低分辨率的样本,解决低分辨率数字字符难以区分的问题,步骤如下:

(1)因为拍摄亮度、角度、倾斜角的不同,使得获取的身份证字符多种多样,而在数字字符样本缺失的情况下,身份证字符的识别是一个巨大的挑战,为了解决身份证样本不足的问题,我们提出了一种随机生成身份证号样本的方法,其中根据标准字体库生成大量数字字符样本的方法如下:

1)将标准数字字符转换成二值图像,其中背景像素值为0,前景像素值为1,

2)获取随机旋转角度R,R为±8°之间的随机数字,以R为角度旋转标准数字字符的二值图像,

3)为了获取不同尺度下的数字字符样本,获取随机尺度resizeY和resizeX,其中resizeY和resizeX是在5到100之间选取的随机数字,将数字字符样本转换成高为resizeY,宽为resizeX的二值图像,二值图像即为数字字符样本,

(2)获取真实事例中的低分辨率样本,重复步骤(1),生成大量低分辨率随机样本,

(3)使用深度学习算法完成对字符样本的训练,其中网络为4个卷成层加三个全连接层,

统计信息量评估算法流程:

第一步,获取输入图像,若检测为空,则跳转至第五点,否则继续;

第二步,使用人脸识别算法PICO从背景图像中定位人脸位置,获取待确定位置;

第三步,使用统计亮度信息量评估从待确定位置中确定身份证所在的位置;

第五步,根据统计信息量分布对待判断区域进去判断,若符合则输出道下一模块,否则退出;

区域中心直线拟合算法:

第一步,获取上一模块输出的身份证区域,否则继续;

第二步,将身份证区域做二值化;

第三步,获取所有联通区域的中心位置;

第四步,根据联通区域中心位置拟合直线;

第五步,根据拟合结果确定身份证号位置;

第六步,通过横向和纵向像素点统计直方图完成数字字符切割;

数字字符错误分割矫正算法

第一步,获取上一模块中输出的数字字符,若输出字符等于18,则跳转至第三步,否则继续;

第二步,根据分割字符数量进行对分割结果进行矫正;

第三步,退出算法;

样本自生成与数字字符神经网络训练;

第一步,获取标准字体库,并将标准字体库字符转换成二值图像;

第二步,生成随机旋转角度R;

第三步,获取随机尺度;

第四步,根据随机转角R和随机尺度,对第一步中获得标准字符库进行相应操作,

第五步,用生成的随机样本对深度卷积神经网络进行训练;

第六步,用训练好的网络识别上一模块中识别的字符,并输出结果;

第七步,退出;

本发明可以有效定位复杂图像中身份证的位置,并完成对身份证号的识别,该方法首先通过统计亮度信息量评估算法定位身份证在复杂图像中的位置,然后通过区域中心直线拟合算法定位身份证上的身份证号位置,并实现字符分割,最后通过样本自生成算法生成大量不同尺度下的随机样本,并用生成的随机样本训练深度卷积神经网络,实现对身份证号码的识别。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1