YOLOv10: Detección de objetos de extremo a extremo en tiempo real
YOLOv10, basado en el paquete UltralyticsPython por investigadores de la Universidad de Tsinghua, introduce un nuevo enfoque para la detección de objetos en tiempo real, abordando tanto las deficiencias en el post-procesamiento como en la arquitectura del modelo encontradas en versiones anteriores de YOLO . Mediante la eliminación de la supresión no máxima (NMS) y la optimización de varios componentes del modelo, YOLOv10 consigue un rendimiento de vanguardia con una sobrecarga computacional significativamente reducida. Extensos experimentos demuestran su superior equilibrio entre precisión y latencia en múltiples escalas de modelos.
Observa: Cómo entrenar YOLOv10 en el conjunto de datos SKU-110k utilizando Ultralytics | Retail Dataset
Visión general
La detección de objetos en tiempo real pretende predecir con precisión las categorías y posiciones de los objetos en las imágenes con baja latencia. La serie YOLO ha estado a la vanguardia de esta investigación por su equilibrio entre rendimiento y eficiencia. Sin embargo, la dependencia de NMS y las ineficiencias arquitectónicas han dificultado un rendimiento óptimo. YOLOv10 aborda estos problemas introduciendo asignaciones duales coherentes para un entrenamiento sin NMS y una estrategia holística de diseño de modelos basada en la eficiencia y la precisión.
Arquitectura
La arquitectura de YOLOv10 se basa en los puntos fuertes de los modelos anteriores de YOLO , al tiempo que introduce varias innovaciones clave. La arquitectura del modelo consta de los siguientes componentes:
- Red troncal: Responsable de la extracción de características, la columna vertebral de YOLOv10 utiliza una versión mejorada de CSPNet (Cross Stage Partial Network) para mejorar el flujo de gradiente y reducir la redundancia computacional.
- Cuello: El cuello está diseñado para agregar características de diferentes escalas y pasarlas a la cabeza. Incluye capas PAN (Path Aggregation Network) para una fusión eficaz de características multiescala.
- Cabezal uno a muchos: genera múltiples predicciones por objeto durante el entrenamiento para proporcionar ricas señales de supervisión y mejorar la precisión del aprendizaje.
- Cabezal uno a uno: genera una única mejor predicción por objeto durante la inferencia para eliminar la necesidad de NMS, reduciendo así la latencia y mejorando la eficiencia.
Características principales
- Formación sin NMS: Utiliza asignaciones duales coherentes para eliminar la necesidad de NMS, reduciendo la latencia de inferencia.
- Diseño holístico de modelos: Optimización exhaustiva de varios componentes tanto desde el punto de vista de la eficiencia como de la precisión, incluidos cabezales de clasificación ligeros, muestreo descendente desacoplado de canales espaciales y diseño de bloques guiado por rangos.
- Capacidades de modelo mejoradas: Incorpora convoluciones de núcleo grande y módulos de autoatención parcial para mejorar el rendimiento sin un coste computacional significativo.
Variantes de modelos
YOLOv10 está disponible en varias escalas de modelos para satisfacer las distintas necesidades de aplicación:
- YOLOv10-N: versión nano para entornos con recursos extremadamente limitados.
- YOLOv10-S: versión pequeña que equilibra velocidad y precisión.
- YOLOv10-M: Versión media para uso general.
- YOLOv10-B: Versión equilibrada con mayor anchura para una mayor precisión.
- YOLOv10-L: Versión de gran tamaño para una mayor precisión a costa de un aumento de los recursos informáticos.
- YOLOv10-X: Versión extragrande para máxima precisión y rendimiento.
Rendimiento
YOLOv10 supera en precisión y eficacia a las versiones anteriores de YOLO y a otros modelos de vanguardia. Por ejemplo, YOLOv10-S es 1,8 veces más rápido que RT-DETR-R18 con un AP similar en el conjunto de datos COCO, y YOLOv10-B tiene un 46% menos de latencia y un 25% menos de parámetros que YOLOv9-C con el mismo rendimiento.
Modelo | Tamaño de entrada | APval | FLOPs (G) | Latencia (ms) |
---|---|---|---|---|
YOLOv10-N | 640 | 38.5 | 6.7 | 1.84 |
YOLOv10-S | 640 | 46.3 | 21.6 | 2.49 |
YOLOv10-M | 640 | 51.1 | 59.1 | 4.74 |
YOLOv10-B | 640 | 52.5 | 92.0 | 5.74 |
YOLOv10-L | 640 | 53.2 | 120.3 | 7.28 |
YOLOv10-X | 640 | 54.4 | 160.4 | 10.70 |
Latencia medida con TensorRT FP16 en T4 GPU.
Metodología
Doble asignación coherente para una formación sin NMS
YOLOv10 emplea asignaciones de etiquetas duales, combinando estrategias uno a muchos y uno a uno durante el entrenamiento para garantizar una supervisión rica y un despliegue eficiente de extremo a extremo. La métrica de correspondencia coherente alinea la supervisión entre ambas estrategias, mejorando la calidad de las predicciones durante la inferencia.
Diseño holístico de modelos basado en la eficiencia y la precisión
Mejoras de la eficiencia
- Cabezal de clasificación ligero: Reduce la carga computacional del cabezal de clasificación utilizando convoluciones separables en profundidad.
- Muestreo descendente desacoplado espacio-canal: Desacopla la reducción espacial y la modulación del canal para minimizar la pérdida de información y el coste computacional.
- Diseño de bloques guiado por rangos: Adapta el diseño de los bloques en función de la redundancia intrínseca de las etapas, garantizando una utilización óptima de los parámetros.
Mejoras de precisión
- Convolución de núcleo grande: Amplía el campo receptivo para mejorar la capacidad de extracción de características.
- Autoatención parcial (PSA): incorpora módulos de autoatención para mejorar el aprendizaje de la representación global con una sobrecarga mínima.
Experimentos y resultados
YOLOv10 se ha sometido a pruebas exhaustivas en pruebas de referencia estándar como COCO, demostrando un rendimiento y una eficacia superiores. El modelo obtiene resultados de vanguardia en distintas variantes, con mejoras significativas en latencia y precisión en comparación con versiones anteriores y otros detectores actuales.
Comparaciones
En comparación con otros detectores de última generación:
- YOLOv10-S / X son 1,8× / 1,3× más rápidos que RT-DETR-R18 / R101 con una precisión similar
- YOLOv10-B tiene un 25% menos de parámetros y un 46% menos de latencia que YOLOv9-C con la misma precisión.
- YOLOv10-L / X supera a YOLOv8-L / X en 0,3 AP / 0,5 AP con 1,8× / 2,3× menos parámetros.
Aquí tienes una comparación detallada de las variantes del YOLOv10 con otros modelos de última generación:
Modelo | Parámetros (M) |
FLOPs (G) |
mAPval 50-95 |
Latencia (ms) |
Latencia-reenvío (ms) |
---|---|---|---|---|---|
YOLOv6-3.0-N | 4.7 | 11.4 | 37.0 | 2.69 | 1.76 |
Oro-YOLO-N | 5.6 | 12.1 | 39.6 | 2.92 | 1.82 |
YOLOv8-N | 3.2 | 8.7 | 37.3 | 6.16 | 1.77 |
YOLOv10-N | 2.3 | 6.7 | 39.5 | 1.84 | 1.79 |
YOLOv6-3.0-S | 18.5 | 45.3 | 44.3 | 3.42 | 2.35 |
Oro-YOLO-S | 21.5 | 46.0 | 45.4 | 3.82 | 2.73 |
YOLOv8-S | 11.2 | 28.6 | 44.9 | 7.07 | 2.33 |
YOLOv10-S | 7.2 | 21.6 | 46.8 | 2.49 | 2.39 |
RT-DETR-R18 | 20.0 | 60.0 | 46.5 | 4.58 | 4.49 |
YOLOv6-3.0-M | 34.9 | 85.8 | 49.1 | 5.63 | 4.56 |
Oro-YOLO-M | 41.3 | 87.5 | 49.8 | 6.38 | 5.45 |
YOLOv8-M | 25.9 | 78.9 | 50.6 | 9.50 | 5.09 |
YOLOv10-M | 15.4 | 59.1 | 51.3 | 4.74 | 4.63 |
YOLOv6-3.0-L | 59.6 | 150.7 | 51.8 | 9.02 | 7.90 |
Oro-YOLO-L | 75.1 | 151.7 | 51.8 | 10.65 | 9.78 |
YOLOv8-L | 43.7 | 165.2 | 52.9 | 12.39 | 8.06 |
RT-DETR-R50 | 42.0 | 136.0 | 53.1 | 9.20 | 9.07 |
YOLOv10-L | 24.4 | 120.3 | 53.4 | 7.28 | 7.21 |
YOLOv8-X | 68.2 | 257.8 | 53.9 | 16.86 | 12.83 |
RT-DETR-R101 | 76.0 | 259.0 | 54.3 | 13.71 | 13.58 |
YOLOv10-X | 29.5 | 160.4 | 54.4 | 10.70 | 10.60 |
Ejemplos de uso
Para predecir nuevas imágenes con YOLOv10:
Ejemplo
Para entrenar YOLOv10 en un conjunto de datos personalizado:
Ejemplo
Tareas y modos compatibles
La serie de modelos YOLOv10 ofrece una gama de modelos, cada uno de ellos optimizado para la detección de objetos de alto rendimiento. Estos modelos se adaptan a diferentes necesidades de cálculo y requisitos de precisión, lo que los hace versátiles para una amplia gama de aplicaciones.
Modelo | Nombres de archivo | Tareas | Inferencia | Validación | Formación | Exportar |
---|---|---|---|---|---|---|
YOLOv10 | yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.pt |
Detección de objetos | ✅ | ✅ | ✅ | ✅ |
Exportar YOLOv10
Debido a las nuevas operaciones introducidas con YOLOv10, no todos los formatos de exportación proporcionados por Ultralytics son actualmente compatibles. La siguiente tabla muestra los formatos que se han convertido con éxito utilizando Ultralytics para YOLOv10. No dude en abrir una solicitud de extracción si es capaz de proporcionar un cambio de contribución para añadir soporte de exportación de formatos adicionales para YOLOv10.
Formato de exportación | Apoyo a la exportación | Inferencia del modelo exportado | Notas |
---|---|---|---|
TorchScript | ✅ | ✅ | Estándar PyTorch formato del modelo. |
ONNX | ✅ | ✅ | Amplio soporte para el despliegue. |
OpenVINO | ✅ | ✅ | Optimizado para el hardware Intel . |
TensorRT | ✅ | ✅ | Optimizado para GPUs NVIDIA . |
CoreML | ✅ | ✅ | Limitado a dispositivos Apple. |
TF SavedModel | ✅ | ✅ | TensorFlowformato de modelo estándar. |
TF GraphDef | ✅ | ✅ | Formato heredado TensorFlow . |
TF Lite | ✅ | ✅ | Optimizado para móviles e incrustado. |
TF Borde TPU | ✅ | ✅ | Específico de los dispositivos Google's Edge TPU . |
TF.js | ✅ | ✅ | Entorno JavaScript para uso en navegadores. |
PaddlePaddle | ❌ | ❌ | Popular en China; menos apoyo mundial. |
NCNN | ✅ | ❌ | Capa torch.topk no existe ni está registrado |
Conclusión
YOLOv10 establece un nuevo estándar en la detección de objetos en tiempo real al subsanar las deficiencias de las versiones anteriores de YOLO e incorporar estrategias de diseño innovadoras. Su capacidad para ofrecer una gran precisión con un bajo coste computacional lo convierte en la opción ideal para una amplia gama de aplicaciones del mundo real.
Citas y agradecimientos
Nos gustaría agradecer a los autores de YOLOv10 de la Universidad de Tsinghua su extensa investigación y sus importantes contribuciones al Ultralytics marco:
Para una implementación detallada, innovaciones arquitectónicas y resultados experimentales, consulte el documento de investigación YOLOv10 y el repositorio GitHub del equipo de la Universidad Tsinghua.
PREGUNTAS FRECUENTES
¿Qué es YOLOv10 y en qué se diferencia de las versiones anteriores de YOLO ?
YOLOv10, desarrollado por investigadores de la Universidad de Tsinghua, introduce varias innovaciones clave en la detección de objetos en tiempo real. Elimina la necesidad de supresión no máxima (NMS) empleando asignaciones duales coherentes durante el entrenamiento y componentes de modelo optimizados para un rendimiento superior con una sobrecarga computacional reducida. Para obtener más información sobre su arquitectura y características principales, consulte la sección de descripción general de YOLOv10.
¿Cómo puedo empezar a realizar inferencias con YOLOv10?
Para facilitar la inferencia, puede utilizar la biblioteca Ultralytics YOLO Python o la interfaz de línea de comandos (CLI). A continuación se muestran ejemplos de predicción de nuevas imágenes utilizando YOLOv10:
Ejemplo
Para más ejemplos de uso, visite nuestra sección Ejemplos de uso.
¿Qué variantes de modelo ofrece YOLOv10 y cuáles son sus casos de uso?
YOLOv10 ofrece varias variantes de modelos para adaptarse a diferentes casos de uso:
- YOLOv10-N: adecuado para entornos con recursos muy limitados
- YOLOv10-S: equilibrio entre velocidad y precisión
- YOLOv10-M: Uso general
- YOLOv10-B: mayor precisión con mayor anchura
- YOLOv10-L: alta precisión a costa de recursos informáticos
- YOLOv10-X: Máxima precisión y rendimiento
Cada variante está diseñada para diferentes necesidades computacionales y requisitos de precisión, lo que las hace versátiles para una gran variedad de aplicaciones. Explore la sección Variantes de modelos para obtener más información.
¿Cómo mejora el rendimiento el enfoque sin NMS de YOLOv10?
YOLOv10 elimina la necesidad de supresión no máxima (NMS) durante la inferencia empleando asignaciones duales consistentes para el entrenamiento. Este enfoque reduce la latencia de la inferencia y mejora la eficacia de la predicción. La arquitectura también incluye una cabeza uno a uno para la inferencia, lo que garantiza que cada objeto obtiene una única mejor predicción. Para una explicación detallada, consulte la sección Asignaciones duales coherentes para un entrenamiento sin NMS.
¿Dónde puedo encontrar las opciones de exportación de los modelos YOLOv10?
YOLOv10 soporta varios formatos de exportación, incluyendo TorchScript, ONNX, OpenVINO, y TensorRT. Sin embargo, no todos los formatos de exportación proporcionados por Ultralytics son actualmente soportados por YOLOv10 debido a sus nuevas operaciones. Para más detalles sobre los formatos soportados e instrucciones sobre la exportación, visite la sección Exportar YOLOv10.
¿Cuáles son los parámetros de rendimiento de los modelos YOLOv10?
YOLOv10 supera a las versiones anteriores de YOLO y a otros modelos de vanguardia tanto en precisión como en eficacia. Por ejemplo, YOLOv10-S es 1,8 veces más rápido que RT-DETR-R18 con un PA similar en el conjunto de datos COCO. YOLOv10-B muestra un 46% menos de latencia y un 25% menos de parámetros que YOLOv9-C con el mismo rendimiento. En la sección de comparaciones se detallan las pruebas comparativas.