首页> 疑难解答

CNN OCR机器可读区域

withpy 2021-06-19

简介我正在训练卷积神经网络以识别智能手机上的MRZ(机器可读区域)字符。我想知道为了提高准确性,我应该用多种字体训练它,......

我正在训练卷积神经网络以识别智能手机上的MRZ(机器可读区域)字符。我想知道为了提高准确性,我应该用多种字体训练它,即使MRZ只使用OCR-B。此外,该模型不会在设备上执行,其精度与我用于训练/测试它的python代码相同。有任何想法吗?

这是我正在使用的架构:

    model = Sequential()
    model.add(Convolution2D(filters=32, kernel_size=(3, 3), strides=(2, 2), activation='relu', input_shape=input_shape))
    model.add(MaxPooling2D(pool_size=(2, 2)))
    model.add(Dropout(0.5))
    model.add(Convolution2D(filters=64, kernel_size=(1, 1), strides=(1, 1), 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(num_classes, activation='softmax'))
    model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
1
投票

如果MRZ只使用一种字体,那么您应该只使用这种字体来训练您的CNN。 为了改善结果,您应该在将图像传递给CNN之前对其进行预处理,例如,首先识别图像中的文本区域,然后通过CNN传递它们。 由于处理单元架构,模型的准确性可以从设备变为另一个,例如,由于数值稳定性,CPU和GPU将得到不同的结果。

上一篇:决策树学习

下一篇:Xamarin表单中的绑定错误

相关文章