使用CNN的Captcha识别未给出预期结果

时间:2018-06-17 17:52:48

标签: python tensorflow neural-network convolution convolutional-neural-network

我尝试在Python中使用TensorFlow开发一个Captcha Recognition程序。

当我开始时,我检查了互联网上的一些文章,发现一个Captcha图像被分割成单独的数字,这些个别数字被识别。但我想尝试不同的方法。我想要识别没有分段的Captcha。

参考文献:

Automatic Number Plate Recognition - 我使用此博文作为参考。

Code for ANPR - 这是上述博客文章中的代码。

我的解决方案:

Code for my Solution

生成数据:

我生成了大约60000个160 * 60 RGB图像。所有验证码的长度均为6.我使用了25000张图像作为训练数据,9000张图像作为测试数据,并没有使用剩下的图像。

示例数据:

0A6ZYC ----> 0A6ZYC

0A9L8W ----> 0A9L8W

0AKDTP ----> 0AKDTP

神经网络架构:

160 * 60 * 3 ------(5 * 5 Conv)---> 160 * 60 * 24 ------(2 * 2 MaxPool)---> 80 * 30 * 24 ----(5 * 5 Conv)----> 80 * 30 * 36 ----(4 * 2 MaxPool)----> 20 * 15 * 36 ----(完全连接)--->(4096 * 1)-----(完全连接)--->(216 * 1)

网络的其他一些属性:

1)迷你批量大小:100

2)优化器:Adam Optimizer

3)时代:60

4)验证码长度:6

6)使用的字符:[A-Z0-9]

面临的问题:

1)当我有一个卷积层时,我的网络开始输出相同的值。我尝试了标准化,但没有变化。所以我删除了图层并将最终的Maxpool图层从(2 * 2)更改为(4 * 2)。我已经运行了30个时期的程序

2)现在,当我使用上述架构运行60个时期的程序时,我在50或55个时期之后的训练集上获得了大约50%的准确度,但我在测试集上获得了0-5%的准确度。

我在这个网络中缺少什么?这是错误的数据吗?我的方法是否正确?为什么我没有取得好成绩?

0 个答案:

没有答案