デフォルトでは、ML Kit の API は Google のトレーニング済み機械学習モデルを使用します。これらのモデルは、幅広いアプリケーションをカバーするように設計されています。ただし、ユースケースによっては、よりターゲットを絞ったモデルが必要になります。一部の ML Kit API で、デフォルトのモデルを TensorFlow Lite のカスタムモデルに置き換えられるようになりました。
画像ラベル付け API とオブジェクト検出とトラッキング API はどちらも、カスタム画像分類モデルをサポートしています。TensorFlow Hub の高品質な事前トレーニング済みモデルや、TensorFlow、AutoML Vision Edge、TensorFlow Lite Model Maker でトレーニングされたカスタムモデルに対応しています。
他のドメインやユースケースでカスタム ソリューションが必要な場合は、オンデバイスの機械学習ページにアクセスして、オンデバイス機械学習向けの Google のすべてのソリューションとツールに関するガイダンスを確認してください。
カスタムモデルで ML Kit を使用するメリット
ML Kit でカスタム画像分類モデルを使用するメリットは次のとおりです。
- 使いやすいハイレベル API - 低レベルのモデル入出力を処理したり、画像の前処理と後処理を処理したり、処理パイプラインを構築したりする必要はありません。
- ラベルのマッピングをご自身で行う必要はありません。ML Kit は TFLite モデルのメタデータからラベルを抽出し、自動的にマッピングします。
- TensorFlow Hub で公開されている事前トレーニング済みモデルから、TensorFlow、AutoML Vision Edge、TensorFlow Lite Model Maker でトレーニングされた新しいモデルまで、幅広いソースからカスタムモデルをサポートします。
- Firebase でホストされるモデルをサポートします。モデルをオンデマンドでダウンロードすることにより、APK のサイズを縮小します。アプリを再公開することなくモデルの更新を push し、Firebase Remote Config を使用して簡単な A/B テストを実施できます。
- Android の Camera API との統合向けに最適化されています。
- 最初にオブジェクトを見つけて、関連する画像領域でのみ分類器を実行し、分類精度を改善します。
- オブジェクトが検出されて分類されるとすぐにユーザーにフィードバックを提供することで、リアルタイムのインタラクティブなエクスペリエンスを提供します。
事前トレーニング済みの画像分類モデルを使用する
事前トレーニング済みの TensorFlow Lite モデルは、一連の条件を満たしていれば使用できます。TensorFlow Hub では、Google や他のモデル クリエイターによる精査されたモデルのセットを提供し、これらの基準を満たしています。
TensorFlow Hub で公開されているモデルを使用する
TensorFlow Hub には、画像ラベル付け API、オブジェクト検出とトラッキング API で使用できる、さまざまなモデル作成者のトレーニング済みの幅広い画像分類モデルが用意されています。(下記の手順に従う)
- ML Kit 互換モデルのコレクションからモデルを選択します。
- モデルの詳細ページから .tflite モデルファイルをダウンロードします。可能であれば、メタデータを含むモデル形式を選択します。
- モデルファイルをプロジェクトにバンドルして Android または iOS アプリで使用する方法については、Image Labeling API または Object Detection and Tracking API に関するガイドをご覧ください。
独自の画像分類モデルをトレーニングする
事前トレーニング済みの画像分類モデルでニーズに合わない場合は、独自の TensorFlow Lite モデルをトレーニングできます。その一部をご紹介します。
独自の画像分類モデルのトレーニング オプション | |
---|---|
AutoML Vision Edge |
|
TensorFlow Lite モデルメーカー |
|
TensorFlow モデルを TensorFlow Lite に変換する |
|
AutoML Vision Edge
AutoML Vision Edge を使用してトレーニングされた画像分類モデルは、Image Labeling API と Object Detection and Tracking API API のカスタムモデルでサポートされています。これらの API は、Firebase モデルのデプロイでホストされているモデルのダウンロードもサポートしています。
AutoML Vision Edge でトレーニングしたモデルを Android アプリと iOS アプリで使用する方法について詳しくは、ユースケースに応じて各 API のカスタムモデル ガイドをご覧ください。
TensorFlow Lite Model Maker
TFLite Model Maker ライブラリは、TensorFlow ニューラル ネットワーク モデルをデバイス上の ML アプリケーションにデプロイする際に、このモデルを調整して特定の入力データに変換するプロセスを簡素化します。TensorFlow Lite Model Maker による画像分類の Colab をご覧ください。
Android および iOS アプリで Model Maker でトレーニングされたモデルを使用する方法について詳しくは、ユースケースに応じた Image Labeling API または Object Detection and Tracking API のガイドをご覧ください。
TensorFlow Lite コンバータを使用して作成されたモデル
既存の TensorFlow 画像分類モデルがある場合は、TensorFlow Lite コンバータを使用して変換できます。作成したモデルが下記の互換性要件を満たしていることを確認してください。
Android および iOS アプリで TensorFlow Lite モデルを使用する方法について詳しくは、Image Labeling API または Object Detection and Tracking API に関するガイドをご確認ください(ユースケースによって異なります)。
TensorFlow Lite モデルの互換性
事前トレーニング済みの TensorFlow Lite 画像分類モデルは、次の要件を満たしていれば使用できます。
テンソル
- モデルには、次の制約のある入力テンソルが 1 つだけ必要です。
- データは RGB ピクセル形式です。
- データは UINT8 または FLOAT32 型です。入力テンソルの型が FLOAT32 の場合は、Metadata をアタッチして NormalizationOptions を指定する必要があります。
- テンソルには 4 次元の BxHxWxC があります。ここでの
- B はバッチサイズです。1 でなければなりません(それより大規模なバッチに対する推論はサポートされていません)。
- W と H は入力幅と高さです。
- C は予想されるチャネルの数です。3 にする必要があります。
- モデルには、N クラスと 2 つまたは 4 つの次元を持つ少なくとも 1 つの出力テンソルが必要です。
- (1xN)
- (1x1x1xN)
- 現在、単一ヘッドモデルのみが完全にサポートされています。マルチヘッド モデルでは、予期しない結果が出力されることがあります。
メタデータ
TensorFlow Lite モデルにメタデータを追加するで説明されているように、TensorFlow Lite ファイルにメタデータを追加できます。
FLOAT32 入力テンソルが含まれるモデルを使用するには、メタデータに NormalizationOptions を指定する必要があります。
また、このメタデータを出力テンソルの TensorMetadata に接続することをおすすめします。
- 各出力クラスの名前を TENSOR_AXIS_LABELS 型の AssociatedFile として指定するラベルマップ(そうでない場合は、数値出力クラス インデックスのみが返されます)。
- デフォルトの信頼度のしきい値。これを下回ると、信頼度が低すぎると返されません。ProcessUnit として ScoreThresholdingOptions を指定します。