试着识别了一波知乎那个奇怪的汉字验证码, 正确率高的惊人...

2017-04-24 23:01:03 +08:00
 muchrooms
作为一个垃圾大学平时吃饱了撑得闲的没什么研究的研究生, 自学了一点概率论和机器学习

偶然上知乎时发现这个验证码很骚气
https://raw.githubusercontent.com/muchrooms/zheye/master/zhihu.png
https://www.zhihu.com/captcha.gif?type=login&lang=cn

就手贱识别了一下
发现那个效果还不错..
https://github.com/muchrooms/zheye 附在线测试地址

快毕业要找工作了, 来讨个星星 _(:3 」∠)_
学弱求轻拍, 小水管求不黑

顺便听取一下各位前辈在学习方面有什么批评建议, 给小弟指条明路
10899 次点击
所在节点    分享发现
21 条回复
trys1
2017-04-24 23:29:02 +08:00
已加星,请付款
zhihaofans
2017-04-24 23:33:44 +08:00
已 star ,明天试试
davidzhanwork
2017-04-24 23:39:34 +08:00
很不错~ 都是对的

已 star
muchrooms
2017-04-24 23:53:05 +08:00
@trys1 好的王老板, 还是按一个一块五是吧
Sunnyyoung
2017-04-24 23:55:53 +08:00
Cool
muchrooms
2017-04-24 23:58:33 +08:00
ypw
2017-04-25 00:10:10 +08:00
你的模型还有很多可以改进的地方,比如卷积层可以加多一些,卷积核大小用 3x3 而不是 5x5 ,用多个卷积卷积池化结构逐步降维,去掉全连接层,只保留分类器, Dropout 只放在最后一个分类器前面等。你的模型由于降维不够,导致了很严重的过拟合,所以验证集只有 90%的准确率。

我也写过一篇验证码识别的文章,可以识别数字和字母: https://zhuanlan.zhihu.com/p/26078299
muchrooms
2017-04-25 00:50:24 +08:00
@ypw 没有用 dropout 后来换了 batch norm, 以求加速. 卷积核大小的确导致了过拟合, 但我自己生成的图像和原图还不是完全一样, 其实最开始用 LeNet 实验的时候验证集都能到 99%, 但是用在真实的验证码上效果却有些糟糕.. 所以当初只是想更泛化一点.. 卷积层就无奈了, 笔记本性能渣, 真的不能太多层了, 我这个破 diaosiNet 这都训练了一晚上 2333

谢谢你的建议, 我后续再改良一下 )
yuanchao
2017-04-25 09:44:29 +08:00
6666 已 star
muchrooms
2017-04-25 11:32:56 +08:00
@yuanchao 哈哈哈 谢谢
Jackeriss
2017-04-25 13:08:47 +08:00
说句题外话, Github 建议上传个头像。
ccw55
2017-04-25 16:29:14 +08:00
我也想入门一下机器学习,楼主能指导指导小弟吗
muchrooms
2017-04-25 17:46:34 +08:00
@Jackeriss ok 因为看着像小号吗...
@ccw55 我也算个小学生, 水平有限能力一般, 一起努力学呗~
yansyuei
2017-04-26 10:41:59 +08:00
之前知乎的汉字 以及 字母文字验证码都有 bug
https://www.youtube.com/embed/4V5f9n78l9Q
muchrooms
2017-04-26 22:11:22 +08:00
@yansyuei 666 啊
xiaoxiaowm
2017-07-10 11:10:34 +08:00
@muchrooms 你的两分类问题,程序刚开始学习的时候是不是基本是从识别率 50%,然后通过一个版本一个版本的学习慢慢成绩才上去的?我弄了一个识别验证码的,有 50 多个分类,学习的时候,正确率总是在百分之二左右,是不是要经过 N 多版本的学习才行?
muchrooms
2017-07-10 11:41:02 +08:00
@xiaoxiaowm 你好,开始准确率(accuracy)就是 50%。因为一开始参数会随机初始化,导致模型按照平均分布瞎猜,所以 n 分类的初始准确率是 1/n。每一次 epoch 会提高训练集的成绩,但不一定提高测试集准确率。

50 多个分类不太容易吧,模型会复杂很多。多画个几图看看,有技巧
xiaoxiaowm
2017-07-10 12:59:52 +08:00
@muchrooms 我看到你的模型里有 zheyeV3.keras,zheyeV5.keras,这几个版本,是不是训练一次把模型保存下来,下次再 load 进来,再做训练,就是另一个版本了
muchrooms
2017-07-10 14:40:14 +08:00
@xiaoxiaowm 也可以, 但我没这么搞
xiaoxiaowm
2018-03-01 10:47:10 +08:00
@muchrooms 你好,原来向你请教过问题,后来自己弄那个验证码也没有研究出来,你方便加你 QQ 或者是微信交流一下吗?算是找你当老师了,付点费也行,我的 qq 是 642070630,微信是 15010226280

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/357107

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX