pipを使わずwindows10にtesseractとPyOCRをインストールする方法

pipを使わずにtesseractPyOCRを入れる方法に関するメモ。

参考にされる方は自己責任でお願いします。

 

ちなみに以下のような環境を構築した。

Windows10 64bit

python 3.6

OpenCV 3.4.1

tesseract 3.02

PyOCR 0.5

 

(1)anacondaを入れる

これは他のサイトさんでたくさん説明されているので割愛。

 

(2)OpenCVを入れる

ここopencv_python-3.4.1-cp36-cp36m-win amd64.wmlをダウンロード。

 

ダウンロードしたファイルがある場所に移動し、以下のコマンドをうつ。

pip install opencv_python-3.4.1-cp36-cp36m-win amd64.wml

pipを使っているが外部からインストールするわけではないのでセキュリティとかにはかからないはず。

 

以下のサイトを参考にした。

OpenCV3.4とPython3.6をAnacondaでWndows10へインストール

 

(3)tesseract-OCRのインストール

ここからtesseract-ocr-setup-3.02.02.exeをダウンロードし、インストールする。

 

インストール先はメモしておく。自分の場合はall userじゃない方なので、

 C:Users/ユーザー名/AppData/Local

 に保存された。

 

以下のサイトを参考にした。

tesseract-ocr でOCR - はしくれエンジニアもどきのメモ

 

(4)tesseract-OCRの設定

(4−1)tesseract-OCRpathが通っていないことの確認

インストールしたのはいいものの、なぜかpathが通っていない。実際、tesseractのヴァージョンを確かめる以下のコマンド

tesseract -v        

を実行しても、”〜は内部コマンドまたは外部コマンド〜”とか出るはず。

 

(4−2)tesseract-OCRにpathを通す

setコマンドで一時的にTesseract-OCRにpathを通す。自分の場合は以下のコマンドを用いた。

set path=%path%;C:\Users\ユーザー名\AppData\Local\Tesseract-OCR

 

一時的にpathを通すだけなので再起動の必要はないが、コマンドプロンプトを終了したら消えてしまうので注意。

 

これでtesseract -v を打っても大丈夫なはず。

 

(4−3)tesseract-OCRに言語データへのpathを通す

ただし上のpathだけでは、言語データ(〜¥Local¥Tesseract-OCR¥tessdataにあるeng.traineddataなどのこと)へアクセスできない。

 

これは言語データへアクセスするためのpathである"TESSDATA_PREFIX"が設定されていないためである。そこで、以下のコマンドを実行する。

set TESSDATA_PREFIX=C:\Users\ユーザー名\AppData\Local\Tesseract-OCR

 

ここで注意したいのは、言語データは〜¥Local¥Tesseract-OCR¥tessdataにあるが、その一つ前のフォルダーである〜¥Local¥Tesseract-OCRにpathを通す必要がある。

 

以下のサイトを参考にした。

tesseract3.02.02をソースからインストール - DRYな備忘録

 

 

(5)PyOCRのインストール

ここからwin-64/pyocr-0.5-py36h6a457c8_0.tar.bz2をダウンロード。

 

ダウンロードしたファイルがある場所に移動して、以下のコマンドをうつ。

conda install pyocr-0.5-py36h6a457c8_0.tar.bz2

 

(6)PyOCRのインストール確認

(6−1)PyOCRのインストール確認1

pythonを起動して、以下のコマンドをうつ。

from PIL import Image

import sys

import pyocr

import pyocr.builders

これで何もでなければ、PyOCRのインストールはうまくいっているはず。

 

(6−2)PyOCRのインストール確認2

上のコマンドに続けて以下のコマンドを入力する。

tools = pyocr.get_available_tools() 

if len(tools) == 0:

 print("No OCR tool found")

 sys.exit(1)

 

ここでpyocr.get_available_tools()~/Local/Tesseract-OCR/tesseract.exeを呼び出すモジュールである。

もし"NO OCR tool found"とでたら、(4−2)で行ったpathの設定がうまくいっていない。実際自分は、

set path=%path%;C:\Users\ユーザー名\AppData\Local\Tesseract-OCR

を以下のようにしていて詰まっていた。

set path=%path%;"C:\Users\ユーザー名\AppData\Local\Tesseract-OCR"

 

(6−3)PyOCRのインストール確認3

上のコマンドに続けて以下のコマンドを入力する。

langs = tool.get_available_languages()

print("Available languages: %s" % ", ".join(langs))

これで何もでなかったらちゃんとインストールできている。

 

もしraise Tesseract Error(ret, "unable to get languages")とかがでたら、(4−3)の"TESSDATA_PREFIX"がちゃんと設定されていないためである。

 

あとは他のサイトさんの説明されている通りにやったらうまくいった。

 

以下のサイトを参考にした。 

 tesseract-ocr でOCR - はしくれエンジニアもどきのメモ 

 

関連記事 

haitenaipants.hatenablog.com