【问题标题】:Low accuracy on captcha recognition验证码识别准确率低
【发布时间】:2017-05-13 15:14:12
【问题描述】:

我使用以下方法生成最多 4 位数的验证码:

def genData(n=30000, max_digs=4, width=150):
    capgen = ImageCaptcha()
    data = []
    target = []
    for i in range(n):
        x = np.random.randint(0, 10 ** max_digs)
        img = misc.imread(capgen.generate(str(x)))
        img = np.mean(img, axis=2)[:, :width]
        data.append(img.flatten())
        target.append(x)
    return np.array(data), np.array(target)

然后我正在处理如下数据

train_data, train_target = genData()
test_data, test_target = genData(1000)

train_data = train_data.reshape(train_data.shape[0], 1, 150, 60)
test_data = test_data.reshape(test_data.shape[0], 1, 150, 60)
train_data = train_data.astype('float32')
test_data = test_data.astype('float32')
train_data /= 255
test_data /= 255

我的模型结构如下:

def get_model():
    # create model
    model = Sequential()
    model.add(Conv2D(30, (5, 5), input_shape=(1, 150, 60), activation='relu'))
    model.add(MaxPooling2D(pool_size=(2, 2)))
    model.add(Conv2D(15, (3, 3), activation='relu'))
    model.add(MaxPooling2D(pool_size=(2, 2)))
    model.add(Dropout(0.2))
    model.add(Flatten())
    model.add(Dense(128, activation='relu'))
    model.add(Dense(50, activation='relu'))
    model.add(Dense(10 ** 4, activation='softmax'))
    # Compile model
    model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
    return model

然后我正在训练模型

model = get_model()
# Fit the model
model.fit(train_data, train_target, validation_data=(test_data, test_target), epochs=10, batch_size=200)
# Final evaluation of the model
scores = model.evaluate(test_data, test_target, verbose=0)
print("Large CNN Error: %.2f%%" % (100 - scores[1] * 100))

我不知道我做错了哪一部分,但我的准确率甚至无法达到 %1。

【问题讨论】:

    标签: python machine-learning tensorflow keras captcha


    【解决方案1】:

    您有 10000(!) 个课程。你训练多长时间?每个班级有多少训练数据?

    您的方法几乎肯定是问题所在。虽然您可以像这样“蛮力”解决问题,但这是一种非常糟糕的方法。您应该首先尝试检测单个数字,然后使用 10 类分类器对每个数字进行分类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-17
      • 2021-10-13
      • 2020-02-12
      • 1970-01-01
      • 2018-09-18
      • 2019-09-06
      • 2023-03-27
      • 2019-02-14
      相关资源
      最近更新 更多