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