CNN OCR机器可读区

2024-04-26 05:25:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在智能手机上训练一个卷积神经网络来识别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'])

Tags: addinputsizemodel精度activationkernelfilters
1条回答
网友
1楼 · 发布于 2024-04-26 05:25:36

如果MRZ只使用一种字体,那么您应该只使用这种字体来训练您的CNN。
为了改善结果,您应该在将图像传递给CNN之前对其进行预处理,例如,首先确定图像中的文本区域,然后将其传递给CNN。

由于处理器结构的不同,模型的精度会随着设备的不同而变化,例如CPU和GPU由于数值稳定性的不同而得到不同的结果。你知道吗

相关问题 更多 >