Guide de migration d'AutoML Vision Edge du ML Kit

Vous pouvez transmettre au modèle personnalisé un modèle de classification d'images entraîné par AutoML API. 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 supprimé de ML Kit, car il a été entièrement remplacé par l'image du modèle personnalisé API d'étiquetage.

APIQu'est-ce qui change ?
API d'étiquetage d'images AutoML Vision Edge Elle est entièrement remplacée par l'API d'étiquetage d'image du modèle personnalisé. Existant L'API d'étiquetage d'images AutoML Vision Edge a été supprimée.

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

Questions fréquentes

Pourquoi ce changement ?

Il simplifie les API ML Kit et facilite son intégration dans votre application. Cette modification vous permet d'utiliser un modèle entraîné par AutoML de la même manière qu'un modèle personnalisé. Vous pouvez aussi utiliser des modèles entraînés par AutoML pour la détection et le suivi des objets, en plus de l'étiquetage d'images, actuellement compatibles. De plus, l'API des modèles personnalisés est compatible avec les deux modèles, carte d'étiquettes intégrée dans ses métadonnées, et modèles avec des fichiers manifestes et des modèles distincts fichiers de libellés.

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 détection d'objets et Suivi et possibilité d'utiliser des modèles avec la carte d'étiquettes intégrées dans ses métadonnées.

Guide de migration pour Android

Étape 1: Mettez à jour les importations Gradle

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

FonctionnalitéAnciens artefactsNouvel artefact
Étiquetage d'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
Étiquetage d'images AutoML avec téléchargement d'un modèle distant 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 figure dans ce tableau, effectuez la modification indiquée:

Ancienne classeNouveau 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: Mettez à jour le nom des méthodes

Le code n'a que peu de modifications à apporter:

  • LocalModel peut désormais être initialisé soit 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), soit avec un chemin d'accès au fichier manifeste de 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 d'anciennes et de nouvelles méthodes Kotlin:

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

Nouveau

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 d'anciennes et de nouvelles méthodes Java:

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

Nouveau

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

  • Xcode 13.2.1 ou version ultérieure est requis.

Étape 1: Mettez à jour CocoaPods

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

FonctionnalitéAnciens noms des podsNoms des nouveaux pods
Étiquetage d'images AutoML sans téléchargement de modèle distant GoogleMLKit/ImageLabelingAutoML GoogleMLKit/ImageLabelingCustom
Étiquetage d'images AutoML avec téléchargement d'un modèle distant GoogleMLKit/ImageLabelingAutoML
GoogleMLKit/LinkFirebase
GoogleMLKit/ImageLabelingCustom
GoogleMLKit/LinkFirebase

Étape 2: Modifiez les noms des classes

Si votre cours figure dans ce tableau, effectuez la modification indiquée:

Swift

Ancienne classeNouveau cours
AutoMLImageLabelerLocalModel LocalModel
AutoMLImageLabelerRemoteModel CustomRemoteModel
AutoMLImageLabelerOptions CustomImageLabelerOptions

Objective-C

Ancienne classeNouveau cours
MLKAutoMLImageLabelerLocalModel MLKLocalModel
MLKAutoMLImageLabelerRemoteModel MLKCustomRemoteModel
MLKAutoMLImageLabelerOptions MLKCustomImageLabelerOptions

Objective-C

Étape 3: Mettez à jour le nom des méthodes

Le code n'a que peu de modifications à apporter:

  • LocalModel peut désormais être initialisé soit 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), soit avec un chemin d'accès au fichier manifeste de 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 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

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

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