Deep Learning 第 N 次入门。 (总是喜欢跟验证码过不去
油猴: https://greasyfork.org/zh-CN/scripts/417693-scnu-sso-auto-captcha-filler/
模型:https://github.com/fengkx/scnu-sso-captcha
训练模型
输入前先做一些图像处理。灰度去色 => 二值化 => 中值滤波(去干扰线和椒盐噪点)
这样能去除颜色和一部分噪点的干扰,能够用比较少的数据(约6000张sso的验证码)还有约2000张生成的验证码,比较快(大概batch 300 一两千轮的基本上到头了)的搞出来。
站在巨人的肩膀上用这的 any-captcha 生成一些比较恶心的验证码。比如 nh
, 4a
, 0Oo
, 5sS
之类的字符组成的验证码去教神经网络做人。
输入形状是 50 * 100 * 1
输出形状是 4 * 36 (不区分大小写) softmax 激活
然后就是跑咯。。。。。。。
![](https://static-img.0xffff.one/2RLlnWZ8gVeCmcYXjj7JurOu-1u0GTcGgvueB12n7ZU/q:90/w:800/rt:fit/aHR0cHM6Ly9zdGF0/aWMuMHhmZmZmLm9u/ZS9hc3NldHMvZmls/ZXMvMjAyMC0xMi0w/My8xNjA2OTgzMjQ2/LTg4Mzk5NS1oZWF2/eS0zLnBuZw.jpg)
效果还是不错的。
跑在浏览器上
tensorflow.js 可以加载python训练出的模型。前面的处理用 opencv.js。基本上可以说是一对一翻译。
正准备搞成油猴,又发现一个巨人的肩膀可以靠了。一把梭之后然后发现在 Firefox 上加载模型的速度慢的过头了。又删掉了几层神经网络又训练了一波 Lite 版模型。
![](https://static-img.0xffff.one/XoJJ1ozrGWMX0ZD4z9yACoWrEG4W9xNBxzOtB8qS2MA/q:90/w:800/rt:fit/aHR0cHM6Ly9zdGF0/aWMuMHhmZmZmLm9u/ZS9hc3NldHMvZmls/ZXMvMjAyMC0xMi0w/My8xNjA2OTgzMzk4/LTk0NTM5OC1saXRl/LTMucG5n.jpg)
准确率自然是下降一些。。。
稍微好一些,属于可以接受但是仍然很慢的那种。主要的瓶颈在于加载模型而不是预测。还有就是opencv.js 和 tf.js 的加载。Performance 面板中 compile script 占了很大部分。
安利
https://book.douban.com/subject/30270959/ 是本好书。没有一上来就 import xxx layer 加加加。是真的 From Scratch 很适合 0 基础入门。