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 番目のインストール オプションを用意しています。現時点では、このオプションはデジタル インク認識、翻訳、エンティティ抽出のみに対応しています。