10

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

 3 years ago
source link: https://blog.jinlife.com/index.php/archives/17/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

于 2020-08-12 由 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),除特别说明外内容皆为原创,可以自由转载与传播,但请署名及注明文章出处。



About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK