Meituan YOLOv6#
Descripción general#
Meituan YOLOv6, publicado en 2022, ofrece un buen equilibrio entre velocidad y precisión, por lo que es una opción popular para aplicaciones en tiempo real. Este modelo incorpora varias mejoras destacadas en su arquitectura y esquema de entrenamiento, como la implementación de un módulo de concatenación bidireccional (BiC), una estrategia de entrenamiento asistido por anclajes (AAT) y un diseño mejorado del backbone y el cuello para lograr una alta precisió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 permitido mejoras significativas del rendimiento. (a) El cuello de YOLOv6 (se muestran N y S). 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 incorpora un módulo BiC en el cuello del detector que mejora las señales de localización y aumenta el rendimiento con una degradación insignificante de la velocidad.
- Estrategia de entrenamiento asistido por anclajes (AAT): Este modelo propone AAT para aprovechar las ventajas de los enfoques basados en anclajes y sin anclajes sin comprometer la eficiencia de inferencia.
- Diseño mejorado del backbone y el cuello: Al profundizar YOLOv6 para incluir otra etapa en el backbone y el cuello, este modelo alcanzó un rendimiento sólido en el conjunto de datos COCO con entradas de alta resolución en el momento de su lanzamiento.
- Estrategia de autodestilación: Se implementa una nueva estrategia de autodestilación para mejorar el rendimiento de los modelos más pequeños de YOLOv6. Durante el entrenamiento, se mejora la rama de regresión auxiliar y, en la inferencia, se elimina para evitar una caída notable de la velocidad.
Métricas de rendimiento#
YOLOv6 ofrece varios modelos preentrenados de distintas escalas:
- YOLOv6-N: 37,5 % de AP en COCO val2017 a 1187 FPS con una 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: precisión de vanguardia en tiempo real.
YOLOv6 también ofrece modelos cuantizados con distintas precisiones y modelos optimizados para plataformas móviles.
Ejemplos de uso#
Este ejemplo incluye instrucciones sencillas para entrenar YOLOv6 y ejecutar inferencias. Para consultar la documentación completa sobre estos y otros modos, visita las páginas de documentación de Predicción, Entrenamiento, Validación y Exportación.
Los archivos *.yaml de YOLOv6 se pueden pasar a la clase YOLO() para crear el modelo correspondiente en Python:
from ultralytics import YOLO
# Construir un modelo YOLOv6n desde cero
model = YOLO("yolov6n.yaml")
# Mostrar información del modelo (opcional)
model.info()
# Entrena el modelo durante 100 épocas con el conjunto de datos de ejemplo COCO8
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Ejecutar inferencias con el modelo YOLOv6n en la imagen 'bus.jpg'
results = model("path/to/bus.jpg")Tareas y modos compatibles#
La serie YOLOv6 ofrece diversos modelos, cada uno optimizado para la detección de objetos de alto rendimiento. Estos modelos se adaptan a distintas necesidades de cálculo y requisitos de precisión, por lo que resultan versátiles para una amplia variedad de aplicaciones.
| Modelo | Nombres de archivo | Tareas | Entrenamiento | Validación | Inferencia | 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 ofrece una descripción detallada de las variantes del modelo YOLOv6 y destaca sus capacidades en tareas de detección de objetos y su compatibilidad con distintos modos de funcionamiento, como Inferencia, Validación, Entrenamiento y Exportación. Esta compatibilidad integral garantiza que los usuarios puedan aprovechar al máximo las capacidades de los modelos YOLOv6 en una amplia variedad de situaciones de detección de objetos.
Citas y agradecimientos#
Queremos reconocer las importantes contribuciones de los autores al 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 está disponible en arXiv. Los autores han hecho público su trabajo y el código está disponible en GitHub. Agradecemos sus esfuerzos por impulsar este campo y hacer que su trabajo esté al alcance de una comunidad más amplia.
Preguntas frecuentes#
Meituan YOLOv6, publicado en 2022, es un detector de objetos que equilibra velocidad y precisión, diseñado para aplicaciones en tiempo real. Incluye mejoras arquitectónicas destacadas, como el módulo de concatenación bidireccional (BiC) y una estrategia de entrenamiento asistido por anclajes (AAT). Estas innovaciones ofrecen mejoras de rendimiento considerables con una degradación mínima de la velocidad, lo que convierte a YOLOv6 en una opción competitiva para tareas de detección de objetos.
El módulo de concatenación bidireccional (BiC) de YOLOv6 mejora las señales de localización en el cuello del detector y ofrece mejoras de rendimiento con un impacto insignificante en la velocidad. Este módulo combina eficazmente distintos mapas de características, lo que aumenta la capacidad del modelo para detectar objetos con precisión. Para obtener más información sobre las características de YOLOv6, consulta la sección Características clave.
Puedes entrenar un modelo YOLOv6 con Ultralytics mediante sencillos comandos de Python o CLI. Por ejemplo:
Ejemplofrom ultralytics import YOLO # Construir un modelo YOLOv6n desde cero model = YOLO("yolov6n.yaml") # Entrena el modelo durante 100 épocas con el conjunto de datos de ejemplo COCO8 results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Para obtener más información, visita la página de Entrenamiento.
YOLOv6 ofrece varias versiones, cada una optimizada para distintos requisitos de rendimiento:
- 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: precisión de vanguardia en situaciones en tiempo real
Estos modelos se evalúan en el conjunto de datos COCO con una GPU NVIDIA T4. Para obtener más información sobre las métricas de rendimiento, consulta la sección Métricas de rendimiento.
El entrenamiento asistido por anclajes (AAT) de YOLOv6 combina elementos de los enfoques basados en anclajes y sin anclajes, lo que mejora la capacidad de detección del modelo sin comprometer la eficiencia de inferencia. Esta estrategia aprovecha los anclajes durante el entrenamiento para mejorar las predicciones de la caja delimitadora, lo que hace que YOLOv6 sea eficaz en diversas tareas de detección de objetos.
YOLOv6 admite varios modos de funcionamiento, como Inferencia, Validación, Entrenamiento y Exportación. Esta flexibilidad permite aprovechar al máximo las capacidades del modelo en distintas situaciones. Consulta la sección Tareas y modos admitidos para obtener una descripción detallada de cada modo.