YOLO-NAS

Actualización importante

Ten en cuenta que Deci, los creadores originales de YOLO-NAS, han sido adquiridos por NVIDIA. Como resultado, estos modelos ya no reciben mantenimiento activo por parte de Deci. Ultralytics continúa dando soporte al uso de estos modelos, pero no se esperan futuras actualizaciones por parte del equipo original.

Descripción general

Desarrollado por Deci AI, YOLO-NAS es un modelo fundamental de detección de objetos innovador. Es el producto de la avanzada tecnología de Neural Architecture Search, meticulosamente diseñado para abordar las limitaciones de modelos YOLO anteriores. Con mejoras significativas en el soporte de cuantización y en el equilibrio entre precisión y latencia, YOLO-NAS representa un gran salto en la detección de objetos.

Comparativa de precisión del modelo YOLO-NAS en el benchmark COCO Resumen de YOLO-NAS. YOLO-NAS emplea bloques conscientes de la cuantización y cuantización selectiva para un rendimiento óptimo. El modelo, al convertirse a su versión cuantizada INT8, experimenta una mínima caída en la precisión, una mejora significativa respecto a otros modelos. Estos avances culminan en una arquitectura superior con capacidades de detección de objetos sin precedentes y un rendimiento excepcional.

Características clave

  • Bloque básico apto para cuantización: YOLO-NAS introduce un nuevo bloque básico que resulta fácil de cuantizar, abordando una de las limitaciones significativas de modelos YOLO anteriores.
  • Entrenamiento y cuantización sofisticados: YOLO-NAS aprovecha esquemas de entrenamiento avanzados y cuantización post-entrenamiento para mejorar el rendimiento.
  • Optimización AutoNAC y pre-entrenamiento: YOLO-NAS utiliza la optimización AutoNAC y está pre-entrenado en conjuntos de datos destacados como COCO, Objects365 y Roboflow 100. Este pre-entrenamiento lo hace extremadamente adecuado para tareas posteriores de detección de objetos en entornos de producción.

Modelos pre-entrenados

Experimenta el poder de la detección de objetos de nueva generación con los modelos YOLO-NAS pre-entrenados que ofrece Ultralytics. Estos modelos están diseñados para ofrecer un rendimiento de primer nivel en términos de velocidad y precisión. Elige entre una variedad de opciones adaptadas a tus necesidades específicas:

Rendimiento
ModelomAPLatencia (ms)
YOLO-NAS S47.53.21
YOLO-NAS M51.555.85
YOLO-NAS L52.227.87
YOLO-NAS S INT-847.032.36
YOLO-NAS M INT-851.03.78
YOLO-NAS L INT-852.14.78

Cada variante de modelo está diseñada para ofrecer un equilibrio entre Mean Average Precision (mAP) y latencia, ayudándote a optimizar tus tareas de detección de objetos tanto en rendimiento como en velocidad.

Ejemplos de uso

Ultralytics ha hecho que los modelos YOLO-NAS sean fáciles de integrar en tus aplicaciones de Python a través de nuestro paquete de Python ultralytics. El paquete proporciona una API de Python fácil de usar para agilizar el proceso.

Los siguientes ejemplos muestran cómo usar los modelos YOLO-NAS con el paquete ultralytics para inferencia y validación:

Ejemplos de inferencia y validación

En este ejemplo validamos YOLO-NAS-s en el conjunto de datos COCO8.

Ejemplo

Este ejemplo proporciona código simple de inferencia y validación para YOLO-NAS. Para gestionar los resultados de la inferencia, consulta el modo Predict. Para usar YOLO-NAS con modos adicionales, consulta Val y Export. YOLO-NAS en el paquete ultralytics no admite entrenamiento.

PyTorch pretrained *.pt models files can be passed to the NAS() class to create a model instance in python:

from ultralytics import NAS

# Load a COCO-pretrained YOLO-NAS-s model
model = NAS("yolo_nas_s.pt")

# Display model information (optional)
model.info()

# Validate the model on the COCO8 example dataset
results = model.val(data="coco8.yaml")

# Run inference with the YOLO-NAS-s model on the 'bus.jpg' image
results = model("path/to/bus.jpg")

Tareas y modos admitidos

Ofrecemos tres variantes de los modelos YOLO-NAS: pequeño (s), mediano (m) y grande (l). Cada variante está diseñada para satisfacer diferentes necesidades computacionales y de rendimiento:

  • YOLO-NAS-s: Optimizado para entornos donde los recursos computacionales son limitados pero la eficiencia es clave.
  • YOLO-NAS-m: Ofrece un enfoque equilibrado, adecuado para detección de objetos de propósito general con mayor precisión.
  • YOLO-NAS-l: Adaptado para escenarios que requieren la máxima precisión, donde los recursos computacionales son menos limitados.

A continuación se muestra una descripción detallada de cada modelo, incluyendo enlaces a sus pesos pre-entrenados, las tareas que admiten y su compatibilidad con diferentes modos de funcionamiento.

Tipo de modeloPesos preentrenadosTareas soportadasInferenciaValidaciónEntrenamientoExportar (Export)
YOLO-NAS-syolo_nas_s.ptDetección de objetos
YOLO-NAS-myolo_nas_m.ptDetección de objetos
YOLO-NAS-lyolo_nas_l.ptDetección de objetos

Citas y reconocimientos

Si utilizas YOLO-NAS en tu trabajo de investigación o desarrollo, cita a SuperGradients:

Cita
@misc{supergradients,
      doi = {10.5281/ZENODO.7789328},
      url = {https://zenodo.org/records/7789328},
      author = {Aharon,  Shay and {Louis-Dupont} and {Ofri Masad} and Yurkova,  Kate and {Lotem Fridman} and {Lkdci} and Khvedchenya,  Eugene and Rubin,  Ran and Bagrov,  Natan and Tymchenko,  Borys and Keren,  Tomer and Zhilko,  Alexander and {Eran-Deci}},
      title = {Super-Gradients},
      publisher = {GitHub},
      journal = {GitHub repository},
      year = {2021},
}

Expresamos nuestra gratitud al equipo de SuperGradients de Deci AI por sus esfuerzos en crear y mantener este recurso valioso para la comunidad de visión artificial. Creemos que YOLO-NAS, con su arquitectura innovadora y sus capacidades superiores de detección de objetos, se convertirá en una herramienta crítica tanto para desarrolladores como para investigadores.

Preguntas frecuentes

¿Qué es YOLO-NAS y cómo mejora a los modelos YOLO anteriores?

YOLO-NAS, desarrollado por Deci AI, es un modelo de detección de objetos de última generación que aprovecha la tecnología avanzada de Neural Architecture Search (NAS). Aborda las limitaciones de los modelos YOLO anteriores introduciendo características como bloques básicos aptos para cuantización y esquemas de entrenamiento sofisticados. Esto resulta en mejoras significativas en el rendimiento, particularmente en entornos con recursos computacionales limitados. YOLO-NAS también admite cuantización, manteniendo una alta precisión incluso cuando se convierte a su versión INT8, mejorando su idoneidad para entornos de producción. Para más detalles, consulta la sección Overview.

¿Cómo puedo integrar modelos YOLO-NAS en mi aplicación Python?

Puedes integrar fácilmente los modelos YOLO-NAS en tu aplicación Python usando el paquete ultralytics. Aquí tienes un ejemplo simple de cómo cargar un modelo YOLO-NAS pre-entrenado y realizar la inferencia:

from ultralytics import NAS

# Load a COCO-pretrained YOLO-NAS-s model
model = NAS("yolo_nas_s.pt")

# Validate the model on the COCO8 example dataset
results = model.val(data="coco8.yaml")

# Run inference with the YOLO-NAS-s model on the 'bus.jpg' image
results = model("path/to/bus.jpg")

Para más información, consulta los Inference and Validation Examples.

¿Cuáles son las características clave de YOLO-NAS y por qué debería considerar usarlo?

YOLO-NAS introduce varias características clave que lo convierten en una opción superior para tareas de detección de objetos:

  • Bloque básico apto para cuantización: Arquitectura mejorada que mejora el rendimiento del modelo con una mínima caída de precisión tras la cuantización.
  • Entrenamiento y cuantización sofisticados: Emplea esquemas de entrenamiento avanzados y técnicas de cuantización post-entrenamiento.
  • Optimización AutoNAC y pre-entrenamiento: Utiliza la optimización AutoNAC y está pre-entrenado en conjuntos de datos destacados como COCO, Objects365 y Roboflow 100.

Estas características contribuyen a su alta precisión, rendimiento eficiente e idoneidad para la implementación en entornos de producción. Aprende más en la sección Key Features.

¿Qué tareas y modos son compatibles con los modelos YOLO-NAS?

Los modelos YOLO-NAS admiten varias tareas de detección de objetos y modos como inferencia, validación y exportación. No admiten entrenamiento. Los modelos admitidos incluyen YOLO-NAS-s, YOLO-NAS-m y YOLO-NAS-l, cada uno adaptado a diferentes capacidades computacionales y necesidades de rendimiento. Para una descripción detallada, consulta la sección Supported Tasks and Modes.

¿Existen modelos YOLO-NAS pre-entrenados disponibles y cómo accedo a ellos?

Sí, Ultralytics proporciona modelos YOLO-NAS pre-entrenados a los que puedes acceder directamente. Estos modelos están pre-entrenados en conjuntos de datos como COCO, asegurando un alto rendimiento tanto en velocidad como en precisión. Puedes descargar estos modelos usando los enlaces proporcionados en la sección Pretrained Models. Aquí tienes algunos ejemplos:

Comentarios