ocrodjvu と tesseract-ocr で djvu に英語 OCR をかける

スキャンした英語の本から作ったマルチページ djvu に OCR でテキスト情報を埋め込みたい。 Ubuntu 12.10 上で ocrodjvu と tesseract-ocr を使って行った。

OCR for djvu (ocrodjvu)

スキャンした画像から生成した djvu ファイルに OCR でテキストを追加するには ocrodjvu を利用することができる。

sudo apt-get install ocrodjvu

でインストールする。

man ocrodjvu

で tesseract-ocr が使用できるみたいなので

sudo apt-get tesseract-ocr-eng

で英語の OCR をインストールする。

ocrodjvu --list-engine

で tesseract が表示されることを確認する。次に

ocrodjvu -e tesseract --list-language

で使用できる言語を確認する。英語の OCR が目的なので eng があれば良い。 すでにある djvu ファイルにテキストの情報を加えるには

ocrodjvu -e tesseract --language eng --in-place input.djvu

とする。ただ、Ubuntu 12.10 のパッケージでは http://code.google.com/p/tesseract-ocr/issues/detail?id=690 のバグが修正されていないようで、実行途中でエラーで終了してしまう。

cuneiform

Ubuntu 12.10 では OCR engine として tesseract-ocr を利用するとうまくいかないので cuneiform という別の OCR engine を利用して見ることにした。

sudo apt-get install cuneiform

で cuneiform をインストールして

ocrodjvu -e cuneiform --language eng --in-place input.djvu

で実行する。これも cuneiform がきちんと終了しなかったというようなエラーが出てうまくいかなかった。

tesseract-ocr を更新する

Ubuntu 12.10 のパッケージだと tesseract-ocr も cuneiform もうまくいかなかったので、 tesseract-ocr の raring のパッケージを利用することにした。 ソースから deb を作り、それをインストールして tesseract-ocr のバージョンを上げる。 まず、

sudo apt-get build-dep tesseract-ocr

でパッケージのビルドに必要なライブラリをインストールする。 作業用のディレクトリを作ってソースをダウンロードする。 http://packages.ubuntu.com/raring/tesseract-ocr でソースの URL を調べる。

mkdir tesseract
cd tesseract
wget http://archive.ubuntu.com/ubuntu/pool/universe/t/tesseract/tesseract_3.02.02-1.dsc
wget http://archive.ubuntu.com/ubuntu/pool/universe/t/tesseract/tesseract_3.02.02.orig.tar.gz
wget http://archive.ubuntu.com/ubuntu/pool/universe/t/tesseract/tesseract_3.02.02-1.diff.gz
tar xvf tesseract_3.02.02.orig.tar.gz
zcat tesseract_3.02.02-1.diff.gz | patch -p0

なぜかソースとパッチのディレクトリが異なる。

mv tesseract-3.02.01/* tesseract-3.02.02
rmdir tesseract-3.02.0

でディレクトリをまとめる。

cd tesseract-3.02.0
debuild -us -u

でコンパイルして

cd ..
sudo dpkg -i *.deb

でインストールする。

最新の tesseract-ocr をインストールした後に、 上述の ocrodjvu を実行するとエラーが出ずに最後まで実行できた。

Tags of current page

, , , ,