YOLO-NAS#
Ten en cuenta que Deci, los creadores originales de YOLO-NAS, ha sido adquirida por NVIDIA. Como resultado, Deci ya no mantiene activamente estos modelos. Ultralytics sigue ofreciendo compatibilidad para usar estos modelos, pero no se esperan más actualizaciones del equipo original.
Descripción general#
Desarrollado por Deci AI, YOLO-NAS es un modelo fundacional revolucionario para la detección de objetos. Es el resultado de una tecnología avanzada de búsqueda de arquitecturas neuronales, diseñada meticulosamente para abordar las limitaciones de los modelos YOLO anteriores. Con mejoras significativas en la compatibilidad con la cuantización y en el equilibrio entre precisión y latencia, YOLO-NAS representa un gran salto adelante en la detección de objetos.
Descripción general de YOLO-NAS. YOLO-NAS emplea bloques optimizados para la cuantización y cuantización selectiva para lograr un rendimiento óptimo. Cuando el modelo se convierte a su versión cuantizada INT8, experimenta una pérdida mínima de precisión, lo que supone una mejora significativa frente 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 principales#
- Bloque básico optimizado para la cuantización: YOLO-NAS introduce un nuevo bloque básico optimizado para la cuantización, que aborda una de las limitaciones importantes de los modelos YOLO anteriores.
- Entrenamiento y cuantización sofisticados: YOLO-NAS aprovecha esquemas de entrenamiento avanzados y la cuantización posterior al entrenamiento para mejorar el rendimiento.
- Optimización y preentrenamiento con AutoNAC: YOLO-NAS utiliza la optimización AutoNAC y se preentrena con conjuntos de datos destacados como COCO, Objects365 y Roboflow 100. Este preentrenamiento lo hace especialmente adecuado para tareas posteriores de detección de objetos en entornos de producción.
Modelos preentrenados#
Experimenta la potencia de la detección de objetos de próxima generación con los modelos YOLO-NAS preentrenados proporcionados por Ultralytics. Estos modelos están diseñados para ofrecer un rendimiento excelente tanto en velocidad como en precisión. Elige entre varias opciones adaptadas a tus necesidades específicas:
| Modelo | mAP | Latencia (ms) |
|---|---|---|
| YOLO-NAS S | 47.5 | 3.21 |
| YOLO-NAS M | 51.55 | 5.85 |
| YOLO-NAS L | 52.22 | 7.87 |
| YOLO-NAS S INT-8 | 47.03 | 2.36 |
| YOLO-NAS M INT-8 | 51.0 | 3.78 |
| YOLO-NAS L INT-8 | 52.1 | 4.78 |
Cada variante del modelo está diseñada para ofrecer un equilibrio entre la precisión media (mAP) y la latencia, lo que te ayuda a optimizar tus tareas de detección de objetos tanto para el rendimiento como para la velocidad.
Ejemplos de uso#
Ultralytics ha facilitado la integraci3n de modelos YOLO-NAS en tus aplicaciones en Python mediante 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 realizar inferencias y validaciones:
Ejemplos de inferencia y validación#
En este ejemplo validamos YOLO-NAS-s en el conjunto de datos COCO8.
Este ejemplo proporciona código sencillo 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 el entrenamiento.
Los archivos de modelos preentrenados de PyTorch *.pt se pueden pasar a la clase NAS() para crear una instancia de modelo en 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 compatibles#
Ofrecemos tres variantes de los modelos YOLO-NAS: pequeña (s), mediana (m) y grande (l). Cada variante está diseñada para adaptarse a distintas necesidades computacionales y de rendimiento:
- YOLO-NAS-s: Optimizado para entornos donde los recursos computacionales son limitados, pero la eficiencia es fundamental.
- YOLO-NAS-m: Ofrece un enfoque equilibrado, adecuado para la detección de objetos de propósito general con mayor precisión.
- YOLO-NAS-l: Adaptado a situaciones que requieren la máxima precisión, donde los recursos computacionales suponen una limitación menor.
A continuación se muestra una descripción detallada de cada modelo, incluidos los enlaces a sus pesos preentrenados, las tareas compatibles y su compatibilidad con distintos modos de funcionamiento.
| Tipo de modelo | Pesos preentrenados | Tareas compatibles | Entrenamiento | Validación | Inferencia | Exportar |
|---|---|---|---|---|---|---|
| YOLO-NAS-s | yolo_nas_s.pt | Detección de objetos | ❌ | ✅ | ✅ | ✅ |
| YOLO-NAS-m | yolo_nas_m.pt | Detección de objetos | ❌ | ✅ | ✅ | ✅ |
| YOLO-NAS-l | yolo_nas_l.pt | Detección de objetos | ❌ | ✅ | ✅ | ✅ |
Citas y agradecimientos#
Si utilizas YOLO-NAS en tus trabajos de investigación o desarrollo, cita SuperGradients:
@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},
}Agradecemos al equipo de SuperGradients de Deci AI sus esfuerzos para crear y mantener este valioso recurso 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 fundamental tanto para desarrolladores como para investigadores.
Preguntas frecuentes#
YOLO-NAS, desarrollado por Deci AI, es un modelo de última generación para la detección de objetos que aprovecha una tecnología avanzada de búsqueda de arquitecturas neuronales (NAS). Aborda las limitaciones de los modelos YOLO anteriores mediante la introducción de características como bloques básicos optimizados para la cuantización y esquemas de entrenamiento sofisticados. Esto se traduce en mejoras significativas del rendimiento, especialmente en entornos con recursos computacionales limitados. YOLO-NAS también admite la cuantización y mantiene una alta precisión incluso al convertirse a su versión INT8, lo que mejora su idoneidad para entornos de producción. Para obtener más información, consulta la sección Descripción general.
Puedes integrar fácilmente los modelos YOLO-NAS en tu aplicación Python mediante el paquete
ultralytics. Este es un ejemplo sencillo de cómo cargar un modelo YOLO-NAS preentrenado y realizar una 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 obtener más información, consulta Ejemplos de inferencia y validación.
YOLO-NAS incorpora varias características clave que lo convierten en una opción superior para las tareas de detección de objetos:
- Bloque básico optimizado para la cuantización: Arquitectura mejorada que aumenta el rendimiento del modelo con una pérdida mínima de precisión después de la cuantización.
- Entrenamiento y cuantización sofisticados: Emplea esquemas de entrenamiento avanzados y técnicas de cuantización posterior al entrenamiento.
- Optimización y preentrenamiento con AutoNAC: Utiliza la optimización AutoNAC y se preentrena con conjuntos de datos destacados como COCO, Objects365 y Roboflow 100.
Estas características contribuyen a su alta precisión, su rendimiento eficiente y su idoneidad para la implementación en entornos de producción. Obtén más información en la sección Características principales.
Los modelos YOLO-NAS admiten diversas tareas y modos de detección de objetos, como la inferencia, la validación y la exportación. No admiten el entrenamiento. Entre los modelos compatibles se incluyen YOLO-NAS-s, YOLO-NAS-m y YOLO-NAS-l, cada uno adaptado a distintas capacidades computacionales y necesidades de rendimiento. Para obtener una descripción detallada, consulta la sección Tareas y modos compatibles.
Sí, Ultralytics proporciona modelos YOLO-NAS preentrenados a los que puedes acceder directamente. Estos modelos se preentrenan con conjuntos de datos como COCO, lo que garantiza un alto rendimiento tanto en velocidad como en precisión. Puedes descargar estos modelos mediante los enlaces proporcionados en la sección Modelos preentrenados. Estos son algunos ejemplos: