YOLO-NAS

Atualização Importante

Observe que a Deci, criadora original do YOLO-NAS, foi adquirida pela NVIDIA. Como resultado, esses modelos não são mais mantidos ativamente pela Deci. A Ultralytics continua a oferecer 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 de detecção de objetos. Ele é o produto de uma tecnologia avançada de Neural Architecture Search, meticulosamente projetada para solucionar as limitações dos modelos YOLO anteriores. Com melhorias significativas no suporte a quantização e em trade-offs de precisão-latência, o YOLO-NAS representa um grande salto na detecção de objetos.

Comparação de precisão do modelo YOLO-NAS no benchmark COCO 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 sua versão quantizada em INT8, apresenta uma queda de precisão mínima, 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 recursos

  • Bloco Básico Amigável à Quantização: O YOLO-NAS introduz um novo bloco básico que é otimizado para 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 proeminentes como COCO, Objects365 e Roboflow 100. Esse pré-treinamento torna-o 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 próxima 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
ModelomAPLatência (ms)
YOLO-NAS S47.53.21
YOLO-NAS M51.555.85
YOLO-NAS L52.227.87
YOLO-NAS S INT-847.032.36
YOLO-NAS M INT-851.03.78
YOLO-NAS L INT-852.14.78

Cada variante de modelo é projetada para oferecer um equilíbrio entre Mean Average Precision (mAP) e latência, ajudando você a otimizar suas tarefas de detecção de objetos para desempenho e velocidade.

Exemplos de Uso

A Ultralytics facilitou a integração de modelos YOLO-NAS em suas aplicações Python por meio do nosso pacote Python ultralytics. O pacote fornece uma API Python amigável 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.

Exemplo

Este exemplo fornece código simples de inferência e validação para o YOLO-NAS. Para lidar com resultados de 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.

PyTorch pretrained *.pt models files can be passed to the NAS() class to create a model instance in 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: 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 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 uso geral com maior precisão.
  • YOLO-NAS-l: Adaptado para cenários que exigem a maior precisão, onde os recursos computacionais são menos restritivos.

Abaixo está 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 ModeloPesos Pré-treinadosTarefas SuportadasInferência (Inference)ValidaçãoTreinamentoExport
YOLO-NAS-syolo_nas_s.ptDetecção de Objetos
YOLO-NAS-myolo_nas_m.ptDetecção de Objetos
YOLO-NAS-lyolo_nas_l.ptDetecção de Objetos

Citações e Agradecimentos

Se você empregar o YOLO-NAS em seu trabalho de pesquisa ou desenvolvimento, cite o SuperGradients:

Citação
@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 do SuperGradients da Deci AI por seus esforços na criação e manutenção deste recurso valioso 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 é o 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 ao introduzir recursos como blocos básicos sensí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 oferece suporte 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 os modelos YOLO-NAS em minha aplicação Python?

Você pode integrar facilmente os modelos YOLO-NAS à sua aplicação Python usando o pacote ultralytics. 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 queda mínima de precisão após a quantização.
  • Treinamento e Quantização Sofisticados: Emprega esquemas de treinamento avançados 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 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 de detecção de objetos e modos como inferência, validação e exportação. Eles não suportam treinamento. 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 acessar 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:

Comentários