【问题标题】:How do I improve the accuracy of the OCR text from Tesseract?如何提高 Tesseract 中 OCR 文本的准确性?
【发布时间】:2012-07-02 21:19:35
【问题描述】:

我使用 Google 的 Tesseract API 创建了一个用于识别文本的基本应用,并将其与我的相机应用集成。它工作正常,但唯一的问题是准确性,因为有时文本被识别为随机字符集,我猜准确性约为 50%。

此外,当它尝试扫描图像中的四个以上单词时,应用会崩溃。

String ocrText = baseApi.getUTF8Text();
baseApi.end();

其中baseApi 是 Tesseract API 类的对象。

我是否需要使用不同的数据结构来保存已识别的文本,或者是否有其他原因导致四个以上的单词无法识别?

【问题讨论】:

  • 您所需要的只是更好的 OCR 引擎

标签: java android android-ndk ocr tesseract


【解决方案1】:

Tesseract API 类提供了一个isValidWord 方法来检查字符串是否为有效单词。您可以使用它来检查识别的字符。这将提高输出的准确性。

我正在使用 Tess4j 进行开发,Tess4j 是 tesseract-ocr 的 Java JNA 包装器,检查后它给出了相当不错的结果。

结果不准确可能是由于文本大小,请检查this。它说“精度下降到 10pt x 300dpi 以下,迅速低于 8pt x 300dpi。”

此外,不能检测到超过 4 个单词取决于很多因素,测试图像的种类(具有多少特征)、图像的大小、平台等。

【讨论】:

  • 谢谢,但我想知道如何提高识别度?例如,如果您看到 Robert Theis 在github.com/rmtheis/android-ocr 上传的项目,那么您可以看到他使用了图像增强算法,即使他使用与我相同的 Tesseract API,识别率也更高
  • 哦,当然,图像预处理会提高OCR引擎的准确性,但会增加时间成本。对于预处理,您可以:增加图像的 DPI,调整图像大小,还可以检查模糊/锐化。文本和背景之间的高对比度可以更好地识别。之后尝试去噪并二值化图像。它提高了相当不错的准确性。
猜你喜欢
  • 2021-06-30
  • 2017-04-03
  • 1970-01-01
  • 2018-07-03
  • 1970-01-01
  • 2012-03-17
  • 2019-11-02
  • 2020-12-08
相关资源
最近更新 更多