图像识别练习(字符验证码、车牌号、身份证号)
图像识别练习(字符验证码、车牌号、身份证号)
© 野比 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
改进的去污算法
污损车牌号拆分字符
图像识别练习(字符验证码、车牌号、身份证号)相关推荐
- java摇号抽奖程序,Excel真的太强大了,能把抽奖功能做成车牌号摇号程序,真是人才...
大家好,这几天也没有朋友给我留言问我问题了,一时间竟然不知道要教大家些什么了.在想素材的时候突然又想到了抽奖小程序,不知大家还有印象吗?想到抽奖,又让我突然想到了车牌号摇号,于是素材就来了,Excel ...
- python正则匹配字母后面四位数字_怎么写一条正则去匹配15位、18位、还有最后一个字符为字母的身份证号...
大佬们,我想用一条正则表达式在一堆字符串里面去匹配匹配15位.18位.还有最后一个字符为字母的身份证号.那一堆字符串如下: |_ Potentially risky methods: TRACE |_ ...
- 正则表达式 手机号 车牌号 身份证 姓名
Android中手机号.车牌号正则表达式 手机号 手机号的号段说明转载自:国内手机号码的正则表达式|蜗牛的积累 手机名称有GSM:表示只支持中国联通或者中国移动2G号段(130.131.132.134 ...
- php 车牌号限号,不限行也不限号!还能送车牌?这种车你考虑吗?
哈喽,小伙伴们大家好! 北京车展结束了,今年车展有个特点:纯燃油新车少了,新能源车多了~ 具体有多少款,彬子有位同事闲的无聊还数了一下,差不多有170 多款~ 这些都是热门新能源车 ▼ 限号城市,新能 ...
- php 车牌号限号,车辆尾号限行API免费接口,车辆尾号限行API接口付费定制-进制数据...
package api.binstd.vehiclelimit; import api.util.HttpUtil; import net.sf.json.JSONArray; import net. ...
- php 车牌号限号,车辆尾号限行
package api.jisuapi.vehiclelimit; import api.util.HttpUtil; import net.sf.json.JSONArray; import net ...
- 信息脱敏---字符、姓名、邮箱、手机、固定电话,银行卡号、地址、身份证号脱敏处理
信息脱敏:对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护. 以下工具类是对字符.姓名.邮箱.手机.固定电话,银行卡号.地址.公司开户银行联号.身份证号进行脱敏处理. 1.脱敏工具 ...
- 使用正则表达式验证身份证号、QQ号、手机号、邮箱、地址、邮编、银行卡号、学号、车牌号、快递单号、验证码、ISBN号、网址、IPV4地址、IPV6地址、出生年月日、姓名
目录 (原创不易,你们对阿超的赞就是阿超持续更新的动力!) (以免丢失,建议收藏~~~) ------------------------------------------------------- ...
- 常用正则表达式(手机,邮箱,身份证号,昵称,用户名,车型,车牌号)
//邮箱 + (BOOL) validateEmail:(NSString *)email { NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Z ...
最新文章
- 如何应对5G带来的新安全挑战
- 如何更好的与人沟通?[图]
- C++,那些可爱的小陷阱(二)
- CentOS下安装Hbase
- linux下面tomcat域名配置
- 文献学习(part20)--Sparse Subspace Clustering: Algorithm, Theory, and Applications
- TDA-04D8变送器数据上报阿里云
- 廖雪峰讲python高阶函数求导公式_高阶函数 - 廖雪峰 Python 2.7 中文教程
- 20145234黄斐《java程序设计》第十三周代码检查
- 非传统营销 text_传统营销已死
- 从Powershell ***脚本学到的如何执行后台runspace~
- 工具教程第十一讲:如何加入电报群
- python生成png图片_python通过pil模块将raw图片转换成png图片的方法
- Pyton爬虫编程入门学习笔记(八)学习正则表达式
- NaN是什么 NaN == NaN 的结果是什么?为什么?
- 投票问题 python
- SequoiaDB 网络通信三剑客(maxsocketpernode,maxsocketperthread,maxsocketthread)
- Pycharm Professional Edition 激活码(license),有效期至2018年01月30日
- Python 调用WebService接口出错-suds.transport.TransportError: HTTP Error 401: Unauthori
- xch-sboot单体服务架子