Ultralytics YOLO27:
Get Started

Meituan YOLOv6#

Visão geral#

O YOLOv6 da Meituan, lançado em 2022, oferece um excelente equilíbrio entre velocidade e precisão, o que faz dele uma escolha popular para aplicações em tempo real. Este modelo introduz várias melhorias notáveis na arquitetura e no esquema de treino, incluindo a implementação de um módulo de concatenação bidirecional (BiC), uma estratégia de treino assistido por âncoras (AAT) e um design melhorado da rede base e do pescoço para oferecer alta precisão no conjunto de dados COCO.

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

Principais funcionalidades#

  • 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 aumentando o desempenho com uma degradação insignificante da velocidade.
  • Estratégia de treino assistido por âncoras (AAT): este modelo propõe a AAT para combinar as vantagens dos paradigmas baseados em âncoras e sem âncoras, sem comprometer a eficiência da inferência.
  • Design melhorado da rede base e do pescoço: ao aprofundar o YOLOv6 com a inclusão de mais uma etapa na rede base e no pescoço, este modelo alcançou um desempenho sólido no conjunto de dados COCO com entrada de alta resolução na altura do lançamento.
  • Estratégia de autodestilação: é implementada uma nova estratégia de autodestilação para aumentar o desempenho dos modelos mais pequenos do YOLOv6, melhorando o ramo auxiliar de regressão durante o treino e removendo-o na inferência para evitar uma redução acentuada da velocidade.

Métricas de desempenho#

O YOLOv6 disponibiliza vários modelos pré-treinados de diferentes escalas:

  • YOLOv6-N: 37,5% de AP no COCO val2017 a 1187 FPS com uma GPU NVIDIA T4.
  • YOLOv6-S: 45,0% de AP a 484 FPS.
  • YOLOv6-M: 50,0% de AP a 226 FPS.
  • YOLOv6-L: 52,8% de AP a 116 FPS.
  • YOLOv6-L6: precisão de última geração em tempo real.

O YOLOv6 também disponibiliza modelos quantizados com diferentes precisões e modelos otimizados para plataformas móveis.

Exemplos de uso#

Este exemplo apresenta exemplos simples de treino e inferência do YOLOv6. Para consultar a documentação completa destes e de outros modos, vê as páginas de documentação de Predição, Treino, Validação e Exportação.

Exemplo

Os ficheiros *.yaml do YOLOv6 podem ser passados à classe YOLO() para criar o modelo correspondente em Python:

from ultralytics import YOLO

# Cria um modelo YOLOv6n do zero
model = YOLO("yolov6n.yaml")

# Exibir informações do modelo (opcional)
model.info()

# Treina o modelo no conjunto de dados de exemplo COCO8 durante 100 épocas
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Executa a inferência com o modelo YOLOv6n na imagem 'bus.jpg'
results = model("path/to/bus.jpg")

Tarefas e modos compatíveis#

A série YOLOv6 oferece vários modelos, cada um otimizado para a deteção de objetos de alto desempenho. Estes modelos respondem a diferentes necessidades computacionais e requisitos de precisão, o que os torna versáteis para uma vasta gama de aplicações.

ModeloNomes de arquivoTarefasTreinamentoValidaçãoInferênciaExportar
YOLOv6-Nyolov6n.yamlDeteção de objetos✅✅✅✅
YOLOv6-Syolov6s.yamlDeteção de objetos✅✅✅✅
YOLOv6-Myolov6m.yamlDeteção de objetos✅✅✅✅
YOLOv6-Lyolov6l.yamlDeteção de objetos✅✅✅✅
YOLOv6-Xyolov6x.yamlDeteção de objetos✅✅✅✅

Esta tabela apresenta uma visão geral detalhada das variantes do modelo YOLOv6, destacando as suas capacidades em tarefas de deteção de objetos e a compatibilidade com vários modos de operação, como Inferência, Validação, Treino e Exportação. Esta compatibilidade abrangente garante que os utilizadores podem aproveitar plenamente as capacidades dos modelos YOLOv6 em diversos cenários de deteção de objetos.

Citações e agradecimentos#

Gostaríamos de reconhecer as contribuições significativas dos autores para a área 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 o código-fonte pode ser consultado no GitHub. Agradecemos os seus esforços para fazer avançar a área e tornar o trabalho acessível a uma comunidade mais ampla.

Perguntas frequentes#

  • O Meituan YOLOv6, lançado em 2022, é um detetor de objetos que equilibra velocidade e precisão, concebido para aplicações em tempo real. Inclui melhorias arquitetónicas notáveis, como o módulo de concatenação bidirecional (BiC) e uma estratégia de treino assistido por âncoras (AAT). Estas inovações proporcionam ganhos substanciais de desempenho com uma degradação mínima da velocidade, tornando o YOLOv6 uma opção competitiva para tarefas de deteção de objetos.

  • O módulo de concatenação bidirecional (BiC) do YOLOv6 melhora os sinais de localização no pescoço do detetor, aumentando o desempenho com um impacto insignificante na velocidade. 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 Principais funcionalidades.

  • Podes treinar um modelo YOLOv6 com a Ultralytics usando comandos simples de Python ou da CLI. Por exemplo:

    Exemplo
    from ultralytics import YOLO
    
    # Cria um modelo YOLOv6n do zero
    model = YOLO("yolov6n.yaml")
    
    # Treina o modelo no conjunto de dados de exemplo COCO8 durante 100 épocas
    results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

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

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

    • YOLOv6-N: 37,5% de AP a 1187 FPS
    • YOLOv6-S: 45,0% de AP a 484 FPS
    • YOLOv6-M: 50,0% de AP a 226 FPS
    • YOLOv6-L: 52,8% de 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 usando uma GPU NVIDIA T4. Para saber mais sobre as métricas de desempenho, consulta a secção Métricas de desempenho.

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

  • O YOLOv6 é compatível com vários modos de operação, incluindo Inferência, Validação, Treino e Exportação. Esta flexibilidade permite aos utilizadores aproveitar plenamente as capacidades do modelo em diferentes cenários. Consulta a secção Tarefas e modos compatíveis para ver uma descrição detalhada de cada modo.

Comentários