Meituan YOLOv6

Visão geral

Meituan YOLOv6, lançado em 2022, oferece um forte equilíbrio entre velocidade e precisão, tornando-se uma escolha popular para aplicações em tempo real. Este modelo introduz várias melhorias notáveis na sua arquitetura e esquema de treino, incluindo a implementação de um módulo de Concatenação Bidirecional (BiC), uma estratégia de treino auxiliada por âncoras (AAT) e um design melhorado de backbone e neck para alta precisão no dataset COCO.

Modelo de deteção de objetos em tempo real YOLOv6 da Meituan Diagrama da arquitetura do modelo YOLOv6 Visão geral do YOLOv6. Diagrama da arquitetura do modelo mostrando os componentes de rede redesenhados e as estratégias de treino que levaram a melhorias significativas no desempenho. (a) O neck do YOLOv6 (N e S são mostrados). Nota: para M/L, RepBlocks é substituído por CSPStackRep. (b) A estrutura de um módulo BiC. (c) Um bloco SimCSPSPPF. (fonte).

Principais recursos

  • Módulo de Concatenação Bidirecional (BiC): O YOLOv6 introduz um módulo BiC no neck do detetor, melhorando os sinais de localização e proporcionando ganhos de desempenho com uma degradação de velocidade negligenciável.
  • Estratégia de Treino Auxiliada por Âncoras (AAT): Este modelo propõe a AAT para aproveitar os benefícios de paradigmas baseados em âncoras e sem âncoras sem comprometer a eficiência da inferência.
  • Design Reforçado de Backbone e Neck: Ao aprofundar o YOLOv6 para incluir outro estágio no backbone e no neck, este modelo alcançou um forte desempenho no dataset COCO com entrada de alta resolução quando lançado.
  • Estratégia de Auto-destilação: Uma nova estratégia de auto-destilação é implementada para impulsionar o desempenho de modelos menores do YOLOv6, melhorando o ramo de regressão auxiliar durante o treino e removendo-o na inferência para evitar uma descida acentuada na velocidade.

Métricas de desempenho

O YOLOv6 fornece vários modelos pré-treinados com diferentes escalas:

  • YOLOv6-N: 37.5% AP no val2017 do COCO a 1187 FPS com GPU NVIDIA T4.
  • 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 ponta 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 treino e inferência de YOLOv6. Para a documentação completa sobre estes e outros modos, consulta as páginas de documentação de Predict, Train, Val e Export.

Exemplo

Ficheiros *.yaml do YOLOv6 podem ser passados para a classe YOLO() 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")

Tarefas e modos suportados

A série YOLOv6 oferece uma gama de modelos, cada um otimizado para Deteção de Objetos de alto desempenho. Estes modelos atendem a diferentes necessidades computacionais e requisitos de precisão, tornando-os versáteis para uma vasta gama de aplicações.

ModeloNomes de arquivoTarefasInferência (Inference)ValidaçãoTreinamentoExport
YOLOv6-Nyolov6n.yamlDetecção de Objetos
YOLOv6-Syolov6s.yamlDetecção de Objetos
YOLOv6-Myolov6m.yamlDetecção de Objetos
YOLOv6-Lyolov6l.yamlDetecção de Objetos
YOLOv6-Xyolov6x.yamlDetecção de Objetos

Esta tabela fornece uma visão geral detalhada das variantes do modelo YOLOv6, destacando as suas capacidades em tarefas de deteção de objetos e a sua compatibilidade com vários modos operacionais como Inferência, Validação, Treino e Exportação. Este suporte abrangente garante que os utilizadores possam tirar o máximo partido das capacidades dos modelos YOLOv6 numa vasta gama de cenários de deteção de objetos.

Citações e Agradecimentos

Gostaríamos de agradecer aos autores pelas suas contribuições significativas no campo da deteção de objetos em tempo real:

Citação
@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 disponibilizaram publicamente o seu trabalho, e a base de código pode ser acedida no GitHub. Agradecemos os seus esforços no avanço do campo e em tornar o seu trabalho acessível à comunidade em geral.

FAQ

O que é o Meituan YOLOv6 e o que o torna único?

O Meituan YOLOv6, lançado em 2022, é um detetor de objetos que equilibra velocidade e precisão, concebido para aplicações em tempo real. Apresenta melhorias arquitetónicas notáveis como o módulo de Concatenação Bidirecional (BiC) e uma estratégia de Treino Auxiliado por Âncoras (AAT). Estas inovações proporcionam ganhos substanciais de desempenho com uma degradação mínima de velocidade, tornando o YOLOv6 uma escolha competitiva para tarefas de deteção de objetos.

Como é que o Módulo de Concatenação Bidirecional (BiC) no YOLOv6 melhora o desempenho?

O módulo de Concatenação Bidirecional (BiC) no YOLOv6 melhora os sinais de localização no neck do detetor, proporcionando melhorias de desempenho com um impacto de velocidade negligenciável. Este módulo combina eficazmente diferentes mapas de características, aumentando a capacidade do modelo para detetar objetos com precisão. Para mais detalhes sobre as funcionalidades do YOLOv6, consulta a secção Funcionalidades Principais.

Como posso treinar um modelo YOLOv6 usando a Ultralytics?

Podes treinar um modelo YOLOv6 usando a Ultralytics com comandos simples em 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)

Para mais informações, visita a página Train.

Quais são as diferentes versões do YOLOv6 e as 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 ponta em cenários de tempo real

Estes modelos são avaliados no dataset COCO usando uma GPU NVIDIA T4. Para mais informações sobre métricas de desempenho, consulta a secção Métricas de Desempenho.

Como é que a estratégia de Treino Auxiliado por Âncoras (AAT) beneficia o YOLOv6?

O Treino Auxiliado por Âncoras (AAT) no YOLOv6 combina elementos de abordagens baseadas em âncoras e sem âncoras, melhorando as capacidades de deteção do modelo sem comprometer a eficiência da inferência. Esta estratégia aproveita as âncoras durante o treino para melhorar as previsões de caixas delimitadoras, tornando o YOLOv6 eficaz em diversas tarefas de deteção de objetos.

Que 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. Consulta a secção Tarefas e Modos Suportados para uma visão detalhada de cada modo.

Comentários