Guida alla migrazione ad AutoML Vision Edge di ML Kit

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

APICosa cambierà?
API AutoML Vision Edge Image Labeling È completamente sostituito dall'API Custom Model Image Labeling. L'API AutoML Vision Edge etichettatura immagini esistente è stata rimossa.

Se attualmente sei un utente ML Kit che utilizza l'API AutoML Vision Edge, segui le istruzioni per la 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. Consente inoltre di utilizzare modelli addestrati 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 delle etichette incorporata nei metadati sia i modelli con file manifest ed 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 che per il rilevamento e il monitoraggio degli oggetti, oltre alla possibilità di utilizzare modelli con mappe di etichette incorporate 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:

Selezione delleVecchi artefattiNuovo 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
com.google.mlkit:linkfirebase:17.0.0

Passaggio 2: aggiorna i nomi dei corsi

Se il tuo corso viene visualizzato 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.CustomRemoteModel
com.google.mlkit.vision.label.automl.AutoMLImageLabelerOptions com.google.mlkit.vision.label.custom.CustomImageLabelerOptions

Passaggio 3: aggiorna i nomi dei metodi

Sono state apportate modifiche minime al codice:

  • Ora è possibile inizializzare LocalModel con un percorso file del modello (se il modello contiene metadati contenenti la mappa etichette) o un percorso file manifest del modello (se manifest, modello ed etichette si trovano in file separati).
  • Puoi ospitare un modello personalizzato da remoto tramite la console Firebase e inizializzare CustomRemoteModel con un FirebaseModelSource.

Ecco alcuni esempi di metodi Kotlin vecchi e nuovi:

Precedenti

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()

Novità

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:

Precedenti

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();

Novità

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 successivo.

Passaggio 1: aggiorna Cocoapods

Aggiorna le dipendenze per i cocoapod per iOS del Kit ML nel Podfile dell'app:

Selezione delleNomi di pod precedentiNuovi nomi di 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
GoogleMLKit/LinkFirebase

Passaggio 2: aggiorna i nomi dei corsi

Se il tuo corso viene visualizzato in questa tabella, apporta la modifica indicata:

Swift

Corso precedenteNuovo corso
AutoMLImageLabelerLocalModel LocalModel
AutoMLImageLabelerRemoteModel CustomRemoteModel
AutoMLImageLabelerOptions CustomImageLabelerOptions

Objective-C

Corso precedenteNuovo corso
MLKAutoMLImageLabelerLocalModel MLKLocalModel
MLKAutoMLImageLabelerRemoteModel MLKCustomRemoteModel
MLKAutoMLImageLabelerOptions MLKCustomImageLabelerOptions

Objective-C

Passaggio 3: aggiorna i nomi dei metodi

Sono state apportate modifiche minime al codice:

  • Ora è possibile inizializzare LocalModel con un percorso file del modello (se il modello contiene metadati contenenti la mappa etichette) o un percorso file manifest del modello (se manifest, modello ed etichette si trovano in file separati).
  • Puoi ospitare un modello personalizzato da remoto tramite la console Firebase e inizializzare CustomRemoteModel con un FirebaseModelSource.

Ecco alcuni esempi di metodi Swift vecchi e nuovi:

Precedenti

let localModel =
    AutoMLImageLabelerLocalModel(manifestPath: "automl/manifest.json")
let optionsWithLocalModel = AutoMLImageLabelerOptions(localModel: localModel)
let remoteModel = AutoMLImageLabelerRemoteModel(name: "automl_remote_model")
let optionsWithRemoteModel = AutoMLImageLabelerOptions(remoteModel: remoteModel)

Novità

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 vecchi e nuovi con l'obiettivo C:

Precedenti

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

Novità

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