Explore Ultralytics YOLOv8
Visión general
Ultralytics lanzó YOLOv8 el 10 de enero de 2023, ofreciendo un rendimiento de vanguardia en términos de precisión y velocidad. Basándose en los avances de las versiones anteriores de YOLO, YOLOv8 introdujo nuevas características y optimizaciones que la convierten en una opción ideal para diversas tareas de detección de objetos en una amplia gama de aplicaciones.
Ver: Descripción general del modelo Ultralytics YOLOv8
Características clave de YOLOv8
- Arquitecturas avanzadas de backbone y cuello de botella: YOLOv8 emplea arquitecturas de backbone y cuello de botella de última generación, lo que se traduce en una mejor extracción de características y un mejor rendimiento de detección de objetos.
- Cabezal Ultralytics Dividido sin Anclaje: YOLOv8 adopta un cabezal Ultralytics dividido sin anclaje, lo que contribuye a una mejor precisión y a un proceso de detección más eficiente en comparación con los enfoques basados en anclajes.
- Compromiso optimizado entre precisión y velocidad: Con un enfoque 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 adaptarse a diversas tareas y requisitos de rendimiento, lo que facilita encontrar el modelo adecuado para su caso de uso específico.
Tareas y modos admitidos
La serie YOLOv8 ofrece una gama diversa de modelos, cada uno especializado para tareas específicas en visión artificial. Estos modelos están diseñados para satisfacer diversos requisitos, desde la detección de objetos hasta tareas más complejas como la segmentación de instancias, la detección de pose/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, incluyendo Inferencia, Validación, Entrenamiento y Exportación, lo que facilita su uso en diferentes etapas de implementación y desarrollo.
Modelo | Nombres de archivo | Tarea | Inferencia | Validación | Entrenamiento | 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/Keypoints | ✅ | ✅ | ✅ | ✅ |
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 varios modos operativos como Inferencia, Validación, Entrenamiento y Exportación. Muestra la versatilidad y robustez de la serie YOLOv8, haciéndolos adecuados para una variedad de aplicaciones en visión artificial.
Métricas de rendimiento
Rendimiento
Consulte la Documentación de detección para ver ejemplos de uso con estos modelos entrenados en COCO, que incluyen 80 clases pre-entrenadas.
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 la Documentación de detección para ver ejemplos de uso con estos modelos entrenados en Open Image V7, que incluye 600 clases pre-entrenadas.
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 |
Consulte la Documentación de segmentación para ver ejemplos de uso con estos modelos entrenados en COCO, que incluyen 80 clases pre-entrenadas.
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 |
Consulte la Documentación de clasificación para ver ejemplos de uso con estos modelos entrenados en ImageNet, que incluyen 1000 clases pre-entrenadas.
Modelo | tamaño (píxeles) |
acc top1 |
acc top5 |
Velocidad CPU ONNX (ms) |
Velocidad A100 TensorRT (ms) |
parámetros (M) |
FLOPs (B) a 224 |
---|---|---|---|---|---|---|---|
YOLOv8n-cls | 224 | 69.0 | 88.3 | 12.9 | 0.31 | 2.7 | 0.5 |
YOLOv8s-cls | 224 | 73.8 | 91.7 | 23.4 | 0.35 | 6.4 | 1.7 |
YOLOv8m-cls | 224 | 76.8 | 93.5 | 85.4 | 0.62 | 17.0 | 5.3 |
YOLOv8l-cls | 224 | 76.8 | 93.5 | 163.0 | 0.87 | 37.5 | 12.3 |
YOLOv8x-cls | 224 | 79.0 | 94.6 | 232.0 | 1.01 | 57.4 | 19.0 |
Consulte la Documentación de Estimación de Pose para ver ejemplos de uso con estos modelos entrenados en COCO, que incluyen 1 clase pre-entrenada, '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 |
Consulte la documentación sobre detección orientada para ver ejemplos de uso con estos modelos entrenados en DOTAv1, que incluye 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 de YOLOv8
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 de Predict, Train, Val y Export.
Tenga en cuenta que el siguiente ejemplo es para los modelos Detect de detección de objetos de YOLOv8. Para tareas compatibles adicionales, consulte los documentos de Segment, Classify, OBB y los documentos de Pose.
Ejemplo
PyTorch preentrenados *.pt
modelos, así como la configuración *.yaml
los archivos se pueden pasar a la YOLO()
clase 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")
Hay comandos de la CLI disponibles 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
Publicación de Ultralytics YOLOv8
Ultralytics no ha publicado un artículo de investigación formal para YOLOv8 debido a la naturaleza rápidamente cambiante de los modelos. Nos centramos en avanzar en la tecnología y facilitar su uso, en lugar de producir documentación estática. Para obtener la información más actualizada sobre la arquitectura, las características y el uso de YOLO, consulte nuestro repositorio de GitHub y la documentación.
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 una vez que esté disponible. Los modelos YOLOv8 se proporcionan bajo licencias AGPL-3.0 y Enterprise.
Preguntas frecuentes
¿Qué es YOLOv8 y en qué se diferencia de las versiones anteriores de YOLO?
YOLOv8 está diseñado para mejorar el rendimiento de la detección de objetos en tiempo real con características avanzadas. A diferencia de las versiones anteriores, YOLOv8 incorpora un encabezado Ultralytics dividido sin anclajes, arquitecturas de red troncal y cuello de última generación, y ofrece una compensación optimizada entre precisión y velocidad, lo que lo hace ideal para diversas aplicaciones. Para obtener más detalles, consulte las secciones de Descripción general y Características clave.
¿Cómo puedo utilizar YOLOv8 para diferentes tareas de visión artificial?
YOLOv8 admite una amplia gama de tareas de visión artificial, incluyendo la detección de objetos, la segmentación de instancias, la detección de pose/puntos clave, la detección de objetos orientados y la clasificación. Cada variante de modelo está optimizada para su tarea específica y es compatible con varios modos operativos como Inferencia, Validación, Entrenamiento y Exportación. Consulte la sección Tareas y modos admitidos para obtener más información.
¿Cuáles son las métricas de rendimiento para los modelos YOLOv8?
Los modelos YOLOv8 logran un rendimiento de última generación en varios conjuntos de datos de benchmarking. Por ejemplo, el modelo YOLOv8n alcanza un mAP (Precisión Media Promedio) de 37.3 en el conjunto de datos COCO y una velocidad de 0.99 ms en A100 TensorRT. Las métricas de rendimiento detalladas para cada variante de modelo en diferentes tareas y conjuntos de datos se pueden encontrar 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 la CLI. A continuación, se muestran ejemplos para entrenar 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 obtener más detalles, visite la documentación de Entrenamiento.
¿Puedo evaluar los modelos YOLOv8 para medir su rendimiento?
Sí, los modelos YOLOv8 se pueden evaluar comparativamente para determinar su rendimiento en términos de velocidad y precisión en varios formatos de exportación. Puede utilizar PyTorch, ONNX, TensorRT y 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 obtener información adicional, consulte la sección de Métricas de Rendimiento.