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

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

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

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

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

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

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

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

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

Unbundled(バンドル解除) バンドル 動的にダウンロードされた
モデルはどこに保存されますか? 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 つ目のインストール オプションが用意されています。現在、このオプションがあるのは、手書き文字認識翻訳エンティティ抽出のみです。