验证码识别浅谈

来源:互联网 发布:c语言中产生随机数 编辑:程序博客网 时间:2024/05/01 07:09

一、验证码的基本知识

  
  验证码的主要目的是强制人机交互来抵御机器自动化攻击的。大部分的验证码设计者并不得要领,不了解图像处理,机器视觉,模式识别,人工智能的基本概念。

  设计的比较好的验证码,比如Yahoo,Google,Microsoft等很难识别。而国内Tencent的中文验证码虽然难,但算不上好。

      某些专家认为,不存在一种用计算机表示的信息不能被计算机识别的情况,所以,对验证码来说,所有验证码都是可以识别出来的。

二、验证码识别处理基本知识

人工智能,模式识别,机器视觉,图像处理的基本知识
 

1)主要流程:

  1.读取验证码图像:把各种验证码图像解码,得到平面坐标表示的数据,很多开源库可以用来做这一步。

  2.前处理:验证码识别的预处理主要是去除图像上的干扰,找出字符区域。对于连接在一起的字符,进行分割。对于复杂的验证码,分割这一步非常难处理。对于单个字符,OCR技术的识别率还是能达到比较高的。

  3.训练:对于模式识别,主要是对样本进行特征提取,然后保存下来。不是训练的样本越多越好。过学习,泛化能力差的问题可能在这里出现。这一步不是必须的,有些识别算法是不需要训练的。

  4.识别:对于模式识别来说,主要是验证码字符与训练的样本的特征匹配。
 

2)关键概念:

  模式识别:对事物或者现象的某种表示方式(数值,文字,我们这里主要想说的是数值),通过一些处理和分析,来描述,归类,理解,解释这些事物,现象及其某种抽象。

 

验证码识别的难易:

 

 1、字符间粘连越厉害的验证码越难识别

 2、干扰越没有规律的验证码越难识别;

 2、字形数目越少越容易识别(一个字符可能有多种字行)

验证码识别的步骤:

1、提取验证码图片样本,构造识别库;

2、对要识别的验证码做预处理(去噪、去干扰、分割等);

3、识别(与构造的识别库做比较);

0 0
原创粉丝点击