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èles personnalisés. 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'ajout de libellés aux images AutoML a été supprimée de ML Kit, car elle est entièrement remplacée par l'API d'ajout de libellés aux images de modèles personnalisés.

APIQu'est-ce qui change ?
API d'ajout de libellés aux images AutoML Vision Edge Elle est entièrement remplacée par l'API d'ajout de libellés aux images de modèles personnalisés. L'API d'ajout de libellés aux images AutoML Vision Edge existante est supprimée.

Si vous utilisez l'API AutoML Vision Edge, suivez les instructions de migration pour Android et iOS.

Questions fréquentes

Pourquoi ce changement ?

Il permet de simplifier les API ML Kit et de faciliter l'intégration de ML Kit dans votre application. Grâce à ce changement, vous pouvez utiliser un modèle entraîné par AutoML exactement de la même manière qu'un modèle personnalisé. Il 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'ajout de libellés aux images que nous prenons en charge. De plus, l'API de modèles personnalisés est compatible avec les modèles dont la carte de libellés est intégrée dans leurs métadonnées, ainsi qu'avec les modèles dont les fichiers manifeste et de libellés sont 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'ajout de libellés aux images, la détection et le suivi d'objets, ainsi que d'utiliser des modèles dont la carte de libellés est intégrée dans leurs métadonnées.

Guide de migration pour Android

Étape 1 : Mettre à jour les importations Gradle

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

FonctionnalitéAnciens artefactsNouvel artefact
Ajout de libellés aux images AutoML sans téléchargement de modèle à distance com.google.mlkit:image-labeling-automl:16.2.1 com.google.mlkit:image-labeling-custom:16.0.0-beta5
Ajout de libellés aux 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
Pour héberger et télécharger des modèles personnalisés, déplacez vos modèles vers Cloud Storage et ajoutez une logique de téléchargement dans votre application pour les charger à l'aide de LocalModel. Pour en savoir plus, consultez le guide de migration de Firebase ML vers Cloud Storage[migrate-storage].

Étape 2 : Mettre à jour les noms de classe

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

Ancienne classeNouvelle 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
Votre application doit inclure une logique permettant de télécharger des modèles hébergés à distance et de les initialiser à l'aide de LocalModel.
com.google.mlkit.vision.label.automl.AutoMLImageLabelerOptions com.google.mlkit.vision.label.custom.CustomImageLabelerOptions

Étape 3 : Mettre à jour les noms de méthode

Les modifications du code sont minimes :

  • LocalModel peut désormais être initialisé avec un chemin d'accès au modèle (si le modèle comporte des métadonnées contenant la carte de libellés) ou un chemin d'accès au fichier manifeste du modèle (si le fichier manifeste, le modèle et les libellés se trouvent dans des fichiers distincts).
  • Ajoutez une logique à votre application pour télécharger des modèles hébergés à distance dans le stockage local et les charger à l'aide de LocalModel.

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

Ancienne version

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

Nouveau

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

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

Ancienne version

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

Nouveau

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

Guide de migration pour iOS

Prérequis

  • Xcode 13.2.1 ou version ultérieure est requis.

Étape 1 : Mettre à jour Cocoapods

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

FonctionnalitéAncien(s) nom(s) de podNouveau(x) nom(s) de pod
Ajout de libellés aux images AutoML sans téléchargement de modèle à distance GoogleMLKit/ImageLabelingAutoML GoogleMLKit/ImageLabelingCustom
Ajout de libellés aux images AutoML avec téléchargement de modèle à distance GoogleMLKit/ImageLabelingAutoML
GoogleMLKit/LinkFirebase
GoogleMLKit/ImageLabelingCustom
Pour héberger et télécharger des modèles personnalisés, déplacez vos modèles vers Cloud Storage et ajoutez une logique de téléchargement dans votre application pour les charger en tant que modèles locaux. Pour en savoir plus, consultez le [guide de migration de Firebase ML vers Cloud Storage][migrate-storage].

Étape 2 : Mettre à jour les noms de classe

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

Swift

Ancienne classeNouvelle classe
AutoMLImageLabelerLocalModel LocalModel
AutoMLImageLabelerRemoteModel LocalModel
Pour héberger et télécharger des modèles personnalisés, déplacez vos modèles vers Cloud Storage et ajoutez une logique de téléchargement dans votre application pour les charger en tant que modèles locaux. Pour en savoir plus, consultez le [guide de migration de Firebase ML vers Cloud Storage][migrate-storage].
AutoMLImageLabelerOptions CustomImageLabelerOptions

Objective-C

Ancienne classeNouvelle classe
MLKAutoMLImageLabelerLocalModel MLKLocalModel
MLKAutoMLImageLabelerRemoteModel MLKLocalModel
Pour héberger et télécharger des modèles personnalisés, déplacez vos modèles vers Cloud Storage et ajoutez une logique de téléchargement dans votre application pour les charger en tant que modèles locaux. Pour en savoir plus, consultez le [guide de migration de Firebase ML vers Cloud Storage][migrate-storage].
MLKAutoMLImageLabelerOptions MLKCustomImageLabelerOptions

Étape 3 : Mettre à jour les noms de méthode

Les modifications du code sont minimes :

  • LocalModel peut désormais être initialisé avec un chemin d'accès au modèle (si le modèle comporte des métadonnées contenant la carte de libellés) ou un chemin d'accès au fichier manifeste du modèle (si le fichier manifeste, le modèle et les libellés se trouvent dans des fichiers distincts).
  • Ajoutez une logique à votre application pour télécharger des modèles hébergés à distance dans le stockage local et les charger à l'aide de LocalModel.

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

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)

Nouveau

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

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

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

Nouveau

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