ML Kit AutoML Vision Edge 遷移指南

您可以將以 AutoML 訓練的圖片分類模型傳遞至自訂模型 API。您可以繼續將模型組合到應用程式內,也可以代管模型 做為自訂模型AutoML Image labeling API 已由自訂模型映像檔完全取代,因此已從 ML Kit 中移除 Labeling 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];