身份证识别图像处理实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程大作业实验报告
基于图像分析身份证信息识别
课程名称:数字图像处理
组长: 林爱珊学号: 2010305903019 年级专业班级: 10通信3班成员一: 官璐学号: 201030590312 年级专业班级: 10通信3班成员二: 李妙云学号: 201030590317 年级专业班级: 10通信3班
指导老师:邓继忠
报告提交日期2013年6月答辩日期2012年6月
1.前言
1.1身份证识别综述
随着信息时代的到来,信息安全成为更重要的一部分,同时,越来越多的活动需要身份信息的获取,比如开网店,网上账户等,都将用到身份证信息的采集。身份证识别是利用硬件对身份证图像进行采集,将身份证图像中的信息分块提取到表格中,从而将身份证信息完整地,分门别类地展示出来,从而让使用者能够清晰准确地获得身份信息。
相比于传统的手工登记身份证,利用图像识别进行的身份证信息的获取有如下好处:(1)传统的手工登记人工工作量大,尤其对于需获取的信息较多时,耗时长且耗人力。而采用图像处理的身份证识别则有快速,少人力消耗的特点。(2)对于传统手工统计,信息的正确率受到人的状态的影响,一旦人处于疲劳状态,很容易造成信息丢失或者错误。采用图像处理的身份证信息则不受主观影响,能够提高准确率,稳定率。
基于上述两点,身份证识别可以极大提高工作效率及质量,具有其存在的必要性。
1.2目标
(1)CVI编程,实现对身份证图像的文字、字符等信息的识别,显示在界面的文本框内容;
(2)提取信息,并对信息进行分类,如姓名、性别、年龄、地区等,并将这些信息保存在excel中。
1.3.技术路线
图1.技术路线流程图
(1).字符库的制作:选择合适的字体,对数字或汉字制作成统一尺寸的标准图像,便于后面的字符匹配。
(2).模板提取:制作身份证模板,将身份证归一化后用模板提取出身份证各信息块的图像。
(3).行列分割:将模板提取得的信息块中的文字进行行列分割,逐一分割出每个字符,标准化并将字符送到匹配模块。
(4).匹配:将行列分割得到的各个字符与标准字符库进行匹配。
(5)导入到excel:将匹配得到的结果输入到excel,并在事先做好的excel文件中显示身份证的各部分信息.。
2.字符库的制作
2.1.字符图像的制作
(1)查找资料,得知身份证所用字体主要为华文细黑,而身份证号码为OCR-B 10 BT字体,出生日期为方正黑体简体
(2)用word做出以华文细黑字体,相同大小的一批文字,并分别做出OCR-B 10 BT、方正黑体简体两种字体的数字
(3).将上述文字逐一输入到画图软件,每个文字保存为一个bmp文件,且每个bmp文件有相同的大小。
2.2. 字符的制作原理
将字符图像载入,进行行列分割。对图像进行行扫描,自上而下,扫到第一个黑点所在行作为起始行,自下而上,扫到第一个黑点处作为结束行。同理可得左右边界。通过对每个字符的处理从而提取出字符的边框。将边框中的字符标准化,形成标准字符。由于采用了合适的字体,并选用相同的标准制作,有助于字符匹配的准确率的提高。
2.3. 程序的改编
由于参考资料中的字符制作程序为单个字符制作,完成字库的制作工作量略大,且在执行时会有错误产生,因此我们进行了程序的改编。在理解单个字符制作程序的基础上,引入了多个字符制作的方法,编写了多文件打开的函数MultiFileSelectPopup(),利用status = MultiFileSelectPopup (lpath, "*.bmp", "", "", 0, 0, 1, &numFiles, &fileList);语句实现多图像文件的导入,同时导入大量文件,利用循环,自动完成导入的字符的批量制作。制作步骤包括:载入图像——阈值选择——二值化——边界提取——数字提取——标准化——保存——退出。由于步骤较多,我们通过调用函数实现了多字符制作一键完成,效果显著。
图2 字符图像的制作的实验结果
3.待识别字符图像处理
3.1模板提取
3.1.1模板提取的原理
每张载入的身份证大小不一,同时存在照片的质量不同,因而首先要进行归一化,以便后面的信息提取。将归一化后的图像进行信息块的位置的确认,制作模板。将制作的模板与身份证进行“与”操作,从而将信息块的信息突显出来,从而屏蔽其他无关信息。
图2.模板提取原理框图
3.1.2.模板提取的实现
(1)根据身份证,制作统一的标准的模板,并保存在程序中。
(2)实现对载入身份证的归一化。
(3)以后的使用中,每次载入身份证,标准化后直接与程序中的模板进行与运算,模板中信息块部分灰度值置255,而其余部分置0,当与标准身份证进行“与”运算时,模板中置0的部分也会被屏蔽,从而取出了信息块。
(4)选择合适的阈值,对取出的信息块进行二值化,避免背景对文字分割的影响。
图3 模板提取的实现
3.2行列分割
3.2.1 行列分割的原理
把信息块的内容突显出来后,要对每个信息块的内容进行行列分割,以确定单个字图像的提取区域,方便之后的单字提取。行列分割阈值和算法的选取决定了单字提取的准确率,所以显得尤为重要。
3.2.2行列分割的实现
对选中模块进行行分割,记录行分割的位置。再对分割出的每一行进行列分割,记录列分割的位置。在此为了提高其准确率,我们采用的判断算法进行了加强。然后在行列分割的位置进行画线,并显示出来。
图4.行列分割的实现框图
行,列分割位置的确定:
设x[a]为统计所得的a行的像素点,那么当条件满足x[a-1]=0,x[a+1]!=0且x[a]=0,此时,判断a行为起始行;当条件满足x[a-1]!=0,x[a+1] =0且x[a]=0,此时判断a行为结束行。同理可确定起始列和结束列,从而进行分割