Ubuntuで日本語OCRに手を出してみた

こんばんは、knot-foundです。

学校では現在Rubyの授業があって課題が出ています。

その内容とはRubyを用いたCGIによるWebアプリを作ろうというものです。

 

で、この課題はグループ学習(Program Base Learning)で、三人一組で行い僕が実質コーダー兼リーダーになりそうです...(涙) ちゃんと仕事振らなきゃ

 

さて、そんなわけで課題が降ってきたわけですが僕たちは学校の食堂に張り出されてる献立を写真撮影し、写真をサーバーにアップロードした後にOCRを用いてデータ化したあとにWebページに整形して表示するというテーマにしました。ちなみにテーマはすぐ決まったわけですがこのテーマ実は僕がちょっと前から作りたいと思ってたシステムが元になってるのでぶっちゃけ需要が... まあ最悪僕が使えればそれでいいので(えっ

 

で、テーマからわかる通りこのシステムの肝は(なぜか)画像解析(OCR)となっております。そのため、OCRをプログラミングでどうやって実装しようか探してみたところ、次のようなものがヒットしました。

 

tesseract-3.02.02-win32-lib-include-dirs.zip - tesseract-ocr - VC++ libraries of Tesseract OCR 3.02.02 (32bit) - An OCR Engine that was developed at HP Labs between 1985 and 1995... and now at Google. - Google Project Hosting

 

Japanese character recognition

 

ちょっとリンクの貼り方になれてないので見にくいと思いますが勘弁を...

上がTesseractっていうOCRエンジンでHPが開発したものをGoolgeが公開しているものらしいです。

下がNHocrでこちらは東北大学の研究室が開発したもので日本製のエンジンです。日本製なだけあって英字の認識率はTesseractに劣るものの短文の日本語の認識率は高いです。

 

で、今回の僕の用途が献立という日本語が多くなりそうなものなのでNHocrを利用したいと思います。というわけで早速導入です。このサイトが綺麗にまとまっていたので参考にさせていただきました。本当はWindows上に直で導入しようと思ったんですが、僕のスキルが低いのとめんどくさそうだったのでUbuntu14.04上でやることにしました。


UbuntuでNHocrをビルド - simpgの日記

 

で、導入が終わって早速テストプログラムを走らせました。

結果なんですが縦書きはダメで横書きがわりといい感じになりました。

f:id:masakinishime:20150116001336p:plain

なんかユーザー名がアレですが気にしない。

 

東北の北がバラバラになって認識されてますね...

 

導入はいけたっぽいのでこれからどうやって精度あげたりすればいいのかやプログラムに組み込んでいくかを考えていきたいと思います。

 

それではこの辺で。