Tesseract 的最佳字体?(特别是.NET 包装器)

Tesseract 的最佳字体?(特别是.NET 包装器)

我正在使用 Tesseract 将手机摄像头拍摄的印刷文本文档转换为文本。结果并不理想。图像质量非常好,比传真清晰得多,但似乎很难识别字符。

我也尝试过在文本编辑器中模仿其中一个文档,截取窗口的屏幕截图,然后通过 Tesseract 运行它,结果只是稍微好一些。

这让我相信 Tesseract 可能存在一种最佳字体。我在 Google 上搜索了一下,发现了 OCR-A,但它显然需要许可证。然后我在 SourceFourge 上偶然发现了一种免费的 OCR-A 替代品,但它似乎并不比 Arial 或 Courier New 好多少。

是否有一种字体最适合 Tesseract,或者我是否需要做其他事情来提高字符识别的准确性?

答案1

我做了一个实验来回答这个问题。

  • 从基本 64 个字符集(基本上所有字母大写和小写 + 数字)中生成一个包含随机 6000 个字符的文档。
  • 对于我的系统(Linux 系统)上的每种字体,生成一张具有相同内容的图像
  • 将其交给 Tesseract
  • 测量错误率/准确率

以下是 Tesseract v4.1.1 的结果,我给出了表现最佳的字体:

  • 米特拉
  • TeX_Gyre_Bonum
  • 似曾相识_衬线
  • 机器人
  • 坎塔雷尔

另请参阅此总结:https://www.monperrus.net/martin/perfect-ocr-digital-data

答案2

我经常使用 tesseract-ocr,根据我的经验,只有两个因素可以提高其性能:源图像为 tiff 格式,以及图像中文本的物理大小。因此,我针对图像以及调整大小为 200%、400% 和 800% 的图像运行它。对于生成的每个文本,我都会计算标记为拼写错误的单词数量并进行相应选择。

字体肯定会影响 tesseract 的性能,但我认为它与您的情况无关,您是否只能使用用于制作您拍摄的文本文档的字体?

答案3

最好的选择是针对您所使用的字体对其进行训练。

我不想假装这是一个简单的过程,事实并非如此,但它应该会更好。而且大多数 OCR 程序都支持 300dpi 或 600dpi,因此可能需要升级。

Tesseract Github Wiki 上有一些很好的资源训练 Tesseract

相关内容