Puedes pasar un modelo de clasificación de imágenes entrenado por AutoML a las APIs de modelos personalizados. Puedes seguir agrupando el modelo dentro de tu app o alojarlo en Firebase console como un modelo personalizado. La API de etiquetado de imágenes de AutoML se quitó de ML Kit, ya que se reemplazó por completo por la API de etiquetado de imágenes de modelos personalizados.
| API | ¿Qué cambiará? |
|---|---|
| API de etiquetado de imágenes de AutoML Vision Edge | Se reemplazó por completo por la API de etiquetado de imágenes de modelos personalizados. Se quitó la API de etiquetado de imágenes de AutoML Vision Edge existente. |
Si actualmente eres usuario del Kit de ML que usa la API de AutoML Vision Edge, sigue las instrucciones de migración para Android y iOS.
Preguntas frecuentes
¿Por qué se produjo este cambio?
Ayuda a simplificar las APIs de ML Kit y facilita la integración de ML Kit en tu app. Con este cambio, puedes usar un modelo entrenado por AutoML de la misma manera que un modelo personalizado. También te permite usar modelos entrenados por AutoML para la detección y el seguimiento de objetos, además del etiquetado de imágenes que admitimos actualmente. Además, la API de modelos personalizados admite modelos con un mapa de etiquetas incorporado en sus metadatos y modelos con archivos de manifiesto y etiquetas separados.
¿Qué beneficios obtengo de la migración al nuevo SDK?
- Funciones nuevas: Capacidad de usar modelos entrenados por AutoML para el etiquetado de imágenes y la detección y el seguimiento de objetos, y capacidad de usar modelos con un mapa de etiquetas incorporado en sus metadatos.
Guía de migración para Android
Paso 1: Actualiza las importaciones de Gradle
Actualiza las dependencias de las bibliotecas de Android del ML Kit en el archivo Gradle (generalmente app/build.gradle) de tu módulo (nivel de app) según la siguiente tabla:
| Función | Artefactos anteriores | Nuevo artefacto |
|---|---|---|
| Etiquetado de imágenes de AutoML sin descarga de modelos remotos | com.google.mlkit:image-labeling-automl:16.2.1 | com.google.mlkit:image-labeling-custom:16.0.0-beta5 |
| Etiquetado de imágenes de AutoML con descarga de modelos remotos |
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 |
Paso 2: Actualiza los nombres de las clases
Si tu clase aparece en esta tabla, realiza el cambio indicado:
| Clase anterior | Clase nueva |
|---|---|
| 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 |
Paso 3: Actualiza los nombres de los métodos
Hay cambios mínimos en el código:
- Ahora,
LocalModelse puede inicializar con una ruta de acceso de archivo de modelo (si el modelo tiene metadatos que contienen el mapa de etiquetas) o una ruta de acceso de archivo de manifiesto del modelo (si el manifiesto, el modelo y las etiquetas están en archivos separados). - Puedes alojar un modelo personalizado de forma remota a través de Firebase console y, luego, inicializar un
CustomRemoteModelcon unFirebaseModelSource.
Estos son algunos ejemplos de métodos de Kotlin anteriores y nuevos:
Antiguo
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()
Nuevo
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()
Estos son algunos ejemplos de métodos de Java anteriores y nuevos:
Antiguo
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();
Nuevo
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();
Guía de migración para iOS
Requisitos previos
- Se requiere Xcode 13.2.1 o una versión posterior.
Paso 1: Actualiza Cocoapods
Actualiza las dependencias de los cocoapods del Kit de ML para iOS en el Podfile de tu app:
| Función | Nombres de pods anteriores | Nombres de pods nuevos |
|---|---|---|
| Etiquetado de imágenes de AutoML sin descarga de modelos remotos | GoogleMLKit/ImageLabelingAutoML | GoogleMLKit/ImageLabelingCustom |
| Etiquetado de imágenes de AutoML con descarga de modelos remotos |
GoogleMLKit/ImageLabelingAutoML GoogleMLKit/LinkFirebase |
GoogleMLKit/ImageLabelingCustom GoogleMLKit/LinkFirebase |
Paso 2: Actualiza los nombres de las clases
Si tu clase aparece en esta tabla, realiza el cambio indicado:
Swift
| Clase anterior | Clase nueva |
|---|---|
| AutoMLImageLabelerLocalModel | LocalModel |
| AutoMLImageLabelerRemoteModel | CustomRemoteModel |
| AutoMLImageLabelerOptions | CustomImageLabelerOptions |
Objective-C
| Clase anterior | Clase nueva |
|---|---|
| MLKAutoMLImageLabelerLocalModel | MLKLocalModel |
| MLKAutoMLImageLabelerRemoteModel | MLKCustomRemoteModel |
| MLKAutoMLImageLabelerOptions | MLKCustomImageLabelerOptions |
Objective-C
Paso 3: Actualiza los nombres de los métodos
Hay cambios mínimos en el código:
- Ahora,
LocalModelse puede inicializar con una ruta de acceso de archivo de modelo (si el modelo tiene metadatos que contienen el mapa de etiquetas) o una ruta de acceso de archivo de manifiesto del modelo (si el manifiesto, el modelo y las etiquetas están en archivos separados). - Puedes alojar un modelo personalizado de forma remota a través de Firebase console y, luego, inicializar un
CustomRemoteModelcon unFirebaseModelSource.
Estos son algunos ejemplos de métodos de Swift anteriores y nuevos:
Antiguo
let localModel =
AutoMLImageLabelerLocalModel(manifestPath: "automl/manifest.json")
let optionsWithLocalModel = AutoMLImageLabelerOptions(localModel: localModel)
let remoteModel = AutoMLImageLabelerRemoteModel(name: "automl_remote_model")
let optionsWithRemoteModel = AutoMLImageLabelerOptions(remoteModel: remoteModel)Nuevo
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)Estos son algunos ejemplos de métodos de Objective-C anteriores y nuevos:
Antiguo
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];
Nuevo
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];