[心得] 以CNN实作台铁验证码辨识

楼主: jason860421 (jason)   2017-12-24 23:53:09
大家好~
前阵子期中考完很闲,就花了约一周的时间用CNN实作了台铁验证码辨识(搭配Keras)
在版上有看到一些前辈实作时遇到的一些问题(如相黏的数字无法辨识)应该都有解决
但我想可能主要是因为我不是以切割图片的方式去一个一个字辨识吧
验证集是手动标记的约1000张,训练集部分则是用自行模仿产生的约50000张
用自行产生的训练集 训练后的模型对验证集辨识效果很好
单码辨识率大约有98.84%
整体一次辨识成功率也有91%左右(有些字像6和9旋转后容易误判)
继续训练下去精准度会更高,不过我想这样应该够用了
不过现在还只能辨识固定6码的验证码
5码+6码的部分目前有想法(可能加入RNN去做,或是加入空白字符让CNN辨识)
等之后有空再去实作看看~
下面附上Github连结,今天写了很详尽的README放上去
有兴趣的版友们可以看看或一起讨论如何改进 :)
https://github.com/JasonLiTW/simple-railway-captcha-solver
作者: vi000246 (Vi)   2017-12-25 00:06:00
推原来还有自己产验证码这招 学习了可以先做个model预测是5码还6码 再做文字的辨识
作者: f496328mm (为什么会流泪)   2017-12-25 00:09:00
推,另外提一点,真正要去辨识台铁验证码时,会遇到验证码是js的问题,动态图,不好抓,你动一次它就变一次
作者: alan23273850   2017-12-25 00:46:00
大推,不过我现在对自动订票程序比较有兴趣,之前有写个App是真的可以自己loop的,但现在跑不动了,因为protocol有改变之前也有类似的:#1Q0cvuAM,某b大似乎很有心得
作者: liang1230 (小良)   2017-12-25 01:03:00
有重叠的或是旋转改capsule会好很多Github上有keras的code你可以参考一下然后某b几乎都在嘴砲啦 没什么参考价值
作者: vi000246 (Vi)   2017-12-25 01:55:00
爬虫还好 我花两天就做完了 验证码花了一个多月
作者: ckvir (ckvir)   2017-12-25 03:34:00
RNN 目的不是解决 input 是前后有关联的问题吗验证码是是单纯随机字符吧 用RNN 有什么效果?另外产生训练集的方式可以用GAN试试看 不确定效果好不好 但可以不用自己找规则来产生图
作者: liang1230 (小良)   2017-12-25 05:43:00
Gan在这不会是一个好的解 要产生验证码的训练集应该不难吧 另外rnn在这可以试试image2seq解解看 可以参考show and tell的架构试试
作者: smartree (阿路)   2017-12-25 15:24:00
好强!
作者: f496328mm (为什么会流泪)   2017-12-25 18:41:00
这篇讨论串都有讲到关键点 蛮不错的大致上看完 写的蛮不错的 很有帮助
作者: liang1230 (小良)   2017-12-26 18:06:00
GAN可以给condition啊 所以其实你可以取值,但是太废功夫了 而且gan非常的难train training的时间又长 所以才不建议
作者: Kazimir (Kazimir)   2017-12-26 20:45:00
用gan来产资料在这个case可能有点太夸张 如果想用模型autoencoder类应该就ok了 不过我认为常规的数据增强就够
作者: why702 (Glory Glory ManU )   2017-12-27 19:08:00
我也有做个订票程式,目前成功机率大概8成,约10秒订完票主要是先自己分割号码,再丢进三层CNN算
作者: pht45616 (BrokenSword)   2017-12-28 16:27:00
感激不尽!!看了这篇对期末有了很多新想法,如果能实作出延伸或相关的内容,能不能和大大讨论个或者交流呢?
作者: TakiDog (多奇狗)   2017-12-28 23:11:00
我都直接硬A 我先跪了 XD
作者: why702 (Glory Glory ManU )   2017-12-30 00:24:00
会有不能辨识黏在一起或是背景特别杂的时候,但我觉得成功率不低应该可以用了啦有想过用rcnn试试看,但是最近很懒
作者: p00o99o (YA!)   2017-12-30 01:04:00
用GAN会太难吧
作者: Kazimir (Kazimir)   2017-12-30 02:27:00
如果想用gan的话可以试试wgan-gp 应该会舒服一点刚刚写完正在跑 看训练过程的确比DCGAN稳定很多
作者: saito2190 (榛香超可爱der)   2016-01-01 18:20:00
自己产验证码练习好猛

Links booklink

Contact Us: admin [ a t ] ucptt.com