如何识别高级的验证码
一、验证码的基本知识G3B OrH8t;K0^Px,a Kb$I
1. 验证码的主要目的是强制人机交互来抵御机器自动化攻击的。.d'X5d(SWA%]*E
}x5jj,@]&oB]K
2. 大部分的验证码设计者并不得要领,不了解图像处理,机器视觉,模式识别,人工智能的基本概念。
3. 利用验证码,可以发财,当然要犯罪:比如招商银行密码只有6位,验证码形同虚设,计算机很快就能破解一个有钱的账户,很多帐户是可以网上交易的。#Z L"e-Ah/Wg
4. 也有设计的比较好的,比如Yahoo,Google,Microsoft等。而国内Tencent的中文验证码虽然难,但算不上好。
;p7^Uj6G*D;yC
二、人工智能,模式识别,机器视觉,图像处理的基本知识
1)主要流程:w(tqs&Kkk
(Y9i6kM0v
比如我们要从一副图片中,识别出验证码;比如我们要从一副图片中,检测并识别出一张人脸。 大概有哪些步骤呢?
1.图像采集:验证码呢,就直接通过HTTP抓HTML,然后分析出图片的url,然后下载保存就可以了。 如果是人脸检测识别,一般要通过视屏采集设备,采集回来,通过A/D转操作,存为数字图片或者视频频。
2.预处理:检测是正确的图像格式,转换到合适的格式,压缩,剪切出ROI,去除噪音,灰度化,转换色彩空间这些。sS4{t6_$G(K
%c&V.f]TN _
3.检测:车牌检测识别系统要先找到车牌的大概位置,人脸检测系统要找出图片中所有的人脸(包括疑似人脸);验证码识别呢,主要是找出文字所在的主要区域。n F,M(U}o
j#g+Kfm%S0Cqa$P!P
4.前处理:人脸检测和识别,会对人脸在识别前作一些校正,比如面内面外的旋转,扭曲等。我这里的验证码识别,“一般”要做文字的切割