Saltar al contenido

YOLOv8

Visi贸n general

YOLOv8 es la 煤ltima iteraci贸n de la serie YOLO de detectores de objetos en tiempo real, que ofrece un rendimiento puntero en t茅rminos de precisi贸n y velocidad. Bas谩ndose en los avances de las versiones anteriores de YOLO , YOLOv8 introduce nuevas funciones y optimizaciones que lo convierten en la opci贸n ideal para diversas tareas de detecci贸n de objetos en una amplia gama de aplicaciones.

Ultralytics YOLOv8



Observa: Ultralytics YOLOv8 Resumen del modelo

Caracter铆sticas principales

  • Arquitecturas avanzadas de espina dorsal y cuello: YOLOv8 emplea arquitecturas de espina dorsal y cuello de 煤ltima generaci贸n, lo que mejora la extracci贸n de caracter铆sticas y el rendimiento de la detecci贸n de objetos.
  • Cabezal dividido sin anclajes Ultralytics : YOLOv8 adopta un cabezal dividido sin anclajes Ultralytics , que contribuye a una mayor precisi贸n y a un proceso de detecci贸n m谩s eficaz en comparaci贸n con los enfoques basados en anclajes.
  • Compromiso optimizado entre precisi贸n y velocidad: Centrado en mantener un equilibrio 贸ptimo entre precisi贸n y velocidad, YOLOv8 es adecuado para tareas de detecci贸n de objetos en tiempo real en diversas 谩reas de aplicaci贸n.
  • Variedad de modelos preentrenados: YOLOv8 ofrece una gama de modelos preentrenados para atender a diversas tareas y requisitos de rendimiento, lo que facilita encontrar el modelo adecuado para tu caso de uso espec铆fico.

Tareas y modos admitidos

La serie YOLOv8 ofrece una diversa gama de modelos, cada uno especializado para tareas espec铆ficas en visi贸n por ordenador. Estos modelos est谩n dise帽ados para satisfacer distintos requisitos, desde la detecci贸n de objetos hasta tareas m谩s complejas como la segmentaci贸n de instancias, la detecci贸n de poses/puntos clave, la detecci贸n de objetos orientados y la clasificaci贸n.

Cada variante de la serie YOLOv8 est谩 optimizada para su tarea respectiva, lo que garantiza un alto rendimiento y precisi贸n. Adem谩s, estos modelos son compatibles con varios modos operativos, como Inferencia, Validaci贸n, Entrenamiento y Exportaci贸n, lo que facilita su uso en distintas fases de despliegue y desarrollo.

Modelo Nombres de archivo Tarea Inferencia Validaci贸n Formaci贸n Exportar
YOLOv8 yolov8n.pt yolov8s.pt yolov8m.pt yolov8l.pt yolov8x.pt Detecci贸n
YOLOv8-seg yolov8n-seg.pt yolov8s-seg.pt yolov8m-seg.pt yolov8l-seg.pt yolov8x-seg.pt Segmentaci贸n de instancias
YOLOv8-pose yolov8n-pose.pt yolov8s-pose.pt yolov8m-pose.pt yolov8l-pose.pt yolov8x-pose.pt yolov8x-pose-p6.pt Pose/Puntos clave
YOLOv8-obb yolov8n-obb.pt yolov8s-obb.pt yolov8m-obb.pt yolov8l-obb.pt yolov8x-obb.pt Detecci贸n Orientada
YOLOv8-cls yolov8n-cls.pt yolov8s-cls.pt yolov8m-cls.pt yolov8l-cls.pt yolov8x-cls.pt Clasificaci贸n

Esta tabla proporciona una visi贸n general de las variantes del modelo YOLOv8 , destacando su aplicabilidad en tareas espec铆ficas y su compatibilidad con diversos modos operativos, como Inferencia, Validaci贸n, Entrenamiento y Exportaci贸n. Muestra la versatilidad y robustez de la serie YOLOv8 , que las hace adecuadas para una gran variedad de aplicaciones en visi贸n por ordenador.

M茅tricas de rendimiento

Rendimiento

Consulta los Documentos de Detecci贸n para ver ejemplos de uso con estos modelos entrenados en COCO, que incluyen 80 clases preentrenadas.

Modelo tama帽o
(p铆xeles)
mAPval
50-95
Velocidad
CPU ONNX
(ms)
Velocidad
A100 TensorRT
(ms)
par谩metros
(M)
FLOPs
(B)
YOLOv8n 640 37.3 80.4 0.99 3.2 8.7
YOLOv8s 640 44.9 128.4 1.20 11.2 28.6
YOLOv8m 640 50.2 234.7 1.83 25.9 78.9
YOLOv8l 640 52.9 375.2 2.39 43.7 165.2
YOLOv8x 640 53.9 479.1 3.53 68.2 257.8

Consulta los Documentos de Detecci贸n para ver ejemplos de uso con estos modelos entrenados en Open Image V7, que incluyen 600 clases preentrenadas.

Modelo tama帽o
(p铆xeles)
mAPval
50-95
Velocidad
CPU ONNX
(ms)
Velocidad
A100 TensorRT
(ms)
par谩metros
(M)
FLOPs
(B)
YOLOv8n 640 18.4 142.4 1.21 3.5 10.5
YOLOv8s 640 27.7 183.1 1.40 11.4 29.7
YOLOv8m 640 33.6 408.5 2.26 26.2 80.6
YOLOv8l 640 34.9 596.9 2.43 44.1 167.4
YOLOv8x 640 36.3 860.6 3.56 68.7 260.6

Consulta Segmentation Docs para ver ejemplos de uso con estos modelos entrenados en COCO, que incluyen 80 clases preentrenadas.

Modelo tama帽o
(p铆xeles)
mAPbox
50-95
mAPmask
50-95
Velocidad
CPU ONNX
(ms)
Velocidad
A100 TensorRT
(ms)
par谩metros
(M)
FLOPs
(B)
YOLOv8n-seg 640 36.7 30.5 96.1 1.21 3.4 12.6
YOLOv8s-seg 640 44.6 36.8 155.7 1.47 11.8 42.6
YOLOv8m-seg 640 49.9 40.8 317.0 2.18 27.3 110.2
YOLOv8l-seg 640 52.3 42.6 572.4 2.79 46.0 220.5
YOLOv8x-seg 640 53.4 43.4 712.1 4.02 71.8 344.1

Consulta los Documentos de Clasificaci贸n para ver ejemplos de uso con estos modelos entrenados en ImageNet, que incluyen 1000 clases preentrenadas.

Modelo tama帽o
(p铆xeles)
acc
top1
acc
top5
Velocidad
CPU ONNX
(ms)
Velocidad
A100 TensorRT
(ms)
par谩metros
(M)
FLOPs
(B) a 640
YOLOv8n-cls 224 69.0 88.3 12.9 0.31 2.7 4.3
YOLOv8s-cls 224 73.8 91.7 23.4 0.35 6.4 13.5
YOLOv8m-cls 224 76.8 93.5 85.4 0.62 17.0 42.7
YOLOv8l-cls 224 76.8 93.5 163.0 0.87 37.5 99.7
YOLOv8x-cls 224 79.0 94.6 232.0 1.01 57.4 154.8

Consulta la documentaci贸n sobre estimaci贸n de poses para ver ejemplos de uso con estos modelos entrenados en COCO, que incluyen 1 clase preentrenada, "persona".

Modelo tama帽o
(p铆xeles)
mAPpose
50-95
mAPpose
50
Velocidad
CPU ONNX
(ms)
Velocidad
A100 TensorRT
(ms)
par谩metros
(M)
FLOPs
(B)
YOLOv8n-pose 640 50.4 80.1 131.8 1.18 3.3 9.2
YOLOv8s-pose 640 60.0 86.2 233.2 1.42 11.6 30.2
YOLOv8m-pose 640 65.0 88.8 456.3 2.00 26.4 81.0
YOLOv8l-pose 640 67.6 90.0 784.5 2.59 44.4 168.6
YOLOv8x-pose 640 69.2 90.2 1607.1 3.73 69.4 263.2
YOLOv8x-pose-p6 1280 71.6 91.2 4088.7 10.04 99.1 1066.4

Consulta los Documentos de Detecci贸n Orientada para ver ejemplos de uso con estos modelos entrenados en DOTAv1, que incluyen 15 clases preentrenadas.

Modelo tama帽o
(p铆xeles)
mAPtest
50
Velocidad
CPU ONNX
(ms)
Velocidad
A100 TensorRT
(ms)
par谩metros
(M)
FLOPs
(B)
YOLOv8n-obb 1024 78.0 204.77 3.57 3.1 23.3
YOLOv8s-obb 1024 79.5 424.88 4.07 11.4 76.3
YOLOv8m-obb 1024 80.5 763.48 7.61 26.4 208.6
YOLOv8l-obb 1024 80.7 1278.42 11.83 44.5 433.8
YOLOv8x-obb 1024 81.36 1759.10 13.23 69.5 676.7

Ejemplos de uso

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

Ten en cuenta que el ejemplo siguiente es para los modelos YOLOv8 Detectar para la detecci贸n de objetos. Para otras tareas compatibles, consulta los documentos Segmentar, Clasificar, OBB y Pose.

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

# Load a COCO-pretrained YOLOv8n model
model = YOLO("yolov8n.pt")

# 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 YOLOv8n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")

CLI para ejecutar directamente los modelos:

# Load a COCO-pretrained YOLOv8n model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640

# Load a COCO-pretrained YOLOv8n model and run inference on the 'bus.jpg' image
yolo predict model=yolov8n.pt source=path/to/bus.jpg

Citas y agradecimientos

Si utilizas el modelo YOLOv8 o cualquier otro software de este repositorio en tu trabajo, por favor, c铆talo utilizando el siguiente formato:

@software{yolov8_ultralytics,
  author = {Glenn Jocher and Ayush Chaurasia and Jing Qiu},
  title = {Ultralytics YOLOv8},
  version = {8.0.0},
  year = {2023},
  url = {https://github.com/ultralytics/ultralytics},
  orcid = {0000-0001-5950-6979, 0000-0002-7603-6750, 0000-0003-3783-7069},
  license = {AGPL-3.0}
}

Ten en cuenta que el DOI est谩 pendiente y se a帽adir谩 a la cita cuando est茅 disponible. Los modelos YOLOv8 se facilitan con las licencias AGPL-3.0 y Enterprise.

PREGUNTAS FRECUENTES

驴Qu茅 es YOLOv8 y en qu茅 se diferencia de las versiones anteriores de YOLO ?

YOLOv8 es la 煤ltima iteraci贸n de la serie Ultralytics YOLO , dise帽ada para mejorar el rendimiento de la detecci贸n de objetos en tiempo real con funciones avanzadas. A diferencia de las versiones anteriores, YOLOv8 incorpora un cabezal dividido sin anclajes Ultralytics , arquitecturas de columna vertebral y cuello de 煤ltima generaci贸n, y ofrece una relaci贸n precisi贸n-velocidad optimizada, por lo que resulta ideal para diversas aplicaciones. Para m谩s detalles, consulta las secciones Visi贸n general y Caracter铆sticas principales.

驴C贸mo puedo utilizar YOLOv8 para diferentes tareas de visi贸n artificial?

YOLOv8 admite una amplia gama de tareas de visi贸n por ordenador, como la detecci贸n de objetos, la segmentaci贸n de instancias, la detecci贸n de poses/puntos clave, la detecci贸n de objetos orientados y la clasificaci贸n. Cada variante del modelo est谩 optimizada para su tarea espec铆fica y es compatible con diversos modos operativos como Inferencia, Validaci贸n, Entrenamiento y Exportaci贸n. Consulta la secci贸n Tareas y modos compatibles para obtener m谩s informaci贸n.

驴Cu谩les son las m茅tricas de rendimiento de los modelos YOLOv8 ?

YOLOv8 alcanzan un rendimiento puntero en varios conjuntos de datos de evaluaci贸n comparativa. Por ejemplo, el modelo YOLOv8n alcanza una mAP (Precisi贸n Media Media) de 37,3 en el conjunto de datos COCO y una velocidad de 0,99 ms en A100 TensorRT. Puedes encontrar m茅tricas de rendimiento detalladas para cada variante del modelo en diferentes tareas y conjuntos de datos en la secci贸n M茅tricas de rendimiento.

驴C贸mo entreno un modelo YOLOv8 ?

El entrenamiento de un modelo YOLOv8 puede realizarse utilizando Python o CLI. A continuaci贸n se muestran ejemplos de entrenamiento de un modelo utilizando un modelo YOLOv8 preentrenado con COCO en el conjunto de datos COCO8 durante 100 茅pocas:

Ejemplo

from ultralytics import YOLO

# Load a COCO-pretrained YOLOv8n model
model = YOLO("yolov8n.pt")

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640

Para m谩s detalles, visita la documentaci贸n sobre Formaci贸n.

驴Puedo comparar el rendimiento de los modelos YOLOv8 ?

S铆, los modelos YOLOv8 pueden someterse a pruebas de rendimiento en t茅rminos de velocidad y precisi贸n en varios formatos de exportaci贸n. Puedes utilizar PyTorch, ONNX, TensorRT, y otros m谩s para la evaluaci贸n comparativa. A continuaci贸n se muestran comandos de ejemplo para la evaluaci贸n comparativa utilizando Python y CLI:

Ejemplo

from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model="yolov8n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
yolo benchmark model=yolov8n.pt data='coco8.yaml' imgsz=640 half=False device=0

Para m谩s informaci贸n, consulta la secci贸n M茅tricas de rendimiento.



Creado 2023-11-12, Actualizado 2024-07-04
Autores: glenn-jocher (17), Burhan-Q (1), Laughing-q (2), AyushExel (1), fcakyon (1)

Comentarios