神经网络识别12306图片验证码

由 jinlife 发布

主要参考https://github.com/DreamAndDead/captcha-12306
上面的Github的主要限制是只能识别一个中文词, 当12306识别错误超过几次后,会变成两个中文词。此模型无法识别双词。

优化改进后,即可识别单词,也可识别双词。12306的单词和双词长度都是固定的。
单词学easy12306强制切割为60*19的大小。 双词可以切割成两个字,根据背景比较好切割。 大小有20,27,40,47,60*19.
其中20和27适用于1个字,40和47适用于两个字,60适用于3个字。

其中识别汉字部分可以用CPU运行,速度还比较快。
不过图形部分用VGG算法,纯CPU运行基本上要10m跑一个Epoch,20个小时才能跑完一轮。 跑完3轮需要3天左右。

于是上网找到Google有个colab可以免费用GPU,需要通过Google Drive中转文件,要懂翻墙才能用。比较坑的是跑的时候出现内存不够tmalloc出错的情况,默认12G不够用。
找到 https://colab.research.google.com/drive/155S_bb3viIoL0wAwkIyr1r8XQu4ARwA9?usp=sharing
是别人已经扩展过内存到25G的笔记本,存储到自己的Google Drive使用,也有25G。

另外,不要直接在Google Drive的盘里面运行,IO限制导致训练速度很慢,最好先拷贝到colab的虚拟机本地盘,运行完了再拷贝回Google Drive。

使用Colab运行图片训练,只需要25s跑一个Epoch,是本地CPU的24倍左右。跑完3轮只用了不到3小时。

本文作者:jinlife
本文链接:神经网络识别12306图片验证码 - https://blog.jinlife.com/index.php/archives/17/
版权声明:本博客内容遵守 “署名-非商业性使用-禁止演绎 4.0 国际”协议(CC BY-NC-ND 4.0),除特别说明外内容皆为原创,可以自由转载与传播,但请署名及注明文章出处。

暂无评论

发表评论


captcha
请输入验证码