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 を実行するとエラーが出ずに最後まで実行できた。