Windows MobileやZaurusなどのPDAで良く見かけるのが手書き文字認識エンジンだ。バーチャルキーボードやPDAの小さなキーボードで入力するよりも素早く入力ができるのが便利だ。

3dsearch6.png

モデルの認識中

 

OCRも同様だが、入力された内容を読み取ってデジタルなデータに変換するというのは難しい技術だ。だがその部分だけオープンソース化すれば、みんなが手軽に利用できるようになる。

今回紹介するオープンソース・ソフトウェアはZinnia、手書き文字認識エンジンだ。

Zinniaはエンジンのみの提供で、認識の基準になるモデルなどは提供されていない。そしてそのエンジンは機械学習機能(アルゴリズムはSVM)が実装されており、利用していくうちに精度を高めることができる。

Picture 357.png

Python用テストスクリプト

 

APIを公開しており、それを使うことでC/C++/Perl/Ruby/Pythonなどでもエンジンを利用できるようになっている。認識速度は50〜100文字/秒で、十分な速度で候補の文字列を得ることができる。

ソースコードの他にWindows版(バイナリ)も用意されている。ただしZinnia自体はライブラリなので、コンパイル環境は必要だ。モデルのサンプルとなるTomoe付属の手書きデータを変換したものも付属している。

入力デバイスというとマウス、キーボード、タブレットなどが多いが、iPhoneのようなマルチタッチパッドやタブレットPCなどそのインタフェースも徐々に変わってきている。そのような中、Zinniaの活用できる範囲は数多くありそうだ。

 

Zinnia: 機械学習ベースのポータブルな手書き文字認識エンジン

 http://zinnia.sourceforge.net/index-ja.html

SourceForge.net: Zinnia

 https://sourceforge.net/projects/zinnia/