Tesseract Fatal error encountered!" == NULL:Error:Assert failed:in file globaloc.cpp, line 75

Tesseract Fatal error encountered!" == NULL:Error:Assert failed:in file globaloc.cpp, line 75

1 - 我在 git 集线器上下载了 tesdata https://github.com/tesseract-ocr/tessdata

2 - 提取文件夹并将路径传递给 Tesseract class

3 - 当运行应用程序显示以下错误

解压文件夹并将路径传递给 Tesseract class

当运行应用程序显示如下错误

执行的代码片段

public class TesseractOcrTest {
  private final String tesseractPath = "/home/tessdata/";
  
  @Test
  public void shouldReturnTrueIfRunOcrEquals() throws Exception {
    String result = new TesseractOcr(tesseractPath).runOcr("bw_HighResolution_en.jpeg").trim();
    assertEquals(
        "Optical Character Recognition in Java\nis made easy with the help of Tesseract", result);
  }
}

错误

Error: Illegal Parameter specification!
"Fatal error encountered!" == NULL:Error:Assert failed:in file globaloc.cpp, line 75
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f52a582d69b, pid=8957, tid=8966
#
# JRE version: OpenJDK Runtime Environment (11.0.7+10) (build 11.0.7+10-post-Ubuntu-2ubuntu218.04)
# Java VM: OpenJDK 64-Bit Server VM (11.0.7+10-post-Ubuntu-2ubuntu218.04, mixed mode, sharing, tiered, compressed oops, g1 gc, linux-amd64)
# Problematic frame:
# C  [libtesseract.so.4+0x25969b]  ERRCODE::error(char const*, TessErrorLogCode, char const*, ...) const+0x16b

注意:当我把tesdata的路径改成OS安装路径(private final String tesseractPath = "/usr/share/tesseract-ocr/4.00/tessdata/";)就可以完美完成了。如果我指向从 git 集线器下载的 tesdata,它就不起作用。

我做错了什么?从 github 下载后还需要配置吗?

您可能使用了不兼容的语言数据。对于当前的 Tesseract verion,请使用 tessdata_besttessdata_fast,它们随 Linux 发行版一起提供。 (您可以通过检查文件大小来验证。)

https://github.com/tesseract-ocr

  1. 确保你只安装了一个版本的 tesseract
  2. 首先检查您使用(安装)的 tesseract 版本。使用最新版本(4.x 或 5 alpha)
  3. 使用 tesseract 可执行文件而不是包装器测试 OCR - 它可以提供更多信息来查找问题。