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.

APIChe cosa cambia?
API di etichettatura delle immagini AutoML Vision Edge È stata completamente sostituita dall'API per l'etichettatura delle immagini del modello personalizzato. L'API di etichettatura delle immagini AutoML Vision Edge esistente viene rimossa.

Se attualmente utilizzi ML Kit con 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 modelli addestrati con AutoML per il rilevamento e il monitoraggio degli oggetti, oltre all'etichettatura delle immagini che attualmente 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 la 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) in base alla seguente tabella:

FunzionalitàArtefatti precedentiNuovo artefatto
AutoML per l'etichettatura delle immagini senza download di modelli remoti 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
com.google.mlkit:linkfirebase:17.0.0

Passaggio 2: aggiorna i nomi dei corsi

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

Vecchio corsoNuova 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.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:

  • LocalModel ora può essere inizializzato con un percorso del file del modello (se il modello ha metadati contenenti la mappa delle etichette) o un 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 un FirebaseModelSource.

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

  • È richiesta la versione 13.2.1 o successive di Xcode.

Passaggio 1: aggiorna Cocoapods

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

FunzionalitàNomi dei pod precedentiNuovo nome o nomi dei pod
AutoML per l'etichettatura delle immagini senza download di modelli remoti GoogleMLKit/ImageLabelingAutoML GoogleMLKit/ImageLabelingCustom
AutoML per l'etichettatura delle immagini con download remoto del modello GoogleMLKit/ImageLabelingAutoML
GoogleMLKit/LinkFirebase
GoogleMLKit/ImageLabelingCustom
GoogleMLKit/LinkFirebase

Passaggio 2: aggiorna i nomi dei corsi

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

Swift

Vecchio corsoNuova classe
AutoMLImageLabelerLocalModel LocalModel
AutoMLImageLabelerRemoteModel CustomRemoteModel
AutoMLImageLabelerOptions CustomImageLabelerOptions

Objective-C

Vecchio corsoNuova classe
MLKAutoMLImageLabelerLocalModel MLKLocalModel
MLKAutoMLImageLabelerRemoteModel MLKCustomRemoteModel
MLKAutoMLImageLabelerOptions MLKCustomImageLabelerOptions

Objective-C

Passaggio 3: aggiorna i nomi dei metodi

Sono necessarie modifiche minime al codice:

  • LocalModel ora può essere inizializzato con un percorso del file del modello (se il modello ha metadati contenenti la mappa delle etichette) o un 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 un FirebaseModelSource.

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];