OCR Engine Tesseract 3.00

Tesseract のホームページ:
http://code.google.com/p/tesseract-ocr/

バージョンには 2.04 と 3.00 が存在するが,とりあえず今回は 3.00 を導入してみる.

必要なファイルのダウンロード

http://code.google.com/p/tesseract-ocr/ から以下の3種類のファイルを落とす.

  • tesseract-3.00.tar.gz
  • eng.traineddata.gz
  • jpn.traineddata.gz

ここで eng.traineddata.gz は必須の言語データである.

インストール for Ubuntu 11.04

手順は http://code.google.com/p/tesseract-ocr/wiki/ReadMe に書かれているとおり.

準備として各種パッケージを導入する.

$ sudo apt-get install autoconf automake libtool
$ sudo apt-get install libpng12-dev
$ sudo apt-get install libjpeg62-dev
$ sudo apt-get install libtiff4-dev
$ sudo apt-get install zlib1g-dev

次に,いよいよ tesseract のインストール:

$ tar zxvf tesseract-3.00.tar.gz
$ cd tesseract-3.00/
$ ./runautoconf
$ ./configure
$ make
$ sudo make install

(メモ) 当然ながら /usr/local 下にインストールされた.

language data のインストール

$ cd ..
$ gzip -d eng.traineddata.gz 
$ gzip -d jpn.traineddata.gz 
$ sudo cp -p *.traineddata /usr/local/share/tessdata/

環境変数の設定:

$ export TESSDATA_PREFIX=/usr/local/share/

アルファベットの解析実験

アルファベットが書かれた TIFFファイル(無圧縮)を作成.中身はこんな感じ:
f:id:ymuto109:20110921182752p:image
下記のコマンドを実行すると output.txt が作られ,そこに解析結果の plain text が書き込まれる.

$ tesseract ~/sample.tiff output
$ cat output.txt 
A B C D E F G
abcdfeg
1234567890

$ 

活字だから完璧に読めています.

日本語の解析実験

次の画像を tesseract に与える.また,実行時のオプションとして "-l jpn" を指定する.
f:id:ymuto109:20110921182751p:image

$ tesseract ~/samplej.tiff outputj -l jpn
Tesseract Open Source OCR Engine with LibTiff
$ cat outputj.txt 
山囗漂宇部市
経常利益 實鳳OOO

$

"-l jpn" を指定したためか,数字の箇所が見事に読み取りミス.
仮に "-l" オプションを指定しない場合,以下のように数字は正しく読み取れるものの,日本語がこける.

$ tesseract ~/samplej.tiff outputj
Tesseract Open Source OCR Engine with LibTiff
$ cat outputj.txt 
LJ.1E»»§3`=§B$
\§'%`?U§ 30,000

$ 

読み取り対象の文書は日本語/数字が入り混じっているから,これは困ったぞ.