我使用python和keras ocr。我希望角星只识别数字,所以在管道中我这样做。
recognizer = keras_ocr.recognition.Recognizer(alphabet="0123456789")
pipeline = keras_ocr.pipeline.Pipeline(recognizer=recognizer)
但是,它并没有像tesseract白名单那样将字母转换为数字和提高识别质量,而是发生了。
所以这些数字根本认不出来。
使用默认字母表,结果会更好。但是有些数字和字母混淆了。然而,将字母改为数字,如“替换(”O“,”0“)是一个非常糟糕的主意。
识别功能简单且复制:)
_image = keras_ocr.tools.read(_path)
plt.figure(figsize=(10, 20))
plt.imshow(_image)
prediction = pipeline.recognize([_image])[0]
fig, axs = plt.subplots(1, figsize=(10, 20))
keras_ocr.tools.drawAnnotations(image=_image, predictions=prediction, ax=axs)
plt.show()
发布于 2022-06-18 12:37:59
我还没有找到比使用keras工具学习模型更简单的方法。然而,用于合成数据的文本生成器使用来自书籍、期刊或smth的文本,这些文本都有一个概念,意思是(我不知道用英语:)。因此,很少有数字,有时如果您的字母表是"0123456789",生成器返回空字符串。所以我写了我自己的生成器,这使得字符串只有数字。https://keras-ocr.readthedocs.io/en/latest/examples/end_to_end_training.html https://colab.research.google.com/drive/1PxxXyH3XaBoTgxKIoC9dKIRo4wUo-QDg#scrollTo=I7SF5VeoLulc
https://stackoverflow.com/questions/72433580
复制相似问题