Android での ML Kit モデルのインストール パス

ML Kit のすべての機能は、デフォルトで Google がトレーニングした ML モデル(ベースモデル)を使用します。このガイドはベースモデルにのみ適用されます。カスタムモデルに関するガイダンスについては、こちらをご覧ください。

ML Kit API のモデルは、次の 3 つの方法でインストールできます。

  1. バンドルなし: モデルは Google Play 開発者サービス経由でダウンロード、管理されます。
  2. バンドル: モデルはビルド時にアプリに静的にリンクされます。
  3. 動的にダウンロード: モデルはオンデマンドでダウンロードされます。

各 API でサポートされているインストール パス

次の表に、各 ML Kit 機能でサポートされているモデルのインストール パスを示します。

バンドル解除 一括販売 動的にダウンロード
Text recognition v2
顔検出
顔メッシュ検出
ポーズ検出
自撮りセグメンテーション
バーコード スキャン
画像のラベル付け
オブジェクトの検出とトラッキング
デジタルインク認識
ドキュメント スキャナ
件名のセグメンテーション
Google コードスキャナ
言語識別
翻訳
スマート リプライ
エンティティの抽出

API 固有のガイドには、特定の API で使用可能なインストール オプションが示されています。

インストール オプションの主な違い

バンドル解除 一括販売 動的にダウンロードされる
モデルはどこに保存されますか? Google Play 開発者サービスに保存され、このアプリで使用されるストレージにはカウントされません。 インストール後にアプリ固有のストレージに保存 モデルのダウンロード後にアプリ固有のストレージに保存
モデルサイズはアプリのサイズにどのように影響しますか? アプリのサイズに影響しない アプリのサイズに直接影響する アプリのサイズには影響しませんが、アプリ固有のストレージは増加します。
モデルはいつ更新されますか? 新しいバージョンがリリースされると自動的に更新されます。 モデルを更新するにはアプリを更新する必要があります モデルを更新するにはアプリを更新する必要があります
モデルはいつダウンロードされますか? モデルは使用前にダウンロードする必要があります アプリのインストール時にすべてのモデルと機能が含まれるため、すぐに使用できます。 モデルのダウンロード、更新、削除は、RemoteModelManager API を使用して手動で管理する必要があります。
モデルがデバイスから削除されるのはいつですか? Google Play 開発者サービスは、モデルに依存するすべてのアプリがアンインストールされた場合にのみ、モデルをストレージから削除します。 アプリがアンインストールされると、モデルはアプリ固有のストレージから削除されます。 アプリをアンインストールすると、ダウンロードしたモデルはアプリ固有のストレージから削除されます。

バンドルとバンドルなしを選択する方法

API がバンドル インストール オプションとバンドルなしインストール オプションの両方をサポートしている場合:

  • 次の優先事項がある場合は、バンドル オプションを使用します。

    • アプリのインストール直後に機能の完全な動作を実現する
    • アプリのインストール後にネットワーク接続なしで機能する機能
  • 優先度を設定する場合は、バンドルなしオプションを使用します。

    • アプリサイズの削減
    • Google Play 開発者サービスによるモデルの自動更新

モデルをダウンロードする方法

バンドルされていないモデル オプションを使用する場合は、モデルをデバイスにダウンロードする方法を指定できます。

  • インストール時のモデルのダウンロードを有効にするには、アプリの AndroidManifest.xml ファイルに宣言を追加します。たとえば、次のコード スニペットは、アプリが Play ストアからインストールされたら自動的にバーコード スキャン モデルをダウンロードするようにアプリを構成する方法を示しています。

    <application ...>
          ...
          <meta-data
              android:name="com.google.mlkit.vision.DEPENDENCIES"
              android:value="barcode" >
          <!-- To use multiple models: android:value="barcode,model2,model3" -->
    </application>
    
  • Google Play 開発者サービスの ModuleInstallClient API を使用して、明示的なダウンロードをリクエストできます。

  • インストール時のモデルのダウンロードを有効にしない、または明示的なダウンロードをリクエストしない場合は、この機能の初回実行時にモデルがダウンロードされます。ダウンロードが完了するまで、推論リクエストは失敗します。

モデルを更新する方法

バンドルモデルまたは動的にダウンロードされるモデル オプションを使用しているときにモデルを更新するには:

  1. 最新の ML Kit 特徴クライアント ライブラリを使用するようにアプリの Gradle ファイルを更新します。

    dependencies {
      implementation 'com.google.mlkit:barcode-scanning: 17.3.0' // The latest version number of the API
    }
    
  2. アプリを再ビルドします。

一部の API が動的にダウンロードされるモデルを提供している理由

ML Kit API の中には、バンドルに含めるモデル オプションが多すぎるものがあります。たとえば、デジタル インク認識300 以上の言語をサポートしていますが、インストール時にすべての言語を機能に含める必要はありません。そのために、3 つ目のインストール オプションが用意されています。このオプションでは、インストール後にモデルがオンデマンドでダウンロードされます。現在、このオプションはデジタル インク認識翻訳エンティティ抽出でのみ使用できます。