ML Kit のすべての機能は、Google がトレーニングした ML モデル(ベースモデル)をデフォルトで使用します。このガイドは、ベースモデルにのみ適用されます。カスタムモデルのガイダンスについては、こちらをご覧ください。
ML Kit API のモデルは、次の 3 つの方法のいずれかでインストールできます。
- バンドルされていない: モデルは Google Play 開発者サービスを介してダウンロード、管理されます。
- バンドル: モデルはビルド時にアプリに静的にリンクされます。
- 動的にダウンロード: モデルはオンデマンドでダウンロードされます。
各 API でサポートされているインストール パス
次の表に、各 ML Kit 機能でサポートされているモデルのインストール パスを示します。
バンドルなし | バンドル | 動的にダウンロードされる | |
テキスト認識 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 を使用して、明示的なダウンロードをリクエストできます。
インストール時のモデルのダウンロードを有効にしない場合、または明示的なダウンロードをリクエストしない場合は、機能の初回実行時にモデルがダウンロードされます。ダウンロードが完了するまで、推論リクエストは失敗します。
モデルを更新する方法
バンドルされたモデルまたは動的にダウンロードされるモデル オプションを使用している場合にモデルを更新するには:
最新の ML Kit 機能のクライアント ライブラリを使用するように、アプリの Gradle ファイルを更新します。
dependencies { implementation 'com.google.mlkit:barcode-scanning: 17.2.0' // The latest version number of the API }
アプリを再ビルドします。
一部の API でモデルが動的にダウンロードされる理由
一部の ML Kit API に含まれるモデル オプションが多すぎるため、バンドルできません。たとえば、デジタルインク認識は 300 以上の言語をサポートしているため、インストール時にすべての言語を機能に含める必要はありません。この目的のために、Google では 3 つ目のインストール オプションを用意しています。このオプションでは、インストール後にモデルがオンデマンドでダウンロードされます。現在、このオプションを利用できるのは、デジタルインク認識、翻訳、エンティティ抽出のみです。