CNN识别微博验证码

captcha_trainer 是基于深度学习的图片验证码的解决方案 - 该项目能够秒杀字符粘连重叠/透视变形/模糊/噪声等各种干扰情况,足以解决市面上绝大多数复杂的验证码场景,目前也被用于其他OCR场景。

项目下载地址: https://github.com/kerlomz/captcha_trainer


安装

跟随 requirements.txt 文件一键安装或者自行安装。
安装完成之后,在app.py文件启动界面。

GUI界面中的功能介绍:
在这里插入图片描述


以下部分有基础的读者们可以了解一下:(该部分复制的作者原文内容)
在这里插入图片描述
如若使用CrossEntropy作为解码器需要注意标签数LabelNum和图片尺寸需要满足的关系,因为网络为多标签而设计(一般的多标签采用直接连接多个分类器,这也是有一部分网上的开源代码你们修改了图片就无法运行的原因之一),卷积层的输出 outputs 经过了以下变换:

Reshape([label_num, int(outputs_shape[1] / label_num)])

为了保证 int(outputs_shape[1] / label_num) 运算能够得到正整数维度,这意味着他们之间存在某种数学关系,对CNN5+Cross Entropy网络结构而言,Conv2D层的步长皆为1,那么需要保证以下等式成立:
在这里插入图片描述
输入宽度输入高度输出层参数池化步长池化层数标签数

所以有时候需要对输入的图片Resize,一般4位验证码不容易出现这种问题,位数为3,5,6,7容易出现不满足等式的问题,这个等价关系如果不好计算的话,建议使用CTC Loss。

在这里插入图片描述
例如使用CNN5+CrossEntropy组合,则输入宽度与输入高度需要满足:
在这里插入图片描述


数据集下载

验证码数据集: https://pan.baidu.com/s/1bjVNQu9Oy3AcXu9aqfFvcA?pwd=ak9i

在这里插入图片描述

开始训练

输入项目名字,选择训练集,标签数,样本大小,结束条件等。
然后 Start Training 开始训练。

在这里插入图片描述
我之前安装的 tensorflow2.0.0,不太想退版本,所以使用 CPU来进行训练,训练速度较为缓慢。
建议按照作者的推荐使用 tensorflow-gpu==1.14.0。
另外为了减少时间 End Accuracy 可以修改低一点。平均损失End Cost可以高一点。学习率修改大一点。
在这里插入图片描述
在这里插入图片描述

查看训练过程 (如果感兴趣的话)

可以使用 tensorBoard 来查看训练过程。
cmd输出 tensorboard --logdir \路径\captcha_trainer\projects\weiboCaptcha-CNNX-GRU-H64-CTC-C1\model
然后访问 http://localhost:6006/
在这里插入图片描述
其实通过 model\checkpoint 文件也可以查看当前训练进度。

训练结束会在项目路径的out下看到以下结构的文件,pb为模型,yaml为模型配置文件,下面该到部署环节了。

部署

项目地址:https://github.com/kerlomz/captcha_platform

这里web服务调用仅作为一个例子,企业一般采用gRPC集群远程调用。

将训练好的model.yaml放在模型文件夹中,并将model.pb放在图形文件夹中(如果不存在则创建)

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

考古学家lx(李玺)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值