ML Kit のすべての機能は、デフォルトで Google トレーニング済みの ML モデル(ベースモデル)を使用します。このガイドは、ベースモデルにのみ適用されます。カスタムモデルのガイダンスについては、こちらをご覧ください。
ML Kit API のモデルは、次の 3 つの方法のいずれかでインストールできます。
- バンドル解除: モデルは Google Play 開発者サービス経由でダウンロードおよび管理されます。
- バンドル: モデルはビルド時にアプリに静的にリンクされます。
- 動的にダウンロード: モデルはオンデマンドでダウンロードされます。
各 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 を使用して、明示的なダウンロードをリクエストできます。
インストール時点でのモデルのダウンロードを有効にしない場合や、明示的なダウンロードをリクエストしない場合は、機能の初回実行時にモデルがダウンロードされます。ダウンロードが完了するまで、推論リクエストは失敗します。
モデルを更新する方法
バンドルされたモデルまたは動的にダウンロードされたモデル オプションを使用している場合にモデルを更新するには:
最新の 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 つ目のインストール オプションが用意されています。現在、このオプションがあるのは、手書き文字認識、翻訳、エンティティ抽出のみです。