计算机主要配置如下:
CPU:Intel 酷睿i7 7700HQ;
内存:8GB;
显卡:NVIDIA GeForce GTX 1060
1 训练数据准备
常见的字符型验证码一般是由英文字符及数字随机组合而成,同时添加对字符进行随机的旋转角度处理并且添加具有干扰作用的噪点。干扰图形往往会与真实的验证码字符混淆在一起,让人难以分辨本来的字符形状或者是将其误以为是别的字符。
本文采用的方法是使用以Python编写的能够生成验证码的captcha库,该生成器能够满足以上提到的所有关于字符型验证码的特点,能够生成具有识别难度的验证码图形。在生成图形的过程中会对字符进行不同程度的拉伸、旋转、扭曲、加入噪点及重叠等操作。
同时采用生成器生成训练数据还有两项优点,一是成本大大降低,不但不需要去各种网站收集大量的验证码数据,更不需要投入大量人力对其进行标记;二是训练数据的数目没有任何限制,从理论上能够生成无限的验证码样本。
本文所使用的验证码字符集仅包括了数字‘0’-‘9’,英文字母‘A’-‘Z’,共36种不同字符。若需要拓展验证码适用范围,可以仅仅变动所使用的字符库或是更换生成器即可。本文采用的验证码生成器所生成的验证码图形如下图所示。
![156e473113a7e53cef930065675e27e5.png](https://i-blog.csdnimg.cn/blog_migrate/a67ca5c2266ee391f564b0c56f32e609.jpeg)
验证码样本