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% AP on COCO val2017 at 1187 FPS with 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.

YOLOv6 also provides quantized models for different precisions and models optimized for mobile platforms.

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 pretrained *.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

The YOLOv6 series offers a range of models, each optimized for high-performance Object Detection. These models cater to varying computational needs and accuracy requirements, making them versatile for a wide array of applications.

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

This table provides a detailed overview of the YOLOv6 model variants, highlighting their capabilities in object detection tasks and their compatibility with various operational modes such as Inference, Validation, Training, and Export. This comprehensive support ensures that users can fully leverage the capabilities of YOLOv6 models in a broad range of object detection scenarios.

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

These models are evaluated on the COCO dataset using an NVIDIA T4 GPU. For more on performance metrics, see the Performance Metrics section.

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

Anchor-Aided Training (AAT) in YOLOv6 combines elements of anchor-based and anchor-free approaches, enhancing the model's detection capabilities without compromising inference efficiency. This strategy leverages anchors during training to improve bounding box predictions, making YOLOv6 effective in diverse object detection tasks.

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.


📅 Created 11 months ago ✏️ Updated 12 days ago

Comentários