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 em COCO val2017 a 1187 FPS com GPU NVIDIA Tesla 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 ú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.



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

Comentários