カスタマイズしたモデルでTensorFlow Liteのデモを動かす

android

はじめに

AIを勉強し始めたばかりの私が、モバイル向けTensorFlowであるTensorFlow Liteのデモに、カスタマイズしたモデルを組み込んで動かしてみます。間違いがあったら教えてね。

前提

OS: Windows10 64Bit

Android Studio 3.1.3 for Windows 64bit

カスタマイズしたモデルのフォーマットを変換

今回はこの記事で作成したねぎと玉ねぎを見分けることができるモデルを組み込んでみようと思います。この記事で作成したモデルをTensorFlow Lite用のフォーマットに変換する必要があります。

変換には、TOCO(TensorFlow Lite Optimizing Converter)というツールを使います。TensorFlowをインストールするといっしょにインストールされるようです。

下記のコマンドでモデルを変更しましょう。

tf_filesフォルダにoptimized_graph.liteが作成されます。

モデルの組み込み

まずは、TensorFlow LiteのDemoのコンパイルのしかたはこちらで紹介していますので、環境準備等にご参照ください。

デモの環境では、拡張子が.tfliteのものしかモデルに設定できないので(build.gradleで変更できるけど)、optimized_graph.liteをoptimized_graph.tfliteに変更します。

次の二つのファイルをassetsに配置します。

  1.  retrained_labels
  2. optimized_graph.tflite

今回作成したモデルはinference_typeをFLOATにしましたので、デモの構成を少し変える必要があります。

Camera2BasicFragmentクラスでClassfierのインスタンスを生成している箇所があります。初期状態ではImageClassifierQuantizedMobileNetが指定されていますので、ここをImageClassifierFloatInceptionに置き換えます。

また、ImageClassifierFloatInceptionクラスは画像サイズがなぜか299×299となっているので、これを224×224に変更します。

これでビルドができるはずです。

デプロイ&検証

では、スマホにインストールして動作検証をしてみましょう。

たまねぎを識別できてますね。ネギがなかったので、香港で買ってきた白菜の陶器も認識させてみましたが、見事ネギと間違えてますね(涙)。まだ、白菜を知らない子なので・・・。

コメント