Przewodnik po migracji do ML Kit AutoML Vision Edge

Możesz przekazać wytrenowany z użyciem AutoML model klasyfikacji obrazów do interfejsów API modelu niestandardowego. Możesz nadal 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ł w pełni zastąpiony przez interfejs Custom Model Image Labeling API.

Interfejs APICo się zmienia?
Interfejs API do etykietowania obrazów AutoML Vision Edge Został on w pełni zastąpiony przez interfejs Custom Model Image Labeling API. Istniejący interfejs API do etykietowania obrazów AutoML Vision Edge został usunięty.

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

Najczęstsze pytania

Skąd ta zmiana?

Ułatwia to korzystanie z interfejsów API ML Kit i integrowanie ich z aplikacją. Dzięki tej zmianie możesz używać modelu wytrenowanego za pomocą AutoML w dokładnie taki sam sposób jak modelu niestandardowego. Umożliwia też korzystanie z wytrenowanych w AutoML modeli do wykrywania i śledzenia obiektów, a także do etykietowania obrazów, które obsługujemy. Interfejs API modelu niestandardowego obsługuje zarówno modele z mapą etykiet osadzoną 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 w AutoML do oznaczania obrazów 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 modułu (na poziomie aplikacji) (zwykle app/build.gradle.kts) zgodnie z tą tabelą:

FunkcjaStare artefaktyNowy artefakt
Automatyczne oznaczanie obrazów etykietami bez pobierania modelu zdalnego com.google.mlkit:image-labeling-automl:16.2.1 com.google.mlkit:image-labeling-custom:16.0.0-beta5
Automatyczne oznaczanie obrazów etykietami 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 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.LocalModel
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 zawiera metadane z mapą etykiet) lub ścieżki pliku manifestu modelu (jeśli plik manifestu, 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ą funkcji 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 przykłady 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

  • Wymagana jest wersja Xcode 13.2.1 lub nowsza.

Krok 1. Zaktualizuj Cocoapods

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

FunkcjaPoprzednie nazwy podówNazwy nowych podów
Automatyczne oznaczanie obrazów etykietami bez pobierania modelu zdalnego GoogleMLKit/ImageLabelingAutoML GoogleMLKit/ImageLabelingCustom
Automatyczne oznaczanie obrazów etykietami 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 Twoja klasa znajduje się w tej tabeli, wprowadź wskazaną zmianę:

Swift

Stara klasaNowe 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

Stara klasaNowe 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

Krok 3. Zaktualizuj nazwy metod

Wymaga to minimalnych zmian w kodzie:

  • LocalModel można teraz zainicjować za pomocą ścieżki modelu (jeśli model zawiera metadane z mapą etykiet) lub ścieżki pliku manifestu modelu (jeśli plik manifestu, 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ą funkcji 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 przykłady 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];