talón Desembalaje de Yolov8: la obra maestra viral de visión por computadora de Ultralytics - Unite.AI
Contáctanos

Inteligencia artificial

Desembalaje de Yolov8: la obra maestra viral de visión por computadora de Ultralytics

mm
Actualizado on
Imagen destacada del blog para YOLOv8

Hasta ahora, la detección de objetos en imágenes mediante modelos de visión por computadora se enfrentó a un obstáculo importante de unos pocos segundos de retraso debido al tiempo de procesamiento. Este retraso obstaculizó la adopción práctica en casos de uso como la conducción autónoma. Sin embargo, el lanzamiento del modelo de visión por computadora YOLOv8 por parte de Ultralytics ha superado el retraso en el procesamiento. El nuevo modelo puede detectar objetos en tiempo real con una precisión y velocidad incomparables, lo que lo hace popular en el espacio de la visión por computadora.

Este artículo explora YOLOv8, sus capacidades y cómo puedes ajustar y crear tus propios modelos a través de su repositorio Github de código abierto.

Yolov8

YOLOv8-Ultralíticos

YOLO (Solo se vive una vez) es un popular modelo de visión por computadora capaz de detectar y segmentar objetos en imágenes. El modelo ha pasado por varios actualizaciones en el pasado, con YOLOv8 marcando la octava versión.

Tal como está, YOLOv8 se basa en las capacidades de versiones anteriores al introducir potentes funciones y mejoras nuevas. Esto permite la detección de objetos en tiempo real en los datos de imagen y vídeo con mayor exactitud y precisión.

De la v1 a la v8: una breve historia

Yolov1: Lanzada en 2015, la primera versión de YOLO se introdujo como un modelo de detección de objetos de una sola etapa. Las características incluyeron que el modelo leyera la imagen completa para predecir cada cuadro delimitador en una evaluación.

yolov2: La siguiente versión, lanzada en 2016, presentó un rendimiento superior en pruebas como PASCAL VOC y COCO y funciona a altas velocidades (67-40 FPS). También podría detectar con precisión más de 9000 categorías de objetos, incluso con datos de detección específicos limitados.

Yolov3: Lanzado en 2018, Yolov3 presentó nuevas características, como una red troncal más efectiva, múltiples anclajes y agrupación de pirámides espaciales para la extracción de características a múltiples escalas.

Yolov4: Con el lanzamiento de Yolov4 en 2020, se introdujo la nueva técnica de aumento de datos Mosaic, que ofrecía capacidades de entrenamiento mejoradas.

Yolov5: Lanzado en 2021, Yolov5 agregó nuevas funciones potentes, incluida la optimización de hiperparámetros y el seguimiento de experimentos integrado.

Yolov6: Con el lanzamiento de Yolov6 en 2022, el modelo fue de código abierto para promover el desarrollo impulsado por la comunidad. Se introdujeron nuevas características, como una nueva estrategia de autodestilación y una estrategia de entrenamiento asistido por anclajes (AAT).

Yolov7: Lanzado el mismo año, 2022, Yolov7 mejoró el modelo existente en velocidad y precisión y era el modelo de detección de objetos más rápido en el momento de su lanzamiento.

¿Qué hace que YOLOv8 se destaque?

Imagen que muestra la detección de vehículos.

La precisión incomparable y la alta velocidad de YOLOv8 hacen que el modelo de visión por computadora se destaque de las versiones anteriores. Es un logro trascendental ya que ahora los objetos se pueden detectar en tiempo real y sin demoras, a diferencia de las versiones anteriores.

Pero además de esto, YOLOv8 viene repleto de potentes capacidades, que incluyen:

  1. Arquitectura personalizable: YOLOv8 ofrece una arquitectura flexible que los desarrolladores pueden personalizar para satisfacer sus requisitos específicos.
  2. Entrenamiento adaptativo: Las nuevas capacidades de entrenamiento adaptativo de YOLOv8, como el equilibrio de la función de pérdida durante el entrenamiento y las técnicas, mejoran la tasa de aprendizaje. Tomemos como ejemplo a Adam, que contribuye a una mayor precisión, una convergencia más rápida y un mejor rendimiento general del modelo.
  3. Análisis de imágenes avanzado: A través de nuevas capacidades de segmentación semántica y predicción de clases, el modelo puede detectar actividades, colores, texturas e incluso relaciones entre objetos además de su funcionalidad principal de detección de objetos.
  4. Aumento de datos: Las nuevas técnicas de aumento de datos ayudan a abordar aspectos de las variaciones de la imagen, como la baja resolución, la oclusión, etc., en situaciones de detección de objetos del mundo real donde las condiciones no son ideales.
  5. Soporte de columna vertebral: YOLOv8 ofrece soporte para múltiples backbones, incluido CSPDarknet (backbone predeterminado), EfficientNet (backbone liviano) y ResNet (backbone clásico), entre los que los usuarios pueden elegir.

Los usuarios pueden incluso personalizar la columna vertebral reemplazando CSPDarknet53 con cualquier otra arquitectura CNN compatible con las dimensiones de entrada y salida de YOLOv8.

Entrenamiento y ajuste de YOLOv8

El modelo YOLOv8 se puede ajustar para adaptarse a ciertos casos de uso o entrenarse completamente desde cero para crear un modelo especializado. Más detalles sobre los procedimientos de capacitación se pueden encontrar en el documentación oficial.

Exploremos cómo puede llevar a cabo ambas operaciones.

Ajuste de YOLOV8 con un conjunto de datos personalizado

La operación de ajuste fino carga un modelo preexistente y utiliza sus pesos predeterminados como punto de partida para el entrenamiento. Hablando de manera intuitiva, el modelo recuerda todo su conocimiento previo y la operación de ajuste agrega nueva información ajustando los pesos.

El modelo YOLOv8 se puede ajustar con su código Python o mediante la interfaz de línea de comandos (CLI).

1. Ajustar un modelo YOLOv8 usando Python

Comience importando el paquete Ultralytics a su código. Luego, carga el modelo personalizado que deseas entrenar usando el siguiente código:

Primero, instale la biblioteca Ultralytics desde la distribución oficial.

# Instalar el paquete ultralíticos desde PyPI
ultralíticos de instalación de pip

A continuación, ejecute el siguiente código dentro de un archivo Python:

de ultralíticos importar YOLO

# Cargar un modelo
model = YOLO('yolov8n.pt')  # cargar un modelo previamente entrenado (recomendado para entrenamiento)

# Entrene el modelo en el conjunto de datos de MS COCO
resultados = model.train(data='coco128.yaml', épocas=100, imgsz=640)

De forma predeterminada, el código entrenará el modelo utilizando el conjunto de datos COCO durante 100 épocas. Sin embargo, también puede configurar estos ajustes para establecer el tamaño, la época, etc., en un archivo YAML.

Una vez que haya entrenado el modelo con su configuración y ruta de datos, supervise el progreso, pruebe y ajuste el modelo y continúe entrenándolo hasta lograr los resultados deseados.

2. Ajuste un modelo YOLOv8 usando la CLI

Para entrenar un modelo usando la CLI, ejecute el siguiente script en la línea de comando:

modelo de tren yolo = yolov8n.pt datos = coco8.yaml épocas = 100 imgsz = 640

El comando CLI carga el modelo `yolov8n.pt` previamente entrenado y lo entrena aún más en el conjunto de datos definido en el archivo `coco8.yaml`.

Creando tu propio modelo con YOLOv8

Básicamente, existen dos formas de crear un modelo personalizado con el marco YOLO:

  • Entrenamiento desde cero: Este enfoque le permite utilizar la arquitectura YOLOv8 predefinida pero NO utilizará ningún peso previamente entrenado. La formación se realizará desde cero.
  • Arquitectura personalizada: Modifica la arquitectura YOLO predeterminada y entrena la nueva estructura desde cero.

La implementación de ambos métodos sigue siendo la misma. Para entrenar un modelo YOLO desde cero, ejecute el siguiente código Python:

de ultralíticos importar YOLO

# Cargar un modelo
model = YOLO('yolov8n.yaml')  # construir un nuevo modelo desde YAML

# Entrena el modelo
resultados = model.train(data='coco128.yaml', épocas=100, imgsz=640)

Tenga en cuenta que esta vez hemos cargado un archivo ".yaml" en lugar de un archivo ".pt". El archivo YAML contiene la información de arquitectura del modelo y no se cargan pesos. El comando de entrenamiento comenzará a entrenar este modelo desde cero.

Para entrenar una arquitectura personalizada, debe definir la estructura personalizada en un archivo ".yaml" similar al "yolov8n.yaml" anterior. Luego, carga este archivo y entrena el modelo usando el mismo código que el anterior.

Para obtener más información sobre la detección de objetos mediante IA y mantenerse informado sobre las últimas tendencias de IA, visite unir.ai.