Modelos personalizados con ML Kit

De forma predeterminada, las APIs del ML Kit usan modelos de aprendizaje automático entrenados por Google. Estos modelos están diseñados para abarcar una amplia gama de aplicaciones. Sin embargo, algunos casos prácticos requieren modelos más segmentados. Por eso, algunas API del ML Kit ahora te permiten reemplazar los modelos predeterminados por modelos personalizados de TensorFlow Lite.

Tanto el etiquetado de imágenes como la API de detección y seguimiento de objetos ofrecen compatibilidad con los modelos de clasificación de imágenes personalizados. Son compatibles con una selección de modelos previamente entrenados de alta calidad en TensorFlow Hub o con tu propio modelo personalizado entrenado con TensorFlow, AutoML Vision Edge o Model Maker de TensorFlow Lite.

Si necesitas una solución personalizada para otros dominios o casos de uso, visita la página Aprendizaje automático en el dispositivo a fin de obtener orientación sobre todas las soluciones y herramientas de Google para el aprendizaje automático en el dispositivo.

Beneficios de usar el Kit de AA con modelos personalizados

Los beneficios de usar un modelo de clasificación de imágenes personalizado con el Kit de AA son los siguientes:

  • API de alto nivel y fáciles de usar: no es necesario que tengas que lidiar con la entrada y salida de un modelo de bajo nivel, controlar el procesamiento previo y posterior de imágenes o la compilación de una canalización de procesamiento.
  • No tienes que preocuparte por la asignación de etiquetas por tu cuenta, ya que el ML Kit extrae las etiquetas de los metadatos del modelo de TFLite y las realiza por ti.
  • Admite modelos personalizados de una amplia variedad de fuentes, desde modelos previamente entrenados publicados en TensorFlow Hub hasta modelos nuevos entrenados con TensorFlow, AutoML Vision Edge o TensorFlow Lite Model Maker.
  • Admite modelos alojados en Firebase. Reduce el tamaño del APK mediante la descarga de modelos a pedido. Envía actualizaciones del modelo de envío sin volver a publicar la app y realiza pruebas A/B sencillas con Firebase Remote Config.
  • Optimizado para la integración con las APIs de cámara de Android.

Y, específicamente para Detección y seguimiento de objetos:

  • Mejora la precisión de la clasificación si ubicas primero los objetos y solo ejecutas el clasificador en el área de la imagen relacionada.
  • Proporciona una experiencia interactiva en tiempo real. Para ello, proporciona comentarios inmediatos a los usuarios sobre los objetos a medida que se detectan y clasifican.

Usa un modelo de clasificación de imágenes previamente entrenado

Puedes usar modelos de TensorFlow Lite previamente entrenados, siempre que cumplan con un conjunto de criterios. A través de TensorFlow Hub, ofrecemos un conjunto de modelos aprobados, de Google y otros creadores de modelos, que cumplen con estos criterios.

Usar un modelo publicado en TensorFlow Hub

TensorFlow Hub ofrece una amplia gama de modelos de clasificación de imágenes previamente entrenados, de varios creadores de modelos, que se pueden usar con las APIs de etiquetado de imágenes y detección y seguimiento de objetos. Sigue estos pasos:

  1. Elige un modelo de la colección de modelos compatibles con ML Kit.
  2. Descarga el archivo de modelo .tflite desde la página de detalles del modelo. Cuando esté disponible, elige un formato de modelo con metadatos.
  3. Sigue nuestras guías para la API de Image Labeling o la API de detección y seguimiento de objetos a fin de aprender a empaquetar un archivo de modelo con tu proyecto y usarlo en tu aplicación para Android o iOS.

Entrena tu propio modelo de clasificación de imágenes

Si ningún modelo de clasificación de imágenes entrenado previamente se ajusta a tus necesidades, hay varias formas de entrenar tu propio modelo de TensorFlow Lite, algunas de las cuales se describen y analizan con más detalle a continuación.

Opciones para entrenar tu propio modelo de clasificación de imágenes
AutoML Vision Edge
  • Se ofrece a través de la IA de Google Cloud
  • Crea modelos de clasificación de imágenes de vanguardia
  • Evalúa fácilmente entre el rendimiento y el tamaño
TensorFlow Lite Model Maker
  • Volver a entrenar un modelo (aprendizaje por transferencia): Lleva menos tiempo y requiere menos datos que entrenar un modelo desde cero.
Convierte un modelo de TensorFlow en TensorFlow Lite
  • Entrena un modelo con TensorFlow y, luego, conviértelo a TensorFlow Lite

AutoML Vision Edge

Los modelos de clasificación de imágenes entrenados con AutoML Vision Edge son compatibles con los modelos personalizados en las APIs de etiquetado de imágenes y API de detección y seguimiento de objetos. Estas APIs también admiten la descarga de modelos alojados con la implementación de modelos de Firebase.

Si quieres obtener más información sobre cómo usar un modelo entrenado con AutoML Vision Edge en tus apps para iOS y Android, sigue las guías de modelos personalizados de cada API, según tu caso de uso.

TensorFlow Lite Model Maker

La biblioteca de TFLite Model Maker simplifica el proceso de adaptar y convertir un modelo de red neuronal de TensorFlow a datos de entrada específicos cuando se implementa este modelo para aplicaciones de AA en el dispositivo. Puedes seguir Colab para la clasificación de imágenes con TensorFlow Lite Model Maker.

Si deseas obtener más información sobre cómo usar un modelo entrenado con Model Maker en tus apps para iOS y Android, sigue nuestras guías para la API de etiquetado de imágenes o la API de detección y seguimiento de objetos, según tu caso de uso.

Modelos creados con el convertidor de TensorFlow Lite

Si tienes un modelo de clasificación de imágenes de TensorFlow existente, puedes convertirlo con el conversor de TensorFlow Lite. Asegúrate de que el modelo creado cumpla con los requisitos de compatibilidad que se indican a continuación.

Si quieres obtener más información sobre cómo usar un modelo de TensorFlow Lite en tus apps para iOS y Android, sigue nuestras guías de la API de Image Labeling o la API de detección y seguimiento de objetos, según tu caso de uso.

Compatibilidad con modelos de TensorFlow Lite

Puedes usar cualquier modelo de clasificación de imágenes de TensorFlow Lite previamente entrenado, siempre que cumpla con los siguientes requisitos:

Tensores

  • El modelo debe tener un solo tensor de entrada con las siguientes restricciones:
    • Los datos están en formato de píxeles RGB.
    • Los datos son del tipo UINT8 o FLOAT32. Si el tipo de tensor de entrada es FLOAT32, debe adjuntar Metadata para especificar las NormalizationOptions.
    • El tensor tiene 4 dimensiones : BxHxWxC, en las que sucede lo siguiente:
      • B es el tamaño del lote. Debe ser 1 (no se admite la inferencia en lotes más grandes).
      • W y H son el ancho y la altura de entrada.
      • C es la cantidad de canales esperados. Debe ser 3.
  • El modelo debe tener al menos un tensor de salida con N clases y 2 o 4 dimensiones:
    • (1xN)
    • (1x1x1xN)
  • Actualmente, solo los modelos de una sola cabeza son totalmente compatibles. Los modelos de varios cabezas pueden generar resultados inesperados.

Metadata

Puedes agregar metadatos al archivo de TensorFlow Lite como se explica en Cómo agregar metadatos a un modelo de TensorFlow Lite.

Para usar un modelo con el tensor de entrada FLOAT32, debes especificar las NormalizationOptions en los metadatos.

También recomendamos que adjuntes estos metadatos al tensor de salida TensorMetadata:

  • Un mapa de etiquetas que especifica el nombre de cada clase de salida, como un AssociatedFile con el tipo TENSOR_AXIS_LABELS (de lo contrario, solo se pueden mostrar los índices de clase de salida numéricos)
  • Un umbral de puntuación predeterminado por debajo del cual los resultados se consideran de muy baja confianza para mostrarse, como una ProcessUnit con ScoreThresholdingOptions