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

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Puedes pasar un modelo de clasificación de imágenes entrenado por AutoML a las API del modelo personalizado. Puedes continuar empaquetar el modelo dentro de tu app o alojarlo en Firebase console como un modelo personalizado. Se quitó la API de AutoML Image Labeling del Kit de AA, ya que se reemplazó por la API de Custom Model Image Labeling.

API¿Qué aspectos cambiarán?
API de etiquetado de imágenes de AutoML Vision Edge La API de etiquetado de imágenes de modelo personalizado la reemplazó por completo. Se quitó la API existente de etiquetado de imágenes de AutoML Vision Edge.

Si actualmente usas el Kit de AA y usas la API de AutoML Vision Edge, sigue las instrucciones para la migración en iOS y Android.

Preguntas frecuentes

¿Por qué se aplicó este cambio?

Ayuda a simplificar las API del Kit de AA y facilita la integración del Kit de AA en la 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 en la actualidad. Además, la API del modelo personalizado admite modelos con el mapa de etiquetas incorporado en sus metadatos y modelos con archivos de manifiesto y de etiqueta independientes.

¿Qué beneficios obtendré al migrar al SDK nuevo?

  • Características nuevas: Capacidad de usar modelos entrenados con AutoML para etiquetado de imágenes y detección y seguimiento de objetos, y la capacidad de usar modelos con mapa de etiquetas incorporado en sus metadatos.

Guía de migración para Android

Paso 1: Actualiza las importaciones de Gradle

Actualiza las dependencias para las bibliotecas de Android del Kit de AA en el archivo Gradle (generalmente app/build.gradle) de tu módulo (a nivel de app) de acuerdo con la siguiente tabla:

FunciónArtefactos antiguosNuevo artefacto
Etiquetado de imágenes de AutoML sin descarga de modelos remotos com.google.mlkit:imagen-etiquetado-automl:16.2.1 com.google.mlkit:image-labeling-custom:16.0.0-beta4
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-beta4
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 anteriorNueva clase
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:

  • LocalModel ahora se puede inicializar con una ruta de archivo de modelo (si el modelo tiene metadatos que contienen el mapa de etiquetas) o una ruta de archivo de manifiesto de modelo (si el manifiesto, el modelo y las etiquetas están en archivos separados).
  • Puedes alojar un modelo personalizado de forma remota mediante Firebase Console y, luego, inicializar un CustomRemoteModel con un FirebaseModelSource.

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

Antiguas

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 antiguos y nuevos de Java:

Antiguas

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 más reciente.

Paso 1: Actualiza CocoaPods

Actualiza las dependencias de los CocoaPods de iOS en el Podfile de tu app:

FunciónNombres de grupos de anuncios antiguosNombres de grupos de anuncios 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 anteriorNueva clase
AutoMLImageLabelerLocalModel ModeloLocal
AutoMLImageLabelerRemoteModel Modelo remoto personalizado
Opciones de AutoMLImageLabeler Opciones de CustomImageLabeler

Objective‑C

Clase anteriorNueva clase
MLKAutoMLImageLabelerLocalModel ModeloKMLLocal
MLKAutoMLImageLabelerRemoteModel Modelo remoto personalizado de MLK
Opciones de MLKAutoMLImageLabelerOptions Opciones de MLKCustomImageLabeler

Objective‑C

Paso 3: Actualiza los nombres de los métodos

Hay cambios mínimos en el código:

  • LocalModel ahora se puede inicializar con una ruta de archivo de modelo (si el modelo tiene metadatos que contienen el mapa de etiquetas) o una ruta de archivo de manifiesto de modelo (si el manifiesto, el modelo y las etiquetas están en archivos separados).
  • Puedes alojar un modelo personalizado de forma remota mediante Firebase Console y, luego, inicializar un CustomRemoteModel con un FirebaseModelSource.

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

Antiguas

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 antiguos y nuevos de Objective-C:

Antiguas

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