图像识别试验 - 字符验证码、车牌号、身份证号

简介:

© 野比 2012

欢迎大家和我讨论相关问题。

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

光学字符识别(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

改进的去污算法

 

污损车牌号拆分字符

 

Ref:

二值化我用的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)

相关实践学习
基于函数计算实现AI推理
本场景基于函数计算建立一个TensorFlow Serverless AI推理平台。
目录
相关文章
|
1月前
|
编解码 文字识别 测试技术
3000 字带你了解Claude3 视觉能力,OCR, 菜单识别统统能搞定!
五大任务,带你了解Claude3的视觉能力有多强 2024 年 3 月 4 日,Anthropic 震撼发布了全新的多模态模型——Claude 3。据该公司介绍,无论是语言处理还是视觉识别任务,Claude 3 都展现出了超越同类竞争产品(例如配备视觉功能的 GPT-4)的卓越性能。
101 0
|
1月前
|
JSON 安全 Java
人脸识别活体检测之眨眨眼和张张嘴
人脸识别活体检测之眨眨眼和张张嘴
16 0
|
3月前
|
算法 开发工具 计算机视觉
条形码识别研究
条形码识别研究
|
4月前
|
人工智能 API 开发工具
【Python+百度API】实现人脸识别和颜值检测系统(包括人脸数量、年龄、颜值评分、性别、种族、表情检测)(超详细 附源码)
【Python+百度API】实现人脸识别和颜值检测系统(包括人脸数量、年龄、颜值评分、性别、种族、表情检测)(超详细 附源码)
104 0
|
10月前
|
机器学习/深度学习 算法 大数据
如何通过空号检测,验证电话号码数据的准确性
空号检测接口通过结合数据查询和验证算法,为企业和个人提供了一种有效的方式来确定电话号码的有效性。它在营销、客户服务、身份验证和运营商等方面发挥着重要作用,提高了资源利用效率、用户体验和数据准确性。随着通信技术的发展,空号检测接口将继续发挥更大的作用,帮助解决电话号码有效性的挑战
237 0
|
11月前
|
存储 文字识别 算法
m基于MATLAB的发票数字信息识别算法仿真,通过形态学处理进行字符分割,通过模板匹配实现数字字母识别
m基于MATLAB的发票数字信息识别算法仿真,通过形态学处理进行字符分割,通过模板匹配实现数字字母识别
128 0
m基于MATLAB的发票数字信息识别算法仿真,通过形态学处理进行字符分割,通过模板匹配实现数字字母识别
|
11月前
|
机器学习/深度学习 存储 文字识别
图像数字识别、数字分割(OCR识别,毕业设计)
图像数字识别、数字分割(OCR识别,毕业设计)
230 0
|
机器学习/深度学习 算法 Linux
图像处理 手写体英文字母的目标检测与识别 实验报告
图像处理 手写体英文字母的目标检测与识别 实验报告
263 0
图像处理 手写体英文字母的目标检测与识别 实验报告
|
存储 机器学习/深度学习 传感器
【发票识别】基于模板匹配实现发票识别研究附matlab代码
【发票识别】基于模板匹配实现发票识别研究附matlab代码
|
计算机视觉
openCV实践项目:银行卡卡号识别
openCV实践项目:银行卡卡号识别
openCV实践项目:银行卡卡号识别

热门文章

最新文章