Przewodnik po migracji do ML Kit AutoML Vision Edge

Model klasyfikacji obrazów wytrenowany za pomocą AutoML możesz przekazać do interfejsów API modelu niestandardowego. Nadal możesz dołączać model do aplikacji lub hostować go w konsoli Firebase jako model niestandardowy. Interfejs API do etykietowania obrazów AutoML został usunięty z ML Kit, ponieważ został całkowicie zastąpiony interfejsem API do etykietowania obrazów za pomocą niestandardowego modelu.

Interfejs APICo się zmienia?
Interfejs API do etykietowania obrazów AutoML Vision Edge Został on całkowicie zastąpiony interfejsem API do oznaczania obrazów za pomocą niestandardowego modelu. Istniejący interfejs API do etykietowania obrazów AutoML Vision Edge został usunięty.

Jeśli obecnie używasz pakietu ML Kit z interfejsem AutoML Vision Edge API, postępuj zgodnie z instrukcjami migracji na Androida i iOS.

Najczęstsze pytania

Skąd ta zmiana?

Pomaga to uprościć interfejsy API ML Kit i ułatwia integrację ML Kit w aplikacji. Dzięki tej zmianie możesz używać modelu wytrenowanego przez AutoML w identyczny sposób jak modelu niestandardowego. Umożliwia też używanie modeli wytrenowanych za pomocą AutoML do wykrywania i śledzenia obiektów, a także do etykietowania obrazów, które obecnie obsługujemy. Ponadto interfejs API modelu niestandardowego obsługuje zarówno modele z mapą etykiet wbudowaną w metadane, jak i modele z osobnymi plikami manifestu i etykiet.

Jakie korzyści przynosi migracja na nowy pakiet SDK?

  • Nowe funkcje: możliwość korzystania z modeli wytrenowanych przez AutoML do etykietowania obrazów oraz wykrywania i śledzenia obiektów, a także możliwość korzystania z modeli z mapą etykiet zawartą w metadanych.

Przewodnik po migracji na Androida

Krok 1. Zaktualizuj importy Gradle

Zaktualizuj zależności bibliotek ML Kit na Androida w pliku Gradle modułu (na poziomie aplikacji) (zwykle app/build.gradle) zgodnie z tabelą:

FunkcjaStare artefaktyNowy artefakt
Etykietowanie obrazów za pomocą AutoML bez pobierania modelu zdalnego com.google.mlkit:image-labeling-automl:16.2.1 com.google.mlkit:image-labeling-custom:16.0.0-beta5
Etykietowanie obrazów za pomocą AutoML z pobieraniem modelu zdalnego 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

Krok 2. Zaktualizuj nazwy zajęć

Jeśli Twoja klasa znajduje się w tej tabeli, wprowadź wskazaną zmianę:

Stara klasaNowe zajęcia
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

Krok 3. Zaktualizuj nazwy metod

Wymaga to minimalnych zmian w kodzie:

  • LocalModel może teraz być inicjowany za pomocą ścieżki pliku modelu (jeśli model ma metadane zawierające mapę etykiet) lub ścieżki pliku manifestu modelu (jeśli manifest, model i etykiety znajdują się w osobnych plikach).
  • Model niestandardowy możesz hostować zdalnie w konsoli Firebase i inicjializować CustomRemoteModel za pomocą FirebaseModelSource.

Oto kilka przykładów starych i nowych metod Kotlina:

Stary

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()

Nowe

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()

Oto kilka przykładów starych i nowych metod Javy:

Stary

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();

Nowe

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();

Przewodnik po migracji dla deweloperów aplikacji na iOS

Wymagania wstępne

  • Wymagana jest wersja Xcode 13.2.1 lub nowsza.

Krok 1. Zaktualizuj Cocoapods

Zaktualizuj zależności pakietu cocoapods ML Kit na iOS w pliku Podfile aplikacji:

FunkcjaStare nazwy podNazwa(-i) nowego pod
Etykietowanie obrazów za pomocą AutoML bez pobierania modelu zdalnego GoogleMLKit/ImageLabelingAutoML GoogleMLKit/ImageLabelingCustom
Etykietowanie obrazów za pomocą AutoML z pobieraniem modelu zdalnego GoogleMLKit/ImageLabelingAutoML
GoogleMLKit/LinkFirebase
GoogleMLKit/ImageLabelingCustom
GoogleMLKit/LinkFirebase

Krok 2. Zaktualizuj nazwy zajęć

Jeśli Twoja klasa znajduje się w tej tabeli, wprowadź wskazaną zmianę:

Swift

Stara klasaNowe zajęcia
AutoMLImageLabelerLocalModel LocalModel
AutoMLImageLabelerRemoteModel CustomRemoteModel
AutoMLImageLabelerOptions CustomImageLabelerOptions

Objective-C

Stara klasaNowe zajęcia
MLKAutoMLImageLabelerLocalModel MLKLocalModel
MLKAutoMLImageLabelerRemoteModel MLKCustomRemoteModel
MLKAutoMLImageLabelerOptions MLKCustomImageLabelerOptions

Objective-C

Krok 3. Zaktualizuj nazwy metod

Wymaga to minimalnych zmian w kodzie:

  • LocalModel może teraz być inicjowany za pomocą ścieżki pliku modelu (jeśli model ma metadane zawierające mapę etykiet) lub ścieżki pliku manifestu modelu (jeśli manifest, model i etykiety znajdują się w osobnych plikach).
  • Model niestandardowy możesz hostować zdalnie w konsoli Firebase i inicjializować CustomRemoteModel za pomocą FirebaseModelSource.

Oto kilka przykładów starych i nowych metod Swift:

Stary

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

Nowe

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)

Oto kilka przykładów starych i nowych metod Objective-C:

Stary

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

Nowe

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