Skip to content
宅教授 edited this page Jan 23, 2019 · 20 revisions

图片识别

第一步,获取训练集

来源:https://www.kaggle.com/libowei/12306-captcha-image

将其转换为captcha.npz文件。

~$ ll -h captcha.npz
... 148M ... captcha.npz
~$ python -c "import numpy as np;t=np.load('captcha.npz');print(t['images'].shape);print(t['labels'].shape)"
(11794, 66, 66, 3)
(11794,)

第二步,深度学习

让卷积神经网络从captcha.npz中学习。在验证集上的正确率浮动在93%

统计学方案,一个奇葩的方案

上面的机器学习方案是我为了学习而进行的,以下才是我最早想出的方案,从根本上排除人工识别。

如果有人能给我一堆验证码,并告诉我说,这都是让寻找打字机的。即使我不知道什么叫打字机,什么不叫打字机,但也可以根据统计学(抱歉,我并不知道这样称呼是否准确)来寻找打字机,不是吗?因为这里某样东西是打字机的概率高于1/8,而是其它某样东西的概率仅仅只有1/80。将以此思路获取的结论放到整个训练集上的正确率达到91%。这个结果是根据10万条验证码统计的,如果100万条,1000万条呢?

我把统计学的结果命名为images.npz

  1. 改用更准确的文字识别器可使正确率提到93.8%
  2. 同时改用更好的哈希算法可使正确率提到96.7%

下一步

让统计学专家来教卷积神经网络识别图片(我希望专家能提供更大的训练集,超越人工提供的训练集,让其仅仅当作测试集)。

数据的下载地址:

  1. https://pan.baidu.com/s/1OsBIBM4rl8EnpZt7VYiD9g
  2. https://drive.google.com/drive/folders/1GDCQyaHr36c7y1H-19pOKjc_EdAI1wn0

Clone this wiki locally