首页 > 解决方案 > 如何提高 Tesseract 结果质量?

问题描述

我正在尝试使用 Tesseract 的 OCR(我使用的是TesseractOCRiOS4.0.0)从法国重要卡中读取 NIRPP 号码(社会安全号码)。所以这就是我正在做的事情:

首先,我要一张整张卡片的照片:

在此处输入图像描述

然后,使用自定义裁剪器,我要求用户专门放大卡号:

在此处输入图像描述

然后我捕捉到这张图片(1291 x 202 px)并使用 Tesseract 我尝试读取数字:

let tesseract = G8Tesseract(language: "eng")
tesseract?.image = pickedImage
tesseract?.recognize()
print("\(tesseract?.recognizedText ?? "")")

但是我得到了非常糟糕的结果......只有 30% 的时间 Tesseract 能够找到正确的数字,其中有时我需要修剪一些字符(如字母字符、点、破折号......)。

那么有什么解决方案可以改善这些结果吗?

谢谢你的帮助。

标签: iosswifttesseract

解决方案


我有一个类似的问题。我发现只有给定图像包含感兴趣区域时,Tesseract 才能识别文本。我使用Apple 的 Vision 框架解决了这个问题。它根据图像VNDetectTextRectanglesRequest返回检测到的文本。CGRect然后您可以将图像裁剪到存在文本的区域并将它们发送到 Tesseract 进行检测。

雷史密斯说:

由于惠普拥有自主开发的页面布局分析技术,并应用于产品中(因此并未开源),Tesseract 从来不需要自己的页面布局分析。因此,Tesseract 假设它的输入是一个二进制图像,其中定义了可选的多边形文本区域。

视觉-Tesserat


推荐阅读