Onoty3D

Unityに関するメモとか

Unityで手書き文字認識

 

 

メモに留めますが、何かの役に立てば。

・字を書く
→LineRendererを利用。
 Unity - マニュアル: ラインレンダラー


・解析する
Microsoft.Ink.dllを利用。(System.Windows.Ink.dllとIACore/IALoader/IAWinFX.dllとかでもOK)
解析法は「C# 手書き」とかで色々出てくる。
 Windowsフォームのインク機能① | WDN Engineers' Blog
 手書き認識

 

ASP.NET Web APIで頂点の集まりを受け取るAPIを作って、受け取ったら解析して結果を返すようにしました。
なんでわざわざAPIにしたかというと、dllを直接Unityのプロジェクトで使おうとしたら、上手くdll内のクラスのメソッドが呼べなかったから。
Mono絡み or .NETのバージョン絡み?上手くやる方法もあるのかもしれない。
でも多分Web APIにしたほうがOS依存も無くなり、スマホアプリから呼んだりも出来るはず!

ちょっと嵌りそうなところは、UnityのY座標とMicrosoft.Ink.dllとかのY座標の正の向きが逆なこと。前者は上方向が正、後者は下方向が正。
そこだけ上手く変換してください。


ちなみにdocomoのサービスの手書き文字認識APIというのも試してみたのですが、一文字ずつしか認識できないので、ちょっと面倒くさかった。