Puedes pasar un modelo de clasificación de imágenes entrenado por AutoML a las APIs de modelos personalizados. Puedes seguir incluyendo el modelo en tu app o alojarlo en Firebase console como un modelo personalizado. La API de AutoML Image Labeling se quitó de ML Kit, ya que se reemplazó por completo por la API de Custom Model Image Labeling.
| API | ¿Qué cambiará? |
|---|---|
| API de AutoML Vision Edge para el etiquetado de imágenes | Se reemplazó por completo con la API de etiquetado de imágenes del modelo personalizado. Se quitó la API de AutoML Vision Edge para el etiquetado de imágenes 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 con AutoML de la misma manera que un modelo personalizado. También te permite usar modelos entrenados con AutoML para la detección y el seguimiento de objetos, además del etiquetado de imágenes que admitimos. Además, la API del modelo personalizado admite tanto modelos con un mapa de etiquetas incorporado en sus metadatos como modelos con archivos de etiquetas y manifiestos separados.
¿Qué beneficios obtengo al migrar al nuevo SDK?
- Nuevas funciones: Capacidad de usar modelos entrenados con 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.kts) de tu módulo (nivel de app) según la siguiente tabla:
| Función | Artefactos anteriores | Nuevo artefacto |
|---|---|---|
| Etiquetado de imágenes con AutoML sin descarga remota de modelos | com.google.mlkit:image-labeling-automl:16.2.1 | com.google.mlkit:image-labeling-custom:16.0.0-beta5 |
| Etiquetado de imágenes con AutoML y descarga remota de modelos |
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 detalles, 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 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.LocalModel Tu app debe incluir lógica para descargar modelos alojados de forma remota y para 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
Los cambios en el código son mínimos:
- Ahora,
LocalModelse puede inicializar con una ruta de acceso al modelo (si el modelo tiene metadatos que contienen el mapa de etiquetas) o una ruta de acceso al 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 en el almacenamiento local y cargarlos con
LocalModel.
Estos son algunos ejemplos de métodos de Kotlin antiguos 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 antiguos 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 de ML Kit para iOS en el Podfile de tu app:
| Función | Nombres anteriores de los pods | Nombres de los nuevos pods |
|---|---|---|
| Etiquetado de imágenes con AutoML sin descarga remota de modelos | GoogleMLKit/ImageLabelingAutoML | GoogleMLKit/ImageLabelingCustom |
| Etiquetado de imágenes con AutoML y descarga remota de modelos |
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 detalles, 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 anterior | Clase 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 detalles, consulta la [guía de migración de Firebase ML a Cloud Storage][migrate-storage]. |
| AutoMLImageLabelerOptions | CustomImageLabelerOptions |
Objective-C
| Clase anterior | Clase 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 detalles, 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
Los cambios en el código son mínimos:
- Ahora,
LocalModelse puede inicializar con una ruta de acceso al modelo (si el modelo tiene metadatos que contienen el mapa de etiquetas) o una ruta de acceso al 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 en el almacenamiento local y cargarlos con
LocalModel.
Estos son algunos ejemplos de métodos de Swift antiguos 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 antiguos 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];