ML Kit AutoML Vision Edge 遷移指南

您可以將以 AutoML 訓練的圖片分類模型傳遞至自訂模型 API。您可以繼續在應用程式中將模型打包,或在 Firebase 控制台上代管模型做為自訂模型。AutoML 圖片標註 API 已從 ML Kit 中移除,因為它已完全由自訂模型圖片標註 API 取代。

API異動內容
AutoML Vision Edge 圖像標註 API 已完全由自訂模型圖像標註 API 取代。現有的 AutoML Vision Edge 圖片標籤 API 已移除。

如果您目前是使用 AutoML Vision Edge API 的機器學習套件使用者,請按照 Android 和 iOS 的遷移操作說明操作。

常見問題

異動原因

這有助於簡化機器學習套件 API,並讓您更輕鬆地將機器學習套件整合至應用程式。有了這項變更,您就能以與自訂模型完全相同的方式使用以 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 方法的幾個範例:

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 方法的範例:

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 CocoaPod 的依附元件:

功能舊 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 方法的範例:

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 方法的幾個範例:

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];