YOLO-NAS#
Observe que a Deci, criadora original do YOLO-NAS, foi adquirida pela NVIDIA. Como resultado, esses modelos não recebem mais manutenção ativa da Deci. A Ultralytics continua oferecendo suporte ao uso desses modelos, mas não se esperam novas atualizações da equipe original.
Visão geral#
Desenvolvido pela Deci AI, o YOLO-NAS é um modelo fundamental inovador para detecção de objetos. Ele é resultado da avançada tecnologia de busca de arquitetura neural, meticulosamente projetada para superar as limitações dos modelos YOLO anteriores. Com melhorias significativas no suporte à quantização e nas compensações entre precisão e latência, o YOLO-NAS representa um grande avanço na detecção de objetos.
Visão geral do YOLO-NAS. O YOLO-NAS usa blocos compatíveis com quantização e quantização seletiva para obter desempenho ideal. Quando convertido para sua versão quantizada INT8, o modelo sofre uma queda mínima de precisão, uma melhoria significativa em relação a outros modelos. Esses avanços resultam em uma arquitetura superior, com recursos inéditos de detecção de objetos e desempenho excepcional.
Principais funcionalidades#
- Bloco básico compatível com quantização: o YOLO-NAS introduz um novo bloco básico compatível com quantização, abordando uma das limitações significativas dos modelos YOLO anteriores.
- Treinamento e quantização sofisticados: o YOLO-NAS aproveita esquemas avançados de treinamento 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 de destaque, como COCO, Objects365 e Roboflow 100. Esse pré-treinamento o torna extremamente adequado para tarefas de detecção de objetos subsequentes 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 foram projetados para oferecer desempenho de ponta em velocidade e precisão. Escolha entre várias opções adaptadas às suas 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 do modelo foi projetada para equilibrar precisão média média (mAP) e latência, ajudando você a otimizar suas tarefas de detecção de objetos em desempenho e velocidade.
Exemplos de uso#
A Ultralytics facilitou a integração dos modelos YOLO-NAS às suas aplicações Python por meio do pacote Python ultralytics. O pacote oferece uma API Python fácil de usar para simplificar o processo.
Os exemplos a seguir mostram como usar 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 apresenta código simples de inferência e validação para YOLO-NAS. Para processar os resultados da inferência, consulte o modo Predict. Para usar o YOLO-NAS com modos adicionais, consulte Val e Export. O YOLO-NAS no pacote ultralytics não oferece suporte a treinamento.
Os arquivos de modelo *.pt pré-treinados em PyTorch podem ser passados à classe NAS() para criar uma instância do modelo em Python:
from ultralytics import NAS
# Carregar um modelo YOLO-NAS-s pré-treinado no COCO
model = NAS("yolo_nas_s.pt")
# Exibir informações do modelo (opcional)
model.info()
# Validar o modelo no conjunto de dados de exemplo COCO8
results = model.val(data="coco8.yaml")
# Executar inferência com o modelo YOLO-NAS-s na imagem 'bus.jpg'
results = model("path/to/bus.jpg")Tarefas e modos compatíveis#
Oferecemos três variantes dos modelos YOLO-NAS: Small (s), Medium (m) e Large (l). Cada variante foi projetada para atender a diferentes necessidades computacionais e de desempenho:
- YOLO-NAS-s: otimizado para ambientes com recursos computacionais limitados, nos quais a eficiência é essencial.
- YOLO-NAS-m: oferece uma abordagem equilibrada, adequada para detecção de objetos de uso geral com maior precisão.
- YOLO-NAS-l: desenvolvido para cenários que exigem a máxima precisão, nos quais os recursos computacionais são menos limitados.
Abaixo está uma visão geral detalhada de cada modelo, incluindo links para seus pesos pré-treinados, as tarefas compatíveis e a 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 | Deteção de objetos | ❌ | ✅ | ✅ | ✅ |
| YOLO-NAS-m | yolo_nas_m.pt | Deteção de objetos | ❌ | ✅ | ✅ | ✅ |
| YOLO-NAS-l | yolo_nas_l.pt | Deteção de objetos | ❌ | ✅ | ✅ | ✅ |
Citações e agradecimentos#
Se você usar YOLO-NAS em seu trabalho de pesquisa ou desenvolvimento, 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},
}Agradecemos à equipe SuperGradients da Deci AI por seus esforços para criar e manter esse valioso recurso para a comunidade de visão computacional. Acreditamos que o YOLO-NAS, com sua arquitetura inovadora e recursos superiores de detecção de objetos, se tornará uma ferramenta essencial tanto para desenvolvedores quanto para pesquisadores.
Perguntas frequentes#
O YOLO-NAS, desenvolvido pela Deci AI, é um modelo de detecção de objetos de última geração que aproveita a avançada tecnologia de busca de arquitetura neural (NAS). Ele aborda as limitações dos modelos YOLO anteriores ao introduzir recursos como blocos básicos compatíveis com quantização e esquemas sofisticados de treinamento. Isso resulta em melhorias significativas de desempenho, especialmente em ambientes com recursos computacionais limitados. O YOLO-NAS também oferece suporte à quantização, mantendo alta precisão mesmo quando convertido para sua versão INT8, o que o torna mais adequado para ambientes de produção. Para saber mais, consulte a seção Visão geral.
Você pode integrar facilmente os modelos YOLO-NAS à sua aplicação Python usando o pacote
ultralytics. Veja um exemplo simples de como carregar um modelo YOLO-NAS pré-treinado e executar a inferência:from ultralytics import NAS # Carregar um modelo YOLO-NAS-s pré-treinado no COCO model = NAS("yolo_nas_s.pt") # Validar o modelo no conjunto de dados de exemplo COCO8 results = model.val(data="coco8.yaml") # Executar inferência com o modelo YOLO-NAS-s na imagem 'bus.jpg' results = model("path/to/bus.jpg")Para mais informações, consulte Exemplos de inferência e validação.
O YOLO-NAS introduz vários recursos importantes que o tornam uma opção superior para tarefas de detecção de objetos:
- Bloco básico compatível com quantização: arquitetura aprimorada que melhora o desempenho do modelo com uma queda mínima de precisão após a quantização.
- Treinamento e quantização sofisticados: emprega esquemas avançados de treinamento e técnicas de quantização pós-treinamento.
- Otimização AutoNAC e pré-treinamento: utiliza a otimização AutoNAC e é pré-treinado em conjuntos de dados de destaque, como COCO, Objects365 e Roboflow 100.
Esses recursos contribuem para sua alta precisão, seu desempenho eficiente e sua adequação à implantação em ambientes de produção. Saiba mais na seção Principais recursos.
Os modelos YOLO-NAS são compatíveis com várias tarefas e modos de deteção de objetos, como inferência, validação e exportação. Não são compatíveis com treino. Os modelos compatíveis 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 Tarefas e modos compatíveis.
Sim, a Ultralytics disponibiliza modelos YOLO-NAS pré-treinados a que podes aceder diretamente. Estes modelos são pré-treinados em conjuntos de dados como COCO, garantindo um elevado desempenho tanto em velocidade como em precisão. Podes transferir estes modelos através das ligações fornecidas na secção Modelos pré-treinados. Aqui estão alguns exemplos: