Puoi passare un modello di classificazione delle immagini addestrato con AutoML alle API del modello personalizzato. Puoi continuare a includere il modello all'interno della tua app o ospitarlo nella Console Firebase come modello personalizzato. L'API di etichettatura delle immagini AutoML è stata rimossa da ML Kit perché è stata completamente sostituita dall'API di etichettatura delle immagini dei modelli personalizzati.
API | Che cosa cambia? |
---|---|
API di etichettatura delle immagini AutoML Vision Edge | È completamente sostituita dall'API di etichettatura delle immagini del modello personalizzato. L'API di etichettatura delle immagini AutoML Vision Edge esistente viene rimossa. |
Se al momento sei un utente di ML Kit che utilizza l'API AutoML Vision Edge, segui le istruzioni per la migrazione per Android e iOS.
Domande frequenti
Perché questa modifica?
Contribuisce a semplificare le API ML Kit e a semplificare l'integrazione di ML Kit nella tua app. Con questa modifica, puoi utilizzare un modello addestrato con AutoML nello stesso modo esatto in cui utilizzi un modello personalizzato. Inoltre, ti consente di utilizzare i modelli addestrati con AutoML per il rilevamento e il monitoraggio degli oggetti, oltre all'etichettatura delle immagini attualmente supportata. Inoltre, l'API del modello personalizzato supporta sia i modelli con mappa di etichette incorporata nei metadati sia i modelli con file manifest e etichette separati.
Quali sono i vantaggi della migrazione al nuovo SDK?
- Nuove funzionalità: possibilità di utilizzare i modelli addestrati con AutoML sia per l'etichettatura delle immagini sia per il rilevamento e il monitoraggio degli oggetti, nonché la possibilità di utilizzare i modelli con mappa di etichette incorporata nei metadati.
Guida alla migrazione per Android
Passaggio 1: aggiorna le importazioni di Gradle
Aggiorna le dipendenze per le librerie Android di ML Kit nel file Gradle del tuo modulo (a livello di app) (di solito app/build.gradle
) in base alla tabella seguente:
Funzionalità | Artefatti precedenti | Nuovo artefatto |
---|---|---|
Etichettamento delle immagini AutoML senza download del modello da remoto | com.google.mlkit:image-labeling-automl:16.2.1 | com.google.mlkit:image-labeling-custom:16.0.0-beta5 |
Etichettamento delle immagini AutoML con il download del modello da remoto |
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 |
Passaggio 2: aggiorna i nomi dei corsi
Se il tuo corso è presente in questa tabella, apporta la modifica indicata:
Corso precedente | Nuovo corso |
---|---|
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 |
Passaggio 3: aggiorna i nomi dei metodi
Sono necessarie modifiche minime al codice:
- Ora
LocalModel
può essere inizializzato con il percorso del file del modello (se il modello contiene metadati contenenti la mappa delle etichette) o con il percorso del file manifest del modello (se il manifest, il modello e le etichette si trovano in file separati). - Puoi ospitare un modello personalizzato in remoto tramite la Console Firebase e inizializzare un
CustomRemoteModel
con unFirebaseModelSource
.
Ecco alcuni esempi di metodi Kotlin vecchi e nuovi:
Vecchio
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()
Nuovo
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()
Ecco alcuni esempi di metodi Java vecchi e nuovi:
Vecchio
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();
Nuovo
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();
Guida alla migrazione per iOS
Prerequisiti
- È richiesto Xcode 13.2.1 o versioni successive.
Passaggio 1: aggiorna Cocoapods
Aggiorna le dipendenze per i cocoapod di ML Kit per iOS nel file Podfile dell'app:
Funzionalità | Nomi dei pod precedenti | Nomi dei nuovi pod |
---|---|---|
Etichettamento delle immagini AutoML senza download del modello da remoto | GoogleMLKit/ImageLabelingAutoML | GoogleMLKit/ImageLabelingCustom |
Etichettamento delle immagini AutoML con il download del modello da remoto |
GoogleMLKit/ImageLabelingAutoML GoogleMLKit/LinkFirebase |
GoogleMLKit/ImageLabelingCustom GoogleMLKit/LinkFirebase |
Passaggio 2: aggiorna i nomi dei corsi
Se il tuo corso è presente in questa tabella, apporta la modifica indicata:
Swift
Corso precedente | Nuovo corso |
---|---|
AutoMLImageLabelerLocalModel | LocalModel |
AutoMLImageLabelerRemoteModel | CustomRemoteModel |
AutoMLImageLabelerOptions | CustomImageLabelerOptions |
Objective-C
Corso precedente | Nuovo corso |
---|---|
MLKAutoMLImageLabelerLocalModel | MLKLocalModel |
MLKAutoMLImageLabelerRemoteModel | MLKCustomRemoteModel |
MLKAutoMLImageLabelerOptions | MLKCustomImageLabelerOptions |
Objective-C
Passaggio 3: aggiorna i nomi dei metodi
Sono necessarie modifiche minime al codice:
- Ora
LocalModel
può essere inizializzato con il percorso del file del modello (se il modello contiene metadati contenenti la mappa delle etichette) o con il percorso del file manifest del modello (se il manifest, il modello e le etichette si trovano in file separati). - Puoi ospitare un modello personalizzato in remoto tramite la Console Firebase e inizializzare un
CustomRemoteModel
con unFirebaseModelSource
.
Ecco alcuni esempi di metodi Swift vecchi e nuovi:
Vecchio
let localModel = AutoMLImageLabelerLocalModel(manifestPath: "automl/manifest.json") let optionsWithLocalModel = AutoMLImageLabelerOptions(localModel: localModel) let remoteModel = AutoMLImageLabelerRemoteModel(name: "automl_remote_model") let optionsWithRemoteModel = AutoMLImageLabelerOptions(remoteModel: remoteModel)
Nuovo
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)
Ecco alcuni esempi di metodi Objective-C vecchi e nuovi:
Vecchio
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];
Nuovo
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];