AplicaciónAndroid Ultralytics : Detección de objetos en tiempo real con modelos YOLO
La aplicación Ultralytics Android es una potente herramienta 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 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 su 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álculos necesarios. De este modo, se obtienen tiempos de inferencia más rápidos sin que ello afecte 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, al tiempo que mantiene un buen equilibrio entre precisión y rendimiento.
INT8 Cuantización
La cuantización INT8 (o entero de 8 bits) reduce aún más el tamaño del modelo y los requisitos de cálculo al convertir sus números de coma flotante de 32 bits en enteros de 8 bits. Este método de cuantización puede dar lugar a un aumento significativo de la velocidad, pero puede provocar una ligera reducción de la precisión media (mAP) debido a la menor precisión numérica.
Reducción de mAP en 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 traducirse en una ligera disminución del mAP. Sin embargo, esta compensación suele ser aceptable si se tienen en cuenta las sustanciales mejoras de rendimiento que ofrece la cuantización INT8.
Delegados y variabilidad del rendimiento
En los dispositivos Android existen diferentes delegados para acelerar la inferencia de modelos. 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 la dirección GPU del dispositivo para acelerar la inferencia. 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 de capa de abstracción para ejecutar modelos de 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 con 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, Hexagon, NNAPI |
Samsung | Exynos (por ejemplo, Exynos 2100) | Samsung Galaxy S21 (versión global) | CPU, GPU, NNAPI |
MediaTek | Dimensidad (por ejemplo, Dimensity 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 |
Tenga en cuenta que la lista de dispositivos mencionada no es exhaustiva y puede variar en función de los chipsets y modelos de dispositivos específicos. Pruebe siempre sus 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 de los modelos. Por ejemplo, algunos modelos pueden no funcionar con determinados delegados, o un delegado puede no estar disponible en un dispositivo específico. Por ello, es esencial probar el modelo y el delegado elegido en los dispositivos de destino para obtener los mejores resultados.
Primeros pasos con la aplicación Ultralytics Android
Para empezar a utilizar la aplicación Ultralytics Android , siga estos pasos:
-
Descargue 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á una lista de sus modelos entrenados en YOLO . Seleccione 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.
-
Explore 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 tiene al alcance de la mano el poder de la detección de objetos en tiempo real utilizando los modelos YOLO . Disfrute explorando las funciones de la aplicación y optimizando su configuración para adaptarla a sus casos de uso específicos.