点击关注 州的先生 编程应用、实战教程,不容错过 何谓“真实场景”,意即图片验证码
来源于实际的数据采集过程中遇到的网站,对图片验证码的识别训练工作也是
出自于真实的环境。而非像
很多文章用一个验证码库生成好几万个验证码图片样本,然后用一个CNN或LSTM模型,把数据扔进去跑。
看着是过瘾,测试效果也很好,然后呢?照着做碰一鼻子灰!
一、验证码采集
既然要识别验证码,那么 一定数量的验证码图片样本必不可少。我们的验证码图片就存在于网站(具体是什么网站就不透露了)之中,图片验证码的显示形式有以下几种:一个URL每次访问都生成不同的验证码图片并显示;
每次访问都是一个随机的URL生成验证码图片并显示;
验证码图片以base64编码的形式返回并显示;
二、验证码标注
验证码下载好了之后,我们需要对其进行标注。在这里,州的先生(https://zmister.com)使用的是之前自己用 PyQt5写的一个 验证码图片标注软件: 详情请戳如下两个链接(一个为博客、一个为公众号):https://zmister.com/archives/1370.html。节约时间,珍惜生命,手写一个验证码图片标注程序
三、验证码降噪
可以看到,这些验证码有不同的 背景颜色、不同位置的 干扰线、 字体也是不一样的,为了便于训练和识别,我们先对这些验证码图片进行 降噪处理。对于图片的降噪处理,州的先生在之前也发表过一篇文章来介绍,请戳这里:https://zmister.com/archives/1342.html Python实战图片验证码降噪处理在这里,我们主要进行了 二值化降噪和 邻域降噪,顺便对验证码图片的大小进行了 裁剪,最后得到降噪后的验证码图片如下图所示:<