はじめまして。わけあって(安価に)日本語OCRを使う必要があり、現在Tesseractの日本語対応をおこなっています。詳しい手順は現在まとめて
いる途中で、そのうち公開するつもりですが、現在までに分かっていることについてご報告します。
私も以前にzakkiさんの日記を見て、日本語対応に挑戦しだしたのですが、
> > 後日の日記にも書いていますが、Tesseractでは対象の文字が256種類以下であることが前提の設計になっているようで
> > まじめに日本語対応するためにはある程度広い範囲に手を入れる必要がありそうでした。
これについては、Tesseract 2.03あるいはCVS版では、256文字という制限が撤廃され、日本語や中国語といった文字種の多い言語でも問
題なく処理できるようになっています。詳しくはCVS版のリリースノート
http://code.google.com/p/tesseract-ocr/source/browse/trunk/ReleaseNotes
をご覧ください。
また、zakkiさんが日記で言及されていたTesseractのドキュメント
http://code.google.com/p/tesseract-ocr/wiki/TrainingTesseract
は全てを手作業でおこなう前提で書かれていますが、Windows用のbbTesseract
http://code.google.com/p/bbtesseract/
というツールを使うと、学習させたい文字を並べただけのテキストファイルから画像とboxファイル(文字の幅、高さを記述したもの)を生成できます。
フォントやフォントサイズも様々に変えられるので、ワープロで読み込んで画像を作る、といった手間がかかりません。
ただし、bbTesseractの仕様というか、設計が悪く、テキストファイルから画像を生成する際に大量のメモリを消費します。例えば、ひらがな・カ
タカナと若干の記号を、各文字を学習に必要な20回程度づつ繰り返し使用して作ったテキストファイル(30KB程度)をフォントサイズ86ptで(この
くらい大きくないと、あとで学習させるときに認識できませんでした)処理すると、2GBのメモリではまったく足りません。「タスクマネージャー」などで
使用メモリ量を見ていると加速度的に増加していく様子がわかります(^^;)これを避けるために、テキストを細かく分割して処理する必要があります。つ
まり、ひらがな、カタカナ、漢字を全部合わせた1つのファイルを処理するのではなく、それらを数十文字(×20回繰り返し)ずつに分割してファイルに
し、処理することを繰り返さなければいけません。
また、Tesseractに学習させていると、どうやら“ざじずぜぞ”などの濁音や“ぱぴぷぺぽ”といった半濁音など、文字と点、丸が離れている文字の
学習が難しいようです。これはさらに解像度(フォントサイズ)を上げれば解決するのか、そもそも困難であるかはわかりません。
現在こういったことがわかり、私はひらがな、カタカナ、常用漢字(1945文字)といくつかの記号を学習させようとしています。成果が出ればもちろん公
開しようと思っていますが、まだまだ先になりそうなので、あまり期待しないでください。ただ、ここで紹介したツールを使えば、手間はかかりますが比較的
簡単に学習用のファイル群を生成できますので、ぜひ興味がある方はやってみてください。
ところで、他の投稿で紹介されていたNHocrですが、新しくOCRopusの機能を使った認識サービスも開始されたようです。
http://appsv.ocrgrid.org/nhocropus/index-j.html
こちらも期待が大きいですね。