Meituan YOLOv6
Visão geral
O Meituan YOLOv6 é um detector de objetos de ponta que oferece um notável equilíbrio entre velocidade e precisão, tornando-o uma escolha popular para aplicações em tempo real. Este modelo introduz várias melhorias notáveis em sua arquitetura e esquema de treinamento, incluindo a implementação de um módulo de Concatenação Bidirecional (BiC), uma estratégia de treinamento auxiliado por âncoras (AAT) e um backbone e design de neck aprimorados para precisão de última geração no conjunto de dados COCO.
Visão geral do YOLOv6. Diagrama da arquitetura do modelo mostrando os componentes de rede redesenhados e as estratégias de treinamento que levaram a melhorias significativas no desempenho. (a) O neck do YOLOv6 (N e S são mostrados). Observe que para M/L, RepBlocks é substituído por CSPStackRep. (b) A estrutura de um módulo BiC. (c) Um bloco SimCSPSPPF.fonte).
Principais Características
- Módulo de concatenação bidirecional (BiC): O YOLOv6 introduz um módulo BiC no neck do detector, aprimorando os sinais de localização e oferecendo ganhos de desempenho com uma degradação de velocidade insignificante.
- Estratégia de Treinamento Auxiliado por Âncoras (AAT): Este modelo propõe o AAT para desfrutar dos benefícios dos paradigmas baseados em âncoras e livres de âncoras sem comprometer a eficiência da inferência.
- Design aprimorado de backbone e neck: Ao aprofundar o YOLOv6 para incluir outro estágio no backbone e no neck, este modelo alcança o desempenho de última geração no conjunto de dados COCO com entrada de alta resolução.
- Estratégia de Autodestilação: Uma nova estratégia de autodestilação é implementada para aumentar o desempenho de modelos menores de YOLOv6, aprimorando o branch de regressão auxiliar durante o treinamento e removendo-o na inferência para evitar um declínio acentuado na velocidade.
Métricas de Desempenho
O YOLOv6 fornece vários modelos pré-treinados com diferentes escalas:
- YOLOv6-N: 37,5% AP no COCO val2017 a 1187 FPS com NVIDIA T4 GPU.
- YOLOv6-S: 45,0% AP a 484 FPS.
- YOLOv6-M: 50,0% AP a 226 FPS.
- YOLOv6-L: 52,8% AP a 116 FPS.
- YOLOv6-L6: Precisão de última geração em tempo real.
O YOLOv6 também fornece modelos quantizados para diferentes precisões e modelos otimizados para plataformas móveis.
Exemplos de uso
Este exemplo fornece exemplos simples de treinamento e inferência do YOLOv6. Para obter documentação completa sobre estes e outros modos, consulte as páginas de documentação Predict, Train, Val e Export.
Exemplo
YOLOv6 *.yaml
os arquivos podem ser passados para o YOLO()
classe para construir o modelo correspondente em Python:
from ultralytics import YOLO
# Build a YOLOv6n model from scratch
model = YOLO("yolov6n.yaml")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the YOLOv6n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")
Comandos da CLI estão disponíveis para executar os modelos diretamente:
# Build a YOLOv6n model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov6n.yaml data=coco8.yaml epochs=100 imgsz=640
# Build a YOLOv6n model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov6n.yaml source=path/to/bus.jpg
Tarefas e Modos Suportados
A série YOLOv6 oferece uma variedade de modelos, cada um otimizado para Detecção de Objetos de alto desempenho. Esses modelos atendem a diferentes necessidades computacionais e requisitos de precisão, tornando-os versáteis para uma ampla gama de aplicações.
Modelo | Nomes de arquivos | Tarefas | Inferência | Validação | Treinamento | Exportar |
---|---|---|---|---|---|---|
YOLOv6-N | yolov6n.yaml |
Detecção de Objetos | ✅ | ✅ | ✅ | ✅ |
YOLOv6-S | yolov6s.yaml |
Detecção de Objetos | ✅ | ✅ | ✅ | ✅ |
YOLOv6-M | yolov6m.yaml |
Detecção de Objetos | ✅ | ✅ | ✅ | ✅ |
YOLOv6-L | yolov6l.yaml |
Detecção de Objetos | ✅ | ✅ | ✅ | ✅ |
YOLOv6-X | yolov6x.yaml |
Detecção de Objetos | ✅ | ✅ | ✅ | ✅ |
Esta tabela fornece uma visão geral detalhada das variantes do modelo YOLOv6, destacando suas capacidades em tarefas de detecção de objetos e sua compatibilidade com vários modos operacionais, como Inference, Validation, Training e Export. Este suporte abrangente garante que os usuários possam aproveitar totalmente os recursos dos modelos YOLOv6 em uma ampla gama de cenários de detecção de objetos.
Citações e Agradecimentos
Gostaríamos de agradecer aos autores por suas significativas contribuições no campo da detecção de objetos em tempo real:
@misc{li2023yolov6,
title={YOLOv6 v3.0: A Full-Scale Reloading},
author={Chuyi Li and Lulu Li and Yifei Geng and Hongliang Jiang and Meng Cheng and Bo Zhang and Zaidan Ke and Xiaoming Xu and Xiangxiang Chu},
year={2023},
eprint={2301.05586},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
O artigo original do YOLOv6 pode ser encontrado no arXiv. Os autores tornaram seu trabalho publicamente disponível e o código pode ser acessado no GitHub. Agradecemos seus esforços no avanço do campo e por tornar seu trabalho acessível à comunidade em geral.
FAQ
O que é o Meituan YOLOv6 e o que o torna único?
Meituan YOLOv6 é um detector de objetos de última geração que equilibra velocidade e precisão, ideal para aplicações em tempo real. Ele apresenta melhorias arquitetônicas notáveis, como o módulo Bi-directional Concatenation (BiC) e uma estratégia Anchor-Aided Training (AAT). Essas inovações proporcionam ganhos de desempenho substanciais com degradação mínima de velocidade, tornando o YOLOv6 uma escolha competitiva para tarefas de detecção de objetos.
Como o módulo Bi-directional Concatenation (BiC) no YOLOv6 melhora o desempenho?
O módulo Bi-directional Concatenation (BiC) no YOLOv6 aprimora os sinais de localização no neck do detector, proporcionando melhorias de desempenho com impacto de velocidade insignificante. Este módulo combina efetivamente diferentes mapas de características, aumentando a capacidade do modelo de detectar objetos com precisão. Para obter mais detalhes sobre os recursos do YOLOv6, consulte a seção Principais Recursos.
Como posso treinar um modelo YOLOv6 usando Ultralytics?
Você pode treinar um modelo YOLOv6 usando Ultralytics com comandos simples de Python ou CLI. Por exemplo:
Exemplo
from ultralytics import YOLO
# Build a YOLOv6n model from scratch
model = YOLO("yolov6n.yaml")
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
yolo train model=yolov6n.yaml data=coco8.yaml epochs=100 imgsz=640
Para mais informações, visite a página Train.
Quais são as diferentes versões do YOLOv6 e suas métricas de desempenho?
O YOLOv6 oferece múltiplas versões, cada uma otimizada para diferentes requisitos de desempenho:
- YOLOv6-N: 37.5% AP a 1187 FPS
- YOLOv6-S: 45.0% AP a 484 FPS
- YOLOv6-M: 50.0% AP a 226 FPS
- YOLOv6-L: 52.8% AP a 116 FPS
- YOLOv6-L6: Precisão de última geração em cenários de tempo real
Estes modelos são avaliados no conjunto de dados COCO usando uma GPU NVIDIA T4. Para mais informações sobre as métricas de desempenho, consulte a seção Métricas de Desempenho.
Como a estratégia Anchor-Aided Training (AAT) beneficia o YOLOv6?
O Anchor-Aided Training (AAT) no YOLOv6 combina elementos de abordagens baseadas em âncoras e sem âncoras, melhorando as capacidades de detecção do modelo sem comprometer a eficiência da inferência. Esta estratégia utiliza âncoras durante o treino para melhorar as previsões de bounding box, tornando o YOLOv6 eficaz em diversas tarefas de deteção de objetos.
Quais modos operacionais são suportados pelos modelos YOLOv6 na Ultralytics?
O YOLOv6 suporta vários modos operacionais, incluindo Inferência, Validação, Treino e Exportação. Esta flexibilidade permite aos utilizadores explorar totalmente as capacidades do modelo em diferentes cenários. Consulte a seção Tarefas e Modos Suportados para uma visão geral detalhada de cada modo.