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.
API | Co 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ą:
Funkcja | Stare artefakty | Nowy 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 klasa | Nowe 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:
Funkcja | Stare nazwy podów | Nazwy 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 klasa | Nowe zajęcia |
---|---|
AutoMLImageLabelerLocalModel | LocalModel |
AutoMLImageLabelerRemoteModel | CustomRemoteModel |
AutoMLImageLabelerOptions | CustomImageLabelerOptions |
Objective-C
Stara klasa | Nowe 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];