YOLO-NAS#
Tenha em atenção que a Deci, os criadores originais do YOLO-NAS, foi adquirida pela NVIDIA. Consequentemente, estes modelos já não são ativamente mantidos pela Deci. A Ultralytics continua a apoiar a utilização destes modelos, mas não são esperadas mais atualizações por parte da equipa original.
Visão geral#
Desenvolvido pela Deci AI, o YOLO-NAS é um modelo fundamental de deteção de objetos inovador. É o produto de tecnologia avançada de Neural Architecture Search, meticulosamente concebida para responder às limitações dos modelos YOLO anteriores. Com melhorias significativas no suporte à quantização e nas relações de compromisso entre accuracy e latência, o YOLO-NAS representa um grande avanço na deteção de objetos.
Visão geral do YOLO-NAS. O YOLO-NAS emprega blocos sensíveis à quantização e quantização seletiva para um desempenho ideal. O modelo, quando convertido para a sua versão quantizada em INT8, regista uma queda mínima de precisão, uma melhoria significativa em relação a outros modelos. Estes avanços culminam numa arquitetura superior com capacidades de deteção de objetos sem precedentes e um desempenho excecional.
Principais recursos#
- Bloco básico favorável à quantização: O YOLO-NAS introduz um novo bloco básico que é favorável à quantização, resolvendo uma das limitações significativas dos modelos YOLO anteriores.
- Treino e quantização sofisticados: O YOLO-NAS tira partido de esquemas de treino avançados e de quantização pós-treino para melhorar o desempenho.
- Otimização AutoNAC e pré-treino: O YOLO-NAS utiliza a otimização AutoNAC e é pré-treinado em conjuntos de dados proeminentes como COCO, Objects365 e Roboflow 100. Este pré-treino torna-o extremamente adequado para tarefas de deteção de objetos a jusante em ambientes de produção.
Modelos pré-treinados#
Experimenta o poder da deteção de objetos de próxima geração com os modelos YOLO-NAS pré-treinados fornecidos pela Ultralytics. Estes modelos foram concebidos para proporcionar um desempenho de topo em termos de velocidade e precisão. Escolhe entre uma variedade de opções adaptadas às tuas necessidades específicas:
| Modelo | mAP | Latência (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 de modelo foi concebida para oferecer um equilíbrio entre Mean Average Precision (mAP) e latência, ajudando-te a otimizar as tuas tarefas de deteção de objetos tanto para o desempenho como para a velocidade.
Exemplos de uso#
A Ultralytics facilitou a integração dos modelos YOLO-NAS nas tuas aplicações Python através do nosso pacote python ultralytics. O pacote fornece uma API Python fácil de utilizar para agilizar o processo.
Os seguintes exemplos mostram como utilizar os modelos YOLO-NAS com o pacote ultralytics para inferência e validação:
Exemplos de inferência e validação#
Neste exemplo, validamos o YOLO-NAS-s no conjunto de dados COCO8.
Este exemplo fornece código simples de inferência e validação para o YOLO-NAS. Para processar os resultados de inferência, consulta o modo Predict. Para utilizar o YOLO-NAS com modos adicionais, consulta Val e Export. O YOLO-NAS no pacote ultralytics não suporta treino.
Os ficheiros de modelos *.pt pré-treinados em PyTorch podem ser passados para a classe NAS() para criar uma instância de modelo em 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")Tarefas e modos suportados#
Oferecemos três variantes dos modelos YOLO-NAS: Pequeno (s), Médio (m) e Grande (l). Cada variante foi concebida para satisfazer diferentes necessidades computacionais e de desempenho:
- YOLO-NAS-s: Otimizado para ambientes onde os recursos computacionais são limitados, mas a eficiência é fundamental.
- YOLO-NAS-m: Oferece uma abordagem equilibrada, adequada para object detection de uso geral com maior precisão.
- YOLO-NAS-l: Adaptado para cenários que requerem a maior precisão, onde os recursos computacionais são menos uma restrição.
Abaixo está uma visão geral detalhada de cada modelo, incluindo links para os seus pesos pré-treinados, as tarefas que suportam e a sua compatibilidade com diferentes modos de operação.
| Tipo de Modelo | Pesos Pré-treinados | Tarefas Suportadas | Treinamento | Validação | Inferência | Exportar |
|---|---|---|---|---|---|---|
| YOLO-NAS-s | yolo_nas_s.pt | Detecção de Objetos | ❌ | ✅ | ✅ | ✅ |
| YOLO-NAS-m | yolo_nas_m.pt | Detecção de Objetos | ❌ | ✅ | ✅ | ✅ |
| YOLO-NAS-l | yolo_nas_l.pt | Detecção de Objetos | ❌ | ✅ | ✅ | ✅ |
Citações e Agradecimentos#
Se empregares o YOLO-NAS no teu trabalho de investigação ou desenvolvimento, por favor cita o 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},
}Expressamos a nossa gratidão à equipa do SuperGradients da Deci AI pelos seus esforços na criação e manutenção deste recurso valioso para a comunidade de computer vision. Acreditamos que o YOLO-NAS, com a sua arquitetura inovadora e capacidades superiores de deteção de objetos, se tornará uma ferramenta crítica tanto para programadores como para investigadores.
FAQ#
O YOLO-NAS, desenvolvido pela Deci AI, é um modelo de deteção de objetos topo de gama que tira partido da tecnologia avançada de Neural Architecture Search (NAS). Resolve as limitações dos modelos YOLO anteriores ao introduzir funcionalidades como blocos básicos amigos da quantização e esquemas de treino sofisticados. Isto resulta em melhorias significativas no desempenho, particularmente em ambientes com recursos computacionais limitados. O YOLO-NAS também suporta quantização, mantendo uma elevada precisão mesmo quando convertido para a sua versão INT8, o que aumenta a sua adequação a ambientes de produção. Para mais detalhes, consulta a secção Overview.
Podes integrar facilmente os modelos YOLO-NAS na tua aplicação Python utilizando o pacote
ultralytics. Eis um exemplo simples de como carregar um modelo YOLO-NAS pré-treinado e efetuar inferência: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 mais informações, consulta os Inference and Validation Examples.
O YOLO-NAS introduz várias funcionalidades chave que o tornam uma escolha superior para tarefas de deteção de objetos:
- Bloco básico amigo da quantização: Arquitetura melhorada que melhora o desempenho do modelo com uma perda mínima de precision após a quantização.
- Treino e quantização sofisticados: Emprega esquemas de treino avançados e técnicas de quantização pós-treino.
- Otimização AutoNAC e pré-treino: Utiliza a otimização AutoNAC e é pré-treinado em conjuntos de dados proeminentes como COCO, Objects365 e Roboflow 100.
Estas características contribuem para a sua elevada precisão, desempenho eficiente e adequação para implementação em ambientes de produção. Sabe mais na secção Key Features.
Os modelos YOLO-NAS suportam várias tarefas e modos de deteção de objetos, tais como inferência, validação e exportação. Não suportam treino. Os modelos suportados incluem YOLO-NAS-s, YOLO-NAS-m e YOLO-NAS-l, cada um adaptado a diferentes capacidades computacionais e necessidades de desempenho. Para uma visão geral detalhada, consulta a secção Supported Tasks and Modes.
Sim, a Ultralytics fornece modelos YOLO-NAS pré-treinados a que podes aceder diretamente. Estes modelos são pré-treinados em conjuntos de dados como o COCO, garantindo um elevado desempenho em termos de velocidade e precisão. Podes transferir estes modelos através das hiperligações fornecidas na secção Pretrained Models. Eis alguns exemplos: