Googleが提供している機械学習をネイティブアプリに取り込めるようにしたMLKITというものを利用します。このMLKITを利用して、文字列の認識を行います。
1.FirebaseとMLKITについて
FirebaseとはGoogleが提供している、ネイティブアプリやWebアプリを作成する際に必要となる、データベース、認証、パフォーマンス分析、障害分析の機能を備えたプラットフォームです。
詳しくはこちら https://firebase.google.com/?hl=ja
MLKITとは、Firebaseのサービスの一つであり、Googleの機械学習の機能をAndroidアプリやiOSアプリとして利用できる形で提供を行っているもの。機能としては、
・テキスト認証
・顔検出
・翻訳
・その他もろもろ
があり、デバイス上での動作、WebAPIとしての動作を提供しています。
2.MLKITを利用した文字認識の実施
それでは、実際にMLKITを利用して文字認識を行ってみます。方法は、Androidスマートフォンに対して、MLKITのサンプルプロジェクトを取り込んで、手書きの文字認識を行います。

それでは実際に文字認識を実行してみます。黒い文字は手書きした文字列、白枠で囲まれ、白文字で表示されている文字列がMLKITで読込、認識した文字列です。
このような形で読み込みます。

1回目:読み込んでみます。

3行目の「l:エル」と「g:ジー」の書き方のクセが強く、それぞれ「(」「9」と読み込んでしまいました。
2回目:丁寧に書いて再度実行してみます。

想定通りに認識してくれました。
他にもいろいろ試してみましたが、全体的に正しく読み込めている感覚を受けました。
3.手順の概要紹介
Andoridアプリとして利用する為に実施した内容を概要レベルで紹介します。
MLKIT利用準備
- FireBaseのアカウントを取得する(https://firebase.google.com/)
※Googleアカウントを持っていれば利用可能 - FireBaseの利用登録を行う(有料/無料プランあり、今回は無料プラン)
- MLKITを利用する為のライセンスファイル(google-services.json)を作成する
Androidアプリ作成手順
- Androidアプリとして利用する為、AndroidStudioをインストールする(https://developer.android.com/studio?hl=ja)
- AndroidStudioにサンプルプロジェクトをインポートする(https://github.com/firebase/quickstart-android/tree/master/mlkit)
- ⑤のプロジェクトに③のライセンスファイルを取り込む
- Androidデバイスにアプリ(作成したプロジェクト)をインストールする
4.補足やまとめ
実際の業務で利用するとしたら、領収書などの数字の部分だけを読み取り、自社のフォーマットとして取り込むことなどができそうです。名刺管理会社はすでにこういった仕組みを取り入れている企業もあるそうです。
Firebaseの利用プランですが、無料・有料プランがあります。MLKITに関しては無料版はラテン文字の認識のみ、有料版は多言語対応(日本語含む)そうです。
以上です。最後までお付き合い頂き、ありがとうございました!