Guida alla migrazione ad AutoML Vision Edge di ML Kit

Puoi trasmettere un modello di classificazione delle immagini addestrato con AutoML alle API del modello personalizzato. Puoi continuare a raggruppare il modello all'interno dell'app o ospitarlo nella Console Firebase come modello personalizzato. L'API AutoML Image Labeling è stata rimossa da ML Kit perché è stata completamente sostituita dall'API Custom Model Image Labeling.

APIQuali sono le novità?
API di etichettatura delle immagini AutoML Vision Edge È completamente sostituita dall'API Custom Model per l'etichettatura delle immagini. L'API di etichettatura delle immagini AutoML Vision Edge esistente viene rimossa.

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

Domande frequenti

Perché questa modifica?

Consente di semplificare le API ML Kit e di integrare più facilmente 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 che supportiamo. Inoltre, l'API per modelli personalizzati supporta sia i modelli con mappa delle etichette incorporata nei metadati sia i modelli con manifest e file di etichette separati.

Quali vantaggi ottengo dalla migrazione al nuovo SDK?

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

Guida alla migrazione per Android

Passaggio 1: aggiorna le importazioni Gradle

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

FunzionalitàArtefatti precedentiNuovo artefatto
Etichettatura delle immagini AutoML senza download remoto del modello com.google.mlkit:image-labeling-automl:16.2.1 com.google.mlkit:image-labeling-custom:16.0.0-beta5
AutoML per l'etichettatura delle immagini con download remoto del modello 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 dei corsi

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

Corso precedenteNuovo 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.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

Sono necessarie modifiche minime al codice:

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

Ecco alcuni esempi di metodi Kotlin vecchi 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 vecchi 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

  • È richiesta la versione Xcode 13.2.1 o successive.

Passaggio 1: aggiorna Cocoapods

Aggiorna le dipendenze per i cocoapod ML Kit iOS nel Podfile della tua app:

FunzionalitàNome o nomi precedenti del podNuovi nomi dei pod
Etichettatura delle immagini AutoML senza download remoto del modello GoogleMLKit/ImageLabelingAutoML GoogleMLKit/ImageLabelingCustom
AutoML per l'etichettatura delle immagini con download remoto del modello 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 dei corsi

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

Swift

Corso precedenteNuovo corso
AutoMLImageLabelerLocalModel LocalModel
AutoMLImageLabelerRemoteModel LocalModel
Per ospitare e scaricare modelli personalizzati, sposta i modelli su 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

Corso precedenteNuovo corso
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

Sono necessarie modifiche minime al codice:

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

Ecco alcuni esempi di metodi Swift vecchi 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 vecchi 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];