Link to this sectionYOLOv10: Detección de objetos de extremo a extremo en tiempo real#
YOLOv10, released in May 2024 and built on the Ultralytics Python package by researchers at Tsinghua University, introduces a new approach to real-time object detection, addressing both the post-processing and model architecture deficiencies found in previous YOLO versions. By eliminating non-maximum suppression (NMS) and optimizing various model components, YOLOv10 achieved excellent performance with significantly reduced computational overhead at its time of release. Its NMS-free end-to-end design pioneered an approach that has been further developed in YOLO26.

Watch: How to Train YOLOv10 on SKU-110k Dataset using Ultralytics | Retail Dataset
Link to this sectionDescripción general#
La detección de objetos en tiempo real busca predecir con precisión las categorías y posiciones de los objetos en imágenes con baja latencia. La serie YOLO ha estado a la vanguardia de esta investigación debido a su equilibrio entre rendimiento y eficiencia. Sin embargo, la dependencia de NMS y las ineficiencias arquitectónicas han obstaculizado un rendimiento óptimo. YOLOv10 aborda estos problemas introduciendo asignaciones duales consistentes para el entrenamiento sin NMS y una estrategia de diseño de modelos impulsada holísticamente por la eficiencia y la precisión.
Link to this sectionArquitectura#
La arquitectura de YOLOv10 se basa en los puntos fuertes de los modelos YOLO anteriores e introduce varias innovaciones clave. La arquitectura del modelo consta de los siguientes componentes:
- Backbone: Responsable de la extracción de características, el backbone en YOLOv10 utiliza una versión mejorada de CSPNet (Cross Stage Partial Network) para mejorar el flujo de gradiente y reducir la redundancia computacional.
- Neck: El neck está diseñado para agregar características de diferentes escalas y pasarlas al head. Incluye capas de PAN (Path Aggregation Network) para una fusión efectiva de características multiescala.
- One-to-Many Head: Genera múltiples predicciones por objeto durante el entrenamiento para proporcionar señales de supervisión ricas y mejorar la precisión del aprendizaje.
- One-to-One Head: 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.
Link to this sectionCaracterísticas clave#
- NMS-Free Training: Utiliza asignaciones duales consistentes para eliminar la necesidad de NMS, reduciendo la latencia de inferencia.
- Holistic Model Design: Optimización integral de varios componentes desde perspectivas de eficiencia y precisión, incluyendo cabezales de clasificación ligeros, submuestreo desacoplado de canal espacial y diseño de bloques guiado por rango.
- Enhanced Model Capabilities: Incorpora convoluciones de gran kernel y módulos de autoatención parcial para mejorar el rendimiento sin un coste computacional significativo.
Link to this sectionVariantes del modelo#
YOLOv10 viene en varias escalas de modelo para satisfacer diferentes necesidades de aplicación:
- YOLOv10n: Versión Nano para entornos extremadamente limitados en recursos.
- YOLOv10s: Versión Small que equilibra velocidad y precisión.
- YOLOv10m: Versión Medium para uso general.
- YOLOv10b: Versión Balanced con mayor anchura para una mayor precisión.
- YOLOv10l: Versión Large para mayor precisión a costa de mayores recursos computacionales.
- YOLOv10x: Versión Extra-large para máxima precisión y rendimiento.
Link to this sectionRendimiento#
YOLOv10 supera a versiones anteriores de YOLO y otros modelos de vanguardia en términos de precisión y eficiencia. Por ejemplo, YOLOv10s es 1.8 veces más rápido que RT-DETR-R18 con un AP similar en el conjunto de datos COCO, y YOLOv10b tiene un 46% menos de latencia y un 25% menos de parámetros que YOLOv9-C con el mismo rendimiento.
Latencia medida con TensorRT FP16 en GPU T4.
| Modelo | Tamaño de entrada | APval | FLOPs (G) | Latencia (ms) |
|---|---|---|---|---|
| [YOLOv10n][1] | 640 | 38.5 | 6.7 | 1.84 |
| [YOLOv10s][2] | 640 | 46.3 | 21.6 | 2.49 |
| [YOLOv10m][3] | 640 | 51.1 | 59.1 | 4.74 |
| [YOLOv10b][4] | 640 | 52.5 | 92.0 | 5.74 |
| [YOLOv10l][5] | 640 | 53.2 | 120.3 | 7.28 |
| [YOLOv10x][6] | 640 | 54.4 | 160.4 | 10.70 |
Link to this sectionMetodología#
Link to this sectionAsignaciones duales consistentes para el entrenamiento sin NMS#
YOLOv10 emplea asignaciones de etiquetas duales, combinando estrategias de uno a muchos y de uno a uno durante el entrenamiento para garantizar una supervisión rica y una implementación eficiente de extremo a extremo. La métrica de emparejamiento consistente alinea la supervisión entre ambas estrategias, mejorando la calidad de las predicciones durante la inferencia.
Link to this sectionDiseño de modelo holístico impulsado por la eficiencia y la precisión#
Link to this sectionMejoras de eficiencia#
- Lightweight Classification Head: Reduce la carga computacional del cabezal de clasificación mediante el uso de convoluciones separables en profundidad.
- Spatial-Channel Decoupled Down sampling: Desacopla la reducción espacial y la modulación de canales para minimizar la pérdida de información y el coste computacional.
- Rank-Guided Block Design: Adapta el diseño de bloques en función de la redundancia intrínseca de la etapa, asegurando una utilización óptima de los parámetros.
Link to this sectionMejoras de precisión#
- Large-Kernel Convolution: Amplía el campo receptivo para mejorar la capacidad de extracción de características.
- Partial Self-Attention (PSA): Incorpora módulos de autoatención para mejorar el aprendizaje de representación global con una sobrecarga mínima.
Link to this sectionExperimentos y resultados#
YOLOv10 ha sido ampliamente probado en puntos de referencia estándar como COCO, demostrando un rendimiento y una eficiencia superiores. El modelo logra resultados de vanguardia en diferentes variantes, mostrando mejoras significativas en latencia y precisión en comparación con versiones anteriores y otros detectores contemporáneos.
Link to this sectionComparaciones#

En comparación con otros detectores de vanguardia:
- YOLOv10s / x son 1.8× / 1.3× más rápidos que RT-DETR-R18 / R101 con una precisión similar
- YOLOv10b tiene un 25% menos de parámetros y un 46% menos de latencia que YOLOv9-C con la misma precisión
- YOLOv10l / x superan a YOLOv8l / x por 0.3 AP / 0.5 AP con 1.8× / 2.3× menos parámetros
Aquí tienes una comparación detallada de las variantes de YOLOv10 con otros modelos de vanguardia:
| Modelo | Params (M) | FLOPs (G) | mAPval 50-95 | Latencia (ms) | Latencia-forward (ms) |
|---|---|---|---|---|---|
| YOLOv6-3.0-N | 4.7 | 11.4 | 37.0 | 2.69 | 1.76 |
| Gold-YOLO-N | 5.6 | 12.1 | 39.6 | 2.92 | 1.82 |
| YOLOv8n | 3.2 | 8.7 | 37.3 | 6.16 | 1.77 |
| YOLOv10n | 2.3 | 6.7 | 39.5 | 1.84 | 1.79 |
| YOLOv6-3.0-S | 18.5 | 45.3 | 44.3 | 3.42 | 2.35 |
| Gold-YOLO-S | 21.5 | 46.0 | 45.4 | 3.82 | 2.73 |
| YOLOv8s | 11.2 | 28.6 | 44.9 | 7.07 | 2.33 |
| YOLOv10s | 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 |
| Gold-YOLO-M | 41.3 | 87.5 | 49.8 | 6.38 | 5.45 |
| YOLOv8m | 25.9 | 78.9 | 50.6 | 9.50 | 5.09 |
| YOLOv10m | 15.4 | 59.1 | 51.3 | 4.74 | 4.63 |
| YOLOv6-3.0-L | 59.6 | 150.7 | 51.8 | 9.02 | 7.90 |
| Gold-YOLO-L | 75.1 | 151.7 | 51.8 | 10.65 | 9.78 |
| YOLOv8l | 43.7 | 165.2 | 52.9 | 12.39 | 8.06 |
| RT-DETR-R50 | 42.0 | 136.0 | 53.1 | 9.20 | 9.07 |
| YOLOv10l | 24.4 | 120.3 | 53.4 | 7.28 | 7.21 |
| YOLOv8x | 68.2 | 257.8 | 53.9 | 16.86 | 12.83 |
| RT-DETR-R101 | 76.0 | 259.0 | 54.3 | 13.71 | 13.58 |
| YOLOv10x | 29.5 | 160.4 | 54.4 | 10.70 | 10.60 |
Los valores de parámetros y FLOPs corresponden al modelo fusionado tras usar model.fuse(), que combina las capas Conv y BatchNorm y elimina la cabecera auxiliar de detección uno-a-muchos. Los puntos de control preentrenados conservan la arquitectura de entrenamiento completa y pueden mostrar recuentos más elevados.
Link to this sectionEjemplos de uso#
Para realizar predicciones en imágenes nuevas con YOLOv10. Los modelos también se pueden entrenar en GPU en la nube a través de Ultralytics Platform:
from ultralytics import YOLO
# Load a pretrained YOLOv10n model
model = YOLO("yolov10n.pt")
# Perform object detection on an image
results = model("image.jpg")
# Display the results
results[0].show()Para entrenar YOLOv10 en un conjunto de datos personalizado:
from ultralytics import YOLO
# Load YOLOv10n model from scratch
model = YOLO("yolov10n.yaml")
# Train the model
model.train(data="coco8.yaml", epochs=100, imgsz=640)Link to this sectionTareas y modos soportados#
La serie de modelos YOLOv10 ofrece una gama de modelos, cada uno optimizado para Detección de objetos de alto rendimiento. Estos modelos se adaptan a distintas necesidades computacionales y requisitos de precisión, lo que los hace versátiles para una amplia variedad de aplicaciones.
| Modelo | Nombres de archivo | Tareas | Inferencia | Validación | Entrenamiento | Exportar |
|---|---|---|---|---|---|---|
| YOLOv10 | yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.pt | Detección de objetos | ✅ | ✅ | ✅ | ✅ |
Link to this sectionExportar YOLOv10#
Debido a las nuevas operaciones introducidas con YOLOv10, no todos los formatos de exportación proporcionados por Ultralytics son compatibles actualmente. La siguiente tabla describe qué formatos se han convertido correctamente utilizando Ultralytics para YOLOv10. Siéntete libre de abrir una solicitud de extracción (pull request) si puedes aportar un cambio de contribución para añadir compatibilidad de exportación de formatos adicionales para YOLOv10.
| Formato de exportación | Soporte de exportación | Inferencia del modelo exportado | Notas |
|---|---|---|---|
| TorchScript | ✅ | ✅ | Formato de modelo PyTorch estándar. |
| ONNX | ✅ | ✅ | Ampliamente compatible para despliegue. |
| OpenVINO | ✅ | ✅ | Optimizado para hardware Intel. |
| TensorRT | ✅ | ✅ | Optimizado para GPU NVIDIA. |
| CoreML | ✅ | ✅ | Limitado a dispositivos Apple. |
| TF SavedModel | ✅ | ✅ | Formato de modelo estándar de TensorFlow. |
| TF GraphDef | ✅ | ✅ | Formato heredado de TensorFlow. |
| TF Lite | ✅ | ✅ | Optimizado para dispositivos móviles y embebidos. |
| TF Edge TPU | ✅ | ✅ | Específico para dispositivos Edge TPU de Google. |
| TF.js | ✅ | ✅ | Entorno JavaScript para uso en navegador. |
| PaddlePaddle | ❌ | ❌ | Popular en China; menor soporte global. |
| NCNN | ✅ | ❌ | La capa torch.topk no existe o no está registrada |
Link to this sectionConclusión#
YOLOv10 estableció un nuevo estándar en la detección de objetos en tiempo real tras su lanzamiento al abordar las carencias de las versiones anteriores de YOLO e incorporar estrategias de diseño innovadoras. Su enfoque sin NMS fue pionero en la detección de objetos de extremo a extremo dentro de la familia YOLO. Para conocer el modelo Ultralytics más reciente con un rendimiento mejorado e inferencia sin NMS, consulta YOLO26.
Link to this sectionCitas y agradecimientos#
Queremos reconocer a los autores de YOLOv10 de la Universidad de Tsinghua por su extensa investigación y sus importantes contribuciones al framework Ultralytics:
@article{THU-MIGyolov10,
title={YOLOv10: Real-Time End-to-End Object Detection},
author={Ao Wang, Hui Chen, Lihao Liu, et al.},
journal={arXiv preprint arXiv:2405.14458},
year={2024},
institution={Tsinghua University},
license = {AGPL-3.0}
}Para una implementación detallada, innovaciones arquitectónicas y resultados experimentales, consulta el artículo de investigación de YOLOv10 y el repositorio de GitHub del equipo de la Universidad de Tsinghua.
Link to this sectionFAQ#
Link to this section¿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 de no máximos (NMS) empleando asignaciones duales consistentes durante el entrenamiento y componentes de modelo optimizados para un rendimiento superior con un menor consumo computacional. Para más detalles sobre su arquitectura y características clave, echa un vistazo a la sección Resumen de YOLOv10.
Link to this section¿Cómo puedo empezar a ejecutar inferencias utilizando YOLOv10?#
Para una inferencia sencilla, puedes utilizar la biblioteca de Python de Ultralytics YOLO o la interfaz de línea de comandos (CLI). A continuación tienes ejemplos de cómo realizar predicciones en imágenes nuevas utilizando YOLOv10:
from ultralytics import YOLO
# Load the pretrained YOLOv10n model
model = YOLO("yolov10n.pt")
results = model("image.jpg")
results[0].show()Para más ejemplos de uso, visita nuestra sección Ejemplos de uso.
Link to this section¿Qué variantes de modelo ofrece YOLOv10 y cuáles son sus casos de uso?#
YOLOv10 ofrece varias variantes de modelo para adaptarse a diferentes casos de uso:
- YOLOv10n: Adecuado para entornos con recursos extremadamente limitados
- YOLOv10s: Equilibra velocidad y precisión
- YOLOv10m: Uso de propósito general
- YOLOv10b: Mayor precisión con un aumento en la anchura
- YOLOv10l: Alta precisión a costa de recursos computacionales
- YOLOv10x: Máxima precisión y rendimiento
Cada variante está diseñada para diferentes necesidades computacionales y requisitos de precisión, haciéndolas versátiles para una variedad de aplicaciones. Explora la sección Variantes de modelo para más información.
Link to this section¿Cómo mejora el rendimiento el enfoque sin NMS en YOLOv10?#
YOLOv10 elimina la necesidad de la supresión de no máximos (NMS) durante la inferencia mediante el empleo de asignaciones duales consistentes para el entrenamiento. Este enfoque reduce la latencia de inferencia y mejora la eficiencia de la predicción. La arquitectura también incluye una cabecera de uno a uno para la inferencia, asegurando que cada objeto obtenga una única mejor predicción. Para una explicación detallada, consulta la sección Asignaciones duales consistentes para el entrenamiento sin NMS.
Link to this section¿Dónde puedo encontrar las opciones de exportación para los modelos YOLOv10?#
YOLOv10 admite varios formatos de exportación, incluidos TorchScript, ONNX, OpenVINO y TensorRT. Sin embargo, no todos los formatos de exportación proporcionados por Ultralytics son compatibles actualmente para YOLOv10 debido a sus nuevas operaciones. Para más detalles sobre los formatos compatibles e instrucciones sobre la exportación, visita la sección Exportar YOLOv10.
Link to this section¿Cuáles son los puntos de referencia de rendimiento para los modelos YOLOv10?#
YOLOv10 supera a las versiones anteriores de YOLO y a otros modelos de última generación tanto en precisión como en eficiencia. Por ejemplo, YOLOv10s es 1.8 veces más rápido que RT-DETR-R18 con una AP similar en el conjunto de datos COCO. YOLOv10b muestra un 46% menos de latencia y un 25% menos de parámetros que YOLOv9-C con el mismo rendimiento. Los puntos de referencia detallados se pueden encontrar en la sección Comparaciones.