处于安全考虑,大部分的网站登录页面都会有验证码,验证码的有简单也有复杂的;
以下是度娘对验证码识别的介绍
验证码的主要目的是强制人机交互来抵御机器自动化攻击的。大部分的验证码设计者并不得要领,不了解图像处理,机器视觉,模式识别,人工智能的基本概念。
看来,验证码识别涉及到人工智能,这篇文章,通过验证码识别,对人工智能进行一个初探。
python robot框架有图像处理库PIL、pytesser、tesseract
环境搭建
1.pillow命令安装
pip install Pillow
用pip命令安装不了的话,也可以去官网下载whl包进行安装
https://pypi.org/project/Pillow/
安装完毕,需要检查一下安装是否成功。
如下图所示,打开python后,输入import Image,会提示没有这个模块。因为使用pillow库需要使用from PIL import Image代替import Image。按照图中的处理,即可验证PIL是否安装成功。
2.pytesser的使用
pytesser下载地址:链接:https://pan.baidu.com/s/1zBipW08DoT_WT-ubtIj7gw 密码:zedi
下载解压后直接放C:\Python27\Lib\site-packages(根据你安装的Python路径而不同),同时,新建一个pytesser.pth,内容就写pytesser,注意这里的内容一定要和pytesser这个文件夹同名,意思就是pytesser文件夹,pytesser.pth,及内容都要一样!
接下来打开pytesser文件夹,将pytesser.py修改成__init__.py,然后打开py文件进行修改:
1. import Image —> from PIL import Image
2. tesseract_exe_name = 'tesseract' —> tesseract_exe_name = 'Python安装路径\\Lib\\site-packges\\pytesser\\tesseract,注意双斜杠,否则可能因为转义字符报错
pytesser同时依赖tesseract-ocr,继续安装tesseract-ocr了,下载地址:链接:https://pan.baidu.com/s/1sbt4yt3y1LuPIxQVVug0AA 密码:2cb5
下载后解压,tessdata文件夹,用其替换掉pytesser解压后的tessdata文件夹即可。
3.进行实验
说明可以识别简单的验证码!
复杂的呢?下图本来是有背景的,去除背景后识别率并非100%
有干扰线的根本无法识别!!!
于是,不服气的我就做了一下尝试
1.收集验证码原材料
2.去除原图片噪点、将背景色处理成白色
3.将去噪点后的图片切割并人为打标签分库
然而。成功率并不高,因为干扰线的原因,数字形状不固定。
所有如果能去除干扰线,成功率就会提升一大截。
现在我还是个菜鸟,代码基础不太好,暂时无法解决,现在的方案是让开发在代码中加万能验证码。
人工智能图像识别,暂时就告一段落了,以后有新的进展会及时更新。
觉得好的请点个赞,谢谢!
一个不羁的测试
坚持分享
领取专属 10元无门槛券
私享最新 技术干货