将.traineddata与passportEye Python结合使用用于MRZ

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

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

如何在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。请帮忙

tesseract python-tesseract
2个回答
1
投票
从查看源代码来看,我会说如果不更改 PassportEye 的代码库,你就不能:

通常您会通过以下方式传递您正在使用的语言:

-l

参数到超立方体 - 在您的情况下:

-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)
    

0
投票
我设法通过直接替换 tesseract 中的 eng.traineddata 来使用

mrz.traineddata

 和 Passporteye。

我下载了

mrz.traineddata然后在终端中执行

sudo cp ./mrz.traineddata /usr/share/tesseract-ocr/4.00/tessdata/eng.traineddata
然后我就可以在Python中运行

passporteye.read_mrz()

而不需要做任何额外的修改

mrz= passporteye.read_mrz(filename)
    
© www.soinside.com 2019 - 2024. All rights reserved.