ios - 如何提高 Tesseract 结果质量?
问题描述
我正在尝试使用 Tesseract 的 OCR(我使用的是TesseractOCRiOS
4.0.0)从法国重要卡中读取 NIRPP 号码(社会安全号码)。所以这就是我正在做的事情:
首先,我要一张整张卡片的照片:
然后,使用自定义裁剪器,我要求用户专门放大卡号:
然后我捕捉到这张图片(1291 x 202 px)并使用 Tesseract 我尝试读取数字:
let tesseract = G8Tesseract(language: "eng")
tesseract?.image = pickedImage
tesseract?.recognize()
print("\(tesseract?.recognizedText ?? "")")
但是我得到了非常糟糕的结果......只有 30% 的时间 Tesseract 能够找到正确的数字,其中有时我需要修剪一些字符(如字母字符、点、破折号......)。
那么有什么解决方案可以改善这些结果吗?
谢谢你的帮助。
解决方案
我有一个类似的问题。我发现只有给定图像包含感兴趣区域时,Tesseract 才能识别文本。我使用Apple 的 Vision 框架解决了这个问题。它根据图像VNDetectTextRectanglesRequest
返回检测到的文本。CGRect
然后您可以将图像裁剪到存在文本的区域并将它们发送到 Tesseract 进行检测。
雷史密斯说:
由于惠普拥有自主开发的页面布局分析技术,并应用于产品中(因此并未开源),Tesseract 从来不需要自己的页面布局分析。因此,Tesseract 假设它的输入是一个二进制图像,其中定义了可选的多边形文本区域。
推荐阅读
- angular - 如何指定分页显示的页码和页数(大小)?
- ios - DiffableDataSource:快照不重新加载页眉和页脚
- excel - 来自单个单元格的最大值,然后表示
- caching - nuxt 支持 Cache Busting 吗?
- optimization - 任何 NEON 指令都可以在 Cortex A53 或 A55 上通过向量长乘累加 (SMLAL) 双重发出?
- reactjs - 在 componentDidUpdate 上 setState 到窗口变量一次
- javascript - 角度不确定复选框功能不起作用
- batch-file - 我们可以使用 if 条件来比较 BATCH SCRIPT 中的两个日期吗?
- karate - 空手道:问号被编码为路径的一部分
- r - 强制绘图在中间有“0”,并且在 R 中为 + 和 - 值等量缩放