インフォコム(株)のAdvent Calender 1日目を担当するmbotsuです。
以前はこんなのを開発してました。
たまにしか投稿しませんがTwitter (@mb_otsu)も宜しくお願いします。
今回は、今年のQ1に試したけれど、直ぐに使える精度ではないので没になったネタを投下します。
没ネタも整理するのが大事ですね!
光学式文字認識(OCR)と手書き文字認識(HTR)
日本語は単語の区切りが解り辛くまだまだOCRでも難しい分野とは思いますが、
- 光学式文字認識は解決されたタスク
- 手書きテキスト認識は依然として困難なタスク
と言われています。
手書きテキスト認識
オンライン手書きの場合、ストロークと書き順から軽量でかつ少ないデータで精度良く推論ができます。
深層学習以前からあるSVM(Support Vector Machine)で少ないデータでも良い結果が出るとされています。
最近ではオフライン手書きでも大量のデータを深層学習することで幾らか精度を出すことが可能となってきました。
さて、オンライン手書き文字と言えば、懐かしのSVMを使ったzinnaがあります。
zinnnaはトレーニングデータを自分で収集しないと精度はあげれませんので試された方は苦労したようです。
最近では、iOS13で登場したPencilKitがiPadOS14のスクリブルで手書き文字認識に対応しました。
この段階では英語と中国語(簡体字、繁体字)に対応しています。
更に今年の9月にリリースしたiPadOS15では遂に日本語にも対応しました。
トレーニングデータはどのようにして集めたのかノウハウ欲しいものですね。
オフライン手書き文字
オンライン手書き文字はトレーニングデータさえあれば十分使いものになりますが、オフライン手書き文字はまだまだ難しい課題です。
オフライン手書き文字が使えると、例えば手書きの書類の文章や金額のデジタル化が容易になったり、ノートにまとめた情報をデジタル化したりと、まだまだオフライン認識ができないと対応が難しい場面はあります。
ただし、どんどん利用シーンは削られていく過疎るタスクですので新規に研究する人は限定的と言えそうです。
おそらく試している方はガチ勢だけだと思いますのでライトな私の記事はぬるい目で見守っていただければと思います。
ようやく本題
長々と前振りしましたが、今回は図の右下のオフライン手書きを試しましたのでレポートです。
オフラインの日本語手書き文字は、ETLでトレーニングしたプロジェクトと、Intelが東京農工大学中川研究室の文字データベースでトレーニングしたプロジェクトがあります。
今回はIntelがOpenVINOで動かしたプロジェクトをWebで動作させました。
- ETL文字データベース
- 東京農工大学中川研究室のオンライン文字データベース Kondate、Nakayoshi
動作デモとコード
こちらで公開してますので興味のある方はお試しください。
OpenVINOモデルの変換について
IntelのプロジェクトをPINTOさんがコンバートしたものをWebで動かしました。
Webで動かすにあたり、tfjs変換に少し問題がありましでのでIssueに修正内容を投稿しています。
なお、Intelのトレーニングデータは有償データを使った為か、トレーニングコードもブラックボックスなようです。
AppleもiPadOS15のスクリブルは同じデータでトレーニングしたのでしょうか?興味はあります。
まとめ
日本語手書き文字認識のオフライン手書き文字(Intel)を試したのでまとめました。
- 光学式文字認識(OCR)は解決されたタスク
- 手書きテキスト認識(HTR)は依然として困難なタスク
- オンライン手書き文字はデータさえあればかなり精度良く使える
- AppleがiPadOS15で日本語対応
- オフライン手書き文字はまだまだ困難なタスク
- オンライン手書き文字はデータさえあればかなり精度良く使える
- 今回はオフライン手書き文字を評価
- 結果として認識精度は微妙なことが解った。そして没ネタへ。