ジャンカーな日々

こころのすさんだ管理人[る~]がAndroid/Windows/Linux/OSX/iOS/パーツなどの話題やお買い得商品を紹介していきます

OSSなOCRソフト[tesseract-ocr]で、画像から文字を読み取ろう

オープンソースで公開されている、OCR(画像読み取り)ソフトを使うと、スキャナやカメラ、Webページ、スクリーンショットなどからテキストを起こすことができます。

以下のGitHubからソースを落とすことができます
https://github.com/tesseract-ocr

Windowsバイナリと日本語辞書はここにあります
https://code.google.com/p/tesseract-ocr/downloads/detail?name=tesseract-ocr-setup-3.02.02.exe
https://code.google.com/p/tesseract-ocr/downloads/detail?name=tesseract-ocr-3.02.jpn.tar.gz

 

LinuxGitHubから落としてコンパイルします

git clone https://github.com/tesseract-ocr
cd tesseract-ocr
./autogen.sh
./configure
make
make install

iOSのソースも公開されているので、iPhoneアプリに組み込んだりもできます

https://github.com/gali8/Tesseract-OCR-iOS


使い方は
tesseract <画像.bmp> <出力.txt> -l <言語>

例:
英数字の場合
tesseract get_text.bmp get_text.txt -l eng

日本語の場合
tesseract get_jpntxt.bmp get_jpntxt.txt -l jpn

学習

座標ファイルの作成
tesseract <学習に使う画像> <言語>.<フォント>.exp<インデックス番号> -l jpn batch.nochop makebox

例:
tesseract train_img00.bmp jpn.hiragi.exp0 -l jpn batch.nochop makebox

これにより座標ファイル jpn.hiragi.exp0.box ができます

学習辞書には

文字 X始点 Y始点 X終点 Y終点 インデックス

の形式で記述されます

例:
M 4 6 22 30 0

※範囲が大幅にずれている文字を修正します。範囲内のものはそのままでいいでしょう

trファイルの作成

学習に使ったファイルをリネームします、座標ファイルに合わせましょう

train_img00.bmp -> jpn.hiragi.exp0.box.bmp

trファイルを生成します

tesseract jpn.hiragi.exp0.bmp jpn.hiragi.exp0 nobatch box.train.stderr

jpn.hiragi.exp0.trというファイルが出力されれば成功です
出来ない場合はエラーにしたがって、修正しましょう

トレーニングデータの作成

座標ファイルからunicharsetファイルを生成します
unicharset_extractor jpn.hiragi.exp0.box

font_propertiesファイルを作成します。が、フォントのプロパティといっても手書きや版の場合は
<フォント名> 0 0 0 0 0
固定です、意味は
フォント名(boxファイルのファイル名で指定した物と同名) italic bold fixed serif fraktur
という並びになっています。例では、hiragiを指定していますので
hiragi 0 0 0 0 0
となります

学習の実行

mftraining -F font_properties -U unicharset jpn.hiragi.exp0.tr
mftraining -F font_properties -U unicharset -O jpn.unicharset unicharset jpn.hiragi.exp0.tr
cntraining jpn.hiragi.exp0.tr
mv inttemp jpn.inttemp
mv shapetable jpn.shapetable
mv pffmtable jpn.pffmtable
mv normproto jpn.normproto
combine_tessdata jpn.
cp jpn.traineddata /usr/local/share/tessdata/

画像を拾って自動で識別するとかそんな時に使えます

無論、RaspberryPIでも動きますので、カメラと組み合わせて、名刺読み取り機見たいなこともできるかと思います。

 

 

ジャンカーな日々はamazon.co.jpを宣伝しリンクすることによって サイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。ちょっとだけ紹介ついでにお小遣いをいただいております(_ _)