YOLO-NAS
Visión general
Desarrollado por Deci AI, YOLO-NAS es un innovador modelo fundacional de detección de objetos. Es el producto de una avanzada tecnología de Búsqueda de Arquitectura Neuronal, meticulosamente diseñada para abordar las limitaciones de los modelos anteriores de YOLO . Con mejoras significativas en el soporte de cuantización y en la compensación entre precisión y latencia, YOLO-NAS representa un gran salto en la detección de objetos.
Visión general de YOLO-NAS. YOLO-NAS emplea bloques conscientes de la cuantización y cuantización selectiva para un rendimiento óptimo. El modelo, cuando se convierte a su versión cuantificada INT8, experimenta una caída de precisión mínima, una mejora significativa respecto a otros modelos. Estos avances culminan en una arquitectura superior con una capacidad de detección de objetos sin precedentes y un rendimiento extraordinario.
Características principales
- Bloque básico amigable con la cuantización: YOLO-NAS introduce un nuevo bloque básico amigable con la cuantización, que aborda una de las limitaciones significativas de los modelos anteriores de YOLO .
- Entrenamiento y cuantificación sofisticados: YOLO-NAS aprovecha los esquemas de entrenamiento avanzados y la cuantificación post-entrenamiento para mejorar el rendimiento.
- Optimización AutoNAC y preentrenamiento: YOLO-NAS utiliza la optimización AutoNAC y está preentrenado en conjuntos de datos destacados como COCO, Objects365 y Roboflow 100. Este preentrenamiento lo hace muy 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 nueva generación con los modelos YOLO-NAS preentrenados que proporciona Ultralytics. Estos modelos están diseñados para ofrecer un rendimiento de primera categoría, tanto en velocidad como en precisión. Elige entre una variedad de 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 Media (mAP) y la 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 Python a través de nuestro ultralytics
python paquete. El paquete proporciona una API Python fácil de usar para agilizar el proceso.
Los siguientes ejemplos muestran cómo utilizar los modelos YOLO-NAS con la opción ultralytics
para la inferencia y la 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 un código sencillo de inferencia y validación para YOLO-NAS. Para manejar los resultados de la inferencia, consulta Predecir modo. Para utilizar YOLO-NAS con modos adicionales, consulta Val y Exportar. YOLO-NAS en el ultralytics
El paquete no admite formación.
PyTorch preentrenado *.pt
Los archivos de los modelos pueden pasarse a NAS()
para crear una instancia del 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")
CLI para ejecutar directamente los modelos:
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 distintas necesidades informáticas y de rendimiento:
- YOLO-NAS-s: Optimizado para entornos en los que los recursos informáticos son limitados pero la eficiencia es clave.
- YOLO-NAS-m: Ofrece un enfoque equilibrado, adecuado para la detección de objetos de uso general con mayor precisión.
- YOLO-NAS-l: Adaptado para escenarios que requieren la máxima precisión, en los que los recursos informáticos son menos limitantes.
A continuación encontrarás un resumen detallado de cada modelo, incluyendo enlaces a sus pesos preentrenados, las tareas que admiten y su compatibilidad con diferentes modos de funcionamiento.
Tipo de modelo | Pesos preentrenados | Tareas admitidas | Inferencia | Validación | Formación | 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 empleas YOLO-NAS en tu trabajo de investigación o desarrollo, cita los SuperGradientes:
@misc{supergradients,
doi = {10.5281/ZENODO.7789328},
url = {https://zenodo.org/record/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 SuperGradientes de Deci AI por sus esfuerzos en la creación y mantenimiento de este valioso recurso para la comunidad de visión por ordenador. 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
¿Qué es YOLO-NAS y en qué mejora a los modelos anteriores YOLO ?
YOLO-NAS, desarrollado por Deci AI, es un modelo de detección de objetos de última generación que aprovecha la avanzada tecnología de Búsqueda de Arquitectura Neuronal (NAS). Aborda las limitaciones de los modelos anteriores de YOLO introduciendo características como bloques básicos fáciles de cuantificar y sofisticados esquemas de entrenamiento. Esto se traduce en mejoras significativas del rendimiento, sobre todo en entornos con recursos informáticos limitados. YOLO-NAS también admite la cuantización, manteniendo una gran precisión incluso cuando se convierte a su versión INT8, lo que mejora su idoneidad para entornos de producción. Para más detalles, consulta la sección Visión general.
¿Cómo puedo integrar los modelos YOLO-NAS en mi aplicación Python ?
Puedes integrar fácilmente los modelos YOLO-NAS en tu aplicación Python utilizando ultralytics
paquete. He aquí un ejemplo sencillo de cómo cargar un modelo YOLO-NAS preentrenado 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 Ejemplos de inferencia y validación.
¿Cuáles son las principales características de YOLO-NAS y por qué debería considerar su uso?
YOLO-NAS introduce varias características clave que lo convierten en una opción superior para las tareas de detección de objetos:
- Bloque básico de cuantificación fácil: Arquitectura mejorada que mejora el rendimiento del modelo con una caída mínima de la precisión tras la cuantización.
- Entrenamiento y Cuantización Sofisticados: Emplea esquemas de entrenamiento avanzados y técnicas de cuantificación post-entrenamiento.
- Optimización AutoNAC y preentrenamiento: Utiliza la optimización AutoNAC y está preentrenado 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 su despliegue en entornos de producción. Más información en la sección Características principales.
¿Qué tareas y modos admiten los modelos YOLO-NAS?
YOLO-Los modelos NAS admiten varias tareas y modos de detección de objetos, como la inferencia, la validación y la exportación. No admiten el entrenamiento. Los modelos admitidos incluyen YOLO-NAS-s, YOLO-NAS-m y YOLO-NAS-l, cada uno adaptado a diferentes capacidades de cálculo y necesidades de rendimiento. Para una visión general detallada, consulta la sección Tareas y modos admiti dos.
¿Existen modelos YOLO-NAS preentrenados y cómo puedo acceder a ellos?
Sí, Ultralytics proporciona modelos YOLO-NAS preentrenados a los que puedes acceder directamente. Estos modelos están preentrenados en conjuntos de datos como COCO, lo que garantiza un alto rendimiento tanto en velocidad como en precisión. Puedes descargar estos modelos utilizando los enlaces proporcionados en la sección Modelos pre entrenados. Aquí tienes algunos ejemplos: