Meituan YOLOv6
Visión general
Meituan YOLOv6 es un detector de objetos de vanguardia que ofrece un equilibrio notable entre velocidad y precisión, lo que lo convierte en una opción popular para aplicaciones en tiempo real. Este modelo introduce varias mejoras notables en su arquitectura y esquema de entrenamiento, incluyendo la implementación de un módulo de Concatenación Bidireccional (BiC), una estrategia de entrenamiento asistido por anclaje (AAT) y un backbone y diseño de cuello mejorados para una precisión de última generación en el conjunto de datos COCO.
Descripción general de YOLOv6. Diagrama de la arquitectura del modelo que muestra los componentes de red rediseñados y las estrategias de entrenamiento que han conducido a mejoras significativas en el rendimiento. (a) El cuello de YOLOv6 (se muestran N y S). Nota: para M/L, RepBlocks se reemplaza con CSPStackRep. (b) La estructura de un módulo BiC. (c) Un bloque SimCSPSPPF. (fuente).
Características clave
- Módulo de concatenación bidireccional (BiC): YOLOv6 introduce un módulo BiC en el cuello del detector, mejorando las señales de localización y ofreciendo ganancias de rendimiento con una degradación de velocidad insignificante.
- Estrategia de entrenamiento asistido por anclaje (AAT): Este modelo propone AAT para disfrutar de los beneficios de los paradigmas basados en anclajes y sin anclajes sin comprometer la eficiencia de la inferencia.
- Diseño mejorado de backbone y cuello: Al profundizar YOLOv6 para incluir otra etapa en el backbone y el cuello, este modelo logra un rendimiento de última generación en el conjunto de datos COCO con una entrada de alta resolución.
- Estrategia de auto-destilación: Se implementa una nueva estrategia de auto-destilación para mejorar el rendimiento de los modelos más pequeños de YOLOv6, mejorando la rama de regresión auxiliar durante el entrenamiento y eliminándola en la inferencia para evitar una marcada disminución de la velocidad.
Métricas de rendimiento
YOLOv6 proporciona varios modelos pre-entrenados con diferentes escalas:
- YOLOv6-N: 37.5% AP en COCO val2017 a 1187 FPS con 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: Precisión de última generación en tiempo real.
YOLOv6 también proporciona modelos cuantificados para diferentes 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 de Predict, Train, Val y Export.
Ejemplo
YOLOv6 *.yaml
los archivos se pueden pasar a la YOLO()
clase para construir el modelo correspondiente 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")
Hay comandos de la CLI disponibles 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 optimizado para la Detección de Objetos de alto rendimiento. Estos modelos se adaptan a las diferentes necesidades computacionales y requisitos de precisión, lo que los hace versátiles para una amplia gama de aplicaciones.
Modelo | Nombres de archivo | Tareas | Inferencia | Validación | Entrenamiento | Exportar |
---|---|---|---|---|---|---|
YOLOv6-N | yolov6n.yaml |
Detección de objetos | ✅ | ✅ | ✅ | ✅ |
YOLOv6-S | yolov6s.yaml |
Detección de objetos | ✅ | ✅ | ✅ | ✅ |
YOLOv6-M | yolov6m.yaml |
Detección de objetos | ✅ | ✅ | ✅ | ✅ |
YOLOv6-L | yolov6l.yaml |
Detección de objetos | ✅ | ✅ | ✅ | ✅ |
YOLOv6-X | yolov6x.yaml |
Detección de objetos | ✅ | ✅ | ✅ | ✅ |
Esta tabla proporciona una visión general detallada de las variantes del modelo YOLOv6, destacando sus capacidades en tareas de detección de objetos y su compatibilidad con varios modos operativos como Inferencia, Validación, Entrenamiento y Exportación. Este soporte integral garantiza que los usuarios puedan aprovechar al máximo las capacidades de los modelos YOLOv6 en una amplia gama de escenarios de detección de objetos.
Citas y agradecimientos
Nos gustaría agradecer a los autores por 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 artículo original de YOLOv6 se puede encontrar en arXiv. Los autores han hecho que su trabajo esté disponible públicamente y se puede acceder a la base de código en GitHub. Agradecemos sus esfuerzos para avanzar en el campo y hacer que su trabajo sea accesible a 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 mejoras arquitectónicas notables como el módulo de Concatenación Bidireccional (BiC) y una estrategia de Entrenamiento Asistido por Anclaje (AAT). Estas innovaciones proporcionan ganancias de rendimiento sustanciales 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) en YOLOv6?
El módulo de concatenación bidireccional (BiC) en YOLOv6 mejora las señales de localización en el cuello del detector, ofreciendo mejoras de rendimiento con un impacto de velocidad insignificante. Este módulo combina eficazmente diferentes mapas de características, aumentando la capacidad del modelo para detectar objetos con precisión. Para obtener más detalles sobre las características de YOLOv6, consulte la sección de Características clave.
¿Cómo puedo entrenar un modelo YOLOv6 utilizando Ultralytics?
Puede entrenar un modelo YOLOv6 utilizando Ultralytics con comandos simples de 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 de Entrenamiento.
¿Cuáles son las diferentes versiones de YOLOv6 y sus métricas de rendimiento?
YOLOv6 ofrece múltiples 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 última generación en escenarios en tiempo real
Estos modelos se evalúan en el conjunto de datos COCO utilizando una GPU NVIDIA T4. Para obtener más información sobre las métricas de rendimiento, consulte la sección de Métricas de Rendimiento.
¿Cómo beneficia la estrategia de Entrenamiento Asistido por Anclas (AAT) a YOLOv6?
El entrenamiento asistido por anclaje (AAT) en YOLOv6 combina elementos de enfoques basados en anclaje y sin anclaje, mejorando las capacidades de detección del modelo sin comprometer la eficiencia de la inferencia. Esta estrategia aprovecha los anclajes durante el entrenamiento para mejorar las predicciones de bounding box, lo que hace que YOLOv6 sea eficaz en diversas tareas de detección de objetos.
¿Qué modos operativos son compatibles con los modelos YOLOv6 en Ultralytics?
YOLOv6 admite varios modos operativos, incluidos Inferencia, Validación, Entrenamiento y Exportación. Esta flexibilidad permite a los usuarios explotar al máximo las capacidades del modelo en diferentes escenarios. Consulte la sección Tareas y modos admitidos para obtener una descripción detallada de cada modo.