YOLO-NAS
Atualização Importante
Por favor, note que a Deci, os criadores originais do YOLO-NAS, foi adquirida pela NVIDIA. Como resultado, estes modelos já não são mantidos ativamente pela Deci. A Ultralytics continua a suportar o uso destes modelos, mas não são esperadas mais atualizações da equipa original.
Visão geral
Desenvolvido pela Deci AI, o YOLO-NAS é um modelo fundamental inovador de detecção de objetos. É o produto de tecnologia avançada de Pesquisa de Arquitetura Neural, meticulosamente projetado para abordar as limitações dos modelos YOLO anteriores. Com melhorias significativas no suporte à quantização e nas compensações de precisão-latência, o YOLO-NAS representa um grande avanço na detecção de objetos.
Visão geral do YOLO-NAS. O YOLO-NAS emprega blocos com reconhecimento de quantização e quantização seletiva para um desempenho ideal. O modelo, quando convertido para sua versão quantizada INT8, experimenta uma queda mínima de precisão, uma melhoria significativa em relação a outros modelos. Esses avanços culminam em uma arquitetura superior com capacidades de detecção de objetos sem precedentes e desempenho excepcional.
Principais Características
- Bloco Básico Amigável à Quantização: O YOLO-NAS introduz um novo bloco básico que é amigável à quantização, abordando uma das limitações significativas dos modelos YOLO anteriores.
- Treinamento e Quantização Sofisticados: O YOLO-NAS aproveita esquemas de treinamento avançados e quantização pós-treinamento para aprimorar o desempenho.
- Otimização AutoNAC e Pré-treinamento: O YOLO-NAS utiliza a otimização AutoNAC e é pré-treinado em conjuntos de dados proeminentes como COCO, Objects365 e Roboflow 100. Este pré-treinamento o torna extremamente adequado para tarefas de detecção de objetos downstream em ambientes de produção.
Modelos Pré-treinados
Experimente o poder da detecção de objetos de última geração com os modelos YOLO-NAS pré-treinados fornecidos pela Ultralytics. Esses modelos são projetados para oferecer desempenho de alto nível em termos de velocidade e precisão. Escolha entre uma variedade de opções adaptadas às suas necessidades específicas:
Desempenho
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 é projetada para oferecer um equilíbrio entre Precisão Média Média (mAP) e latência, ajudando você a otimizar suas tarefas de detecção de objetos tanto para desempenho quanto para velocidade.
Exemplos de uso
A Ultralytics tornou os modelos YOLO-NAS fáceis de integrar em suas aplicações Python através do nosso ultralytics
pacote python. O pacote fornece uma API Python amigável para agilizar o processo.
Os exemplos a seguir mostram como usar os modelos YOLO-NAS com o ultralytics
pacote 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.
Exemplo
Este exemplo fornece código simples de inferência e validação para YOLO-NAS. Para lidar com os resultados da inferência, consulte Prever modo. Para usar o YOLO-NAS com modos adicionais, consulte Validar e Exportar. YOLO-NAS no ultralytics
o pacote não oferece suporte ao treinamento.
PyTorch pré-treinados *.pt
os arquivos de modelos podem ser passados para o NAS()
classe 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")
Comandos da CLI estão disponíveis para executar os modelos diretamente:
# Load a COCO-pretrained YOLO-NAS-s model and validate it's performance on the COCO8 example dataset
yolo val model=yolo_nas_s.pt data=coco8.yaml
# Load a COCO-pretrained YOLO-NAS-s model and run inference on the 'bus.jpg' image
yolo predict model=yolo_nas_s.pt source=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 é projetada para atender a 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 detecção de objetos de propósito geral com maior precisão.
- YOLO-NAS-l: Projetado para cenários que exigem a mais alta precisão, onde os recursos computacionais são menos limitantes.
A seguir, uma visão geral detalhada de cada modelo, incluindo links para seus pesos pré-treinados, as tarefas que eles suportam e sua compatibilidade com diferentes modos de operação.
Tipo de Modelo | Pesos Pré-treinados | Tarefas Suportadas | Inferência | Validação | Treinamento | 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 você utilizar o YOLO-NAS em seu trabalho de pesquisa ou desenvolvimento, por favor, cite 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 nossa gratidão à equipe SuperGradients da Deci AI por seus esforços na criação e manutenção deste valioso recurso para a comunidade de visão computacional. Acreditamos que o YOLO-NAS, com sua arquitetura inovadora e capacidades superiores de detecção de objetos, se tornará uma ferramenta crítica para desenvolvedores e pesquisadores.
FAQ
O que é YOLO-NAS e como ele melhora em relação aos modelos YOLO anteriores?
O YOLO-NAS, desenvolvido pela Deci AI, é um modelo de detecção de objetos de última geração que aproveita a tecnologia avançada de Neural Architecture Search (NAS). Ele aborda as limitações dos modelos YOLO anteriores, introduzindo recursos como blocos básicos amigáveis à quantização e esquemas de treinamento sofisticados. Isso resulta em melhorias significativas no desempenho, particularmente em ambientes com recursos computacionais limitados. O YOLO-NAS também suporta a quantização, mantendo alta precisão mesmo quando convertido para sua versão INT8, aumentando sua adequação para ambientes de produção. Para mais detalhes, consulte a seção Visão Geral.
Como posso integrar modelos YOLO-NAS em minha aplicação Python?
Você pode integrar facilmente os modelos YOLO-NAS em sua aplicação Python usando o ultralytics
pacote. Aqui está um exemplo simples de como carregar um modelo YOLO-NAS pré-treinado e realizar a 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, consulte os Exemplos de Inferência e Validação.
Quais são os principais recursos do YOLO-NAS e por que devo considerar usá-lo?
O YOLO-NAS introduz vários recursos importantes que o tornam uma escolha superior para tarefas de detecção de objetos:
- Bloco Básico Amigável à Quantização: Arquitetura aprimorada que melhora o desempenho do modelo com perda mínima de precisão após a quantização.
- Treino Sofisticado e Quantização: 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.
Esses recursos contribuem para sua alta precisão, desempenho eficiente e adequação para implantação em ambientes de produção. Saiba mais na seção Principais Recursos.
Quais tarefas e modos são suportados pelos modelos YOLO-NAS?
Os modelos YOLO-NAS suportam várias tarefas e modos de deteção de objetos, como inferência, validação e exportação. Eles 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, consulte a seção Tarefas e Modos Suportados.
Existem modelos YOLO-NAS pré-treinados disponíveis e como posso acessá-los?
Sim, a Ultralytics fornece modelos YOLO-NAS pré-treinados que você pode aceder diretamente. Esses modelos são pré-treinados em conjuntos de dados como o COCO, garantindo alto desempenho em termos de velocidade e precisão. Você pode baixar esses modelos usando os links fornecidos na seção Modelos Pré-treinados. Aqui estão alguns exemplos: