如何提高tessaract ocr的准确度?

时间:2018-01-24 18:40:45

标签: java image-processing ocr tesseract

我有一张PDF,其中包含扫描文档,我应该阅读它的某些部分。我已经完成了谷歌云OCR,但我只是注意到它可能不够,因为我将超过每月配额(1k请求/月),所以我转而使用Tessaract。

该项目是在Windows和Java中完成的,但目前我正在使用linux进行一些测试。

我没有上传我的原始图片,也没有上传图片,因为我不确定它是否包含合理的信息,而是来自互联网的一些非常相似的图片。

Image 1 Image 2

我已经读过,我可以帮助改善Tessaract,以便在原始图像上做一些以前的工作(使用TextCleaner?)。我想知道如何在windows / java环境中做这种事情,最重要的是,如何成功消除桌面上的黑暗背景,如果可能的话,消除桌子的水平和垂直线条。在OCR期间提供帮助。

4 个答案:

答案 0 :(得分:0)

是的,你是对的,你可以清理图像以获得更好的识别,请参阅https://github.com/tesseract-ocr/tesseract/wiki/ImproveQuality

答案 1 :(得分:0)

您可以使用ImageMagick锐化图像(高分辨率)。 Tessaract在高分辨率图像上的效果更好。如果你正在使用python(我认为你没有),枕头(PIL或Python成像库)可以很好地提高图像的质量。

答案 2 :(得分:0)

我的文字清理脚本对此图片没有多大帮助。它不会去除深色背景,特别是因为它有纹理。对于其他图像将大的区域几乎恒定的颜色,它可以使背景白色。但它只在类Unix系统上运行,而不是在java上运行。因此对于Windows,您需要使用Windows 10内置Unix或安装Cygwin。

以下是http://www.fmwconcepts.com/imagemagick/textcleaner/index.php

中的一个示例

输入:

enter image description here

textcleaner -g -e stretch -f 25 -o 10 -s 1 twinkle.jpg twinkle_g_stretch_f25_o10_s1.jpg

enter image description here

答案 3 :(得分:0)

文本识别取决于多种因素以产生高质量的输出。 OCR输出在很大程度上取决于输入图像的质量。这就是每个OCR引擎都提供有关输入图像质量及其大小的准则的原因。这些准则有助于OCR引擎产生准确的结果。

在这里进行图像预处理以提高输入图像的质量,以便OCR引擎为您提供准确的输出。

我写了一篇有关python中图像处理的详细文章。请点击下面的链接以获取更多说明。

https://medium.com/cashify-engineering/improve-accuracy-of-ocr-using-image-preprocessing-8df29ec3a033