マウスで文字を書く。その情報をもとに対応した文字列を返すソフト。自身で文字の登録が可能。
コピペツール。
C# VisualStadioで開発
cos類似度による評価により手書き文字認識を行う。
機械学習を行う場合に比べ、学習が必要なく、教師データもいらない。
文字をかく
一秒間に100回座標を記録
座標の差分をとり、ベクトル化
ダウンサンプリングし、30個の座標に圧縮
これをほかのデータとcos類似度にかけることでどれだけ二つが似ているかがわかる。
登録されているデータすべてに対して類似度を計算し、その中で一番類似度が高いものを表示する。
COS類似度はドット積なので、計算量は線形。
DNNの場合は、学習 + 計算なので計算量が多い。
COS類似度は突出したデータがあるとそれに大きく影響される特性がある。
そのため、多めに点を取り、それらを平均することで入力の品質を保つようにしている。
COS類似度によって手書き文字認識ができるということを知るまでは、
ディープニューラルネットワークでの文字認識しかできないと思っていた。
DNNは学習データが大量にいるが、ユーザ自らジェスチャを登録するため、事前学習をさせることは無理である。
そのため、文字の類似度を評価するDNNを作成しようと考えた。
失敗に終わった
10種類のsin波を作成し、この違いを見分けるという学習を行った。
学習済みデータは100%の精度で判定できたが、学習していないデータに関してはひどい結果になった。
類似度を計算させるというアプローチ自体が間違っているのか、何かいい方法があるのか、それはわからない。
従来のコピペツールの場合、何をコピーするかのリストを表示する必要があった。
しかし、今回はジェスチャ認識なので表示する必要がない。
そのため小さな表示領域でその機能を果たせるのがメリット。
見た目がシンプルでとても良い。