Vous pouvez transmettre un modèle de classification d'images entraîné avec 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 AutoML Image Labeling a été supprimée de ML Kit, car elle a été entièrement remplacée par l'API Custom Model Image Labeling.
| API | Qu'est-ce qui change ? |
|---|---|
| API d'étiquetage d'images AutoML Vision Edge | Elle est entièrement remplacée 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 l'API AutoML Vision Edge, suivez les instructions de migration pour Android et iOS.
Questions fréquentes
Pourquoi ce changement ?
Cela permet de simplifier les API ML Kit et d'intégrer plus facilement ML Kit à 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'étiquetage d'images que nous prenons en charge. De plus, l'API de modèle personnalisé est compatible avec les modèles dont le mappage d'étiquettes est intégré aux métadonnées, ainsi qu'avec les modèles dont les fichiers de fichier manifeste et d'étiquettes 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'étiquetage d'images, ainsi que pour la détection et le suivi d'objets, et possibilité d'utiliser des modèles avec une carte d'étiquettes 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 ML Kit pour Android dans le fichier Gradle de votre module (au niveau de l'application, généralement app/build.gradle.kts) en fonction du tableau suivant :
| Fonctionnalité | Anciens artefacts | Nouvel artefact |
|---|---|---|
| Étiquetage d'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 |
| Étiquetage d'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-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 classe | Nouveau 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.LocalModel Votre application doit inclure une logique pour télécharger les modèles hébergés à distance et 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 des méthodes
Les modifications de code sont minimes :
LocalModelpeut désormais être initialisé avec un chemin d'accès au 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).- Ajoutez une logique à votre application pour télécharger des modèles hébergés à distance dans l'espace de 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 : Mettez à jour CocoaPods
Mettez à jour les dépendances des CocoaPods iOS de ML Kit dans le fichier Podfile de votre application :
| Fonctionnalité | Ancien(s) nom(s) de pod | Nouveaux noms de pods |
|---|---|---|
| Étiquetage d'images AutoML sans téléchargement de modèle à distance | GoogleMLKit/ImageLabelingAutoML | GoogleMLKit/ImageLabelingCustom |
| Étiquetage d'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-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 classe | Nouveau cours |
|---|---|
| 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 classe | Nouveau cours |
|---|---|
| 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 des méthodes
Les modifications de code sont minimes :
LocalModelpeut désormais être initialisé avec un chemin d'accès au 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).- Ajoutez une logique à votre application pour télécharger des modèles hébergés à distance dans l'espace de 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];