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. Nadal możesz połączyć model w aplikacji lub hostować go w konsoli Firebase jako model niestandardowy. Interfejs AutoML Image labeling API został usunięty z ML Kit, ponieważ zastąpił go interfejs Custom Model Image Labeling API.

APICo się zmienia?
Interfejs API etykietowania obrazów w AutoML Vision Edge Została ona w pełni zastąpiona interfejsem API do dodawania etykiet do obrazów w modelu niestandardowym. Istniejący interfejs API etykietowania obrazów AutoML Vision Edge został usunięty.

Jeśli jesteś obecnie użytkownikiem ML Kit i korzystasz z interfejsu AutoML Vision Edge API, postępuj zgodnie z instrukcjami migracji dotyczącymi Androida i iOS.

Najczęstsze pytania

Dlaczego wprowadzamy tę zmianę?

Pomoże to uprościć interfejsy ML Kit API i ułatwić integrację ML Kit z aplikacją. Dzięki tej zmianie możesz używać modelu wytrenowanego przez AutoML dokładnie tak samo jak modelu niestandardowego. Oprócz funkcji oznaczania obrazów etykietami, które obecnie obsługujemy, możesz też korzystać z modeli wytrenowanych z użyciem AutoML do wykrywania i śledzenia obiektów. Ponadto interfejs API modelu niestandardowego obsługuje zarówno modele z osadzoną w metadanych mapą etykiet, jak i modele z osobnymi plikami manifestu i etykietami.

Jakie korzyści płyną z przejścia na nowy pakiet SDK?

  • Nowe funkcje: możliwość korzystania z modeli wytrenowanych przez AutoML do oznaczania obrazów 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 importowanie Gradle

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

FunkcjaStare artefaktyNowy artefakt
Oznaczanie obrazów etykietami 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 AutoML przy zdalnym pobieraniu modelu 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 Twoje zajęcia znajdują 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

W kodzie wprowadzono niewiele zmian:

  • LocalModel można teraz zainicjować ścieżką pliku modelu (jeśli model zawiera metadane zawierające mapę etykiet) lub ścieżką pliku manifestu modelu (jeśli plik manifestu, model i etykiety znajdują się w osobnych plikach).
  • Możesz zdalnie hostować model niestandardowy za pomocą konsoli Firebase i zainicjować CustomRemoteModel za pomocą FirebaseModelSource.

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

Stara wersja

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

Nowość

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 w Javie:

Stara wersja

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

Nowość

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

  • Wymagany jest format Xcode w wersji 13.2.1 lub nowszej.

Krok 1. Zaktualizuj Cocoapods

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

FunkcjaStare nazwy podówNazwy nowych podów
Oznaczanie obrazów etykietami AutoML bez zdalnego pobierania modelu GoogleMLKit/ImageLabelingAutoML GoogleMLKit/ImageLabelingCustom
Oznaczanie obrazów etykietami AutoML przy zdalnym pobieraniu modelu GoogleMLKit/ImageLabelingAutoML
GoogleMLKit/LinkFirebase
GoogleMLKit/ImageLabelingCustom
GoogleMLKit/LinkFirebase

Krok 2. Zaktualizuj nazwy zajęć

Jeśli Twoje zajęcia znajdują 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

W kodzie wprowadzono niewiele zmian:

  • LocalModel można teraz zainicjować ścieżką pliku modelu (jeśli model zawiera metadane zawierające mapę etykiet) lub ścieżką pliku manifestu modelu (jeśli plik manifestu, model i etykiety znajdują się w osobnych plikach).
  • Możesz zdalnie hostować model niestandardowy za pomocą konsoli Firebase i zainicjować CustomRemoteModel za pomocą FirebaseModelSource.

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

Stara wersja

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

Nowość

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:

Stara wersja

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

Nowość

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