YOLO-NAS
Visão geral
Desenvolvido por Deci AI, YOLO-NAS é um modelo fundamental inovador de deteção de objectos. É o produto de uma avançada tecnologia de pesquisa de arquitetura neural, meticulosamente concebida para resolver as limitações dos modelos YOLO anteriores. Com melhorias significativas no suporte de quantização e na relação precisão-latência, o YOLO-NAS representa um grande salto na deteção de objectos.
Descrição geral de YOLO-NAS. YOLO-O NAS utiliza blocos sensíveis à quantização e quantização selectiva para um desempenho ótimo. O modelo, quando convertido para a sua versão quantizada INT8, regista uma queda de precisão mínima, uma melhoria significativa em relação a outros modelos. Estes avanços culminam numa arquitetura superior com capacidades de deteção de objectos sem precedentes e um desempenho excecional.
Caraterísticas principais
- Bloco básico compatível com a quantização: YOLO-NAS apresenta um novo bloco básico compatível com a quantização, abordando uma das limitações significativas dos modelos anteriores de YOLO .
- Formação e quantização sofisticadas: YOLO-NAS utiliza esquemas de formação avançados e quantização pós-formação para melhorar o desempenho.
- Otimização e pré-treino AutoNAC: YOLO-NAS utiliza a otimização AutoNAC e é pré-treinado em conjuntos de dados importantes, como COCO, Objects365 e Roboflow 100. Este pré-treinamento torna-o extremamente adequado para tarefas de deteção de objectos a jusante em ambientes de produção.
Modelos pré-treinados
Experimente o poder da deteção de objectos da próxima geração com os modelos YOLO-NAS pré-treinados fornecidos por Ultralytics. Estes modelos foram concebidos para proporcionar um desempenho de topo em termos de velocidade e precisão. Escolha entre uma variedade de 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 de modelo foi concebida para oferecer um equilíbrio entre a precisão média média (mAP) e a latência, ajudando-o a otimizar as suas tarefas de deteção de objectos, tanto em termos de desempenho como de velocidade.
Exemplos de utilização
Ultralytics tornou os modelos YOLO-NAS fáceis de integrar nas suas aplicações Python através do nosso ultralytics
python pacote. O pacote fornece uma API Python de fácil utilização para simplificar o processo.
Os exemplos a seguir mostram como usar os modelos YOLO-NAS com o ultralytics
para inferência e validação:
Exemplos de inferência e validação
Neste exemplo, validamos YOLO-NAS-s no conjunto de dados COCO8.
Exemplo
Este exemplo fornece um código simples de inferência e validação para YOLO-NAS. Para tratar os resultados da inferência, ver Prever modo. Para utilizar YOLO-NAS com modos adicionais, ver Val e Exportação. YOLO-NAS no ultralytics
O pacote não apoia a formação.
PyTorch pré-treinado *.pt
os ficheiros de modelos podem ser passados para o 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")
CLI estão disponíveis para executar diretamente os modelos:
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 responder a diferentes necessidades computacionais e de desempenho:
- YOLO-NAS-s: Optimizado para ambientes onde os recursos computacionais são limitados mas a eficiência é fundamental.
- YOLO-NAS-m: Oferece uma abordagem equilibrada, adequada para a deteção de objectos 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 limitados.
Segue-se uma visão geral detalhada de cada modelo, incluindo ligações para os seus pesos pré-treinados, as tarefas que suportam e a sua compatibilidade com diferentes modos de funcionamento.
Tipo de modelo | Pesos pré-treinados | Tarefas suportadas | Inferência | Validação | Formação | Exportação |
---|---|---|---|---|---|---|
YOLO-NAS-s | yolo_nas_s.pt | Deteção de objectos | ✅ | ✅ | ❌ | ✅ |
YOLO-NAS-m | yolo_nas_m.pt | Deteção de objectos | ✅ | ✅ | ❌ | ✅ |
YOLO-NAS-l | yolo_nas_l.pt | Deteção de objectos | ✅ | ✅ | ❌ | ✅ |
Citações e agradecimentos
Se utilizar YOLO-NAS no seu trabalho de investigação ou desenvolvimento, cite a SuperGradients:
@misc{supergradients,
doi = {10.5281/ZENODO.7789328},
url = {https://zenodo.org/record/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 SuperGradients de Deci AI pelos 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 a sua arquitetura inovadora e capacidades superiores de deteção de objectos, se tornará uma ferramenta essencial para programadores e investigadores.
FAQ
O que é YOLO-NAS e como é que melhora em relação aos modelos anteriores YOLO ?
YOLO-NAS, desenvolvido por Deci AI, é um modelo de deteção de objectos de última geração que utiliza tecnologia avançada de pesquisa de arquitetura neural (NAS). Aborda as limitações dos modelos YOLO anteriores, introduzindo caraterísticas como blocos básicos de fácil quantização e esquemas de formação sofisticados. Isto resulta em melhorias significativas no desempenho, particularmente em ambientes com recursos computacionais limitados. YOLO O -NAS também suporta a quantização, mantendo uma elevada precisão mesmo quando convertido para a sua versão INT8, aumentando a sua adequação a ambientes de produção. Para mais informações, consulte a secção Descrição geral.
Como posso integrar os modelos YOLO-NAS na minha aplicação Python ?
Pode integrar facilmente os modelos YOLO-NAS na sua aplicação Python utilizando o ultralytics
pacote. Eis um exemplo simples de como carregar um modelo YOLO-NAS pré-treinado e efetuar 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 obter mais informações, consulte os Exemplos de inferência e validação.
Quais são as principais caraterísticas do YOLO-NAS e por que razão devo considerar a sua utilização?
YOLO-O NAS apresenta várias caraterísticas chave que o tornam uma escolha superior para tarefas de deteção de objectos:
- Bloco básico amigável à quantização: Arquitetura melhorada que melhora o desempenho do modelo com uma queda mínima de precisão após a quantização.
- Treinamento e quantização sofisticados: Utiliza esquemas de formação avançados e técnicas de quantização pós-formação.
- Otimização e pré-treino AutoNAC: Utiliza a otimização AutoNAC e é pré-treinado em conjuntos de dados importantes como COCO, Objects365 e Roboflow 100.
Estas caraterísticas contribuem para a sua elevada precisão, desempenho eficiente e adequação à implementação em ambientes de produção. Saiba mais na secção Caraterísticas principais.
Que tarefas e modos são suportados pelos modelos YOLO-NAS?
YOLO-Os modelos NAS suportam várias tarefas e modos de deteção de objectos, tais 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 obter uma visão geral detalhada, consulte a secção Tarefas e modos suportados.
Existem modelos YOLO-NAS pré-treinados disponíveis e como posso aceder a eles?
Sim, Ultralytics fornece modelos YOLO-NAS pré-treinados aos quais pode aceder diretamente. Esses modelos são pré-treinados em conjuntos de dados como COCO, garantindo alto desempenho em termos de velocidade e precisão. Pode transferir estes modelos utilizando as ligações fornecidas na secção Modelos pré-treinados. Aqui estão alguns exemplos: