使用 TensorFlow 识别简单图像验证码
应用介绍
公司有一个业务需要抓取某网站数据,登录需要识别验证码,类似下面这种,这应该是很多网站使用的验证码类型。
首先由于验证码比较简单,图像不复杂,而且全部是数字。于是试着采用传统方式,按照网上教程自己简单改了一个,使用 PHP 识别。大概流程就是切割二值化去噪等预处理,然后用字符串数组形式保存起来,识别传来的图片同样预处理后比较字符串的相似度,选出一个相识度最高的分类。识别率不是很理想(验证码比较简单,应该能优化得更好),隐约记得只能超过60%。
因为识别效果不理想,目标网站登录状态还是能保持很久,没必要花太多精力在这上面,于是找了一个人工打码服务。简直太便宜了,一个月花不了多少钱,效果还好,只是有时候延迟比较高。反正对于我们的业务来说是足够用了。
机器学习大潮来临,我寻思着能不能用在这上面,于是参考 TensorFlow 识别手写数字教程,开始照猫画虎。
本文描述的只是作为一个普通开发者的一些粗浅理解,所有的代码和数据均在文后的 GitHub 有存留,建议结合代码阅读本文。如果有什么理解错误或 Bug 欢迎留言交流 ^_^
#TensorFlow 是什么
TensorFlow 是谷歌出的一款机器学习框架。看名字,TensorFlow 就是“张量流”。呃。。什么是张量呢?张量我的理解就是数据。张量有自己的形状,比如 0 阶张量是标量,1 阶是向量,2 阶是矩阵。。。所以在后文我们会看到在 TensorFlow 里面使用的量几乎都要定义其形状,因为它们都是张量。
我们可以把 TensorFlow 看作一个黑盒子,里面有一些架好的管道,喂给他一些“张量”,他吐出一些“张量”,吐出的东西就是我们需要的结果。
所以我们需要确定喂进去的是什么,吐出来的是什么,管道如何搭建。
更多的入门概念可以查看这个 keras新手指南 » 一些基本概念
#为什么使用 TensorFlow
没别的什么原因,只是因为谷歌大名,也没想更多。先撸起袖子干起来。如果为了快速成型,我建议可以看一下 Keras,号称为人类设计的机器学习框架,也就是用户体验友好,提供好几个机器学习框架更高层的接口。
#大体流程
- 抓取验证码
- 给验证码打标签
- 图片预处理
- 保存数据集
- 构建模型训练
- 提取模型使用
#抓取验证码
这个简单,随便什么方式,循环下载一大堆,这里不再赘述。我这里下载了 750 张验证码,用 500 张做训练,剩下 250 张验证模型效果。
©版权声明:本文内容由互联网用户自发贡献,版权归原创作者所有,本站不拥有所有权,也不承担相关法律责任。如果您发现本站中有涉嫌抄袭的内容,欢迎发送邮件至: www_apollocode_net@163.com 进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
转载请注明出处: apollocode » 使用 TensorFlow 识别简单图像验证码
文件列表(部分)
名称 | 大小 | 修改日期 |
---|---|---|
.gitignore | 0.01 KB | 2020-05-17 |
.gitignore | 0.01 KB | 2020-05-17 |
Pipfile | 0.20 KB | 2020-05-17 |
Pipfile.lock | 8.81 KB | 2020-05-17 |
prepare.py | 0.77 KB | 2020-05-17 |
1.jpg | 1.48 KB | 2020-05-17 |
10.jpg | 1.47 KB | 2020-05-17 |
100.jpg | 1.42 KB | 2020-05-17 |
101.jpg | 1.42 KB | 2020-05-17 |
102.jpg | 1.42 KB | 2020-05-17 |
103.jpg | 1.45 KB | 2020-05-17 |
104.jpg | 1.48 KB | 2020-05-17 |
105.jpg | 1.42 KB | 2020-05-17 |
106.jpg | 1.50 KB | 2020-05-17 |
107.jpg | 1.46 KB | 2020-05-17 |
108.jpg | 1.41 KB | 2020-05-17 |
109.jpg | 1.42 KB | 2020-05-17 |
11.jpg | 1.44 KB | 2020-05-17 |
110.jpg | 1.49 KB | 2020-05-17 |
111.jpg | 1.47 KB | 2020-05-17 |
112.jpg | 1.44 KB | 2020-05-17 |
113.jpg | 1.46 KB | 2020-05-17 |
114.jpg | 1.44 KB | 2020-05-17 |
115.jpg | 1.43 KB | 2020-05-17 |
116.jpg | 1.41 KB | 2020-05-17 |
117.jpg | 1.47 KB | 2020-05-17 |
118.jpg | 1.43 KB | 2020-05-17 |
119.jpg | 1.39 KB | 2020-05-17 |
12.jpg | 1.47 KB | 2020-05-17 |
120.jpg | 1.48 KB | 2020-05-17 |
发表评论 取消回复