YOLOv9 frente a YOLOv9: una comparación técnica exhaustiva
El panorama de la detección de objetos ha evolucionado rápidamente, con sucesivas iteraciones de la arquitectura YOLO (You Only Look Once) que han ampliado los límites de la velocidad y la precisión. Dos de las contribuciones recientes más significativas en este campo son YOLOv10 y YOLOv9. Aunque ambos modelos obtienen los mejores resultados en el conjunto de datosCOCO , difieren significativamente en sus filosofías de diseño y objetivos arquitectónicos.
YOLOv10 prioriza la baja latencia y la eficiencia de extremo a extremo eliminando la necesidad de supresión no máximaNMS), mientras que YOLOv9 se centra en maximizar la retención de información y la precisión mediante la información de gradiente programable (PGI). Esta guía ofrece una comparación técnica detallada para ayudar a desarrolladores e investigadores a seleccionar el modelo óptimo para sus aplicaciones de visión por ordenador.
YOLOv10: el detector en tiempo real de extremo a extremo
Publicado en mayo de 2024 por investigadores de la Universidad de Tsinghua, YOLOv10 representa un cambio de paradigma en el linaje de YOLO . Su principal innovación es la eliminación del paso de posprocesamiento de supresión no máxima (NMS ), que tradicionalmente ha sido un cuello de botella para la latencia de la inferencia.
Detalles técnicos:
- Autores: Ao Wang, Hui Chen, Lihao Liu, et al.
- Organización:Universidad de Tsinghua
- Fecha: 2024-05-23
- Arxiv:Detección de objetos de extremo a extremo en tiempo real
- GitHub:THU-MIG/yolov10
Arquitectura e Innovaciones Clave
YOLOv10 logra su eficiencia mediante una combinación de asignaciones duales coherentes y un diseño de modelo holístico basado en la eficiencia y la precisión.
- FormaciónNMS: Los modelos YOLO tradicionales se basan en NMS para filtrar los cuadros delimitadores duplicados. YOLOv10 utiliza una estrategia de asignación dual durante el entrenamiento del modelo. Una rama de uno a muchos proporciona señales de supervisión enriquecidas para el aprendizaje, mientras que una rama de uno a uno garantiza que el modelo genere una única mejor predicción por objeto durante la inferencia. Esto permite desplegar el modelo sin NMS, lo que reduce significativamente la latencia de la inferencia.
- Optimización de modelos: La arquitectura incluye cabezales de clasificación ligeros, muestreo descendente desacoplado de canales espaciales y diseño de bloques guiado por rangos. Estas características reducen la redundancia computacional y el uso de memoria, lo que hace que el modelo sea muy eficiente en hardware con recursos limitados.
Ventaja de la eficiencia
La eliminación de NMS en YOLOv10 es especialmente beneficiosa para la implantación en los bordes. En dispositivos donde los recursos de CPU son escasos, evitar el coste computacional de clasificar y filtrar miles de cajas candidatas puede suponer un aumento sustancial de la velocidad.
YOLOv9: Dominar la retención de información
Presentado en febrero de 2024 por Chien-Yao Wang y Hong-Yuan Mark Liao, YOLOv9 aborda el problema del "cuello de botella informativo" inherente a las redes neuronales profundas. A medida que los datos pasan por capas sucesivas (extracción de características), puede perderse información crucial, lo que reduce la precisión, especialmente en el caso de objetos pequeños o detect de detectar.
Detalles técnicos:
- Autores: Chien-Yao Wang, Hong-Yuan Mark Liao
- Organización:Instituto de Ciencias de la Información, Academia Sinica
- Fecha: 2024-02-21
- Arxiv:Aprender lo que se quiere aprender utilizando información de gradiente programable
- GitHub:WongKinYiu/yolov9
Arquitectura e Innovaciones Clave
YOLOv9 introduce conceptos novedosos para garantizar que la red retenga y utilice tanta información de entrada como sea posible.
- Información de gradiente programable (PGI): PGI proporciona un marco de supervisión auxiliar que genera gradientes fiables para actualizar los pesos de la red. Esto garantiza que las capas profundas reciban información de entrada completa, mitigando el problema del gradiente evanescente y mejorando la convergencia.
- Red Generalizada de Agregación Eficiente de Capas (GELAN): Esta nueva arquitectura sustituye a la ELAN convencional utilizada en versiones anteriores. GELAN optimiza la utilización de parámetros y la eficiencia computacional (FLOPs), lo que permite a YOLOv9 alcanzar una mayor precisión con un tamaño de modelo comparable al de sus predecesores.
Aprendizaje profundo
YOLOv9 se centra en la retención de la información, lo que lo hace excepcionalmente eficaz en la detección de objetos en escenas complejas en las que, de otro modo, podrían perderse detalles durante las operaciones de reducción de muestreo en la columna vertebral.
Métricas de rendimiento: Velocidad frente a precisión
La elección entre estos dos modelos a menudo se reduce a un compromiso entre la velocidad de inferencia bruta y la precisión de detección. La tabla siguiente muestra las diferencias de rendimiento entre las distintas escalas de modelos.
Análisis:
- Latencia: YOLOv10 supera sistemáticamente a YOLOv9 en latencia, especialmente en los modelos de menor tamaño (N y S). Por ejemplo, YOLOv10n alcanza una velocidad de inferencia de 1,56 ms en TensorRT, significativamente más rápido que otros modelos comparables.
- Precisión: YOLOv9 destaca en precisión en el extremo superior del espectro. El modelo YOLOv9e alcanza un notable 55,6% de mAP, lo que lo convierte en la opción superior para aplicaciones en las que la precisión es primordial.
- Eficacia: YOLOv10 ofrece una excelente precisión por parámetro. YOLOv10b logra un 52,7% de mAP con menor latencia que YOLOv9c, lo que demuestra la eficacia de su diseño holístico.
| Modelo | tamaño (píxeles) | mAPval 50-95 | Velocidad CPU ONNX (ms) | Velocidad T4 TensorRT10 (ms) | parámetros (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
Casos de Uso Ideales
Comprender los puntos fuertes de cada modelo ayuda a seleccionar la herramienta adecuada para los objetivos específicos de su proyecto.
Cuándo elegir YOLOv10
- Despliegue Edge AI: Las aplicaciones que se ejecutan en dispositivos como NVIDIA Jetson o Raspberry Pi se benefician del diseño NMS, que reduce la sobrecarga de CPU .
- Análisis de vídeo de alta frecuencia: Escenarios que requieren el procesamiento de flujos de vídeo de alta frecuencia (FPS), como la supervisión del tráfico o el análisis deportivo.
- Robótica en tiempo real: Sistemas autónomos que se basan en bucles de retroalimentación de baja latencia para la navegación y la evitación de obstáculos.
Cuándo elegir YOLOv9
- Inspección de alta precisión: Control de calidad industrial en el que pasar por alto un defecto (falso negativo) resulta costoso.
- Detección de objetos pequeños: Aplicaciones de análisis de imágenes por satélite o de imágenes médicas en las que los objetos son pequeños y pobres en características.
- Escenas complejas: Entornos con alta oclusión o desorden en los que es necesaria la máxima retención de información para distinguir objetos.
Utilización con Ultralytics
Una de las ventajas significativas de utilizar estos modelos es su integración en el ecosistema Ultralytics . Tanto YOLOv10 como YOLOv9 pueden utilizarse a través de la misma API Python unificada y la interfaz de línea de comandosCLI), lo que simplifica el flujo de trabajo desde la formación hasta la implantación.
Ejemplo de Python
El siguiente código muestra cómo cargar y ejecutar la inferencia con ambos modelos utilizando la función ultralytics paquete.
from ultralytics import YOLO
# Load a YOLOv10 model (NMS-free, high speed)
model_v10 = YOLO("yolov10n.pt")
# Load a YOLOv9 model (High accuracy)
model_v9 = YOLO("yolov9c.pt")
# Run inference on an image
# The API remains consistent regardless of the underlying architecture
results_v10 = model_v10("https://ultralytics.com/images/bus.jpg")
results_v9 = model_v9("https://ultralytics.com/images/bus.jpg")
# Print results
for r in results_v10:
print(f"YOLOv10 Detections: {r.boxes.shape[0]}")
for r in results_v9:
print(f"YOLOv9 Detections: {r.boxes.shape[0]}")
La ventaja Ultralytics
La elección de Ultralytics para sus proyectos de visión artificial ofrece varias ventajas que van más allá de la mera arquitectura de modelos:
- Facilidad de uso: La API de fácil uso le permite cambiar entre YOLOv9, YOLOv10 y otros modelos como YOLO11 simplemente cambiando el nombre del archivo de pesos.
- Equilibrio de rendimiento: Las implementaciones Ultralytics están optimizadas para el rendimiento en el mundo real, equilibrando velocidad y precisión.
- Eficacia de la formación: El marco admite funciones como la precisión mixta automática (AMP) y el entrenamiento GPU , lo que facilita el entrenamiento de modelos personalizados en sus propios conjuntos de datos.
- Requisitos de memoria: Los modelos Ultralytics suelen utilizar menos memoria que las alternativas basadas en transformadores, lo que facilita el entrenamiento en GPU de consumo.
Conclusión
Ambos YOLOv10 y YOLOv9 representan hitos significativos en la detección de objetos. YOLOv10 es el claro vencedor para las aplicaciones que priorizan la velocidad y la eficacia, gracias a su innovadora arquitectura NMS. A la inversa, YOLOv9 sigue siendo una opción sólida para escenarios que exigen la mayor precisión y retención de información posibles.
Para los desarrolladores que buscan la solución más reciente y versátil, también recomendamos explorar YOLO11. YOLO11 se basa en los puntos fuertes de sus predecesores y ofrece un equilibrio refinado de velocidad, precisión y funciones para tareas de detección, segmentación y estimación de la pose.
Explorar Otros Modelos
- Ultralytics YOLO11 - El último modelo de última generación.
- Ultralytics YOLOv8 - Un modelo versátil y maduro para diversas tareas de visión.
- RT-DETR - Detector basado en transformador para aplicaciones de alta precisión.