Przewodnik po migracji do ML Kit AutoML Vision Edge

Do interfejsów API modeli niestandardowych możesz przekazać model klasyfikacji obrazów wytrenowany za pomocą AutoML. Możesz nadal dołączać model do aplikacji lub hostować go w konsoli Firebase jako model niestandardowy. Interfejs AutoML Image Labeling API 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 API do oznaczania obrazów etykietami AutoML Vision Edge Został on w pełni zastąpiony przez interfejs API do oznaczania obrazów etykietami za pomocą modelu niestandardowego. Istniejący interfejs API AutoML Vision Edge do oznaczania obrazów 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

Skąd ta zmiana?

Pomaga to uprościć interfejsy API ML Kit i ułatwia integrację ML Kit z aplikacją. Dzięki tej zmianie możesz używać modelu wytrenowanego za pomocą AutoML dokładnie w taki sam sposób jak modelu niestandardowego. Umożliwia też korzystanie z modeli wytrenowanych przez AutoML do wykrywania obiektów i śledzenia, a także do obsługiwanego przez nas oznaczania obrazów etykietami. Ponadto interfejs API modelu niestandardowego obsługuje zarówno modele z mapą etykiet umieszczoną w metadanych, jak i modele z osobnymi plikami manifestu i etykiet.

Jakie korzyści przyniesie mi przejście na nowy pakiet SDK?

  • Nowe funkcje: możliwość używania modeli wytrenowanych za pomocą AutoML do oznaczania obrazów etykietami oraz wykrywania i śledzenia obiektów, a także możliwość używania modeli z mapą etykiet umieszczoną 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.kts) zgodnie z tą tabelą:

FunkcjaStare artefaktyNowy artefakt
Etykietowanie obrazów AutoML bez zdalnego pobierania modelu com.google.mlkit:image-labeling-automl:16.2.1 com.google.mlkit:image-labeling-custom:16.0.0-beta5
Oznaczanie obrazów 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. Szczegółowe informacje znajdziesz w [przewodniku po migracji z Firebase ML do Cloud Storage][migrate-storage].

Krok 2. Zaktualizuj nazwy zajęć

Jeśli Twoje zajęcia znajdują się w tej tabeli, wprowadź wskazaną zmianę:

Stare zajęciaNowe 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.LocalModel
Aplikacja musi zawierać logikę umożliwiającą pobieranie modeli hostowanych zdalnie i inicjowanie 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 pliku manifestu modelu (jeśli plik manifestu, model i etykiety znajdują się w osobnych plikach).
  • Dodaj do aplikacji logikę, która będzie pobierać modele hostowane zdalnie do pamięci lokalnej i wczytywać je za pomocą LocalModel.

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

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 Javy:

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 dla cocoapods ML Kit na iOS w pliku Podfile aplikacji:

FunkcjaStare nazwy podówNazwy nowych podów
Etykietowanie obrazów AutoML bez zdalnego pobierania modelu GoogleMLKit/ImageLabelingAutoML GoogleMLKit/ImageLabelingCustom
Oznaczanie obrazów 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. Szczegółowe informacje znajdziesz w [przewodniku po migracji z Firebase ML do Cloud Storage][migrate-storage].

Krok 2. Zaktualizuj nazwy zajęć

Jeśli Twoje zajęcia znajdują się w tej tabeli, wprowadź wskazaną zmianę:

Swift

Stare zajęciaNowe zajęcia
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. Szczegółowe informacje znajdziesz w [przewodniku po migracji z Firebase ML do Cloud Storage][migrate-storage].
AutoMLImageLabelerOptions CustomImageLabelerOptions

Objective-C

Stare zajęciaNowe zajęcia
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. Szczegółowe informacje znajdziesz w [przewodniku po migracji z Firebase ML do Cloud Storage][migrate-storage].
MLKAutoMLImageLabelerOptions MLKCustomImageLabelerOptions
thought

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 pliku manifestu modelu (jeśli plik manifestu, model i etykiety znajdują się w osobnych plikach).
  • Dodaj do aplikacji logikę, która będzie pobierać modele hostowane zdalnie do pamięci lokalnej i wczytywać je za pomocą LocalModel.

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)

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