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 AutoML do etykietowania obrazów został usunięty z ML Kit, ponieważ został całkowicie zastąpiony przez interfejs Custom Model Image Labeling API.

Interfejs APICo się zmienia?
Interfejs API do etykietowania obrazów AutoML Vision Edge Został on całkowicie zastąpiony przez interfejs 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 korzystasz z ML Kit i interfejsu 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. Pozwala też używać 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 przejście 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 jest widoczna 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:

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

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

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

Przewodnik po migracji na iOS

Wymagania wstępne

  • Wymagana jest wersja Xcode 13.2.1 lub nowsza.

Krok 1. Zaktualizuj Cocoapods

Zaktualizuj zależności pakietu 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 jest widoczna w tej tabeli, wprowadź wskazaną zmianę:

Stara klasaNowe zajęcia
AutoMLImageLabelerLocalModel LocalModel
AutoMLImageLabelerRemoteModel CustomRemoteModel
AutoMLImageLabelerOptions CustomImageLabelerOptions
Stara klasaNowe zajęcia
MLKAutoMLImageLabelerLocalModel MLKLocalModel
MLKAutoMLImageLabelerRemoteModel MLKCustomRemoteModel
MLKAutoMLImageLabelerOptions MLKCustomImageLabelerOptions

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:

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

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

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