環境&設置使用--tessdata-dir參數時如何解決初始化錯誤1(read_params_file:parameter not found:II *)?
操作系統:SuSE Linux企業服務器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 –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 --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目錄執行的Tesseract失敗
$ tesseract --tessdata-dir /usr/share/tessdata -l deu inputPdf6632237754781472255.tiff out4
read_params_file: parameter not found: II*
當不tessdata目錄執行的Tesseract效果很好
$ tesseract -l deu input.tiff out5
Tesseract Open Source OCR Engine v3.02.02 with Leptonica
問題&理念
- 爲什麼正方體工作做好,並檢測可用的語言,而不--tessdata-dir的參數嗎?
- 爲什麼在使用--tessdata-dir參數集時,teasseract在初始化時崩潰?
- 運行tesseract與/沒有--tessdata-dir參數集有沒有區別?
我該如何解決這個問題?
- 安裝更新版本的tesseract?
- 從源代碼編譯版本?
- 使用其他traindata/tessdata?
- 不帶-tessdata-dir參數運行tesseract?
如果有人能幫助我在上週解決這個問題,那不僅會讓我開心,而且會讓我們整個團隊感到高興。
非常感謝您提前!
-Rüdiger
非常感謝。這使我們走上了正軌。我們將嘗試使用'export TESSDATA_PREFIX =
Ruediger
使用env var而不是參數解決了問題。再次感謝您的快速回復@nguyenq – Ruediger