OpenALPRのインストール時にTesseract関連のファイルが見つからない
OpenALPRをmakeしたい
Dockerイメージに文字認識などを行う環境を構築しています。
その中でOpanALPRを使用を考えているのですが、
cmakeを実行した際にTesseract関連のファイルが見つからずmakeができません。解決しました。
root@3f61a41af439:/tmp/openalpr/src/build# cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_INSTALL_SYSCONFDIR:PATH=/etc ..
Tesseract_INCLUDE_BASEAPI_DIR=/usr/include
Tesseract_INCLUDE_CCSTRUCT_DIR=/usr/include/tesseract
Tesseract_INCLUDE_CCMAIN_DIR=Tesseract_INCLUDE_CCMAIN_DIR-NOTFOUND
Tesseract_INCLUDE_CCUTIL_DIR=Tesseract_INCLUDE_CCUTIL_DIR-NOTFOUND
Tesseract_INCLUDE_DIRS=/usr/include;/usr/include/tesseract;/usr/include;/usr/include/tesseract
Tesseract_LIB=/usr/lib/x86_64-linux-gnu/libtesseract.so
Leptonica_LIB=/usr/lib/x86_64-linux-gnu/liblept.so
Tesseract_LIBRARIES=/usr/lib/x86_64-linux-gnu/libtesseract.so;/usr/lib/x86_64-linux-gnu/liblept.so;/usr/lib/x86_64-linux-gnu/libtesseract.so;/usr/lib/x86_64-linux-gnu/liblept.so
CMake Error at cmake_modules/LibFindMacros.cmake:74 (message):
Required library Tesseract NOT FOUND.
Install the library (dev version) and try again. If the library is already
installed, use ccmake to set the missing variables manually.
Call Stack (most recent call first):
cmake_modules/FindTesseract.cmake:90 (libfind_process)
CMakeLists.txt:80 (FIND_PACKAGE)
-- Configuring incomplete, errors occurred!
See also "/tmp/openalpr/src/build/CMakeFiles/CMakeOutput.log".
ホスト環境
OS:Windows10 21H2
Dockerコンテナベースイメージ:nvidia/cuda:11.5.0-cudnn8-devel-ubuntu18.04
cmakeを行うまでに実行したコマンドは次の通りです。
root@:/# apt-get update && apt-get -y install software-properties-common
root@:/# add-apt-repository -y ppa:alex-p/tesseract-ocr-devel
root@:/# apt-get -y install git
root@:/# apt-get -y install build-essential gcc g++ cmake make
root@:/# apt-get -y install libopencv-dev libleptonica-dev
root@:/# apt-get -y install liblog4cplus-dev libcurl3-dev
root@:/# apt-get -y install tesseract-ocr tesseract-ocr-jpn libtesseract-dev \
tesseract-ocr-script-jpan tesseract-ocr-script-jpan-vert
root@:/# cd /tmp
root@:/tmp# git clone --depth 1 https://github.com/openalpr/openalpr.git
root@:/tmp# mkdir openalpr/src/build
root@:/tmp# cd /tmp/openalpr/src/build
root@:/tmp/openalpr/src/build# cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_INSTALL_SYSCONFDIR:PATH=/etc ..
原因の推測
cmake時の出力を見ると、
Tesseract_INCLUDE_CCMAIN_DIR=Tesseract_INCLUDE_CCMAIN_DIR-NOTFOUND
Tesseract_INCLUDE_CCUTIL_DIR=Tesseract_INCLUDE_CCUTIL_DIR-NOTFOUND
となっているためTesseractに関するファイルが見つかっていないことがわかりました。
OpenALPRのGitHubリポジトリ内の.cmakeファイルを見ると探しているファイルがわかるのですが、
HINTSに記載されたディレクトリを見ると確かにthresholder.h
とplatform.h
がありませんでした。
aptコマンドでlibtesseract-dev
をインストールすることで/usr/include/tesseract
とその中のファイル群が追加された(Leptonica_LIB
はlibleptonica-dev
、Tesseract_INCLUDE_CCSTRUCT_DIR
などはlibtesseract-dev
をインストールすることで解決した)のですが、なぜか一部のファイルが足りません。
解決方法 (2022/02/02追記)
aptでlibtesseract-dev
をインストールする際に、
ppaからではなくpackages.ubuntu.comのパッケージを使用することで解決しました。
以下の処理が必要なかったわけです。
root@:/# apt-get update && apt-get -y install software-properties-common
root@:/# add-apt-repository -y ppa:alex-p/tesseract-ocr-devel
下調べが中途半端だったかもしれないですね...
1