すべての 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
ファイルに宣言を追加します。たとえば、以下のコード スニペットは、アプリが 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.1.0' // The latest version number of the API }
アプリを再ビルドします。
一部の API が動的にダウンロードされるモデルを提供する理由
一部の ML Kit API には、バンドルするモデルオプションが多すぎる場合があります。たとえば、デジタルインク認識は 300 以上の言語をサポートしており、インストール時にすべての言語を機能に必ずしも含める必要はありません。この目的のため、3 番目のインストール オプションが用意されており、インストール後にモデルをオンデマンドでダウンロードできます。現在、このオプションはデジタルインク認識、翻訳、エンティティの抽出のみです。