Crnn验证码识别
早期的验证码破解主要对字符检测,切割,后对单个字符的识别。该方法只能对传统的背景清晰,文字较为端正简单的验证码进行识别,无法适应复杂背景的验证码文字。该验证码识别采用样本自动生成及加入相应网站验证码图片,crnn进行训练识别。
训练样本的自动生成
<1>:生成验证码词库,比如字符只有0-9 a-z A-Z 零-拾加减乘?则相应的字就 有031a2,b2431,IZ,E0,零-拾=? 等(根据需求随机设置字符个数,再随机 设置字符)。尽可能多地生成的样本词库,包含各种验证码格式。
<2>:自动生成验证码文字训练图片样本,收集不包含文字的背景图片(至少上万 张),对图片进行切割,挑选整理记录平坦可以写入文字的区域。随机从背 景图片库中选出一张图片,随机从词库中选出一些词组,与背景图片分割 的块进行匹配,选好字体,颜色,大小,变换,旋转等信息,将文字写入 背景块中。 扣取旋转背景块矩形框作为一个个样本。 生成样本如图:
训练样本的对应网站图片标签生成
. . . . 打码平台获取及人工标注等
验证码识别流程图
验证码识别效果
实验结果
目前验证码涉及字符为数字,英文大小写,中文数字运算,自动生成样本50万,平台 收集30万,主要针对京东,淘宝,一号店,微信公众号等常见网站平台,测试集准确率 80%以上,不同平台图片复杂程度不一识别准确率略有差异。