Aplicación Android de Ultralytics: Detección de objetos en tiempo real con modelos YOLO
La aplicación Ultralytics Android es una herramienta poderosa que le permite ejecutar modelos YOLO directamente en su dispositivo Android para la detección de objetos en tiempo real. Esta aplicación utiliza TensorFlow Lite para la optimización del modelo y varios delegados de hardware para la aceleración, lo que permite una detección de objetos rápida y eficiente.
Ver: Primeros pasos con la aplicación Ultralytics HUB (IOS y Android)
Cuantización y Aceleración
Para lograr un rendimiento en tiempo real en su dispositivo Android, los modelos YOLO se cuantifican a FP16 o INT8 precision. La cuantificación es un proceso que reduce la precisión numérica de los pesos y sesgos del modelo, lo que reduce el tamaño del modelo y la cantidad de cálculo requerido. Esto resulta en tiempos de inferencia más rápidos sin afectar significativamente la accuracy del modelo.
Cuantificación FP16
La cuantificación FP16 (o de media precisión) convierte los números de coma flotante de 32 bits del modelo en números de coma flotante de 16 bits. Esto reduce el tamaño del modelo a la mitad y acelera el proceso de inferencia, manteniendo un buen equilibrio entre precisión y rendimiento.
Cuantificación INT8
La cuantificación INT8 (o entero de 8 bits) reduce aún más el tamaño del modelo y los requisitos de computación al convertir sus números de punto flotante de 32 bits en enteros de 8 bits. Este método de cuantificación puede resultar en una aceleración significativa, pero puede conducir a una ligera reducción en la precisión media promedio (mAP) debido a la menor precisión numérica.
Reducción de mAP en modelos INT8
La precisión numérica reducida en los modelos INT8 puede llevar a cierta pérdida de información durante el proceso de cuantificación, lo que puede resultar en una ligera disminución en el mAP. Sin embargo, esta compensación es a menudo aceptable considerando las sustanciales ganancias de rendimiento ofrecidas por la cuantificación INT8.
Delegados y variabilidad del rendimiento
Hay diferentes delegados disponibles en dispositivos Android para acelerar la inferencia del modelo. Estos delegados incluyen CPU, GPU, Hexagon y NNAPI. El rendimiento de estos delegados varía según el proveedor de hardware del dispositivo, la línea de productos y los chipsets específicos utilizados en el dispositivo.
- CPU: La opción predeterminada, con un rendimiento razonable en la mayoría de los dispositivos.
- GPU: Utiliza la GPU del dispositivo para una inferencia más rápida. Puede proporcionar un aumento significativo del rendimiento en dispositivos con GPU potentes.
- Hexagon: Aprovecha el DSP Hexagon de Qualcomm para un procesamiento más rápido y eficiente. Esta opción está disponible en dispositivos con procesadores Qualcomm Snapdragon.
- NNAPI: La API de redes neuronales de Android (NNAPI) sirve como una capa de abstracción para ejecutar modelos de ML en dispositivos Android. NNAPI puede utilizar varios aceleradores de hardware, como CPU, GPU y chips de IA dedicados (por ejemplo, Edge TPU de Google o Pixel Neural Core).
Aquí tiene una tabla que muestra los principales proveedores, sus líneas de productos, los dispositivos populares y los delegados compatibles:
Proveedor | Líneas de productos | Dispositivos populares | Delegados admitidos |
---|---|---|---|
Qualcomm | Snapdragon (p. ej., serie 800) | Samsung Galaxy S21, OnePlus 9, Google Pixel 6 | CPU, GPU, Hexagon, NNAPI |
Samsung | Exynos (p. ej., Exynos 2100) | Samsung Galaxy S21 (versión global) | CPU, GPU, NNAPI |
MediaTek | Dimensity (por ejemplo, Dimensity 1200) | Realme GT, Xiaomi Redmi Note | CPU, GPU, NNAPI |
HiSilicon | Kirin (p. ej., Kirin 990) | Huawei P40 Pro, Huawei Mate 30 Pro | CPU, GPU, NNAPI |
NVIDIA | Tegra (p. ej., Tegra X1) | NVIDIA Shield TV, Nintendo Switch | CPU, GPU, NNAPI |
Ten en cuenta que la lista de dispositivos mencionados no es exhaustiva y puede variar en función de los chipsets y modelos de dispositivo específicos. Prueba siempre tus modelos en tus dispositivos de destino para garantizar la compatibilidad y un rendimiento óptimo.
Ten en cuenta que la elección del delegado puede afectar al rendimiento y a la compatibilidad del modelo. Por ejemplo, es posible que algunos modelos no funcionen con determinados delegados, o que un delegado no esté disponible en un dispositivo específico. Por lo tanto, es esencial probar tu modelo y el delegado elegido en tus dispositivos de destino para obtener los mejores resultados.
Primeros pasos con la aplicación Ultralytics Android
Para empezar con la aplicación de Android de Ultralytics, sigue estos pasos:
-
Descargue la aplicación Ultralytics desde la Google Play Store.
-
Inicie la aplicación en su dispositivo Android e inicie sesión con su cuenta de Ultralytics. Si aún no tiene una cuenta, cree una en https://hub.ultralytics.com/.
-
Una vez que inicie sesión, verá una lista de sus modelos YOLO entrenados. Seleccione un modelo para usarlo en la detección de objetos.
-
Concede a la aplicación permiso para acceder a la cámara de tu dispositivo.
-
Apunte la cámara de su dispositivo a los objetos que desea detectar. La aplicación mostrará cuadros delimitadores y etiquetas de clase en tiempo real a medida que detecta objetos.
-
Explora la configuración de la aplicación para ajustar el umbral de detección, activar o desactivar clases de objetos específicas y mucho más.
Con la aplicación Ultralytics para Android, ahora tienes el poder de la detección de objetos en tiempo real utilizando modelos YOLO al alcance de tu mano. Disfruta explorando las funciones de la aplicación y optimizando su configuración para adaptarla a tus casos de uso específicos.