LotosLabo

プログラミング技術とか気になった情報を載せていきます

Unityでジェスチャーによる文字・形の認識

Unityでマウスジェスチャーによる文字や形の認識する方法を探してみました。

要はこういうこと。


f:id:lo25131:20160224010559p:plain

お絵かきした形や文字を認識して、文字として出力させたい。


1.「Gesture Recognizer」

f:id:lo25131:20160224005329j:plain
https://www.assetstore.unity3d.com/jp/#!/content/47326


AssetStoreで販売されている、マウスジェスチャによって形を認識するAssetです。
あらかじめ認識しておきたい形を記録しておき(座標情報など)、
そのデータを基づいて形を認識しています。


使ってみた感想としては、形、文字両方の認識を行ったのですが、
形に関しては書き始めの位置があっていれば、高確率で正しく認識されました。
ただ、文字(今回は数字を認識)に関しては、似たような形が多いせいか、
誤認識がよく見られました。

もし、ゲームなどに導入するときには、これは音声認識でもそうだと思いますが、
認識精度を上げるために検出可能なジェスチャーを少なくしておくことをおすすめします。

紹介させていただいたのはサンプルのゲーム付きの方ですが、スクリプトのみの方も
AssetStoreで配信されています。

サンプルのコードをそのまま用いればすぐコンテンツへの導入も可能なので、
是非試してみてください。$15の価値はあると思います。




2.「手書き文字認識API


Docomoさんで紹介されている手書き文字認識APIです。
文字の筆跡データをもとに、文字を認識します。


一文字のみの認識となります。
認識にはHTTP通信でXML/JSONで取得が可能です。



【利用方法】

PUXさんのデベロッパーサイトにて登録を行い、
APIキーを発行します。
ユーザ登録時に、評価版APIキーを発行するかどうか聞かれるので、その時に発行します。



ユーザ登録後、APIキーとドメイン名がメールにて届くので、
それを基に通信を行います。

APIの詳しい利用方法については、Docomoさんのデベロッパーサポートサイト
に記載されていますので、そちらをご参照ください。


実際に使用してみた感想としては、送るパラメータによって、
認識して欲しい文字を絞れるので、欲しい情報をより正確に取得することができると思います。
すこし雑に書いたとしても認識してくれるので精度は結構高いと思います。

しかし、オンライン環境でしか動作しないところがネックですね…




まとめ


上記で紹介した二つは、AndroidiOSの両方の環境で動作することも確認できました。
ただスマホタブレット手書きとなると、正確に文字を書くコンテンツを開発するとなると
ユーザはペンと大きい画面を有したタブレットが必要になってきますね。

今回はUnityで3DSでの開発ができるようになる?!という情報があったので、
Unityで手書き認識を試してみました。この技術を用いて脳トレや学習アプリ的なものを作ってみたいですね。


参考にさせていただいたサイト様