基于几何特征点的身份证号码识别以及在二代身份证检证系统中的应用
【摘要】:模式识别(Pattern Recognition)技术是信号处理与人工智能的一个重要分支,是当代高科技研究与应用的主要领域之一。机器字符识别是计算机智能化人机接口的关键技术。数字字符识别作为机器字符识别的一个研究分支,有着重要理论意义和实际应用价值,其识别技术涉及到模式识别、图像处理、人工智能、信息论、计算机科学等多个学科,同时也与心理学等学科相关,是一门综合的技术。
本文实现的算法主要用于二代身份证制证过程中的检证系统,满足了实时性和准确性两方面的要求。本文完成的主要工作有身份证卡片图像截取、身份证号码区域图像截取,身份证号码图像前处理,单个身份证号码图像分割、单个号码图像的光滑滤波、改进Hilditch细化算法、数字特征点的定义和提取、身份证号码识别。
身份证卡面图像截取是身份证号码识别的前提,卡面能否准确获得是身份证号码能否开始识别的关键,它直接影响着身份证号码识别的拒识率。这里,我们采用了提取边缘直线算法截取身份证卡面图像,主要根据采样点求取一条最佳插值直线,该直线即为身份证卡片边缘,四条卡片边缘直线所界定的区域即为身份证卡面图像。在身份证边缘直线提取的同时,我们还可以判断身份证是否严重倾斜,如果严重倾斜则首先将图像扶正。
根据身份证卡片图像的整体结构特征,我们可以粗略估计出身份证号码所在的大体区域,判断在感兴趣的区域中是否存在18个数字,若存在则转入下一步进行单个数字图像的分割,不存在则返回重新捕获感兴趣区域。在身份证号码区域图像截取过程中,我们必须考虑以下几方
WP=60
面的情况,如卡片是否翻转,采集的卡片图像是否经过镜像变换等等。
单个身份证号码图像分割也是身份证号码识别的关键步骤。首先对不同灰度级别的身份证条码图像进行自适应的二值化处理,然后对二值化图像分别进行横向和纵向投影,具体做法是:如果扫描点判断为前景点,则横向、纵向投影曲线上该点处的值分别加1,若扫描点为背景点,则继续下一点的判断。这样对整幅图像进行扫描之后,我们得到两条投影曲线,分别求取两条曲线的局部支集边界,就可确定出18个身份证号码的上下左右边界,下一步对界定的数字图像分别进行处理识别。
针对我们已经得到18个身份证号码数字的二值化图像,首先需要对二值化图像进行光滑滤波处理,去除数字边缘毛刺。这里我们考虑了数字的宽度信息,以及数字走向曲线,借助于方向滤波对图像进行处理,处理后的图像消除了边缘毛刺,为细化后图像质量提供保证。
数字的大部分信息都集中在骨架线上,所以在细线化图像上提取特征信息,不仅可以大大提高运行速度,而且还能简化算法。本文中用于识别数字的特征点包括端点和三叉点,所采用的特征点信息包括端点、三叉点的个数以及它们的位置,端点的方向信息等等,借助于这些信息能完全将每个数字分开。首先我们对传统的Hilditch细化算法进行改进,利用改进的Hilditch细化算法对光滑的二值化数字图像进行细化处理,细化后的图像就可以直接提取特征。具体做法是在细化图上逐行进行扫描,分析每个黑色像素点的八连通区域,提取上述所有的特征点信息。
本文中我们针对不同数字的特点采用不同的识别方法,已经取得了令人满意的效果。首先,数字1是一个狭长的结构体,我们可以借助于截取图像的宽和高的比值进行识别;其次,针对4和X形状结构的特殊性,对4和X建立细线图像模板矩阵,对传入的二值化图像与细线化
WP=61
模板图像进行比较,如果二值图和细线图上都是黑色的点,则计数器加1,扫描完毕后就得到细线图和二值图均为黑色像素的点的个数,同时也记录了细线图黑像素点的个数,公共的黑点数与模板细线图像黑点数的比值如果大于给定的阈值,则认为是识别结果,通过这种方法可以完全正确识别4和X。最后,我们根据特征提取的结果进行分类识别,如果没有端点、没有三叉点,则识别结果为0;如果无端点,两个三叉点,则识别结果为8;如果只有一个端点、一个三叉点,则识别结果可能为6或9,这时只需考虑端点的位置,即可将6和9区分开来;如果有两个端点、无三叉点,则识别结果可能为2、3、5、7,这时需要加入端点的位置和方向辅助判断。本文中还针对数字断线的情况进行了补救,利用端点的方向信息将断开线相连接,进而进行识别。
在数字识别的应用中,人们往往很关心的两个指标是“识别精度”和“识别速度”,“识别精度”是指在所有识别的字符中,除去拒识字符,正确识别的比例有多大,我们定义:识别精度P=A/(A+S)*100%,其中, S=误识率=误识样本数/全部样本数*100%,A=正确识别率=正确识别样本数/全部样本数*100%。在北京市公安局二代身份证制证中心的质检系统试行生产线上,经过连续两周测试无拒识无误识,完全满足用户的需求,准确度达到实际需求,同时本算法识别速度较快,在PⅢ 1.0G, 256 MB机器上测试,平均识别时间10.8毫秒左右,加上图像的前处理和识别的后校验,识别时间共200毫秒左右。算法完全满足了实际应用中实时性和准确性方面的要求,现在该算法已经在二代身份证检证系统中广泛使用。