Ir para o conteúdo

Meituan YOLOv6

Visão geral

Meituan YOLOv6 é um detector de objetos 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 em sua arquitetura e esquema de treinamento, incluindo a implementação de um módulo de Concatenação Bi-direcional (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.

Meituan YOLOv6Imagem de exemplo do modeloVisã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 de 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): YOLOv6 introduz um módulo BiC no neck do detector, melhorando 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 um desempenho de ponta 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 impulsionar o desempenho de modelos menores do YOLOv6, aprimorando o ramo 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 em COCO val2017 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 última geração em tempo real.

O YOLOv6 também oferece 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 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.

ModeloNomes de arquivosTarefasInferênciaValidaçãoTreinamentoExportar
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 suas capacidades em tarefas de detecção de objetos e sua compatibilidade com vários modos operacionais, como Inferência, Validação, Treinamento e Exportação. Este suporte abrangente garante que os usuários possam aproveitar ao máximo 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 disponibilizaram seu trabalho publicamente, e o código pode ser acessado no GitHub. Agradecemos seus esforços em avançar o campo e 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 aprimoramentos arquitetônicos 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 de Concatenção Bi-direcional (BiC) no YOLOv6 melhora o desempenho?

O módulo Bi-directional Concatenation (BiC) no YOLOv6 aprimora os sinais de localização no neck do detetor, proporcionando melhorias de desempenho com impacto de velocidade insignificante. Este módulo combina efetivamente diferentes feature maps, aumentando a capacidade do modelo de detetar objetos com precisão. Para obter mais detalhes sobre os recursos do YOLOv6, consulte a seção Key Features.

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 várias 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 em tempo real

Esses modelos são avaliados no conjunto de dados COCO usando uma NVIDIA T4 GPU. Para mais informações sobre métricas de desempenho, consulte a seção Métricas de Desempenho.

Como a estratégia de Anchor-Aided Training (AAT) beneficia o YOLOv6?

O Treinamento Auxiliado por Âncoras (AAT) no YOLOv6 combina elementos de abordagens baseadas em âncoras e livres de âncoras, aprimorando os recursos de detecção do modelo sem comprometer a eficiência da inferência. Essa estratégia aproveita as âncoras durante o treinamento para melhorar as previsões de bounding box, tornando o YOLOv6 eficaz em diversas tarefas de detecçã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, Treinamento e Exportação. Essa flexibilidade permite que os usuários explorem totalmente os recursos do modelo em diferentes cenários. Consulte a seção Tarefas e Modos Suportados para uma visão geral detalhada de cada modo.



📅 Criado há 2 anos ✏️ Atualizado há 1 mês
glenn-jocherLaughing-qY-T-GMatthewNoyceRizwanMunawar

Comentários