Modelos personalizados con ML Kit

De forma predeterminada, las API del Kit de AA 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 que están más orientados. Es por eso que algunas API del Kit de AA ahora te permiten reemplazar los modelos predeterminados por modelos personalizados de TensorFlow Lite.

Las API de etiquetado de imágenes y detección y seguimiento de objetos ofrecen compatibilidad con modelos personalizados de clasificación de imágenes. 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 prácticos, visita la página de 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 integrado en el dispositivo.

Beneficios de usar el Kit de AA con modelos personalizados

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

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

Y, en particular, para la detección y seguimiento de objetos:

  • Mejora la precisión de la clasificación. Para ello, busca los objetos primero y solo ejecuta el clasificador en el área de la imagen relacionada.
  • Brinda una experiencia interactiva en tiempo real: brinda a los usuarios comentarios inmediatos 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 o de otros creadores de modelos) que cumplen con estos criterios.

Usar un modelo publicado en TensorFlow Hub

TensorFlow Hub ofrece una amplia variedad de modelos de clasificación de imágenes previamente entrenados, provenientes de varios creadores de modelos, que se pueden usar con las API de etiquetado de imágenes y de detección de objetos. Siga estos pasos.

  1. Elige un modelo de la colección de modelos compatibles del Kit de AA.
  2. Descarga el archivo del 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 etiquetado de imágenes o la API de detección y seguimiento de objetos, a fin de aprender a empaquetar archivos de modelos con tu proyecto y usarlos 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 previamente entrenado 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 última generación
  • Evalúe fácilmente 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
  • Entrenar un modelo con TensorFlow y luego convertirlo 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 API de etiquetado de imágenes y detección de objetos y seguimiento. Estas API también admiten la descarga de modelos alojados con la implementación de modelos de Firebase.

Para 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 para cada API, según tu caso práctico.

TensorFlow Lite Model Maker

La biblioteca de Model Maker de TFLite simplifica el proceso de adaptación y conversión de un modelo de red neuronal de TensorFlow a datos de entrada particulares cuando se implementa este modelo para aplicaciones de AA en el dispositivo. Puedes seguir la clasificación de Colab para 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 Image Labeling o la API de detección y seguimiento de objetos, según tu caso práctico.

Modelos creados con el conversor de TensorFlow Lite

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

Para obtener más información sobre cómo usar un modelo de TensorFlow Lite en tus apps para iOS y Android, sigue las guías de la API de etiquetado de imágenes o la API de detección y seguimiento de objetos, según tu caso práctico.

Compatibilidad con modelos de TensorFlow Lite

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

Tensores

  • El modelo debe tener solo un tensor de entrada con las siguientes restricciones:
    • Los datos están en formato de píxeles RGB.
    • Los datos son de tipo UINT8 o FLOAT32. Si el tipo de tensor de entrada es FLOAT32, debe especificar las NormalizationOptions adjuntando metadatos.
    • El tensor tiene 4 dimensiones : BxHxWxC, donde:
      • B es el tamaño del lote. Debe ser 1 (la inferencia en lotes más grandes no es compatible).
      • 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 clases N y 2 o 4 dimensiones:
    • (1 × N)
    • (1 × 1 × 1 × N)
  • Actualmente, solo los modelos de una sola cabeza son totalmente compatibles. Los modelos de varios encabezados pueden generar resultados inesperados.

Metadatos

Puedes agregar metadatos al archivo de TensorFlow Lite como se explica en Agregar metadatos al modelo de TensorFlow Lite.

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

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

  • Un mapa de etiquetas que especifique el nombre de cada clase de salida, como un AssociatedFile con 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 muy poco seguros, como una ProcessUnit con ScoreThresholdingOptions