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

简介:

© 野比 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)

目录
相关文章
|
数据库 存储 关系型数据库
|
XML 移动开发 API
微信支付开发(7) H5支付
关键字:微信支付 微信支付v3 H5支付 wap支付 prepay_id 作者:方倍工作室原文: http://www.cnblogs.com/txw1958/p/wxpayv3_h5.html    本文介绍微信支付下的H5支付实现流程。
3954 1
|
12月前
|
JSON Dart 算法
【HarmonyOS next】ArkUI-X休闲益智猜字谜【基础】
本文通过一个猜字谜小游戏,展示如何使用ArkUI-X框架实现跨端开发。游戏功能包括随机出题、趣味交互、倒计时与得分统计,并适配HarmonyOS与iOS。核心技术解析涵盖数据结构设计、状态管理、资源加载及双随机算法。ArkUI-X采用ArkTS语言,具备媲美Flutter的跨端能力,同时拥有更小包体积和原生渲染性能。项目资源已开源,适合想探索跨端开发的开发者。
424 27
|
传感器 存储 安全
智能包装:食品保鲜与追踪的创新
【10月更文挑战第20天】智能包装通过传感器、微电子和物联网技术,实现实时监测和调节食品环境条件,延长食品保鲜期,确保食品安全。本文探讨其基本原理、技术创新、实际应用及未来趋势,展示其在食品行业中的革命性变化。
1324 5
|
负载均衡 应用服务中间件 Nacos
Nacos配置中心
Nacos配置中心
1088 1
Nacos配置中心
|
SQL 数据可视化 关系型数据库
阿里云DataV“山海计划” x Epic Fab:“中国风AIGC”助力智慧城市建设
DataV“山海计划”根据中国城市规划特色,建立城市地块、建筑、道路等“城市要素知识库”,基于AI大模型技术生成更贴近“中国特色”的城市场景。基于DataV“山海计划”的UE引擎插件已经登陆Epic Fab,广大UE引擎开发者可以通过该插件免费体验城市历史悠久的广州场景三维资产。除了三维城市场景生成,DataV为智慧城市提供完整的数据看板解决方案,提供200+基础图表、支持API、MySQL、SQL Server、人大金仓、达梦等30+数据源,通过DataV与UE引擎,广大开发者可以低成本获得“智慧城市”开发方案,将更多精力放在满足用户业务需求上,从而提升智慧城市项目的交付质量。
1106 3
|
安全 JavaScript 前端开发
自动化测试的魔法:如何用Python编写你的第一个测试脚本
【8月更文挑战第31天】 在软件的世界里,质量是王道。而自动化测试,就像是维护这个王国的骑士,确保我们的软件产品坚不可摧。本文将引导你进入自动化测试的奇妙世界,教你如何使用Python这把强大的魔法杖,编写出能够守护你代码安全的第一道防护咒语。让我们一起开启这场魔法之旅吧!
|
消息中间件 SQL API
TDengine 数据订阅 vs. InfluxDB 数据订阅:谁更胜一筹?
在时序数据的应用场景中,数据的实时消费和处理能力成为衡量数据库性能和可用性的重要指标。TDengine 和 InfluxDB 作为时序数据库(Time Series Database)中的佼佼者,在数据订阅方面各有特点。但从架构设计、灵活性和系统负载上看,TDengine 提供了更加全面且高效的解决方案。
428 2
|
前端开发 程序员
给圆点添加呼吸动画,老板说我很有想法
【10月更文挑战第13天】给圆点添加呼吸动画,老板说我很有想法
给圆点添加呼吸动画,老板说我很有想法
|
运维 监控 前端开发
阿里云数据库发展历程及产品简介(一)
阿里云数据库发展历程及产品简介(一)
1014 0

热门文章

最新文章