将.traineddata与passwordEye Python一起用于MRZ

问题描述

我正在尝试使用tesseract ocr和passportEye提高护照MRZ读取的准确性,我发现很少有包含“ * .traineddata”的github存储库,它说将其移动到tesseract ocr tessdata文件夹中,我做到了。在这些自述文件的自述文件中,没有任何地方说明如何使用它,我相信它是微不足道的,但是对于tesseract这个东西我还是很陌生。

我如何在python中将它与passportEye一起使用,我在这里完全迷路了。搜索了很多。这是当前代码

import os
from passporteye import read_mrz

pr_path = os.getcwd()
file_path = os.path.join(pr_path,'my_app','data')
mrz = read_mrz(file_path + '/test1.jpg') 

print(mrz)

这是我想要测试以提高准确性的.traineddata文件https://github.com/DoubangoTelecom/tesseractMRZ/blob/master/tessdata_best/mrz.traineddata

我不想使用笨重的openCV。请帮忙

解决方法

通过查看源代码,我会说你不能不改变 PassportEye 的代码库:

通常您会通过以下方式传递您正在使用的语言:-l 参数到 tesseract - 在您的情况下:

-l mrz

但是 PassportEye 的实现并没有给你这个选项:

https://github.com/konstantint/PassportEye/blob/929c186c4dfa80a1ac975b5f2b95002ca12889d0/passporteye/util/ocr.py#L48

他们通过 lang=None,您需要将该部分更改为 lang=mrz

pytesseract.run_tesseract(input_file_name,output_file_name_base,'txt',lang='mrz',config=config)