机器视觉学习系列四:身份证识别

项目背景:基于手机平台,识别身份证编号、姓名、年龄、地址,性别等;

具体实施方案:

1、基于身份证分类器检测身份证的位置,关于身份证分类器,采用的是HAAR+adaboost算法进行训练;

2、在已经检测到的候选身份证区域里,进行垂直边缘检测;

3、形态学运行,连接垂直边缘;

3、去除干扰连通区域,主要基于连通区域的长宽比,面积,质心相对位置,去除典型的非编号区域;

4、选择质心纵坐标最大的连通区域作为编号数字区域;

5、垂直投影,进行编号的数字分割;

6、基于分割的数字位置,综合判断该区域是不是真正的身份证编号区域,如果是,说明当前候选区域是真正的身份证,否则,说明当前区域是误检区域 ;

7、基于所有的数字中心,通过最小二乘直线拟合,进行身份证的倾斜校正;

8、按照身份证的固定布局规则,获得剩下各个元素的位置,即姓名、性别、地址等;

9、基于垂直投影方法,获取各个元素的单个字符位置;

10、数字识别,采用最简单的模板匹配算法;

11、汉字识别,基于tessract库,但是直接使用该库,识别率很低,只要60%左右,本项目进行了汉字增强处理,主要是外部做一些预处理,比如去除一些干扰,把一些粘连区域分开等,然后在使用tessract库,汉字识别率显著提高;

12、android平台移植,关于opencv的android开发,可以直接参考opencv相关历程,tessract这一块,有一个分支哭可以直接在android上跑,不过不能做到随心的去修改调用,本项目使用的是tessract的源码,通过NDK,自己编译的,呵呵,花了很长时间的尝试,最终搞定;

实验结果:针对清晰的身份证图像,同时倾斜角度在正负10度以内的,数字 识别率99%,汉字识别率在92%以上;


不足:地址里的数字和汉字有时很难区域开来,造成一定的错误识别,美中不足啊,

  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 33
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值