Ultralytics YOLOv8
Visión general
YOLOv8 is the latest iteration in the YOLO series of real-time object detectors, offering cutting-edge performance in terms of accuracy and speed. Building upon the advancements of previous YOLO versions, YOLOv8 introduces new features and optimizations that make it an ideal choice for various object detection tasks in a wide range of applications.
Observa: Ultralytics YOLOv8 Resumen del modelo
Características principales
- Advanced Backbone and Neck Architectures: YOLOv8 employs state-of-the-art backbone and neck architectures, resulting in improved feature extraction and object detection performance.
- 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
The YOLOv8 series offers a diverse range of models, each specialized for specific tasks in computer vision. These models are designed to cater to various requirements, from object detection to more complex tasks like instance segmentation, pose/keypoints detection, oriented object detection, and classification.
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 | ✅ | ✅ | ✅ | ✅ |
This table provides an overview of the YOLOv8 model variants, highlighting their applicability in specific tasks and their compatibility with various operational modes such as Inference, Validation, Training, and Export. It showcases the versatility and robustness of the YOLOv8 series, making them suitable for a variety of applications in computer vision.
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 pretrained *.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:
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:
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 is the latest iteration in the Ultralytics YOLO series, designed to improve real-time object detection performance with advanced features. Unlike earlier versions, YOLOv8 incorporates an anchor-free split Ultralytics head, state-of-the-art backbone and neck architectures, and offers optimized accuracy-speed tradeoff, making it ideal for diverse applications. For more details, check the Overview and Key Features sections.
¿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 ?
Training a YOLOv8 model can be done using either Python or CLI. Below are examples for training a model using a COCO-pretrained YOLOv8 model on the COCO8 dataset for 100 epochs:
Ejemplo
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
Para más información, consulta la sección Métricas de rendimiento.