Ultralytics Android App: Detección de Objetos en Tiempo Real con Modelos YOLO
La aplicación Ultralytics Android es una potente herramienta que te permite ejecutar modelos YOLO directamente en tu dispositivo Android para detectar objetos en tiempo real. Esta app utiliza TensorFlow Lite para la optimización de modelos y varios delegados de hardware para la aceleración, lo que permite una detección de objetos rápida y eficaz.
Observa: Primeros pasos con la aplicación Ultralytics HUB (IOS & Android)
Cuantización y aceleración
Para conseguir un rendimiento en tiempo real en tu dispositivo Android , los modelos YOLO se cuantizan a una precisión FP16 o INT8. La cuantización es un proceso que reduce la precisión numérica del modelo weights and biases, reduciendo así el tamaño del modelo y la cantidad de cálculo necesaria. Así se consiguen tiempos de inferencia más rápidos sin afectar significativamente a la precisión del modelo.
Cuantización FP16
La cuantizació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.
Cuantización INT8
La cuantización INT8 (o entero de 8 bits) reduce aún más el tamaño y los requisitos de cálculo del modelo al convertir sus números de coma flotante de 32 bits en enteros de 8 bits. Este método de cuantización puede suponer un aumento significativo de la velocidad, pero puede conllevar una ligera reducción de la precisión media (mAP) debido a la menor precisión numérica.
Reducción del mAP en los modelos INT8
La menor precisión numérica de los modelos INT8 puede provocar cierta pérdida de información durante el proceso de cuantización, lo que puede dar lugar a una ligera disminución del mAP. Sin embargo, esta compensación suele ser aceptable teniendo en cuenta las sustanciales ganancias de rendimiento que ofrece la cuantización INT8.
Delegados y variabilidad del rendimiento
Existen diferentes delegados en los dispositivos Android para acelerar la inferencia del modelo. Estos delegados incluyen CPU, GPUHexagon y NNAPI. El rendimiento de estos delegados varía en función del proveedor de hardware del dispositivo, la línea de productos y los chipsets específicos utilizados en el dispositivo.
- CPU: La opción por defecto, con un rendimiento razonable en la mayoría de los dispositivos.
- GPU: Utiliza el 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 deredes neuronales Android (NNAPI) sirve como capa de abstracción para ejecutar modelos ML en dispositivos Android . La NNAPI puede utilizar varios aceleradores de hardware, como CPU, GPU, y chips de IA dedicados (por ejemplo, Google's Edge TPU, o el Pixel Neural Core).
Aquí tienes una tabla que muestra los principales proveedores, sus líneas de productos, los dispositivos más populares y los delegados compatibles:
Vendedor | Líneas de productos | Dispositivos populares | Delegados apoyados |
---|---|---|---|
Qualcomm | Snapdragon (por ejemplo, serie 800) | Samsung Galaxy S21, OnePlus 9, Google Pixel 6 | CPU, GPU, Hexágono, NNAPI |
Samsung | Exynos (por ejemplo, Exynos 2100) | Samsung Galaxy S21 (versión Global) | CPU, GPU, NNAPI |
MediaTek | Dimensidad (por ejemplo, Dimensidad 1200) | Realme GT, Xiaomi Redmi Note | CPU, GPU, NNAPI |
HiSilicon | Kirin (por ejemplo, Kirin 990) | Huawei P40 Pro, Huawei Mate 30 Pro | CPU, GPU, NNAPI |
NVIDIA | Tegra (por ejemplo, Tegra X1) | NVIDIA Shield TV, Nintendo Switch | CPU, GPU, NNAPI |
Ten en cuenta que la lista de dispositivos mencionada no es exhaustiva y puede variar en función de los chipsets y modelos de dispositivos concretos. Prueba siempre tus modelos en los 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, algunos modelos pueden no funcionar con determinados delegados, o un delegado puede no estar disponible en un dispositivo concreto. Por ello, es esencial que pruebes tu modelo y el delegado elegido en los dispositivos de destino para obtener los mejores resultados.
Cómo empezar a utilizar la aplicación Ultralytics Android
Para empezar a utilizar la aplicación Ultralytics Android , sigue estos pasos:
Descarga la aplicación Ultralytics en Google Play Store.
Abre la aplicación en tu dispositivo Android e inicia sesión con tu cuenta de Ultralytics . Si aún no tienes una cuenta, créala aquí.
Una vez iniciada la sesión, verás una lista de tus modelos entrenados YOLO . Selecciona un modelo para utilizarlo en la detección de objetos.
Concede a la aplicación permiso para acceder a la cámara de tu dispositivo.
Apunta con la cámara de tu dispositivo a los objetos que quieras detectar. La aplicación mostrará cuadros delimitadores y etiquetas de clase en tiempo real a medida que detecte objetos.
Explora la configuración de la aplicación para ajustar el umbral de detección, activar o desactivar clases específicas de objetos y mucho más.
Con la aplicación Ultralytics Android , ahora tienes al alcance de la mano el poder de la detección de objetos en tiempo real utilizando los modelos YOLO . Disfruta explorando las funciones de la aplicación y optimizando su configuración para adaptarla a tus casos de uso específicos.