Google ML Kit サンプルを動かしてみた(OCR)
google I/O 2018 で発表されたモバイル向けの機械学習SDKであるML Kitのサンプルがあったので試してみました。
今回使用したサンプルはコードラボで提供されているORCのサンプルです
Recognize text in images with ML Kit for Firebase
とりあえず動かしてみたいだけなので中身のコードについては今回は修正しません。
まんまビルドしてAPKファイル作って、手持ちのXperia XZにインストールして実行してみるところまでです。
今回OCRにかける画像はこちら
サンプルをダウンロード
緑のリンク「Download source code」からソースコードを入手します。
今回は「text-recognition」の「final」の方を使います。
Firebase上でプロジェクトを作るでjsonファイルをゲット
コンソールを開いたら、新しいプロジェクトを作成しろと書いてあるので、
その通りに作成。とりあえず名前も一緒にします。
これでプロジェクトが作成された。
OverviewからAndroidアプリを追加して、パッケージ名を入力します。
画面左上の「Project Overview」をクリックすると、右の画面真ん中に「AndroidアプリにFirebaseを追加」とあるのでそれをクリック
パッケージ名を入れて「アプリ登録」
jsonファイルをダウンロードして「app」のディレクトリにコピーしろとあるのでその通りに実行します。
こんな感じで追加完了。
プラグインを追加
「app」ディレクトリの「build.gradle」を修正して同期しろと記載してあるのでその通りに実行
修正すると画面の右上に「Sync now」と出てるのでそれをクリック
イベントログに「Gradle build finished 」と出てるので完了
実行してみる
finalを使ってる場合は、テキスト認識のロジックが既に追加済みなので、
エミュレータで動かすと実行できます。
さっそくRunしてみる
動いた。「FIND TEXT」を押してみる
ちょっと見にくいですが、ちゃんとできているようです。
では、今回読み込ませたい画像を処理できるようにしたいと思いますが、
どうもこのサンプルは完全にアセットに含めてファイル名固定で使用しているようです。
ソースを修正するのは面倒なので、同じファイル名で上書きしてアセットに追加しようと思います。
ファイル「non-latin.jpg」の画像を熊本城に置き換えました。
実機用にAPKファイルを作成
Xperia XZはAndroid8.0なので、コンパイルSDKバージョンを8.0にします。
ついでに、MinとTargetのSDKバージョンも8.0にします
Build>Build APKでこのままAPKファイルを作成します。
PCと繋いでる場合はAPKファイルを作る必要はないのですが、
現在出張先でPCと接続できないためAPKファイルを作っています。(USB忘れた)
APKが出来ました。あとはこれを実機にインストール
読み込ませた画像が表示できたので、「FIND TEXT」をタップ
表示領域がなんか被ってますが、まあサンプルなのでとやかくはいうまい。
日本語が検知できていないのは単純にまだ対応していなかっただけだと記憶しています。(間違っていたらごめんなさい)
学習モデルの中身は全く見てないので、今のところ完全にブラックボックスも良いところですが、逆に言うと中身のロジックを知らなくても使えるということなので、この手軽さは良いですね。
大半の人はモデルを作るより、作ったモデルで何かをしたいはずなので。
starterの場合はこのように「ToDo」という形で処理が省略されているので後続のステップに従って追加していく必要があります。
ちなみに、クラウドとオンデバイスでは精度とラベルの数などいろいろと違いがあるようです。
今回はとりあえずここまで。
追記:クラウドの方のFIND TEXTがなんか動いてなさそう。後続も読めって事のようですね。まあいいや。