Ultralytics YOLO27:

Meituan YOLOv6#

Descripción general#

Meituan YOLOv6, presentado en 2022, ofrece un sólido equilibrio entre velocidad y precisión, lo que lo convierte en una opción popular para aplicaciones en tiempo real. Este modelo introduce varias mejoras destacadas en su arquitectura y estrategia 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 del backbone y el cuello para lograr una alta precisión en el conjunto de datos COCO.

Modelo de detección de objetos en tiempo real YOLOv6 de Meituan Diagrama de la arquitectura del modelo YOLOv6 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 dado lugar a mejoras significativas del rendimiento. (a) El cuello de YOLOv6 (se muestran N y S). Nota: en 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, lo que mejora las señales de localización y ofrece mejoras de rendimiento con una degradación insignificante de la velocidad.
  • Estrategia de entrenamiento asistido por anclas (AAT): Este modelo propone AAT para aprovechar las ventajas de los paradigmas basado en anclas y sin anclas sin comprometer la eficiencia de la inferencia.
  • Diseño mejorado del backbone y el cuello: Al profundizar YOLOv6 para incluir otra etapa en el backbone y el cuello, este modelo logró 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, potenciando la rama de regresión auxiliar durante el entrenamiento y eliminándola durante la inferencia para evitar una disminución notable de la velocidad.

Métricas de rendimiento#

YOLOv6 ofrece varios modelos preentrenados con 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 para distintas precisiones y modelos optimizados para plataformas móviles.

Ejemplos de uso#

Este ejemplo proporciona ejemplos sencillos de entrenamiento e inferencia con YOLOv6. Para consultar la documentación completa sobre estos y otros modos, consulta las páginas de documentación de Predict, Train, Val y Export.

Ejemplo

Los archivos *.yaml de YOLOv6 se pueden pasar a la clase YOLO() para crear 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")

Tareas y modos compatibles#

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 distintas necesidades computacionales y requisitos de precisión, por lo que son versátiles para una amplia variedad de aplicaciones.

ModeloNombres de archivoTareasEntrenamientoValidaciónInferenciaExportar
YOLOv6-Nyolov6n.yamlDetección de objetos
YOLOv6-Syolov6s.yamlDetección de objetos
YOLOv6-Myolov6m.yamlDetección de objetos
YOLOv6-Lyolov6l.yamlDetección de objetos
YOLOv6-Xyolov6x.yamlDetecció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, así como su compatibilidad con diversos modos operativos, como Inferencia, Validación, Entrenamiento y Exportación. Esta compatibilidad integral garantiza que puedas aprovechar plenamente las capacidades de los modelos YOLOv6 en una amplia variedad de escenarios de detección de objetos.

Citas y agradecimientos#

Nos gustaría reconocer a los autores por sus importantes contribuciones al campo de la detección de objetos en tiempo real:

Cita
@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 puesto su trabajo a disposición del público y el código fuente se puede consultar en GitHub. Agradecemos sus esfuerzos por impulsar este campo y hacer accesible su trabajo a una comunidad más amplia.

Preguntas frecuentes#

  • Meituan YOLOv6, presentado en 2022, es un detector de objetos que equilibra velocidad y precisión, diseñado para aplicaciones en tiempo real. Presenta mejoras arquitectónicas destacadas, como el módulo de concatenación bidireccional (BiC) y una estrategia de entrenamiento asistido por anclas (AAT). Estas innovaciones proporcionan mejoras sustanciales del rendimiento 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 principales.

  • Puedes entrenar un modelo YOLOv6 con Ultralytics mediante comandos sencillos de Python o de la 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)

    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 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, consulta la sección Métricas de rendimiento.

  • 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 eficiencia de la inferencia. Esta estrategia utiliza anclas durante el entrenamiento para mejorar las predicciones de las cajas delimitadoras, lo que hace que YOLOv6 sea eficaz en diversas tareas de detección de objetos.

  • YOLOv6 admite varios modos operativos, como Inferencia, Validación, Entrenamiento y Exportación. Esta flexibilidad permite aprovechar plenamente las capacidades del modelo en distintos escenarios. Consulta la sección Tareas y modos compatibles para obtener una descripción detallada de cada modo.

Comentarios