プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2021/06/28

Tesseract が動作する docker イメージを作成する

update2021/08/13 event_note2021/06/28 4:55

Tesseract を使って OCR を行うための環境を、Docker を使って構築しました。開発言語は Python を想定しています。

環境

  • Ubuntu 20.04

Dockerfile の作成

Dockerfile のサンプルです。

USB カメラのキャプチャ画像に対して OCR を行いたかったので、OpenCV と GUI の表示に必要なパッケージもインストールしています。

FROM ubuntu:20.04

# Tesseract、訓練済みモジュール、その他必要なパッケージをインストール
RUN apt -y install \
    tesseract-ocr \
    tesseract-ocr-jpn \
    git \
    python3-pip \
    libgl1-mesa-dev \
    libsm6

# python パッケージをインストール
RUN pip3 install pyocr pytesseract opencv-python

# aptのクリア
RUN apt clean && rm -rf /var/lib/apt/lists/*

# bash起動
CMD [ "/bin/bash" ]

これをビルドします。

$ docker build -t tesseract-dev .

コンテナ起動

以下のようにして起動します。

docker run -it --rm \
       --name tesseract-dev \
       -e DISPLAY=${DISPLAY} \
       -v /tmp/.X11-unix/:/tmp/.X11-unix/ \
       --device /dev/video0:/dev/video0 \
       tesseract-dev

確認

Tesseract がインストールされていることを確認します。

$ tesseract 4.1.1
 leptonica-1.79.0
  libgif 5.1.4 : libjpeg 8d (libjpeg-turbo 2.0.3) : libpng 1.6.37 : libtiff 4.1.0 : zlib 1.2.11 : libwebp 0.6.1 : libopenjp2 2.3.1
 Found AVX2
 Found AVX
 Found FMA
 Found SSE
 Found libarchive 3.4.0 zlib/1.2.11 liblzma/5.2.4 bz2lib/1.0.8 liblz4/1.9.2 libzstd/1.4.4

ついでに Tesseract で OCR 出来ることを確認します。

$ tesseract test.jpg output -l jpn