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 semplifica l'integrazione di ML Kit nella tua app. Con questa modifica, puoi utilizzare un modello addestrato con AutoML esattamente come 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 seguente tabella:
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:
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()
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:
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();
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
- È richiesta 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:
Corso precedente | Nuovo corso |
---|---|
AutoMLImageLabelerLocalModel | LocalModel |
AutoMLImageLabelerRemoteModel | CustomRemoteModel |
AutoMLImageLabelerOptions | CustomImageLabelerOptions |
Corso precedente | Nuovo corso |
---|---|
MLKAutoMLImageLabelerLocalModel | MLKLocalModel |
MLKAutoMLImageLabelerRemoteModel | MLKCustomRemoteModel |
MLKAutoMLImageLabelerOptions | MLKCustomImageLabelerOptions |
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:
let localModel = AutoMLImageLabelerLocalModel(manifestPath: "automl/manifest.json") let optionsWithLocalModel = AutoMLImageLabelerOptions(localModel: localModel) let remoteModel = AutoMLImageLabelerRemoteModel(name: "automl_remote_model") let optionsWithRemoteModel = AutoMLImageLabelerOptions(remoteModel: remoteModel)
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:
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];
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];