ML Kit AutoML Vision Edge 移行ガイド

AutoML でトレーニングされた画像分類モデルをカスタムモデル API に渡すことができます。引き続き、モデルをアプリ内にバンドルするか、Firebase コンソールでカスタムモデルとしてホストすることができます。AutoML 画像ラベル付け API は、カスタムモデル画像ラベル付け API に完全に置き換えられたため、ML Kit から削除されました。

API変更内容
AutoML Vision Edge 画像ラベル付け API Custom Model 画像ラベル付け API に完全に置き換えられました。既存の AutoML Vision Edge 画像ラベル付け API が削除されました。

現在、AutoML Vision Edge API を使用している ML Kit ユーザーは、Android と iOS の移行手順に沿って移行してください。

よくある質問

変更の理由

これにより、ML Kit API が簡素化され、ML Kit をアプリに簡単に統合できるようになります。この変更により、カスタムモデルとまったく同じ方法で AutoML でトレーニングされたモデルを使用できます。また、現在サポートされている画像ラベル付けに加えて、オブジェクト検出とトラッキングに AutoML でトレーニングされたモデルを使用することもできます。また、カスタムモデル API は、メタデータにラベルマップが埋め込まれたモデルと、マニフェスト ファイルとラベル ファイルが別になっているモデルの両方をサポートしています。

新しい SDK に移行するとどのようなメリットがありますか?

  • 新機能: AutoML でトレーニングしたモデルを画像ラベル付けとオブジェクト検出 / トラッキングの両方に使用できる機能と、メタデータにラベルマップが埋め込まれたモデルを使用できる機能。

Android 移行ガイド

ステップ 1: Gradle のインポートを更新する

次の表に従って、モジュール(アプリレベル)の Gradle ファイル(通常は app/build.gradle)で ML Kit Android ライブラリの依存関係を更新します。

機能古いアーティファクト新しいアーティファクト
リモートモデルのダウンロードなしの画像ラベル付け AutoML com.google.mlkit:image-labeling-automl:16.2.1 com.google.mlkit:image-labeling-custom:16.0.0-beta5
リモート モデルのダウンロードによる画像ラベル付け AutoML com.google.mlkit:image-labeling-automl:16.2.1
com.google.mlkit:linkfirebase:16.0.1
com.google.mlkit:image-labeling-custom:16.0.0-beta5
com.google.mlkit:linkfirebase:17.0.0

ステップ 2: クラス名を更新する

この表にクラスが表示されている場合は、示されている変更を行います。

以前のクラス新しいクラス
com.google.mlkit.vision.label.automl.AutoMLImageLabelerLocalModel com.google.mlkit.common.model.LocalModel
com.google.mlkit.vision.label.automl.AutoMLImageLabelerRemoteModel com.google.mlkit.common.model.CustomRemoteModel
com.google.mlkit.vision.label.automl.AutoMLImageLabelerOptions com.google.mlkit.vision.label.custom.CustomImageLabelerOptions

ステップ 3: メソッド名を更新する

コードの変更は最小限です。

  • LocalModel は、モデル ファイルパス(モデルにラベルマップを含むメタデータがある場合)またはモデル マニフェスト ファイルパス(マニフェスト、モデル、ラベルが別々のファイルにある場合)で初期化できるようになりました。
  • Firebase コンソールを使用してカスタムモデルをリモートでホストし、FirebaseModelSource を使用して CustomRemoteModel を初期化できます。

以下に、古い Kotlin メソッドと新しい Kotlin メソッドの例を示します。

val localModel = AutoMLImageLabelerLocalModel.Builder()
    .setAssetFilePath("automl/manifest.json")
    // or .setAbsoluteFilePath(absolute file path to manifest file)
    .build()

val optionsWithLocalModel = AutoMLImageLabelerOptions.Builder(localModel)
    .setConfidenceThreshold(0.5f)
    .build()

val remoteModel = AutoMLImageLabelerRemoteModel.Builder("automl_remote_model")
    .build()

val optionsWithRemoteModel = AutoMLImageLabelerOptions.Builder(remoteModel)
    .build()

新規

val localModel = LocalModel.Builder()
    .setAssetManifestFilePath("automl/manifest.json")
    // or .setAbsoluteManifestFilePath(absolute file path to manifest file)
    .build()

val optionsWithLocalModel = CustomImageLabelerOptions.Builder(localModel)
    .setConfidenceThreshold(0.5f)
    .build()

val firebaseModelSource = FirebaseModelSource.Builder("automl_remote_model")
    .build()
val remoteModel = CustomRemoteModel.Builder(firebaseModelSource).build()
val optionsWithRemoteModel = CustomImageLabelerOptions.Builder(remoteModel)
    .build()

古い Java メソッドと新しい Java メソッドの例を次に示します。

AutoMLImageLabelerLocalModel localModel =
    new AutoMLImageLabelerLocalModel.Builder()
        .setAssetFilePath("automl/manifest.json")
        // or .setAbsoluteFilePath(absolute file path to manifest file)
        .build();
AutoMLImageLabelerOptions optionsWithLocalModel =
    new AutoMLImageLabelerOptions.Builder(localModel)
        .setConfidenceThreshold(0.5f)
        .build();
AutoMLImageLabelerRemoteModel remoteModel =
    new AutoMLImageLabelerRemoteModel.Builder("automl_remote_model").build();
AutoMLImageLabelerOptions optionsWithRemoteModel =
    new AutoMLImageLabelerOptions.Builder(remoteModel)
        .build();

新規

LocalModel localModel =
    new LocalModel.Builder()
        .setAssetManifestFilePath("automl/manifest.json")
        // or .setAbsoluteManifestFilePath(absolute file path to manifest file)
        .build()
CustomImageLabelerOptions optionsWithLocalModel =
    new CustomImageLabelerOptions.Builder(localModel)
        .setConfidenceThreshold(0.5f)
        .build();
FirebaseModelSource firebaseModelSource =
    new FirebaseModelSource.Builder("automl_remote_model").build();
CustomRemoteModel remoteModel =
    new CustomRemoteModel.Builder(firebaseModelSource).build();
CustomImageLabelerOptions optionsWithRemoteModel =
    new CustomImageLabelerOptions.Builder(remoteModel).build();

iOS 向け移行ガイド

前提条件

  • Xcode 13.2.1 以降が必要です。

ステップ 1: Cocoapods を更新する

アプリの Podfile で ML Kit iOS cocoapods の依存関係を更新します。

機能以前の Pod 名新しい Pod 名
リモートモデルのダウンロードなしの画像ラベル付け AutoML GoogleMLKit/ImageLabelingAutoML GoogleMLKit/ImageLabelingCustom
リモート モデルのダウンロードによる画像ラベル付け AutoML GoogleMLKit/ImageLabelingAutoML
GoogleMLKit/LinkFirebase
GoogleMLKit/ImageLabelingCustom
GoogleMLKit/LinkFirebase

ステップ 2: クラス名を更新する

この表にクラスが表示されている場合は、示されている変更を行います。

Swift

以前のクラス新しいクラス
AutoMLImageLabelerLocalModel LocalModel
AutoMLImageLabelerRemoteModel CustomRemoteModel
AutoMLImageLabelerOptions CustomImageLabelerOptions

Objective-C

以前のクラス新しいクラス
MLKAutoMLImageLabelerLocalModel MLKLocalModel
MLKAutoMLImageLabelerRemoteModel MLKCustomRemoteModel
MLKAutoMLImageLabelerOptions MLKCustomImageLabelerOptions

Objective-C

ステップ 3: メソッド名を更新する

コードの変更は最小限です。

  • LocalModel は、モデル ファイルパス(モデルにラベルマップを含むメタデータがある場合)またはモデル マニフェスト ファイルパス(マニフェスト、モデル、ラベルが別々のファイルにある場合)で初期化できるようになりました。
  • Firebase コンソールを使用してカスタムモデルをリモートでホストし、FirebaseModelSource を使用して CustomRemoteModel を初期化できます。

以下に、古い Swift メソッドと新しい Swift メソッドの例を示します。

let localModel =
    AutoMLImageLabelerLocalModel(manifestPath: "automl/manifest.json")
let optionsWithLocalModel = AutoMLImageLabelerOptions(localModel: localModel)
let remoteModel = AutoMLImageLabelerRemoteModel(name: "automl_remote_model")
let optionsWithRemoteModel = AutoMLImageLabelerOptions(remoteModel: remoteModel)

新規

guard let localModel = LocalModel(manifestPath: "automl/manifest.json") else { return }
let optionsWithLocalModel = CustomImageLabelerOptions(localModel: localModel)
let firebaseModelSource = FirebaseModelSource(name: "automl_remote_model")
let remoteModel = CustomRemoteModel(remoteModelSource: firebaseModelSource)
let optionsWithRemoteModel = CustomImageLabelerOptions(remoteModel: remoteModel)

古い Objective-C メソッドと新しい Objective-C メソッドの例を以下に示します。

MLKAutoMLImageLabelerLocalModel *localModel =
    [[MLKAutoMLImageLabelerLocalModel alloc]
        initWithManifestPath:"automl/manifest.json"];
MLKAutoMLImageLabelerOptions *optionsWithLocalModel =
    [[MLKAutoMLImageLabelerOptions alloc] initWithLocalModel:localModel];
MLKAutoMLImageLabelerRemoteModel *remoteModel =
    [[MLKAutoMLImageLabelerRemoteModel alloc]
        initWithManifestPath:"automl/manifest.json"];
MLKAutoMLImageLabelerOptions *optionsWithRemoteModel =
    [[MLKAutoMLImageLabelerOptions alloc] initWithRemoteModel:remoteModel];

新規

MLKLocalModel *localModel =
    [[MLKLocalModel alloc] initWithManifestPath:"automl/manifest.json"];
MLKCustomImageLabelerOptions *optionsWithLocalModel =
    [[MLKCustomImageLabelerOptions alloc] initWithLocalModel:localModel];
MLKFirebaseModelSource *firebaseModelSource =
    [[MLKFirebaseModelSource alloc] initWithName:@"automl_remote_model"];
MLKCustomRemoteModel *remoteModel =
    [[MLKCustomRemoteModel alloc] initWithRemoteModelSource:firebaseModelSource];
MLKCustomImageLabelerOptions *optionsWithRemoteModel =
    [[MLKCustomImageLabelerOptions alloc] initWithRemoteModel:remoteModel];