Ultralytics 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.
Observa: Ultralytics YOLOv8 Resumen del modelo
Características principales
- Arquitecturas backbone y de cuello avanzadas: YOLOv8 emplea arquitecturas backbone y de cuello de última generación, lo que se traduce en un rendimiento mejorado de la extracción de características y 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 su caso de uso específico.
Tareas y modos compatibles
La serie YOLOv8 ofrece una amplia gama de modelos, cada uno especializado en tareas específicas de 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, Formación y Exportación, lo que facilita su uso en distintas fases de implantación 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 computador.
Métricas de rendimiento
Rendimiento
Consulte Detection Docs 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 |
Consulte Detection Docs 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 |
Consulte 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 |
Consulte 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 |
Ver Pose Estimation Docs para 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 Oriented Detection Docs 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 en YOLOv8 . Para obtener documentación completa sobre estos y otros modos, consulte las páginas de documentación Predicción, Entrenamiento, Val y Exportación.
Tenga en cuenta que el ejemplo siguiente corresponde a los modelos YOLOv8 Detect para la detección de objetos. Para otras tareas compatibles, consulte los documentos Segmentar, Clasificar, OBB y Pose.
Ejemplo
PyTorch preentrenado *.pt
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
Ultralytics YOLOv8 Publicación
Ultralytics no ha publicado ningún documento de investigación formal para YOLOv8 debido a la rápida evolución de los modelos. Nos centramos en hacer avanzar 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 GitHub y la documentación.
Si utiliza el modelo YOLOv8 o cualquier otro software de este repositorio en su trabajo, por favor, cítelo utilizando el siguiente formato:
Tenga en cuenta que el DOI está pendiente y se añadirá a la cita una vez que esté disponible. YOLOv8 modelos se proporcionan bajo 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 información, consulte las secciones Descripción general y Características principales.
¿Cómo puedo utilizar YOLOv8 para diferentes tareas de visión por ordenador?
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 varios modos operativos como Inferencia, Validación, Formación y Exportación. Consulte la sección Tareas y modos compatibles para obtener más información.
¿Cuáles son los parámetros de rendimiento de los modelos YOLOv8 ?
YOLOv8 alcanzan un rendimiento puntero en varios conjuntos de datos de referencia. Por ejemplo, el modelo YOLOv8n alcanza una precisión media (mAP) de 37,3 en el conjunto de datos COCO y una velocidad de 0,99 ms en A100 TensorRT. En la sección Métricas de rendimiento se detallan las métricas de rendimiento de cada variante del modelo en diferentes tareas y conjuntos de datos.
¿Cómo se entrena 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 preentrenado COCO YOLOv8 en el conjunto de datos COCO8 durante 100 épocas:
Ejemplo
Para más información, consulte la documentación sobre Formación.
¿Puedo comparar el rendimiento de los modelos YOLOv8 ?
Sí, los modelos de YOLOv8 pueden someterse a pruebas de rendimiento en términos de velocidad y precisión en varios formatos de exportación. Puede 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, consulte la sección Métricas de rendimiento.