Przewodnik po migracji do ML Kit AutoML Vision Edge

Do modelu niestandardowego możesz przekazać model klasyfikacji obrazów wytrenowany przez AutoML API. Nadal możesz dołączać model do aplikacji lub hostować go w konsoli Firebase jako model niestandardowy. Interfejs API etykietowania obrazów AutoML został została usunięta z ML Kit, ponieważ została w pełni zastąpiona obrazem modelu niestandardowego Interfejs Labeling API.

Interfejs APICo się zmienia?
Interfejs API etykietowania obrazów w AutoML Vision Edge Został on całkowicie zastąpiony interfejsem 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 używasz obecnie ML Kit i interfejsu AutoML Vision Edge API: postępuj zgodnie z instrukcjami migracji w przypadku Androida lub iOS.

Najczęstsze pytania

Skąd ta zmiana?

Pomaga uprościć interfejsy ML Kit API i ułatwia integrację ML Kit do aplikacji. Dzięki tej zmianie możesz używać modelu wytrenowanego przez AutoML tak samo jak model niestandardowy. Umożliwia też korzystanie z modeli wytrenowanych przez AutoML do wykrywania i śledzenia obiektów, oprócz oznaczania obrazów obecnie obsługiwane. 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 płyną z przejścia na nowy pakiet SDK?

  • Nowe funkcje: możliwość korzystania z modeli wytrenowanych za pomocą 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 module (na poziomie aplikacji) plik Gradle (zwykle app/build.gradle) zgodnie z tym ustawieniem tabela:

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:

  • Element 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).
  • 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:

Stary

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:

Stary

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 dla deweloperów aplikacji na iOS

Wymagania wstępne

  • Wymagana jest wersja Xcode 13.2.1 lub nowsza.

Krok 1. Zaktualizuj Cocoapods

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

FunkcjaStare nazwy podNazwy nowych podów
Oznaczanie obrazów etykietami AutoML bez zdalnego pobierania modelu 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ę:

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

Wymaga to minimalnych zmian w kodzie:

  • Element 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).
  • 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:

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)

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:

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

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