1

我正在尝试在 Laravel Homestead(Ubuntu 18.04)上安装 OpenALPR。首先我尝试了最简单的方法。我正在尝试运行:

Error opening data file /usr/share/openalpr/runtime_data/ocr/lus.traineddata
Please make sure the TESSDATA_PREFIX environment variable is set to your "tessdata" directory.
Failed loading language 'lus'
Tesseract couldn't load any languages!
Segmentation fault (core dumped)

cd进入/usr/share/openalpr/runtime_data/ocr目录,我没有找到该lus.traineddata文件。但是有一个ocr文件夹,并且有一个lus.traineddata. 我将它从那里复制到目录中,再次尝试识别,但这次:

--(!) 运行时目录 '/usr/share/openalpr/runtime_data' 无效。缺少国家/地区的 OCR 数据:“我们”!加载 OpenALPR 时出错

然后我尝试了简单的方法。一切都正常编译。但:

分段错误(核心转储)

4

2 回答 2

7

发生这种情况是因为 openALPR 的 Tesseract OCR 期望其经过训练的数据位于特定路径中,而文件不存在。根据错误消息,可以使用TESSDATA_PREFIX环境变量进行设置,但根据我自己的经验,它不起作用。

我遇到了其他解决方案;这不是最好的方法,但它可能会奏效。

我创建了一个从/usr/share/openalpr/runtime_data/ocr/tessdata/lus.traineddatato的符号链接/usr/share/openalpr/runtime_data/ocr/lus.traineddata,以便让 tesseract/openalpr 可以在他们期望的地方使用 trainedData 文件。

sudo ln -s /usr/share/openalpr/runtime_data/ocr/tessdata/lus.traineddata /usr/share/openalpr/runtime_data/ocr/lus.traineddata

lus使用所需的语言/区域文件(leu、lfr、...)重复更改命令

希望能帮助到你

于 2018-08-30T10:35:10.510 回答
0

这是因为经过语言训练的数据[runtime_data path]/ocr/tessdata/位于 tesseract 4.0 中,而 tesseract 3.0 将它们存储在[runtime_data path]/ocr/.

此问题已在此提交中修复。

但似乎 apt-get 存储库中的 openalpr 版本在此提交之后。

所以临时解决方案是将语言数据移动到[runtime_data path]/ocr喜欢 daniellilu 的解决方案。

由于“美国”国家配置只需要 lus.traineddata 文件,您只需移动 lus.traineddata 文件。

于 2019-06-25T22:34:53.723 回答