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.
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:
- Android - Ejemplo de código - Guía
- Python - Ejemplo de código - Guía
- Web - Ejemplo de código - Guía
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:
|
La incorporación de imágenes genera una lista de incorporaciones que consta de lo siguiente:
|
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 |