[3] 验证码生成参考类
[1] Python3.6.1 or >=3.5
[2] TensorFlow 1.2
[3] numpy
通过训练CNN(卷积神经网络)对4位验证码识别,其中字符有0-9a-zA-Z共计62种,但是预测结果不区分大小写,所以最终预测结果为36种。验证码由多个字体、颜色、干扰线随机生成。
[1] 整体结构
model.py 整个神经网络结构
code_utils.py 将字符转换为一维数组以及一维数组转换为字符的工具类
image_utils.py 读取图片,处理图片数据的工具类
train.py 主程序类,其中包括参数设置以及整个神经网络训练流程控制
test.py 提取大量的测试label测试神经网络的最终效果
[2] 以下为缺少文件夹:
test-images 所有测试验证码图片在这个文件夹 密码:9g3i
train-images 所有训练验证码图片在这个文件夹 密码:obit
以下是对100万张训练验证码进行训练,20万张不参与训练的测试验证码测试出的结果
一般的验证码系统都会去掉类似的字符(例如:i, l, o, 1, 0...),为了更全面的测试,所以我选择将这些难以识别的字符也添加进去测试,可以看出有这些难以辨别的字符时,连人类也很难去完全预测正确(下图,第一行为预测值,第二行为真实值)
最终结果: 四个字符同时正确率: 90.02% 单个字符正确率: 97.42%
*说明:本项目仅用于学习,勿用于网络攻击及验证码暴力破解
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )