Guida alla migrazione ad AutoML Vision Edge di ML Kit

Puoi passare un modello di classificazione delle immagini addestrato da AutoML alle API per i modelli personalizzati. Puoi continuare a raggruppare il modello all'interno dell'app o ospitarlo nella Console Firebase come modello personalizzato. L'API per l'etichettatura delle immagini AutoML è stata rimossa da ML Kit perché è stata completamente sostituita dall'API per l'etichettatura delle immagini dei modelli personalizzati.

APIChe cosa cambierà?
API per l'etichettatura delle immagini di AutoML Vision Edge È stata completamente sostituita dall'API per l'etichettatura delle immagini dei modelli personalizzati. L'API per l'etichettatura delle immagini di AutoML Vision Edge esistente è stata rimossa.

Se utilizzi l'API AutoML Vision Edge, segui le istruzioni di migrazione per Android e iOS.

Domande frequenti

Perché questa modifica?

Contribuisce a semplificare le API ML Kit e a facilitare l'integrazione di ML Kit nella tua app. Con questa modifica, puoi utilizzare un modello addestrato da AutoML esattamente come un modello personalizzato. Ti consente inoltre di utilizzare i modelli addestrati da AutoML per il rilevamento e il monitoraggio degli oggetti, oltre all'etichettatura delle immagini che supportiamo. Inoltre, l'API per i modelli personalizzati supporta sia i modelli con la mappa delle etichette incorporata nei metadati sia i modelli con file manifest ed etichette separati.

Quali vantaggi offre la migrazione al nuovo SDK?

  • Nuove funzionalità: possibilità di utilizzare i modelli addestrati da AutoML sia per l'etichettatura delle immagini sia per il rilevamento e il monitoraggio degli oggetti e possibilità di utilizzare i modelli con la mappa delle etichette incorporata nei metadati.

Guida alla migrazione per Android

Passaggio 1: aggiorna le importazioni di Gradle

Aggiorna le dipendenze per le librerie Android ML Kit nel file Gradle (a livello di modulo, in genere app/build.gradle.kts) in base alla tabella seguente:

FunzionalitàArtefatti precedentiNuovo artefatto
Etichettatura delle immagini AutoML senza download del modello remoto com.google.mlkit:image-labeling-automl:16.2.1 com.google.mlkit:image-labeling-custom:16.0.0-beta5
Etichettatura delle immagini AutoML con download del modello 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
Per ospitare e scaricare modelli personalizzati, sposta i modelli in Cloud Storage e aggiungi la logica di download nella tua app per caricarli utilizzando LocalModel. Per maggiori dettagli, consulta la [guida alla migrazione da Firebase ML a Cloud Storage][migrate-storage].

Passaggio 2: aggiorna i nomi delle classi

Se la tua classe è presente in questa tabella, apporta la modifica indicata:

Classe precedenteNuova classe
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.LocalModel
La tua app deve includere la logica per scaricare i modelli ospitati da remoto e inizializzarli utilizzando LocalModel.
com.google.mlkit.vision.label.automl.AutoMLImageLabelerOptions com.google.mlkit.vision.label.custom.CustomImageLabelerOptions

Passaggio 3: aggiorna i nomi dei metodi

Le modifiche al codice sono minime:

  • Ora LocalModel può essere inizializzato con un percorso del modello (se il modello contiene metadati con la mappa delle etichette) o con un percorso del manifest del modello (se il manifest, il modello e le etichette si trovano in file separati).
  • Aggiungi la logica alla tua app per scaricare i modelli ospitati da remoto nell'archivio locale e caricarli utilizzando LocalModel.

Ecco alcuni esempi di metodi Kotlin precedenti e nuovi:

Precedente

val localModel = AutoMLImageLabelerLocalModel.Builder()
    .setAssetFilePath("automl/manifest.json")
    // or .setAbsoluteFilePath(absolute 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

// Similar process for both local and remotely-hosted models (that have been downloaded)
val localModel = LocalModel.Builder()
    .setAssetManifestFilePath("automl/manifest.json")
    // or .setAbsoluteManifestFilePath(absolute path to manifest file)
    .build()

val optionsWithLocalModel = CustomImageLabelerOptions.Builder(localModel)
    .setConfidenceThreshold(0.5f)
    .build()

Ecco alcuni esempi di metodi Java precedenti e nuovi:

Precedente

AutoMLImageLabelerLocalModel localModel =
    new AutoMLImageLabelerLocalModel.Builder()
        .setAssetFilePath("automl/manifest.json")
        // or .setAbsoluteFilePath(absolute 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

// Similar process for local models and remotely-hosted models (that have been downloaded)
LocalModel localModel =
    new LocalModel.Builder()
        .setAssetManifestFilePath("automl/manifest.json")
        // or .setAbsoluteManifestFilePath(absolute path to manifest file)
        .build();
CustomImageLabelerOptions optionsWithLocalModel =
    new CustomImageLabelerOptions.Builder(localModel)
        .setConfidenceThreshold(0.5f)
        .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 ML Kit iOS nel Podfile della tua app:

FunzionalitàNomi dei pod precedentiNomi dei nuovi pod
Etichettatura delle immagini AutoML senza download del modello remoto GoogleMLKit/ImageLabelingAutoML GoogleMLKit/ImageLabelingCustom
Etichettatura delle immagini AutoML con download del modello remoto GoogleMLKit/ImageLabelingAutoML
GoogleMLKit/LinkFirebase
GoogleMLKit/ImageLabelingCustom
Per ospitare e scaricare modelli personalizzati, sposta i modelli in Cloud Storage e aggiungi la logica di download nella tua app per caricarli come modelli locali. Per maggiori dettagli, consulta la [guida alla migrazione da Firebase ML a Cloud Storage][migrate-storage].

Passaggio 2: aggiorna i nomi delle classi

Se la tua classe è presente in questa tabella, apporta la modifica indicata:

Swift

Classe precedenteNuova classe
AutoMLImageLabelerLocalModel LocalModel
AutoMLImageLabelerRemoteModel LocalModel
Per ospitare e scaricare modelli personalizzati, sposta i modelli in Cloud Storage e aggiungi la logica di download nella tua app per caricarli come modelli locali. Per maggiori dettagli, consulta la [guida alla migrazione da Firebase ML a Cloud Storage][migrate-storage].
AutoMLImageLabelerOptions CustomImageLabelerOptions

Objective-C

Classe precedenteNuova classe
MLKAutoMLImageLabelerLocalModel MLKLocalModel
MLKAutoMLImageLabelerRemoteModel MLKLocalModel
Per ospitare e scaricare modelli personalizzati, sposta i modelli in Cloud Storage e aggiungi la logica di download nella tua app per caricarli come modelli locali. Per maggiori dettagli, consulta la [guida alla migrazione da Firebase ML a Cloud Storage][migrate-storage].
MLKAutoMLImageLabelerOptions MLKCustomImageLabelerOptions

Passaggio 3: aggiorna i nomi dei metodi

Le modifiche al codice sono minime:

  • Ora LocalModel può essere inizializzato con un percorso del modello (se il modello contiene metadati con la mappa delle etichette) o con un percorso del manifest del modello (se il manifest, il modello e le etichette si trovano in file separati).
  • Aggiungi la logica alla tua app per scaricare i modelli ospitati da remoto nell'archivio locale e caricarli utilizzando LocalModel.

Ecco alcuni esempi di metodi Swift precedenti e nuovi:

Precedente

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

// Similar process for local models and remotely-hosted models (that have been downloaded)
guard let localModel = LocalModel(manifestPath: "automl/manifest.json") else { return }
let optionsWithLocalModel = CustomImageLabelerOptions(localModel: localModel)

Ecco alcuni esempi di metodi Objective-C precedenti e nuovi:

Precedente

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

// Similar process for local models and remotely-hosted models (that have been downloaded)
MLKLocalModel *localModel =
    [[MLKLocalModel alloc] initWithManifestPath:"automl/manifest.json"];
MLKCustomImageLabelerOptions *optionsWithLocalModel =
    [[MLKCustomImageLabelerOptions alloc] initWithLocalModel:localModel];