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 番目のインストール オプションが用意されています。このオプションでは、インストール後にモデルがオンデマンドでダウンロードされます。現在、このオプションはデジタルインク 認識、 翻訳、エンティティ 抽出でのみ使用できます。