ML Kit のすべての機能は、デフォルトで Google がトレーニングした ML モデル(ベースモデル)を使用します。このガイドはベースモデルにのみ適用されます。カスタムモデルに関するガイダンスについては、こちらをご覧ください。
ML Kit API のモデルは、次の 3 つの方法でインストールできます。
- バンドルなし: モデルは Google Play 開発者サービス経由でダウンロード、管理されます。
- バンドル: モデルはビルド時にアプリに静的にリンクされます。
- 動的にダウンロード: モデルはオンデマンドでダウンロードされます。
各 API でサポートされているインストール パス
次の表に、各 ML Kit 機能でサポートされているモデルのインストール パスを示します。
バンドル解除 | 一括販売 | 動的にダウンロード | |
Text recognition 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.3.0' // The latest version number of the API }
アプリを再ビルドします。
一部の API が動的にダウンロードされるモデルを提供している理由
ML Kit API の中には、バンドルに含めるモデル オプションが多すぎるものがあります。たとえば、デジタル インク認識は 300 以上の言語をサポートしていますが、インストール時にすべての言語を機能に含める必要はありません。そのために、3 つ目のインストール オプションが用意されています。このオプションでは、インストール後にモデルがオンデマンドでダウンロードされます。現在、このオプションはデジタル インク認識、翻訳、エンティティ抽出でのみ使用できます。