图像识别练习(字符验证码、车牌号、身份证号)

© 野比 2012

欢迎大家和我讨论相关问题。联系方式:1429013154

代码在此(注意此版并非最终版)

光学字符识别(OCR)是非常有用的技术。在验证码识别、车牌号识别、文字识别方面,基于字符的识别技术算是比较容易上手的了(相比图文识别)。

闲来看到有朋友研究验证码识别,一时手痒,野比自己动手来做做验证码识别。当然,肯定只是简单的验证码。

名为验证码,实际上并不限于,还可以识别车牌号、身份证号、门牌号等各种乱七八糟的内容。

识别的流程很明确:

1、预处理图像

2、做y轴的投影

3、分析直方图分区

4、根据分区拆分图像为多个字符(很关键,拆得越好,后续识别率越高)

5、丢弃空白或无效字符

6、自动旋转字符(如果有倾斜),识别字符

如果样本中个图像有粘连,则可能造成分区不准确。这种情况下,需要进行旋转,但是怎样自动旋转,是个难题。

目前已可拆分出字符,下一步准备研究如何识别。(如果单个字符比较规范,可以利用现成的OCR控件)

这里有一些例子。

普通的验证码(毫无难度)

带干扰的验证码

较高强度干扰(目前使用的分区算法不能解决,需要更好的算法,比如动态阈值)

CSDN的验证码(毫无压力)

身份证号码

车牌号

补充个QQ验证码,用单一阈值方法,识别很困难,需要结合字符宽度进行判断

这是单一阈值分区的结果(没有限制宽度),可以看到效果很差。

继续研究如何优化分区算法,如何识别单个文字(可以考虑多重识别+样本训练)。

附上太平洋网站验证码。

有些粘连,但是可以通过固定字符宽度解决(宽度基本一致)

参考这张图(获得整个宽度,然后除以字符数得到每个宽度,分别提取)

二值化我用的Otsu算法,参考文献:"A threshold selection method from gray-level histograms", IEEE Trans. Systems, Man and Cybernetics 9(1), pp. 62–66, 1979

关于验证码,这篇论文很不错,建议参考:"Text-based CAPTCHA Strengths and Weaknesses", ACM Computer and Communication security 2011 (CSS'2011)

© 野比 2012

改进的去污算法

污损车牌号拆分字符

图像识别练习(字符验证码、车牌号、身份证号)相关推荐

  1. java摇号抽奖程序,Excel真的太强大了,能把抽奖功能做成车牌号摇号程序,真是人才...

    大家好,这几天也没有朋友给我留言问我问题了,一时间竟然不知道要教大家些什么了.在想素材的时候突然又想到了抽奖小程序,不知大家还有印象吗?想到抽奖,又让我突然想到了车牌号摇号,于是素材就来了,Excel ...

  2. python正则匹配字母后面四位数字_怎么写一条正则去匹配15位、18位、还有最后一个字符为字母的身份证号...

    大佬们,我想用一条正则表达式在一堆字符串里面去匹配匹配15位.18位.还有最后一个字符为字母的身份证号.那一堆字符串如下: |_ Potentially risky methods: TRACE |_ ...

  3. 正则表达式 手机号 车牌号 身份证 姓名

    Android中手机号.车牌号正则表达式 手机号 手机号的号段说明转载自:国内手机号码的正则表达式|蜗牛的积累 手机名称有GSM:表示只支持中国联通或者中国移动2G号段(130.131.132.134 ...

  4. php 车牌号限号,不限行也不限号!还能送车牌?这种车你考虑吗?

    哈喽,小伙伴们大家好! 北京车展结束了,今年车展有个特点:纯燃油新车少了,新能源车多了~ 具体有多少款,彬子有位同事闲的无聊还数了一下,差不多有170 多款~ 这些都是热门新能源车 ▼ 限号城市,新能 ...

  5. php 车牌号限号,车辆尾号限行API免费接口,车辆尾号限行API接口付费定制-进制数据...

    package api.binstd.vehiclelimit; import api.util.HttpUtil; import net.sf.json.JSONArray; import net. ...

  6. php 车牌号限号,车辆尾号限行

    package api.jisuapi.vehiclelimit; import api.util.HttpUtil; import net.sf.json.JSONArray; import net ...

  7. 信息脱敏---字符、姓名、邮箱、手机、固定电话,银行卡号、地址、身份证号脱敏处理

    信息脱敏:对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护. 以下工具类是对字符.姓名.邮箱.手机.固定电话,银行卡号.地址.公司开户银行联号.身份证号进行脱敏处理. 1.脱敏工具 ...

  8. 使用正则表达式验证身份证号、QQ号、手机号、邮箱、地址、邮编、银行卡号、学号、车牌号、快递单号、验证码、ISBN号、网址、IPV4地址、IPV6地址、出生年月日、姓名

    目录 (原创不易,你们对阿超的赞就是阿超持续更新的动力!) (以免丢失,建议收藏~~~) ------------------------------------------------------- ...

  9. 常用正则表达式(手机,邮箱,身份证号,昵称,用户名,车型,车牌号)

    //邮箱 + (BOOL) validateEmail:(NSString *)email { NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Z ...

最新文章

  1. 如何应对5G带来的新安全挑战
  2. 如何更好的与人沟通?[图]
  3. C++,那些可爱的小陷阱(二)
  4. CentOS下安装Hbase
  5. linux下面tomcat域名配置
  6. 文献学习(part20)--Sparse Subspace Clustering: Algorithm, Theory, and Applications
  7. TDA-04D8变送器数据上报阿里云
  8. 廖雪峰讲python高阶函数求导公式_高阶函数 - 廖雪峰 Python 2.7 中文教程
  9. 20145234黄斐《java程序设计》第十三周代码检查
  10. 非传统营销 text_传统营销已死
  11. 从Powershell ***脚本学到的如何执行后台runspace~
  12. 工具教程第十一讲:如何加入电报群
  13. python生成png图片_python通过pil模块将raw图片转换成png图片的方法
  14. Pyton爬虫编程入门学习笔记(八)学习正则表达式
  15. NaN是什么 NaN == NaN 的结果是什么?为什么?
  16. 投票问题 python
  17. SequoiaDB 网络通信三剑客(maxsocketpernode,maxsocketperthread,maxsocketthread)
  18. Pycharm Professional Edition 激活码(license),有效期至2018年01月30日
  19. Python 调用WebService接口出错-suds.transport.TransportError: HTTP Error 401: Unauthori
  20. xch-sboot单体服务架子

热门文章

  1. php实现阿拉伯数字转为银行数字大写
  2. 解决Windows下SVN上UUID不匹配问题
  3. html table hover,表格列的hover状态与选中状态
  4. PMP笔记-挣值计算公式汇总
  5. 记一次听岳老师“项目管理”讲座
  6. AcWing 10. 有依赖的背包问题
  7. 获取照片的EXIF信息
  8. 程序员的算法趣题Q42: 将牌洗为逆序
  9. PAT 乙级1037 在霍格沃茨找零钱 (20分)
  10. 深度:锂电池中国即将突破日韩!低毛利暗藏风险