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.
| API | Qu'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 êtes actuellement un utilisateur de ML Kit et que vous utilisez l'API AutoML Vision Edge, veuillez suivre 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 actuellement 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 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) conformément au tableau suivant :
| Fonctionnalité | Anciens artefacts | Nouvel 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 com.google.mlkit:linkfirebase:17.0.0 |
Étape 2 : Mettre à jour les noms de classes
Si votre classe apparaît dans ce tableau, apportez la modification indiquée :
| Ancienne classe | Nouvelle 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 |
Étape 3 : Mettre à jour les noms de méthodes
Les modifications du code sont minimes :
LocalModelpeut 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 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).- Vous pouvez héberger un modèle personnalisé à distance via la console Firebase et initialiser un
CustomRemoteModelavec unFirebaseModelSource.
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 : 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 pod | Nouveau(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 GoogleMLKit/LinkFirebase |
Étape 2 : Mettre à jour les noms de classes
Si votre classe apparaît dans ce tableau, apportez la modification indiquée :
Swift
| Ancienne classe | Nouvelle classe |
|---|---|
| AutoMLImageLabelerLocalModel | LocalModel |
| AutoMLImageLabelerRemoteModel | CustomRemoteModel |
| AutoMLImageLabelerOptions | CustomImageLabelerOptions |
Objective-C
| Ancienne classe | Nouvelle classe |
|---|---|
| MLKAutoMLImageLabelerLocalModel | MLKLocalModel |
| MLKAutoMLImageLabelerRemoteModel | MLKCustomRemoteModel |
| MLKAutoMLImageLabelerOptions | MLKCustomImageLabelerOptions |
Objective-C
Étape 3 : Mettre à jour les noms de méthodes
Les modifications du code sont minimes :
LocalModelpeut 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 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).- Vous pouvez héberger un modèle personnalisé à distance via la console Firebase et initialiser un
CustomRemoteModelavec unFirebaseModelSource.
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];