Przewodnik po migracji do ML Kit AutoML Vision Edge

Do interfejsów API modeli niestandardowych możesz przekazać model klasyfikacji obrazów wytrenowany przez AutoML. Możesz nadal dołączać model do aplikacji lub hostować go w konsoli Firebase jako model niestandardowy. Interfejs AutoML API do oznaczania zdjęć etykietami został usunięty z ML Kit, ponieważ został w pełni zastąpiony przez interfejs Custom Model Image Labeling API.

Interfejs APICo się zmienia?
Interfejs AutoML Vision Edge API do oznaczania zdjęć etykietami Został w pełni zastąpiony przez interfejs Custom Model Image Labeling API. Dotychczasowy interfejs AutoML Vision Edge API do oznaczania zdjęć etykietami został usunięty.

Jeśli używasz interfejsu AutoML Vision Edge API, postępuj zgodnie z instrukcjami migracji na Androida i iOS.

Najczęstsze pytania

Dlaczego wprowadzamy tę zmianę?

Ułatwia to uproszczenie interfejsów ML Kit API i integrację ML Kit z aplikacją. Dzięki tej zmianie możesz używać modelu wytrenowanego przez AutoML w taki sam sposób jak modelu niestandardowego. Umożliwia też korzystanie z modeli wytrenowanych przez AutoML do wykrywania i śledzenia obiektów oraz oznaczania zdjęć etykietami. Ponadto interfejs API modeli niestandardowych obsługuje zarówno modele z mapą etykiet osadzoną w metadanych, jak i modele z oddzielnymi plikami manifestu i etykiet.

Jakie korzyści przyniesie mi migracja do nowego pakietu SDK?

  • Nowe funkcje: możliwość używania modeli wytrenowanych przez AutoML do oznaczania zdjęć etykietami oraz wykrywania i śledzenia obiektów, a także możliwość używania modeli z mapą etykiet osadzoną w metadanych.

Przewodnik po migracji na Androida

Krok 1. Zaktualizuj importy Gradle

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

FunkcjaStare artefaktyNowy artefakt
Oznaczanie zdjęć etykietami 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
Oznaczanie zdjęć etykietami 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
Aby hostować i pobierać modele niestandardowe, przenieś je do Cloud Storage i dodaj w aplikacji logikę pobierania, aby wczytywać je za pomocą LocalModel. Więcej informacji znajdziesz w [przewodniku po migracji z Firebase ML do Cloud Storage][migrate-storage].

Krok 2. Zaktualizuj nazwy klas

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

Stara klasaNowa klasa
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.LocalModel
Twoja aplikacja musi zawierać logikę pobierania modeli hostowanych zdalnie i inicjowania ich za pomocą LocalModel.
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żna teraz zainicjować za pomocą ścieżki modelu (jeśli model ma metadane zawierające mapę etykiet) lub ścieżki manifestu modelu (jeśli manifest, model i etykiety znajdują się w osobnych plikach).
  • Dodaj do aplikacji logikę pobierania modeli hostowanych zdalnie do pamięci lokalnej i wczytywania ich za pomocą LocalModel.

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

Stary

val localModel = AutoMLImageLabelerLocalModel.Builder()
    .setAssetFilePath("automl/manifest.json")
    // or .setAbsoluteFilePath(absolute 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()

Nowy

// Similar process for both local and remotely-hosted models (that have been downloaded)
val localModel = LocalModel.Builder()
    .setAssetManifestFilePath("automl/manifest.json")
    // or .setAbsoluteManifestFilePath(absolute path to manifest file)
    .build()

val optionsWithLocalModel = CustomImageLabelerOptions.Builder(localModel)
    .setConfidenceThreshold(0.5f)
    .build()

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

Stary

AutoMLImageLabelerLocalModel localModel =
    new AutoMLImageLabelerLocalModel.Builder()
        .setAssetFilePath("automl/manifest.json")
        // or .setAbsoluteFilePath(absolute 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();

Nowy

// Similar process for local models and remotely-hosted models (that have been downloaded)
LocalModel localModel =
    new LocalModel.Builder()
        .setAssetManifestFilePath("automl/manifest.json")
        // or .setAbsoluteManifestFilePath(absolute path to manifest file)
        .build();
CustomImageLabelerOptions optionsWithLocalModel =
    new CustomImageLabelerOptions.Builder(localModel)
        .setConfidenceThreshold(0.5f)
        .build();

Przewodnik po migracji na iOS

Wymagania wstępne

  • Wymagany jest Xcode w wersji 13.2.1 lub nowszej.

Krok 1. Zaktualizuj Cocoapods

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

FunkcjaStare nazwy podówNowe nazwy podów
Oznaczanie zdjęć etykietami za pomocą AutoML bez pobierania modelu zdalnego GoogleMLKit/ImageLabelingAutoML GoogleMLKit/ImageLabelingCustom
Oznaczanie zdjęć etykietami za pomocą AutoML z pobieraniem modelu zdalnego GoogleMLKit/ImageLabelingAutoML
GoogleMLKit/LinkFirebase
GoogleMLKit/ImageLabelingCustom
Aby hostować i pobierać modele niestandardowe, przenieś je do Cloud Storage i dodaj w aplikacji logikę pobierania, aby wczytywać je jako modele lokalne. Więcej informacji znajdziesz w przewodniku po migracji z Firebase ML do Cloud Storage][migrate-storage].

Krok 2. Zaktualizuj nazwy klas

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

Swift

Stara klasaNowa klasa
AutoMLImageLabelerLocalModel LocalModel
AutoMLImageLabelerRemoteModel LocalModel
Aby hostować i pobierać modele niestandardowe, przenieś je do Cloud Storage i dodaj w aplikacji logikę pobierania, aby wczytywać je jako modele lokalne. Więcej informacji znajdziesz w przewodniku po migracji z Firebase ML do Cloud Storage][migrate-storage].
AutoMLImageLabelerOptions CustomImageLabelerOptions

Objective-C

Stara klasaNowa klasa
MLKAutoMLImageLabelerLocalModel MLKLocalModel
MLKAutoMLImageLabelerRemoteModel MLKLocalModel
Aby hostować i pobierać modele niestandardowe, przenieś je do Cloud Storage i dodaj w aplikacji logikę pobierania, aby wczytywać je jako modele lokalne. Więcej informacji znajdziesz w przewodniku po migracji z Firebase ML do Cloud Storage][migrate-storage].
MLKAutoMLImageLabelerOptions MLKCustomImageLabelerOptions

Krok 3. Zaktualizuj nazwy metod

Wymaga to minimalnych zmian w kodzie:

  • LocalModel można teraz zainicjować za pomocą ścieżki modelu (jeśli model ma metadane zawierające mapę etykiet) lub ścieżki manifestu modelu (jeśli manifest, model i etykiety znajdują się w osobnych plikach).
  • Dodaj do aplikacji logikę pobierania modeli hostowanych zdalnie do pamięci lokalnej i wczytywania ich za pomocą LocalModel.

Oto kilka przykładów starych i nowych metod w 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)

Nowy

// Similar process for local models and remotely-hosted models (that have been downloaded)
guard let localModel = LocalModel(manifestPath: "automl/manifest.json") else { return }
let optionsWithLocalModel = CustomImageLabelerOptions(localModel: localModel)

Oto kilka przykładów starych i nowych metod w 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];

Nowy

// Similar process for local models and remotely-hosted models (that have been downloaded)
MLKLocalModel *localModel =
    [[MLKLocalModel alloc] initWithManifestPath:"automl/manifest.json"];
MLKCustomImageLabelerOptions *optionsWithLocalModel =
    [[MLKCustomImageLabelerOptions alloc] initWithLocalModel:localModel];