前の日 / 次の日 / 2010-07
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

2010-07-01 Thu

日本語光学文字認識プログラム(OCR) nhocr を CentOS にインストール

日本語に対応した光学文字認識(OCR)を実現する nhocr を CentOS にインストールしてサンプルを実行するところまで作業しました。

nhocr とこれに関連する必須なライブラリ


- nhocr
-- http://code.google.com/p/nhocr/

- O2-tools
-- http://www.imglab.org/p/O2/

- FreeType2
-- http://www.freetype.org/
# http://freetype.sourceforge.net/dounload.html で Stable Releases で示されている最新のパッケージを使う

インストール


O2-tools と FreeType2 のインストール

O2-tools 2.00 と、FreeType 2.3.12 をインストールする。
両方ともダウンロードしたtar.gzなパッケージをtar xfvz で解凍して、

./configure --prefix=/usr/local
make
make (check|test)
sudo make install


するだけ。大変に簡単。
標準のインストール先は O2-tools が何故か ${home}/O2 以下で、FreeType は /usr/local 以下なので、configure の prefixでインストール先を指定する必要があります。

nhocr-0.20 の libnhocr/nhrec.cpp を編集

nhocr-0.20 の libnhocr/nhrec.cpp で宣言されている NHrec::rec_line(3) 関数には CharBox ポインタ型の変数 cblist が宣言されています。
この cblist は内部で初期化されて以降、どこでも使われないのですが、最期に以下のようにして delete しようとしています。

if (cblist) delete_cblist(cblist);


おまけに、この delete_cblist(1) 関数は ./libnhocr/segchar_adhoc.h では宣言されているされているけれど、./libnhocr/segchar_adhoc.cpp には実体が書かれていないので make 中にリンクエラーが起きます。

なので、サクッと以下のようにコメントアウトしました。

// if (cblist) delete_cblist(cblist);


他のどこかでメモリリークしてしまうかもしれなさそうだな、と軽く不安になりますが、とにかく動かしてみます。

nhocr-0.20 のインストール

準備はできたので nhocr-0.20 をインストールします。

./configure --prefix=/usr/local CXXFLAGS="-I/usr/local/include/freetype2/"
make 
make (check|test)
sudo make install


サンプルを実行

サンプルの実行は test ディレクトリに移動して run-test を実行します。

$ cd test
$./run-test
fs.pgm: ファイルシステム
hello.pgm: ニんにちわ
(以下略)


無事にこんにちわ画像が「ニんにちわ」になりました。味わい深いですね。

この後どうするか。


サンプルが動いたし、この次はサンプル以外の任意の画像中の日本語文字を認識しています。
ですが、実は nhocr 用の画像は OpenCV を使って作るのでプログラムを書く前に OpenCV もインストールする必要ありです。
面倒くさい。

結局、何がしたいの?


今後、画像中の日本語と英語の両方を上手に認識させてみたいと思ってます。
OCRの日本語向けモデルは英語の文字認識精度が低く、英語モデルは日本語の文字認識に弱いです。
単純には日本語と英語の両方で合計2回認識処理をして結果をマージして使えばいいのかな。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

「我慢できずにやってしまうこと」を利用したい

夜、家に帰る途中で気がついたのですが、僕は分からないことがあると調べる癖があります。
多分、分かったときに凄く気持ちが良いから、ついつい調べてしまうのだと思います。

分からないことを調べるのは悪くない、と思うかも知れませんけれど、僕自身はこの癖にちょっと困っています。

なぜなら、分からないことが調べても分からなかったときに堪え難いストレスを感じるのです。
どのくらいストレスかというと、脳が逃避行動を起こして寝てしまうほどです。寝なくても体が重くてグッタリします。

分からないことが分からない原因は、いろいろあります。
例えば、情報を解析するには実力不足である場合、そもそも情報を辿るための情報が無い場合、誰かが意図的に情報を隠している場合、誰かが見え透いた嘘をつき真実を言っていない場合、などいろいろです。

実際に分からないことに直面すると、本当に調べて分かることなのかを横においておいて、調べることに没頭してしまいます。
そして分かった場合は爽快な思いをし、分からなかった場合はグッタリします。
おまけに何かをやっているときに分からないことがあると、しばしば調べもので脱線してしまい、我に返ったときに後悔します。

こんなふうに無意識で分からないことを調べてしまう癖は、ちょっと工夫することで勉強に利用できそうです。
例えば必須な調査が捗らない場合に、その調査の対象を意識的に「調べるべき謎」として捉え直せば良いのではないでしょうか。

自分の癖を使って自分を伸ばそうとしたことが無かったので、勉強にうまく活用できるのか分かりませんが、自分の直せない癖とは何とか上手につきあっていきたいものです。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

権八 (六本木・西麻布)

今日のランチは権八でした。木曜日は500円ランチがあるのでお得。

IMG_0390

500円ランチは「鶏そぼろ丼 + お惣菜バイキング + フリードリンク」。
鶏そぼろ丼は、かなり丁寧に作ってあっておいしいです。何気にわさびもおいしかった。

13:30頃に着いたので、お惣菜バイキングは充分ある!と思ったら、すでに大分品切れ。
前回14:00頃に来たときよりは大分ましだけど、あと30分は早く来る必要がありそう。

一応ひじきの煮物をたくさん食べられたので満足しました。ごちそうさまでした。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |