Saltar al contenido

Meituan YOLOv6

Visión general

Meituan YOLOv6 es un detector de objetos de última generación que ofrece un notable equilibrio entre velocidad y precisión, lo que lo convierte en una elección popular para aplicaciones en tiempo real. Este modelo introduce varias mejoras notables en su arquitectura y esquema de entrenamiento, incluida la implementación de un módulo de Concatenación Bidireccional (BiC), una estrategia de entrenamiento asistido por anclas (AAT) y un diseño mejorado de la columna vertebral y el cuello para obtener una precisión de vanguardia en el conjunto de datos COCO.

Meituan YOLOv6 Modelo de imagen de ejemplo Visión general de YOLOv6. Diagrama de la arquitectura del modelo que muestra los componentes rediseñados de la red y las estrategias de entrenamiento que han dado lugar a importantes mejoras de rendimiento. (a) El cuello de YOLOv6 (se muestran N y S). Observa que para M/L, RepBlocks se sustituye por CSPStackRep. (b) La estructura de un módulo BiC. (c) Un bloque SimCSPSPPF. (fuente).

Características principales

  • Módulo de Concatenación Bidireccional (BiC): YOLOv6 introduce un módulo BiC en el cuello del detector, que mejora las señales de localización y proporciona mejoras de rendimiento con una degradación insignificante de la velocidad.
  • Estrategia de Entrenamiento Asistido por Anclas (AAT): Este modelo propone la AAT para disfrutar de las ventajas de los paradigmas basado en anclas y sin anclas, sin comprometer la eficacia de la inferencia.
  • Diseño mejorado de la columna vertebral y el cuello: Al profundizar en YOLOv6 para incluir otra etapa en la columna vertebral y el cuello, este modelo consigue un rendimiento de vanguardia en el conjunto de datos COCO con una entrada de alta resolución.
  • Estrategia de autodestilación: Se aplica una nueva estrategia de autodestilación para aumentar el rendimiento de los modelos más pequeños de YOLOv6, potenciando la rama de regresión auxiliar durante el entrenamiento y eliminándola en la inferencia para evitar un marcado descenso de la velocidad.

Métricas de rendimiento

YOLOv6 proporciona varios modelos preentrenados con diferentes escalas:

  • YOLOv6-N: 37,5% AP en COCO val2017 a 1187 FPS con 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: Precisión de vanguardia en tiempo real.

YOLOv6 también proporciona modelos cuantizados para distintas precisiones y modelos optimizados para plataformas móviles.

Ejemplos de uso

Este ejemplo proporciona ejemplos sencillos de entrenamiento e inferencia de YOLOv6. Para obtener documentación completa sobre estos y otros modos, consulta las páginas de documentación Predecir, Entrenar, Val y Exportar.

Ejemplo

PyTorch preentrenado *.pt modelos, así como la configuración *.yaml pueden pasarse a la función YOLO() para crear una instancia del modelo en 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 para ejecutar directamente los 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

Tareas y modos admitidos

La serie YOLOv6 ofrece una gama de modelos, cada uno de ellos optimizado para la Detección de Objetos de alto rendimiento. Estos modelos responden a distintas necesidades de cálculo y requisitos de precisión, lo que los hace versátiles para una amplia gama de aplicaciones.

Tipo de modelo Pesos preentrenados Tareas admitidas Inferencia Validación Formación Exportar
YOLOv6-N yolov6-n.pt Detección de objetos
YOLOv6-S yolov6-s.pt Detección de objetos
YOLOv6-M yolov6-m.pt Detección de objetos
YOLOv6-L yolov6-l.pt Detección de objetos
YOLOv6-L6 yolov6-l6.pt Detección de objetos

Esta tabla proporciona una visión detallada de las variantes del modelo YOLOv6, destacando sus capacidades en tareas de detección de objetos y su compatibilidad con diversos modos operativos, como Inferencia, Validación, Entrenamiento y Exportación. Esta completa compatibilidad garantiza que los usuarios puedan aprovechar plenamente las capacidades de los modelos YOLOv6 en una amplia gama de escenarios de detección de objetos.

Citas y agradecimientos

Queremos agradecer a los autores sus importantes contribuciones en el campo de la detección de objetos en tiempo 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}
}

El documento original de YOLOv6 puede consultarse en arXiv. Los autores han puesto su trabajo a disposición del público, y se puede acceder al código base en GitHub. Agradecemos sus esfuerzos por hacer avanzar el campo y poner su trabajo a disposición de la comunidad en general.

PREGUNTAS FRECUENTES

¿Qué es Meituan YOLOv6 y qué lo hace único?

Meituan YOLOv6 es un detector de objetos de última generación que equilibra velocidad y precisión, ideal para aplicaciones en tiempo real. Presenta notables mejoras arquitectónicas como el módulo de Concatenación Bidireccional (BiC) y una estrategia de Entrenamiento Asistido por Anclaje (AAT). Estas innovaciones proporcionan un aumento sustancial del rendimiento con una degradación mínima de la velocidad, lo que convierte a YOLOv6 en una opción competitiva para las tareas de detección de objetos.

¿Cómo mejora el rendimiento el Módulo de Concatenación Bidireccional (BiC) de YOLOv6?

El módulo de Concatenación Bidireccional (BiC) de YOLOv6 mejora las señales de localización en el cuello del detector, proporcionando mejoras de rendimiento con un impacto insignificante en la velocidad. Este módulo combina eficazmente diferentes mapas de características, aumentando la capacidad del modelo para detectar objetos con precisión. Para más detalles sobre las características de YOLOv6, consulta la sección Características principales.

¿Cómo puedo entrenar un modelo YOLOv6 utilizando Ultralytics?

Puedes entrenar un modelo YOLOv6 utilizando Ultralytics con los sencillos comandos Python o CLI . Por ejemplo

Ejemplo

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 más información, visita la página del Tren.

¿Cuáles son las diferentes versiones de YOLOv6 y sus métricas de rendimiento?

YOLOv6 ofrece varias versiones, cada una optimizada para diferentes requisitos de rendimiento:

  • 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: Precisión de vanguardia en escenarios en tiempo real

Estos modelos se evalúan en el conjunto de datos COCO utilizando un NVIDIA Tesla T4 GPU. Para más información sobre las métricas de rendimiento, consulta la sección Métricas de rendimiento.

¿Cómo beneficia a YOLOv6 la estrategia de Formación Asistida por Anclaje (AAT)?

El Entrenamiento Asistido por Anclas (AAT) de YOLOv6 combina elementos de los enfoques basado en anclas y sin anclas, mejorando las capacidades de detección del modelo sin comprometer la eficacia de la inferencia. Esta estrategia aprovecha las anclas durante el entrenamiento para mejorar las predicciones del cuadro delimitador, haciendo que YOLOv6 sea eficaz en diversas tareas de detección de objetos.

¿Qué modos operativos admiten los modelos YOLOv6 en Ultralytics?

YOLOv6 admite varios modos operativos, como Inferencia, Validación, Entrenamiento y Exportación. Esta flexibilidad permite a los usuarios explotar plenamente las capacidades del modelo en diferentes escenarios. Consulta la sección Tareas y Modos Soportados para obtener una descripción detallada de cada modo.



Creado 2023-11-12, Actualizado 2024-07-04
Autores: glenn-jocher (10)

Comentarios