加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 智能机器人、大数据、CDN、图像分析、语音技术!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

TensorFlow识别知乎验证码

发布时间:2023-05-23 17:00:49 所属栏目:Asp教程 来源:未知
导读: 识别知乎验证码
最近在爬知乎的数据,遇到了验证码,就使用TensorFlow的CNN训练了一个能自动识别验证码的模型,最后识别线上验证码的准确率在95%左右。
依赖库Python3requestsPIL & numpyT

识别知乎验证码

最近在爬知乎的数据,遇到了验证码,就使用TensorFlow的CNN训练了一个能自动识别验证码的模型,最后识别线上验证码的准确率在95%左右。

依赖库Python3requestsPIL & numpyTensorFlowCNN分析

做爬虫请求知乎接口频繁时,会遇到两种验证码:细字体和粗字体。

asp验证码_asp.net textbox 时间验证_asp.net mvc 登录验证

如果把两种验证码混合放到同一个神经网络中训练的话,收敛会比较慢,需要的样本量就比较大,如果手上样本量不够多,我们可以先训练一个分类器asp验证码,将两种验证码区分开,再分别去训练识别,这样需要的样本量就会少很多而且每个分类准确率都能得到保证!

最开始我样本量不够时就是是按照上面的做法实现的,现在样本足够了就可以把两种验证码在样本混合起来直接丢到CNN里训练就好了,最后也达到不错的准确率!

代码链接在文末。

如何运行 把你的验证码样本放到samples目录下的train_mixed_captcha_base64.txt文件中。训练模型:运行train目录下的model.py文件,直到达到你满意的准确率为止。这时训练好的网络结构和权重值会保存在checkpoints目录下。 恢复上一步训练好的网络模型,导出predict_captcha预测函数。传入base64编码的图片字符串,执行predict_captcha函数,得到预测结果。Boom!想干嘛你就可以干嘛了!CNN

代码中的模型使用TensorFlow构建了一个简单的卷积神经网络。

包含:一个输入层、三个卷积层+池化层和最后一个全连接层。

至于网络模型为什么是这种结构,因为:前人根据经验总结出来这种结构训练的效果会比较好。

当然你也可以尝试其他的结构,只要效果好就行了。我们都是黑盒调参的。

使用TensorBoard可以可视化训练的关情况。

给大家看一下我训练的网络结构:

asp验证码_asp.net mvc 登录验证_asp.net textbox 时间验证

网络结构

准确率走势图:

asp验证码_asp.net mvc 登录验证_asp.net textbox 时间验证

准确率曲线

loss曲线:

asp.net mvc 登录验证_asp.net textbox 时间验证_asp验证码

loss曲线

最后,使用训练好的模型Cover到知乎线上的验证码平均识别准确率在95%左右,也就是两次至少命中一次的概率为:1 - 0.05*0.05 = 99.75%,够我用啦然后……你懂的!

源码地址:github.com/lonnyzhang423/zhihu-captcha

UPDATE

知乎最近升级了验证码服务,换成腾讯的滑块验证码,这个没用啦

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章