Paper · 2024-08-28 · cs.CV
What is YOLOv8: An In-Depth Exploration of the Internal Features of the Next-Generation Object Detector
Descriptive review of YOLOv8 (Ultralytics, 2023): CSP-style backbone, FPN+PAN neck, anchor-free head, mosaic and mixup augmentation, focal, IoU and objectness losses. Runs no experiments of its own. Reprints a YOLOv5 vs YOLOv8 table (mAP@0.5 50.5% vs 55.2%) and five model sizes (n to x) without dataset, hardware or setup. Few training hyperparameters are stated.
Object detectionData augmentationFocal lossLow-precision arithmeticobject-detectionyolosurveyreal-time
AI-compiled by claude-haiku-5-5 on 2026-10-19, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.
In plain words
YOLO is a family of programs that look at a photo once and draw boxes around the objects in it, such as cars or people, saying what each object is. This paper is a guided tour of the newest member of that family, YOLOv8, released in 2023 by the company Ultralytics.
The author explains the parts of the model in everyday terms. One part reads the picture and picks out features at several sizes. Another part mixes those features together. The last part makes the final guesses for boxes and labels. The model does not use pre-set box shapes, which the author presents as a simplification. Training also mixes several photos into one picture to give the model more variety.
The paper's main message is that YOLOv8 is accurate and fast, and easy to use through a Python package and a command-line tool. It does not run its own tests. The numbers it shows come from other sources and are given without the full test setup, so treat them as a summary to check, not as proof.
TL;DR
- A descriptive review of YOLOv8: architecture, training tricks, a YOLOv5 comparison, five model sizes and the label file format §3 §4 §5 §6.
- It names a CSP-style backbone §3.6, an FPN+PAN neck §3.7, an anchor-free head §3.3, mosaic and mixup augmentation §3.2, and three loss terms §3.4.
- Author-reported: YOLOv8 mAP@0.5 55.2% against 50.5% for YOLOv5 tab. 1. Variant mAP@0.5 runs from 47.2 (n) to 71.5 (x) tab. 2. No dataset or hardware is named.
- The paper runs no experiments and no official code was found. Use the numbers only as a pointer, and check the Ultralytics sources for implementation details.
Problem
Object detection must find and classify every object in an image, and real-time use adds a speed limit §1. The paper frames its aim as a comparison of YOLOv8 with other detectors, including the trade-off between accuracy and speed across the model sizes §1.1. It does not state a test protocol for that comparison.
Method
The paper describes YOLOv8 as one end-to-end network that does localization and classification together §3. It is built from three parts: a backbone, a neck and a head §3. Each part is described in prose with hedged wording (for example "possibly" and "likely"), and no equations or algorithm box are given §3.1 §3.6 §3.7.
Backbone. The backbone extracts features at several scales. The text calls it a CSP-style design, sometimes CSPNet and sometimes CSPDarknet, and says it uses an "advanced version" of the CSP bottleneck to reduce repeated computation §3 §3.6.
Neck. The neck fuses features from different scales. The paper names it as an FPN combined with a PAN, and describes it as an enhanced PANet §3.6 §3.7.
Head. The head predicts box coordinates, scores and classes. It is anchor-free, so it does not use pre-defined anchor boxes §3 §3.3.
Training. The training recipe has four named parts: mosaic and mixup augmentation §3.1.1 §3.2; a focal loss for classification §3.1.2; mixed precision with 16-bit floats §3.5; and a three-part loss with a focal term, an IoU term for boxes and an "objectness" term §3.4. No formula is given for any of them.
Timeline and tooling. The paper lists YOLOv8's release steps: the anchor-free design (January 2023), the Python package and CLI (February 2023), the augmentation (March 2023), the CSP backbone and FPN+PAN neck (April 2023), and ONNX and TensorRT export (June 2023) §2. It does not cite a source for these dates beyond "the official Ultralytics documentation" §2.
Label format. Each object is one text line: a class index, then the box centre x and y, the width and the height, all normalised by the image size §6.
The sketch below is the pipeline as the paper describes it in words. It is not an algorithm the paper gives, and the details it leaves out are marked.
# YOLOv8 inference pipeline, as described in prose [§3]
# Input: image (3, H, W); benchmarks use 640 px [tab. 2]
# Output: boxes, classes; box format not stated
def detect(image):
# 1. Backbone: features at several scales (CSP-style) [§3] [§3.6]
features = backbone(image) # scales and shapes not stated
# 2. Neck: fuse features across scales (FPN+PAN) [§3.6] [§3.7]
fused = neck(features) # layer layout not stated
# 3. Head: anchor-free box and class prediction [§3] [§3.3]
boxes, classes = head(fused) # score handling not stated
return boxes, classesTraining loss, as the paper names it. Weights and formulas are not stated.
# Training loss, three named terms [§3.4]
# Inputs: predictions and targets for one batch; weights not stated
def training_loss(predictions, targets):
# Classification: focal loss, which down-weights easy examples [§3.4.1]
cls_term = focal_loss(predictions.classes, targets.classes)
# Localization: IoU-based loss for the boxes [§3.4.2]
box_term = iou_loss(predictions.boxes, targets.boxes)
# Objectness term; its definition is not stated [§3.4.3]
obj_term = objectness_loss(predictions.objectness, targets)
# How the three terms are combined is not stated [§3.4]
return combine(cls_term, box_term, obj_term)Mosaic augmentation. The paper says it combines "four or more" images into one training sample §3.2 §3.1.1.
# Mosaic augmentation: several images into one training sample [§3.2]
# Images per sample: "four or more" in text [§3.2]
def mosaic(images):
# Canvas size and placement rule are not stated [§3.2]
canvas = new_canvas()
for image in images:
place(image, canvas)
# Box and label update after placement is not stated [§3.2]
return canvasHyperparameters
The paper gives few training hyperparameters. Most rows are "not stated".
| Name | Value | Where | Notes |
|---|---|---|---|
| benchmark input size | 640 px | tab. 2 | "standard 640-pixel image size"; used for the timings in the table |
| numeric precision | 16-bit floating point, mixed | §3.5 | no detail on which operations stay in 32-bit |
| images per mosaic sample | "four or more" | §3.2 | the open-ended wording is not resolved |
| model variants | n, s, m, l, x | §5 tab. 2 | parameter counts in tab. 2 and §5 |
| anchor count | none (anchor-free) | §3.3 | no anchor count given |
| learning rate, optimizer, batch size, epochs | not stated | - | no training recipe in the paper |
| loss weights | not stated | §3.4 | no weights for the three loss terms |
| NMS and confidence thresholds | not stated | - | no inference thresholds given |
| mixup ratio, augmentation probabilities | not stated | §3.1.1 | mixup named, no parameters |
Results
Author-reported. The paper runs no experiments of its own, so the numbers below are copied as printed from the paper's tables. The paper gives no dataset, hardware or training setup for either table, and it does not say which YOLOv8 variant the first table reports.
YOLOv5 against YOLOv8 tab. 1, §4.2:
| Setting | Metric | Baseline (YOLOv5) | YOLOv8 (as printed) | Source |
|---|---|---|---|---|
| dataset, hardware, variant | not stated | not stated | not stated | tab. 1 |
| accuracy | mAP@0.5 | 50.5% | 55.2% | tab. 1 |
| inference time | ms per image | 30 | 25 | tab. 1 |
| training time | hours | 12 | 10 | tab. 1 |
| model size | MB | 14 | 12 | tab. 1 |
YOLOv8 model variants tab. 2, §5. The text says the benchmark uses a standard 640-pixel image and reports CPU and GPU times, but it does not name the dataset or the hardware.
| Model | Params (M) | mAP@0.5 | CPU time (ms) | GPU time (ms) | Source |
|---|---|---|---|---|---|
| YOLOv8n | 2.0 | 47.2 | 42 | 5.8 | tab. 2 |
| YOLOv8s | 9.0 | 58.5 | 90 | 6.0 | tab. 2 |
| YOLOv8m | 25.0 | 66.3 | 210 | 7.8 | tab. 2 |
| YOLOv8l | 55.0 | 69.8 | 400 | 9.8 | tab. 2 |
| YOLOv8x | 90.0 | 71.5 | 720 | 11.5 | tab. 2 |
The abstract and conclusion also mention benchmarks on Microsoft COCO and Roboflow 100 [abstract] §9. The body gives no results on Roboflow 100 and does not tie tab. 2 to COCO.
Paper vs code
No official code. The paper and its abstract give no code link, and the arXiv record in our metadata has no comments field with one. The paper credits YOLOv8 to Ultralytics and points to "the official Ultralytics documentation and GitHub repository" §2 without a URL. That repository belongs to Ultralytics, not to this paper's author, so it is not used on this card, and nothing on this card has been checked against it.
Searched for an official repository: the paper, abstract and metadata for links (none); a project page (none); GitHub repository search for "yolov8 yaseen" (no hits) and for "What is YOLOv8" (no repository owned by the author).
Pitfalls
- No experiments of its own. The paper is a review. Its numbers are shown without a dataset, hardware, batch size, precision or test protocol tab. 1 tab. 2. Do not use them to rank detectors.
- Two different YOLOv8 mAP@0.5 figures. tab. 1 reports 55.2% for "YOLOv8", with no variant named. tab. 2 reports 58.5 for YOLOv8s and 47.2 for YOLOv8n. The paper does not say which row 55.2% belongs to.
- Anchor-free and "adaptive anchor boxes" conflict. §3 and §3.3 describe an anchor-free head. The discussion says YOLOv8 uses "adaptive anchor boxes" §8. This card follows the anchor-free wording; the conflict is not resolved here.
- Backbone and neck names vary. The backbone is called CSPNet §3.6 §9, CSPDarknet ("possibly") §3 and an "improved CSPDarknet" §8. The neck is FPN+PAN §3.6, an enhanced PANet §3.7 and "PANet++" §8. The text says the neck "likely includes modifications" §3, so the exact layers are not stated.
- Loss terms are named, not defined. The paper lists focal, IoU and objectness losses §3.4 but gives no formula, weight or matching rule. The objectness term has no definition at all. An implementer needs the code, and no official code was found for this paper.
- Mosaic size is open. "Four or more" images §3.2 leaves the count open. The canvas size, placement and box update are not stated.
- Claims without numbers. The text says mixed precision "significantly accelerates" training, reduces memory and "enabl[es] larger batch sizes" §3.5. It says the augmentation helps small objects and reduces the need for large datasets §8. None of these claims is quantified in the paper.
- Dates and sources. The release timeline §2 cites only the Ultralytics documentation, with no link or version. Treat the dates as the paper's account.
- Vendor integrations. The table of integrations tab. 3 (§7) describes what third-party tools claim to do. The paper evaluates none of them.
- Figures. Figures 1 to 4 are credited to other sources in their captions fig. 1 fig. 2 fig. 3 fig. 4. This card describes them in words only and does not reproduce them.
- References. Citations are written as ref numbers. This card did not check the bibliography entries against the cited works.
- Plain-English limits. The paper does not define mAP beyond mAP@0.5. Its metrics section lists mAP, inference time, training time and model size without formulas §4.1.
Lineage
- Builds on: YOLOv5 §2, which the paper compares against tab. 1. No arXiv id is given in the paper.
- Compared against: YOLOv5 only, and only in tab. 1. The paper does not compare with other detectors.
- Superseded by: not stated in the paper.
Source and license
Adapted from “What is YOLOv8: An In-Depth Exploration of the Internal Features of the Next-Generation Object Detector” by Muhammad Yaseen (arXiv:2408.15857), used under CC BY 4.0. Changes: condensed and restructured for implementation, with tables, equations and algorithms taken from the paper and its code, each cited to its source. Not affiliated with or endorsed by the authors.