Ultralytics YOLO27:

YOLO-NAS#

Atualização importante

Tem em atenção 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 a utilização 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 deteção de objetos. É o produto de uma tecnologia avançada de Pesquisa de Arquitetura Neural, meticulosamente concebida para resolver as limitações dos modelos YOLO anteriores. Com melhorias significativas no suporte à quantização e nas relações de compromisso entre precisão e latência, o YOLO-NAS representa um grande salto na deteção de objetos.

Comparação da precisão do modelo YOLO-NAS no benchmark COCO Visão geral do YOLO-NAS. O YOLO-NAS utiliza blocos conscientes da quantização e quantização seletiva para obter um desempenho ideal. Quando convertido para a sua versão quantizada INT8, o modelo sofre uma perda 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 funcionalidades#

  • Bloco básico otimizado para quantização: o YOLO-NAS introduz um novo bloco básico otimizado para quantização, resolvendo uma das limitações significativas dos modelos YOLO anteriores.
  • Treino e quantização sofisticados: o YOLO-NAS utiliza esquemas avançados de treino e quantização pós-treino para melhorar o desempenho.
  • Otimização e pré-treino com AutoNAC: o YOLO-NAS utiliza a otimização AutoNAC e é pré-treinado em conjuntos de dados importantes, como COCO, Objects365 e Roboflow 100. Este pré-treino torna-o extremamente adequado para tarefas de deteção de objetos posteriores 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 oferecer um desempenho de topo tanto em velocidade como em precisão. Escolhe entre várias opções adaptadas às tuas 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 do modelo foi concebida para oferecer um equilíbrio entre a precisão média média (mAP) e a latência, ajudando-te a otimizar as tuas tarefas de deteção de objetos tanto para o desempenho como para a velocidade.

Exemplos de utilização#

A Ultralytics tornou os modelos YOLO-NAS fáceis de integrar nas tuas aplicações em Python através do nosso pacote Python ultralytics. O pacote fornece uma API em Python fácil de usar para otimizar o processo.

Os exemplos seguintes mostram como utilizar 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 YOLO-NAS. Para processar os resultados da inferência, consulta o modo Predict. Para utilizar YOLO-NAS com modos adicionais, consulta Val e Export. YOLO-NAS no pacote ultralytics não suporta treino.

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#

Disponibilizamos três variantes dos modelos YOLO-NAS: Pequena (s), Média (m) e Grande (l). Cada variante foi concebida para responder a diferentes necessidades computacionais e de desempenho:

  • YOLO-NAS-s: otimizado para ambientes onde os recursos computacionais são limitados, mas a eficiência é essencial.
  • YOLO-NAS-m: oferece uma abordagem equilibrada, adequada para deteção de objetos de utilização geral com maior precisão.
  • YOLO-NAS-l: adaptado a cenários que exigem a maior precisão, onde os recursos computacionais são menos limitativos.

Segue-se uma visão geral detalhada de cada modelo, incluindo ligações aos respetivos pesos pré-treinados, as tarefas que suportam e a compatibilidade com diferentes modos de funcionamento.

Tipo de modeloPesos pré-treinadosTarefas suportadasTreinoValidaçãoInferênciaExportação
YOLO-NAS-syolo_nas_s.ptDeteção de objetos
YOLO-NAS-myolo_nas_m.ptDeteção de objetos
YOLO-NAS-lyolo_nas_l.ptDeteção de objetos

Citações e agradecimentos#

Se utilizares YOLO-NAS no teu trabalho de investigação ou desenvolvimento, cita 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},
}

Agradecemos à equipa SuperGradients da Deci AI pelos 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 a sua arquitetura inovadora e capacidades superiores de deteção de objetos, se tornará uma ferramenta essencial tanto para programadores como para investigadores.

Perguntas frequentes#

  • O YOLO-NAS, desenvolvido pela Deci AI, é um modelo de deteção de objetos de última geração que utiliza tecnologia avançada de Pesquisa de Arquitetura Neural (NAS). Resolve as limitações dos modelos YOLO anteriores ao introduzir funcionalidades como blocos básicos otimizados para quantização e esquemas de treino sofisticados. Isto resulta em melhorias significativas no desempenho, especialmente 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 informações, consulta a secção Visão geral.

  • Podes integrar facilmente modelos YOLO-NAS na tua aplicação Python utilizando o pacote ultralytics. Segue-se um exemplo simples de como carregar um modelo YOLO-NAS pré-treinado e realizar 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 Exemplos de inferência e validação.

  • O YOLO-NAS introduz várias funcionalidades essenciais que o tornam uma opção superior para tarefas de deteção de objetos:

    • Bloco básico otimizado para quantização: arquitetura melhorada que aumenta o desempenho do modelo com uma perda mínima de precisão após a quantização.
    • Treino e quantização sofisticados: utiliza esquemas avançados de treino e técnicas de quantização pós-treino.
    • Otimização e pré-treino com AutoNAC: utiliza a otimização AutoNAC e é pré-treinado em conjuntos de dados importantes, como COCO, Objects365 e Roboflow 100.

    Estas funcionalidades contribuem para a sua elevada precisão, desempenho eficiente e adequação à implementação em ambientes de produção. Obtém mais informações na secção Principais funcionalidades.

  • Os modelos YOLO-NAS suportam várias tarefas e modos de deteção de objetos, 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 Tarefas e modos suportados.

  • Sim, a Ultralytics fornece modelos YOLO-NAS pré-treinados aos quais 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. Eis alguns exemplos:

Comentários