DockerでJupyterLab環境で構築し、その中でTesseractを使って画像から文字を抽出する。
任意のフォルダにDockerfileという名前のファイルを作成する。
$ mkdir ~/Desktop/docker_build
$ cd Desktop/docker_build/
$ touch Dockerfile
Dockerfileの中身
FROM ubuntu:latest
# update
RUN apt-get -y update && apt-get install -y \
sudo \
wget \
vim
#install anaconda3
WORKDIR /opt
# download anaconda package and install anaconda
# archive -> https://repo.continuum.io/archive/
RUN wget https://repo.continuum.io/archive/Anaconda3-2019.10-Linux-x86_64.sh && \
sh /opt/Anaconda3-2019.10-Linux-x86_64.sh -b -p /opt/anaconda3 && \
rm -f Anaconda3-2019.10-Linux-x86_64.sh
# set path
ENV PATH /opt/anaconda3/bin:$PATH
# update pip and conda
RUN pip install --upgrade pip
WORKDIR /
RUN mkdir /work
# execute jupyterlab as a default command
CMD ["jupyter", "lab", "--ip=0.0.0.0", "--allow-root", "--LabApp.token=''"]
$ docker build .
Successfully built d723190a8650
$ docker run -p 8888:8888 -v ~/Desktop/ds_python:/work --name my-lab d723190a8650
ブラウザからlocalhost:8888にアクセスしてJupyter Labに入る。
インストール途中で、ロケーションとタイムゾーンを聞かれるので、Asia、Tokyoを選択
$ sudo apt-get update
$ sudo apt install tesseract-ocr
$ sudo apt install libtesseract-dev
$ tesseract -v
tesseract 4.1.0-rc1-184-g497d
leptonica-1.75.3
libgif 5.1.4 : libjpeg 8d (libjpeg-turbo 1.5.2) : libpng 1.6.34 : libtiff 4.0.9 : zlib 1.2.11 : libwebp 0.6.1 : libopenjp2 2.3.0
Found AVX2
Found AVX
Found SSE
sudo apt install tesseract-ocr-jpn tesseract-ocr-jpn-vert
sudo apt install tesseract-ocr-script-jpan tesseract-ocr-script-jpan-vert
モジュールがインストールされたか確認
$ tesseract --list-langs
List of available languages (6):
Japanese
Japanese_vert
eng
jpn
jpn_vert
osd
第一引数は画像の名前、第二引数はOCRの結果を出力するファイル名。デフォルトで.txt拡張子が付く。
$ tesseract image.png ocr_out -l jpn
pip install pytesseract
import Image
import pytesseract
FILE_NAME = './image.jpg'
print(pytesseract.image_to_string(Image.open(FILE_NAME), lang=('jpn'))
$ pip install opencv-python
$ apt-get install -y libgl1-mesa-dev
import cv2
im = cv2.imread('./image.jpeg')
im_gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
cv2.imwrite('./image_gray.jpeg', im_gray)
print(pytesseract.image_to_string(Image.open('./image_gray.jpeg'), lang='jpn'))
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント