はだしの元さん

プログラミングの技術的なことを忘備録かねて書いていこうと思っています。

オープンソースのOCRエンジン Tesseract-OCR

Tesseract-OCR(テッセラクトOCR)はGoogleが提供しているOCRエンジンです。
このTesseract-OCRオープンソースであることもさることながら、機械学習によりさまざまな言語に対応したり、精度を上げることができることも魅力の一つです。
今回はそのTesseract-OCRUbuntuにインストールするところから、実際に文字を読み取るまでを紹介したいと思います。

また公式のドキュメントの他に以下のサイトを参考にさせていただきました。

日々是酩酊
http://badly-drunk.blogspot.jp/2011/10/tesseractocr.html

公式:tesseract-ocr
https://code.google.com/p/tesseract-ocr/

インストール

まずtesseract本体をインストールする前に、必要なライブラリなどをインストールします。

$ sudo apt-get install libpng-dev
$ sudo apt-get install libjpg-dev
$ sudo apt-get install libtiff-dev
$ sudo apt-get install zlib1g-dev

tesseract本体もapt-getでインストールできます。

$ sudo apt-get install tesseract-ocr

バージョンの確認をして3.01以上なら成功です
3.00以下だと機械学習のところでエラーがでてしまいます。
私はそれではまりました・・・(遠い目)

$ tesseract -v
tesseract 3.02

インストールが完了したら、以下のコマンドでOCRを実行します。

$ tesseract [読み込みたい画像ファイル名(拡張子あり)] [出力ファイル名(拡張子なし)] -l eng

tesseract sample.tif result -l eng

これでresult.txtが出力されていれば成功です。

日本語対応

Tesseract-OCRで日本語(英語以外の言語)を読み込む場合、以下のサイトから学習データをダウンロードし、それをTesseract-OCRに読み込ませることで様々な言語に対応することができます。

以下のサイトから欲しい言語の最新の学習データをダウンロードしてください。
https://code.google.com/p/tesseract-ocr/downloads/list

コマンドでダウンロードする場合は以下のようにします。
バージョンなどを上記のサイトから確認して、適宜読み替えてからダウンロードしてください。

$ wget https://tesseract-ocr.googlecode.com/files/tesseract-ocr-3.02.jpn.tar.gz

ダウンロードが完了したら、解凍し中にあるjpn.traineddataというファイルを
/usr/local/share/tessdata
にコピーします。

tar xvzf tesseract-ocr-3.02.jpn.tar.gz
cp ./tesseract-ocr/tessdata/jpn.traineddata /usr/local/share/tessdata

これで日本語に対応することができました。

試しに日本語の画像を読み込んでみます。

$ tesseract sample_jpn.tif result_jpn -l jpn
精度は低いと思いますが、無事読み込めていれば成功です。

Tesseract-OCRの学習につづきます。