ML Kit のすべての機能は、デフォルトで Google がトレーニングした機械学習モデル(基本モデル)を使用します。このガイドは、ベースモデルにのみ適用されます。カスタムモデルに関するガイダンスについては、こちらをご覧ください。
ML Kit API のモデルは、次の 3 つの方法のいずれかでインストールできます。
- バンドル解除: モデルは Google Play 開発者サービスを介してダウンロード、管理されます。
- バンドル: モデルは、ビルド時にアプリに静的にリンクされます。
- 動的にダウンロードされる: モデルはオンデマンドでダウンロードされます。
各 API でサポートされているインストール パス
次の表に、各 ML Kit 機能でサポートされているモデルのインストール パスを示します。
| バンドル解除 | バンドル | 動的にダウンロードされる | |
| テキスト認識 v2 | ✅ | ✅ | |
| 顔検出 | ✅ | ✅ | |
| フェイス メッシュ検出 | ✅ | ||
| 姿勢検出 | ✅ | ||
| 自撮りセグメンテーション | ✅ | ||
| バーコード スキャン | ✅ | ✅ | |
| 画像のラベル付け | ✅ | ✅ | |
| オブジェクト検出とトラッキング | ✅ | ||
| デジタルインク認識 | ✅ | ||
| ドキュメント スキャナ | ✅ | ||
| 被写体のセグメンテーション | ✅ | ||
| Google コードスキャナ | ✅ | ||
| 言語識別 | ✅ | ✅ | |
| 翻訳 | ✅ | ||
| スマート リプライ | ✅ | ✅ | |
| エンティティ抽出 | ✅ |
API 固有のガイドには、特定の API で使用可能なインストール オプションが記載されています。
インストール オプションの主な違い
| アンバンドル | バンドル | 動的にダウンロードされる | |
| モデルはどこに保存されますか? | Google Play 開発者サービスに存在し、このアプリが使用するストレージにはカウントされません。 | インストール後にアプリ固有のストレージに保存される | モデルのダウンロード後にアプリ固有のストレージに保存されます。 |
| モデルサイズはアプリサイズにどのように影響しますか? | アプリのサイズには影響しません。 | アプリのサイズに直接影響する | アプリのサイズには影響しませんが、アプリ固有のストレージが増加します。 |
| モデルはいつ更新されますか? | 新しいバージョンがリリースされると自動的に更新されます。 | モデルを更新するにはアプリを更新する必要があります | モデルを更新するにはアプリを更新する必要がある |
| モデルはいつダウンロードされますか? | モデルは使用前にダウンロードする必要があります | アプリのインストール時にすべてのモデルと機能が含まれるため、すぐに使用できます。 | モデルのダウンロード、更新、削除は、RemoteModelManager API を使用して手動で管理する必要があります。 |
| モデルはいつデバイスから削除されますか? | Google Play 開発者サービスは、モデルに依存するすべてのアプリがアンインストールされた場合にのみ、ストレージからモデルを削除します。 | アプリがアンインストールされると、モデルはアプリ固有のストレージから削除されます。 | ダウンロードしたモデルは、アプリがアンインストールされるとアプリ固有のストレージから削除されます。 |
バンドルとアンバンドルのどちらを選択するかの判断基準
API がバンドル インストール オプションとバンドルされていないインストール オプションの両方をサポートしている場合:
以下を優先する場合は、バンドル オプションを使用します。
- アプリのインストール直後にすべての機能を利用可能
- アプリのインストール後にネットワーク接続なしで機能する
以下を優先する場合は、アンバンドル オプションを使用します。
- アプリサイズの削減
- Google Play 開発者サービスによるモデルの自動更新
モデルをダウンロードする方法
バンドルされていないモデル オプションを使用する場合は、モデルをデバイスにダウンロードする方法を指定できます。
インストール時のモデルのダウンロードを有効にするには、アプリの
AndroidManifest.xmlファイルに宣言を追加します。たとえば、次のコード スニペットは、アプリが Google 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 を使用して、明示的なダウンロードをリクエストできます。
インストール時点でのモデルのダウンロードを有効にしない場合や、明示的なダウンロードをリクエストしない場合は、機能の初回実行時にモデルがダウンロードされます。ダウンロードが完了するまで、推論リクエストは失敗します。
モデルを更新する方法
バンドルモデルまたは動的にダウンロードされたモデルのオプションを使用しているときにモデルを更新するには:
最新の ML Kit 機能クライアント ライブラリを使用するようにアプリの Gradle ファイルを更新します。
dependencies { implementation 'com.google.mlkit:barcode-scanning: 17.3.0' // The latest version number of the API }アプリを再ビルドします。
一部の API が動的にダウンロードされたモデルを提供する理由
一部の ML Kit API には、バンドルするモデル オプションが多すぎます。たとえば、デジタルインク認識は 300 以上の言語をサポートしていますが、インストール時にすべての言語を機能に含める必要はありません。このため、3 つ目のインストール オプションが用意されています。このオプションでは、インストール後にモデルがオンデマンドでダウンロードされます。現在、このオプションがあるのは、デジタルインク認識、翻訳、エンティティ抽出のみです。