Salta para o conteúdo

Meituan YOLOv6

Visão geral

O Meituan YOLOv6 é um detetor de objectos de ponta que oferece um equilíbrio notável entre velocidade e precisão, tornando-o 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 assistido por âncora (AAT) e um design melhorado da espinha dorsal e do pescoço para uma precisão de ponta no conjunto de dados COCO.

Meituan YOLOv6 Imagem de exemplo de modelo Visão geral do YOLOv6. Diagrama da arquitetura do modelo mostrando os componentes de rede redesenhados e as estratégias de formação que conduziram a melhorias significativas de desempenho. (a) O pescoço do YOLOv6 (N e S são mostrados). Nota que para M/L, RepBlocks é substituído por CSPStackRep. (b) A estrutura de um módulo BiC. (c) Um bloco SimCSPSPPF. (fonte).

Características principais

  • Módulo de Concatenação Bidirecional (BiC): O YOLOv6 introduz um módulo BiC no pescoço do detetor, melhorando os sinais de localização e proporcionando ganhos de desempenho com uma degradação insignificante da velocidade.
  • Estratégia de Formação Assistida por Âncoras (AAT): Este modelo propõe a AAT para usufruir dos benefícios dos paradigmas baseados e livres de âncoras sem comprometer a eficiência da inferência.
  • Design melhorado da espinha dorsal e do pescoço: Ao aprofundar o YOLOv6 para incluir outra fase na espinha dorsal e no pescoço, este modelo alcança um desempenho topo de gama no conjunto de dados COCO com entrada de alta resolução.
  • Estratégia de auto-destilação: Uma nova estratégia de auto-destilação é implementada para aumentar o desempenho dos modelos mais pequenos do YOLOv6, melhorando o ramo de regressão auxiliar durante o treino e removendo-o na inferência para evitar uma diminuição acentuada da velocidade.

Métricas de desempenho

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

  • YOLOv6-N: 37,5% de AP no COCO val2017 a 1187 FPS com NVIDIA Tesla 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 optimizados para plataformas móveis.

Exemplos de utilização

Este exemplo fornece exemplos simples de treinamento e inferência do YOLOv6. Para obter a documentação completa sobre estes e outros modos, consulta as páginas de documentação Predict, Train, Val e Export.

Exemplo

PyTorch pré-treinado *.pt modelos, bem como a configuração *.yaml podem ser passados para o YOLO() para criar uma instância de modelo 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")

CLI estão disponíveis para executar diretamente os modelos:

# 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 gama de modelos, cada um optimizado para a Deteção de Objectos de elevado desempenho. Estes modelos respondem a diferentes necessidades computacionais e requisitos de precisão, tornando-os versáteis para uma vasta gama de aplicações.

Tipo de modelo Pesos pré-treinados Tarefas suportadas Inferência Validação Formação Exportação
YOLOv6-N yolov6-n.pt Deteção de objectos
YOLOv6-S yolov6-s.pt Deteção de objectos
YOLOv6-M yolov6-m.pt Deteção de objectos
YOLOv6-L yolov6-l.pt Deteção de objectos
YOLOv6-L6 yolov6-l6.pt Deteção de objectos

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

Citações e agradecimentos

Gostaríamos de agradecer aos autores pelas suas contribuições significativas no domínio da deteção de objectos 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 o seu trabalho publicamente disponível e a base de código pode ser acedida no GitHub. Agradecemos os seus esforços para fazer avançar o campo e tornar o seu trabalho acessível à comunidade em geral.

FAQ

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

O Meituan YOLOv6 é um detetor de objectos de última geração que equilibra velocidade e precisão, ideal para aplicações em tempo real. Apresenta melhorias arquitectónicas notáveis, como o módulo BiC (Bi-directional Concatenation) e uma estratégia AAT (Anchor-Aided Training). Estas inovações proporcionam ganhos substanciais de desempenho com uma degradação mínima da velocidade, tornando o YOLOv6 uma escolha competitiva para tarefas de deteção de objectos.

Como é que o módulo de concatenação bidirecional (BiC) do YOLOv6 melhora o desempenho?

O módulo Bi-directional Concatenation (BiC) do YOLOv6 melhora os sinais de localização no pescoço do detetor, proporcionando melhorias de desempenho com um impacto insignificante na velocidade. Este módulo combina eficazmente diferentes mapas de características, aumentando a capacidade do modelo para detetar objectos com precisão. Para mais detalhes sobre as características do YOLOv6, consulta a secção Características principais.

Como é que posso treinar um modelo YOLOv6 utilizando Ultralytics?

Podes treinar um modelo YOLOv6 utilizando Ultralytics com comandos simples 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, visita a página do comboio.

Quais são as diferentes versões do YOLOv6 e as suas métricas de desempenho?

O YOLOv6 oferece várias versões, cada uma optimizada para diferentes requisitos de desempenho:

  • YOLOv6-N: 37,5% de PA 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 em tempo real

Estes modelos são avaliados no conjunto de dados COCO utilizando um NVIDIA Tesla T4 GPU. Para mais informações sobre métricas de desempenho, consulta a secção Métricas de desempenho.

Como é que a estratégia de formação assistida por âncoras (AAT) beneficia o YOLOv6?

O treino assistido 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 da caixa delimitadora, tornando o YOLOv6 eficaz em diversas tarefas de deteção de objectos.

Que modos operacionais são suportados pelos modelos YOLOv6 em Ultralytics?

O YOLOv6 suporta vários modos operacionais, incluindo Inferência, Validação, Treino e Exportação. Esta flexibilidade permite aos utilizadores explorar plenamente as capacidades do modelo em diferentes cenários. Consulta a secção Tarefas e modos suportados para obteres uma visão geral detalhada de cada modo.



Criado em 2023-11-12, Atualizado em 2024-07-04
Autores: glenn-jocher (10)

Comentários