在训练 Keras 模型时,内容的准确位置重要吗?

问题描述 投票:0回答:0

我目前的职位目前需要解析验证码,我一直在开发一个模型来识别验证码中的每个字母。验证码始终采用相同的字体和样式,但具有随机的背景/文本颜色。他们还有穿过图像的随机曲线。这是一个例子:

我幸运地找到了验证码生成器的源代码,我能够生成具有任何宽度/大小组合的任何字母。我为每个字母生成了 35x35 300 个样本,例如 并且我对它们应用自适应阈值。结果是这样的

我使用以下图层:

model = Sequential([
Conv2D(filters=32, kernel_size=(3,3), activation='relu', padding='same', input_shape=(35,35,3)),
MaxPool2D(pool_size=(2,2),strides=2),
Conv2D(filters=64, kernel_size=(3,3), activation='relu', padding='same'),
MaxPool2D(pool_size=(2,2),strides=2),
Flatten(),
Dense(units=62, activation='softmax')])

训练还不错,我的准确率达到了 0.85。

然而,在实践中,我得到了奇怪的结果,比如它把字母'W'识别为'x',字母'p'识别为'Q'等等。我会说我有 ~60% 的成功率。

现在我想用更多的数据集训练我的模型。我的问题是在训练数据集时,每个字母在 35x35 样本中的确切位置非常重要吗?我应该放置不同位置的图像,如 以不同的组合提供模型,还是当我以固定的宽度/高度组合给出字母时,模型本身会自行处理?

我也想听听您对我的总体进展的看法。

谢谢!

tensorflow machine-learning keras deep-learning neural-network
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.