Guide de migration d'AutoML Vision Edge du ML Kit

Vous pouvez transmettre un modèle de classification d'images entraîné par AutoML aux API de modèle personnalisé. Vous pouvez continuer à regrouper le modèle dans votre application ou à l'héberger dans la console Firebase en tant que modèle personnalisé. L'API d'étiquetage d'images AutoML a été supprimée de ML Kit, car elle a été entièrement remplacée par l'API d'étiquetage d'images de modèle personnalisé.

APIQu'est-ce qui change ?
API d'étiquetage d'images AutoML Vision Edge Il est entièrement remplacé par l'API d'étiquetage d'images de modèle personnalisé. L'API d'étiquetage d'images AutoML Vision Edge existante est supprimée.

Si vous utilisez actuellement ML Kit avec l'API AutoML Vision Edge, veuillez suivre les instructions de migration pour Android et iOS.

Questions fréquentes

Pourquoi ce changement ?

Cela permet de simplifier les API ML Kit et de faciliter l'intégration de ML Kit à votre application. Avec cette modification, vous pouvez utiliser un modèle entraîné par AutoML de la même manière qu'un modèle personnalisé. Elle vous permet également d'utiliser des modèles entraînés par AutoML pour la détection et le suivi d'objets, en plus de l'étiquetage d'images que nous acceptons actuellement. De plus, l'API du modèle personnalisé est compatible à la fois avec les modèles dont les métadonnées comportent un mappage de libellés, et avec des fichiers manifestes et des fichiers d'étiquettes distincts.

Quels sont les avantages de la migration vers le nouveau SDK ?

  • Nouvelles fonctionnalités: possibilité d'utiliser des modèles entraînés par AutoML pour l'étiquetage d'images et la détection et le suivi d'objets, et possibilité d'utiliser des modèles avec un mappage de libellés intégré dans ses métadonnées.

Guide de migration pour Android

Étape 1: Mettre à jour les importations Gradle

Mettez à jour les dépendances des bibliothèques Android de ML Kit dans le fichier Gradle de votre module (au niveau de l'application) (généralement app/build.gradle) en suivant le tableau suivant:

SélectionAnciens artefactsNouvel artefact
Ajout d'étiquettes à des images AutoML sans téléchargement de modèle distant com.google.mlkit:image-labeling-automl:16.2.1 com.google.mlkit:image-labeling-custom:16.0.0-beta5
Ajout d'étiquettes à des images AutoML avec téléchargement de modèle à distance 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

Étape 2: Modifiez les noms des classes

Si votre cours apparaît dans ce tableau, apportez la modification indiquée:

Ancien coursNouveau cours
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

Étape 3: Modifiez les noms des méthodes

Les modifications de code sont minimes:

  • LocalModel peut désormais être initialisé avec un chemin d'accès au fichier de modèle (si le modèle comporte des métadonnées contenant le mappage d'étiquettes) ou un chemin d'accès au fichier manifeste du modèle (si le fichier manifeste, le modèle et les étiquettes se trouvent dans des fichiers distincts).
  • Vous pouvez héberger un modèle personnalisé à distance via la console Firebase et initialiser un CustomRemoteModel avec un FirebaseModelSource.

Voici quelques exemples de méthodes Kotlin anciennes et nouvelles:

Ancienne version

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

Nouvelle version

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

Voici quelques exemples de méthodes Java anciennes et nouvelles:

Ancienne version

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

Nouvelle version

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

Guide de migration pour iOS

Prérequis

  • Veuillez utiliser Xcode 13.2.1 ou une version ultérieure.

Étape 1: Mettez à jour CocoaPods

Mettez à jour les dépendances pour les CocoaPods iOS ML Kit dans le Podfile de votre application:

SélectionAncien(s) nom(s) de podNoms des nouveaux pods
Ajout d'étiquettes à des images AutoML sans téléchargement de modèle distant GoogleMLKit/ImageLabelingAutoML GoogleMLKit/ImageLabelingCustom
Ajout d'étiquettes à des images AutoML avec téléchargement de modèle à distance GoogleMLKit/ImageLabelingAutoML
GoogleMLKit/LinkFirebase
GoogleMLKit/ImageLabelingCustom
GoogleMLKit/LinkFirebase

Étape 2: Modifiez les noms des classes

Si votre cours apparaît dans ce tableau, apportez la modification indiquée:

Swift

Ancien coursNouveau cours
AutoMLImageLabelerLocalModel LocalModel
AutoMLImageLabelerRemoteModel CustomRemoteModel
AutoMLImageLabelerOptions CustomImageLabelerOptions

Objective-C

Ancien coursNouveau cours
MLKAutoMLImageLabelerLocalModel MLKLocalModel
MLKAutoMLImageLabelerRemoteModel MLKCustomRemoteModel
MLKAutoMLImageLabelerOptions MLKCustomImageLabelerOptions

Objective-C

Étape 3: Modifiez les noms des méthodes

Les modifications de code sont minimes:

  • LocalModel peut désormais être initialisé avec un chemin d'accès au fichier de modèle (si le modèle comporte des métadonnées contenant le mappage d'étiquettes) ou un chemin d'accès au fichier manifeste du modèle (si le fichier manifeste, le modèle et les étiquettes se trouvent dans des fichiers distincts).
  • Vous pouvez héberger un modèle personnalisé à distance via la console Firebase et initialiser un CustomRemoteModel avec un FirebaseModelSource.

Voici quelques exemples de méthodes Swift anciennes et nouvelles:

Ancienne version

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

Nouvelle version

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)

Voici quelques exemples de méthodes Objective-C nouvelles et anciennes:

Ancienne version

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

Nouvelle version

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