使用--tessdata-dir参数时如何解决初始化错误1(read_params_file:参数未找到:II *)?

时间:2017-01-01 15:58:00

标签: linux command-line-arguments ocr tesseract

环境&设置

操作系统:Suse Linux Enterprise Server 12 SP 1

$ uname –a
Linux 3.12.62-60.64.8-default #1 SMP Tue Oct 18 12:21:38 UTC 2016 (42e0a66) x86_64 x86_64 x86_64 GNU/Linux

由于管理此环境,我无法更新任何系统库,如glibc等。 因此,我发现最新且唯一官方支持的版本为“Suse 12 SP1 x86_64”的teaaseract是3.02。

已安装的软件包:

libgif4-4.1.6-34.1.1.x86_64.rpm
liblept3-1.69-16.1.x86_64.rpm
libtesseract3-3.02.02-3.2.1.x86_64.rpm
libwebp4-0.3.1-34.1.x86_64.rpm
tesseract-3.02.02-59.1.x86_64.rpm

tesseract版本

$ tesseract –v
tesseract 3.02.02
    leptonica-1.69
        libgif 4.1.6 : libjpeg 8d : libpng 1.5.22 : libtiff 4.0.6 : zlib 1.2.8

发布详情

$ zypper info tesseract
Information for package tesseract:
----------------------------------
Repository: @System
Name: tesseract
Version: 3.02.02-59.1
Arch: x86_64
Vendor: obs://build.opensuse.org/home:koprok
Support Level: unknown
Installed: Yes
Status: up-to-date
Installed Size: 3.8 MiB
Summary: Open Source OCR Engine
Description: […]

Traindata&语言

Traindata已从以下手动下载: https://sourceforge.net/projects/tesseract-ocr-alt/files/tesseract-ocr-3.02.eng.tar.gz/download https://sourceforge.net/projects/tesseract-ocr-alt/files/tesseract-ocr-3.02.deu.tar.gz/download

文件已提取到/usr/share/tessdata/

$ ls -la /usr/share/tessdata/
drwxr-xr-x 1 root root      230 Dec 31 16:37 configs/
-rw-r--r-- 1 root root  2438081 Dec 30 15:31 deu.traineddata
-rw-r--r-- 1 root root   171918 Dec 30 20:16 eng.cube.bigrams
-rw-r--r-- 1 root root       38 Dec 30 20:16 eng.cube.fold
-rw-r--r-- 1 root root      181 Dec 30 20:16 eng.cube.lm
-rw-r--r-- 1 root root   857304 Dec 30 20:16 eng.cube.nn
-rw-r--r-- 1 root root      254 Dec 30 20:16 eng.cube.params
-rw-r--r-- 1 root root 13020078 Dec 30 20:16 eng.cube.size
-rw-r--r-- 1 root root  2444187 Dec 30 20:16 eng.cube.word-freq
-rw-r--r-- 1 root root      996 Dec 30 20:16 eng.tesseract_cube.nn
-rw-r--r-- 1 root root 21876572 Dec 30 20:16 eng.traineddata
drwxr-xr-x 1 root root       88 Dec 31 16:37 tessconfigs/

tesseract将'deu'和'eng'检测为可用语言

$ tesseract --list-langs
List of available languages (2):
deu
eng

应用程序&问题

软件应用程序是基于Spring Boot框架构建的。执行tesseract命令的代码看起来像。像:

Runtime.getRuntime().exec(new String[] { 
 "tesseract", 
 "--tessdata-dir", "/usr/share/tessdata", 
 "-l", lang.getISO3Language(), 
 inputTiff.toAbsolutePath().toString(), extractedcntPath });

应用程序日志文件说

2016-12-30 20:30:02,320 [https-jsse-nio-8443-exec-7] WARN  PDFContentExtractor - read_params_file: parameter not found: II*

使用tessdata dir执行tesseract失败

$ tesseract --tessdata-dir /usr/share/tessdata -l deu inputPdf6632237754781472255.tiff out4
read_params_file: parameter not found: II*

执行没有tessdata dir的tesseract时效果很好

$ tesseract -l deu input.tiff out5
Tesseract Open Source OCR Engine v3.02.02 with Leptonica

问题&想法

  • 为什么tesseract运行良好并且在没有设置--tessdata-dir参数的情况下检测可用的语言?
  • 为什么在使用--tessdata-dir参数设置初始化期间teasseract崩溃?
  • 使用/不使用--teddata-dir参数设置运行tesseract之间有什么区别吗?

我该怎么做才能解决这个问题?

  • 安装较新版本的tesseract?
  • 从源代码编译版本?
  • 使用其他traindata / tessdata?
  • 在没有--tessdata-dir param?
  • 的情况下运行tesseract

如果有人可以帮我解决这个问题,那么这个问题不仅会让我感到高兴,而且会让我感到满意。

非常感谢您提前! -Rüdiger

1 个答案:

答案 0 :(得分:1)

在3.04版本之前,该命令开关不可用。执行tesseract命令将显示当前版本支持的命令选项。

https://github.com/tesseract-ocr/tesseract/wiki/Command-Line-Usage