一、验证码的基本知识
验证码的主要目的是强制人机交互来抵御机器自动化攻击的。大部分的验证码设计者并不得要领,不了解图像处理,机器视觉,模式识别,人工智能的基本概念。
设计的比较好的验证码,比如Yahoo,Google,Microsoft等很难识别。而国内Tencent的中文验证码虽然难,但算不上好。
某些专家认为,不存在一种用计算机表示的信息不能被计算机识别的情况,所以,对验证码来说,所有验证码都是可以识别出来的。
人工智能,模式识别,机器视觉,图像处理的基本知识
1.读取验证码图像:把各种验证码图像解码,得到平面坐标表示的数据,很多开源库可以用来做这一步。
2.前处理:验证码识别的预处理主要是去除图像上的干扰,找出字符区域。对于连接在一起的字符,进行分割。对于复杂的验证码,分割这一步非常难处理。对于单个字符,OCR技术的识别率还是能达到比较高的。
3.训练:对于模式识别,主要是对样本进行特征提取,然后保存下来。不是训练的样本越多越好。过学习,泛化能力差的问题可能在这里出现。这一步不是必须的,有些识别算法是不需要训练的。
4.识别:对于模式识别来说,主要是验证码字符与训练的样本的特征匹配。