Guía de tareas para incorporar imágenes

La tarea de incorporación de imágenes de MediaPipe te permite crear una representación numérica de una imagen, lo que es útil para lograr varias tareas de imágenes basadas en el AA. Esta funcionalidad se usa con frecuencia para comparar la similitud de dos imágenes con técnicas de comparación matemáticas, como la similitud coseno. Esta tarea opera en datos de imagen con un modelo de aprendizaje automático (AA) como datos estáticos o como una transmisión continua, y genera una representación numérica de los datos de la imagen como una lista de vectores de atributos de alta dimensión, también conocidos como vectores de incorporación, en punto flotante o forma cuantificada.

Probar

Comenzar

Comienza a utilizar esta tarea siguiendo una de estas guías de implementación para la plataforma de destino. En estas guías específicas de la plataforma, se explica la implementación básica de esta tarea con un modelo recomendado, y se proporcionan ejemplos de código con las opciones de configuración recomendadas:

Detalles de la tarea

En esta sección, se describen las capacidades, entradas, salidas y opciones de configuración de esta tarea.

Funciones

  • Procesamiento de imágenes de entrada: El procesamiento incluye la rotación de imágenes, el cambio de tamaño, la normalización y la conversión del espacio de color.
  • Región de interés: realiza la incorporación en una región de la imagen en lugar de toda la imagen.
  • Cálculo de similitud de incorporación: es una función de utilidad integrada para calcular la similitud coseno entre dos vectores de atributos.
  • Cuantización: Admite la cuantización escalar para los vectores de atributos.
Entradas de tareas Resultados de la tarea
La entrada puede ser uno de los siguientes tipos de datos:
  • Imágenes fijas
  • Fotogramas de video decodificados
  • Feed de video en vivo
La incorporación de imágenes genera una lista de incorporaciones que consta de lo siguiente:
  • Incorporación: El vector de atributos en sí, ya sea en forma de punto flotante o de forma escalar cuantizada.
  • Índice de encabezado: Es el índice de la cabeza que produjo esta incorporación.
  • Nombre del encabezado (opcional): Es el nombre del encabezado que produjo esta incorporación.

Opciones de configuración

Esta tarea incluye las siguientes opciones de configuración:

Nombre de la opción Descripción Rango de valores Valor predeterminado
running_mode Establece el modo de ejecución para la tarea. Existen tres modos:

IMAGE: El modo para entradas de una sola imagen.

VIDEO: Es el modo para los fotogramas decodificados de un video.

LIVE_STREAM: Es el modo para una transmisión en vivo de datos de entrada, como los que provienen de una cámara. En este modo, se debe llamar a resultListener para configurar un objeto de escucha a fin de recibir resultados de forma asíncrona.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
l2_normalize Indica si se debe normalizar el vector de atributos mostrados con la norma L2. Usa esta opción solo si el modelo todavía no contiene una operación nativa de TFLite L2_NORMALIZATION. En la mayoría de los casos, este ya es el caso y, por lo tanto, la normalización L2 se logra a través de inferencia de TFLite sin necesidad de esta opción. Boolean False
quantize Indica si la incorporación que se muestra debe cuantizarse en bytes a través de la cuantización escalar. Se supone implícitamente que las incorporaciones son la norma unitaria y, por lo tanto, se garantiza que cualquier dimensión tenga un valor en [-1.0, 1.0]. Si este no es el caso, usa la opción l2_normalize. Boolean False
result_callback Configura el objeto de escucha de resultados para recibir los resultados de incorporación de forma asíncrona cuando la incorporación de imágenes está en el modo de transmisión en vivo. Solo se puede usar cuando el modo de ejecución está configurado en LIVE_STREAM N/A No establecida

ajustables

La incorporación de imágenes requiere que se descargue y almacene un modelo de incorporación de imágenes en el directorio del proyecto. Comienza con el modelo predeterminado y recomendado para la plataforma de destino cuando comiences a desarrollar con esta tarea. Por lo general, los otros modelos disponibles ofrecen compensaciones entre el rendimiento, la precisión, la resolución y los requisitos de recursos y, en algunos casos, incluyen características adicionales.

Modelo de MobileNetV3

Esta familia de modelos usa una arquitectura de MobileNet V3 y se entrenó con datos de ImageNet. Este modelo usa un multiplicador de 0.75 para la profundidad (cantidad de atributos) en las capas convolucionales a fin de ajustar la compensación entre precisión y latencia. Además, MobileNet V3 está disponible en dos tamaños diferentes, pequeño y grande, para adaptar la red a casos de uso de recursos bajos o altos.

Nombre del modelo Forma de entrada Tipo de cuantización Versiones
MobileNet-V3 (pequeña) 224 × 224 Ninguna (float32) Más reciente
MobileNet-V3 (grande) 224 × 224 Ninguna (float32) Más reciente

Comparativas de tareas

Estas son las comparativas de tareas para toda la canalización basadas en los modelos previamente entrenados anteriores. El resultado de latencia es la latencia promedio en el Pixel 6 usando CPU / GPU.

Nombre del modelo Latencia de la CPU Latencia de GPU
MobileNet-V3 (pequeño) 3.94ms 7.83ms
MobileNet-V3 (grande) 9.75ms 9.08ms