ML Kit AutoML Vision Edge 遷移指南

您可以將以 AutoML 訓練的圖片分類模型傳送至自訂模型 API。您可以繼續在應用程式內整合模型,或是將模型以自訂模型的形式託管於 Firebase 控制台。AutoML 圖片標籤 API 已從 ML Kit 中移除,因為已完全替換為 Custom Model Image Labeling API。

API異動內容
AutoML Vision Edge 圖片標籤 API 並完全由「自訂模型圖片標籤 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 方法的範例:

舊優惠

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 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 方法:

舊優惠

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