TL;DR
- Released by Ultralytics in January 2023, YOLOv8 was the first YOLO release to ship as a unified multi-task framework — detection, segmentation, classification, pose, and OBB from one CLI.
- Anchor-free head removes the anchor-box tuning burden that plagued YOLOv3-v7 pipelines.
- Five scale variants (n/s/m/l/x) trained on COCO; export to ONNX, TensorRT, CoreML, OpenVINO and others is built into the SDK.
- Remains widely deployed in 2026 despite YOLOv11's release — many teams stayed on v8 for its long stability tail.
Why YOLOv8 Stuck#
YOLOv8 was the first YOLO release where the SDK was a genuine product rather than a research repository with training scripts. The `ultralytics` PyPI package unified training, validation, prediction, and export under one CLI, supported five tasks from one model family, and made the dataset format identical across tasks. That ergonomic uplift is why YOLOv8 spread further into industry than its predecessors did, and why it remains widely deployed even after YOLOv11.
Architecturally, YOLOv8 introduced the C2f block (a CSP variant with two fewer convolutions than C3), removed the objectness branch, and adopted an anchor-free decoupled detection head with Task-Aligned Assigner for label matching. Compared to YOLOv5, the result was lower latency at equivalent mAP on COCO.
Architecture Summary#
- Backbone — CSPDarknet variant with C2f blocks replacing the C3 blocks from YOLOv5.
- Neck — PAN-FPN with C2f blocks for multi-scale feature fusion.
- Head — anchor-free, decoupled into classification and regression branches with Distribution Focal Loss.
- Loss — CIoU for box regression, Binary Cross-Entropy for classification, DFL for refined box edges.
- Assigner — Task-Aligned Assigner (TAL) replaces IoU-based anchor matching.
Variants and COCO Performance#
Values reported by Ultralytics at 640×640 input resolution on COCO val2017. Real-world deployment numbers depend heavily on TensorRT precision, batch size, and pre/post-processing implementation.
| Variant | Params | COCO mAP50-95 |
|---|---|---|
| YOLOv8n | 3.2M | 37.3 |
| YOLOv8s | 11.2M | 44.9 |
| YOLOv8m | 25.9M | 50.2 |
| YOLOv8l | 43.7M | 52.9 |
| YOLOv8x | 68.2M | 53.9 |
Training Workflow#
# Install
pip install ultralytics
# Train on a custom dataset (YOLO-format YAML)
yolo detect train data=custom.yaml model=yolov8s.pt epochs=100 imgsz=640
# Validate
yolo detect val model=runs/detect/train/weights/best.pt data=custom.yaml
# Export to TensorRT FP16 for production
yolo export model=best.pt format=engine half=TrueCompared to YOLOv11#
YOLOv11 supersedes YOLOv8 as the Ultralytics default, but for many shipped systems the upgrade is not yet worth the validation effort. YOLOv8 has three years of production miles, well-understood failure modes, broader downstream tooling support (DeepStream, Roboflow, Supervisely templates all assume v8), and a stable wire format for exported engines.
Teams typically upgrade to YOLOv11 when they need the parameter savings on edge devices, or when a fresh project lets them adopt the newer block without revalidating an existing pipeline.
Licensing#
YOLOv8 ships under the same dual licence as YOLOv11: AGPL-3.0 for open use and a paid Ultralytics Enterprise Licence for closed-source commercial deployment. The same network-use trigger applies — a closed-source SaaS calling YOLOv8 in the backend is in scope for AGPL unless licensed.
If you only need permissive licensing, RT-DETR ships under Apache 2.0 and reaches comparable real-time accuracy. Worth a head-to-head benchmark before committing.
References
- Ultralytics YOLOv8 Documentation · Ultralytics Docs
- Ultralytics GitHub · GitHub
- Task-Aligned One-stage Object Detection (Feng et al., 2021) · arXiv