python识别验证码去干扰_TensorFlow识别字母扭曲干扰型验证码-开放源码与98%模型...

a9e31b53262bb39fb37f0b370016fa17.png

本项目源码及训练完成的模型均开源当前识别率98%。

转载请附:博文网址: urlteam ,github 网址:tensorflow_cnn

新开一个专门存储TensorFlow项目的仓库逐步更新欢迎star :tensorflow

主流验证码偏向于用扭曲,倾斜,干扰例如下图:

f6a6069362fc8a3ce1d1a371224f3486.png

3d2e34b4a312486f999409faf211f9d7.png

因为字符距离近,没法采用先切割为单个字符然后进行局部识别的方式,so。

使用TensorFlow+cnn。进行卷积识别,该方法无需切割验证码,最终结果为训练4天(单台i5机器)达到98准确率

项目综述:

使用深度学习+训练数据+大量计算力,我们可以在几天内训练一个可以破解验证码的模型,不需要分割验证码,而是把验证码做为一个整体进行识别。

自己做一个验证码生成器,然后训练CNN模型破解自己做的验证码生成器。感觉的字符验证码机制可以废了,单纯的增加验证码难度只会让人更难识别,使用CNN+RNN,机器的识别准确率不比人差。Google已经意识到了这一点,他们现在使用机器学习技术检测异常流量。

CNN需要大量的样本进行训练。如果使用数字+大小写字母CNN网络有4*62个输出,只使用数字CNN网络有4*10个输出。因此需要一个脚本自动生成训练集。

成功率(可能波动,均亲身实践):

  1. 达到50%成功率需要2000个批次,总计20w张图片。
  2. 达到70%成功率需要4000个批次,总计40w张图片。
  3. 达到94%成功率需要40000个批次,总计400w张图片。
  4. 达到98%成功率需要100000个批次,总计1000w张图片。

loss曲线为:

a96a4a6af2b9be7f8197f36d80c78a9d.png

成功率曲线为:

a75df2b4885b95256e1fa096dae176ae.png

实践流程:

  1. TensorFlow环境搭建:官网下查看安装教程
  2. 测试批量验证码生成训练集: github
  3. TensorFlow—cnn 批量生成验证码并用cnn训练: github
  4. 将训练模型存放于同一目录下,测试结果:github
  5. 98%准确率模型下载:链接: https://pan.baidu.com/s/1cs0LCM 密码: sngx

运行截图:

测试训练图片生成:

480c1f02f30f1a8d04d31b160a640e1d.png

模型训练中:

242c069156be12106c9c17e1d176c3d9.png

测试模型:

b8b5b1907d14241d32b7f04c305d07f6.png

资源简介:

  1. 本项目由urlteam维护,欢迎star
  2. 相关的验证码破解系列可以在这里找到:
github​github.com

逐步更新TensorFlow系列项目:github

  1. 博客主页:
The world we move forward together​www.urlteam.cn

相关论文:

  1. Multi-digit Number Recognition from Street View Imagery using Deep CNN
  2. CAPTCHA Recognition with Active Deep Learning
  3. Number plate recognition with Tensorflow
  4. 最初cnn学习自此
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值