Guía de migración del Kit de AA para AutoML Vision Edge

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 usas la API de AutoML Vision Edge, sigue las instrucciones de migración para Android y iOS.

Preguntas frecuentes

¿Por qué se aplicó 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. 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 de ML Kit en el archivo Gradle (generalmente app/build.gradle.kts) de tu módulo (nivel de app) según la siguiente tabla:

FunciónArtefactos anterioresNuevo 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
Para alojar y descargar modelos personalizados, mueve tus modelos a Cloud Storage y agrega lógica de descarga en tu app para cargarlos con LocalModel. Para obtener más información, consulta la [guía de migración de Firebase ML a Cloud Storage][migrate-storage].

Paso 2: Actualiza los nombres de las clases

Si tu clase aparece en esta tabla, realiza el cambio indicado:

Clase anteriorClase 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.LocalModel
Tu app debe incluir lógica para descargar modelos alojados de forma remota y luego, inicializarlos con LocalModel.
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, se puede inicializar LocalModel con una ruta de acceso del modelo (si el modelo tiene metadatos que contienen el mapa de etiquetas) o una ruta de acceso del manifiesto del modelo (si el manifiesto, el modelo y las etiquetas están en archivos separados).
  • Agrega lógica a tu app para descargar modelos alojados de forma remota al almacenamiento local y cargarlos con LocalModel.

Estos son algunos ejemplos de métodos de Kotlin anteriores y nuevos:

Antiguo

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

Nuevo

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

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

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

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 ML Kit para iOS en el Podfile de tu app:

FunciónNombres de pods anterioresNombres 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
Para alojar y descargar modelos personalizados, mueve tus modelos a Cloud Storage y agrega lógica de descarga en tu app para cargarlos como modelos locales. Para obtener más información, consulta la [guía de migración de Firebase ML a Cloud Storage][migrate-storage].

Paso 2: Actualiza los nombres de las clases

Si tu clase aparece en esta tabla, realiza el cambio indicado:

Swift

Clase anteriorClase nueva
AutoMLImageLabelerLocalModel LocalModel
AutoMLImageLabelerRemoteModel LocalModel
Para alojar y descargar modelos personalizados, mueve tus modelos a Cloud Storage y agrega lógica de descarga en tu app para cargarlos como modelos locales. Para obtener más información, consulta la [guía de migración de Firebase ML a Cloud Storage][migrate-storage].
AutoMLImageLabelerOptions CustomImageLabelerOptions

Objective-C

Clase anteriorClase nueva
MLKAutoMLImageLabelerLocalModel MLKLocalModel
MLKAutoMLImageLabelerRemoteModel MLKLocalModel
Para alojar y descargar modelos personalizados, mueve tus modelos a Cloud Storage y agrega lógica de descarga en tu app para cargarlos como modelos locales. Para obtener más información, consulta la [guía de migración de Firebase ML a Cloud Storage][migrate-storage].
MLKAutoMLImageLabelerOptions MLKCustomImageLabelerOptions

Paso 3: Actualiza los nombres de los métodos

Hay cambios mínimos en el código:

  • Ahora, se puede inicializar LocalModel con una ruta de acceso del modelo (si el modelo tiene metadatos que contienen el mapa de etiquetas) o una ruta de acceso del manifiesto del modelo (si el manifiesto, el modelo y las etiquetas están en archivos separados).
  • Agrega lógica a tu app para descargar modelos alojados de forma remota al almacenamiento local y cargarlos con LocalModel.

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

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

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

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