TT Lab
Blog

한국어 English 日本語 中文

Get started
Blog

Blog

Object Detection 2: The One-Stage YOLO Series, Real-Time Performance, and Licensing

Status: Draft (2026-10-13), partially measured. Grid and AP examples are measured directly on a laptop CPU(code/06_yolo_ap.py, under 1 second). Paper metrics are cited from the original texts along with their conditions, and hardware is noted by tier. License details were verified against each repository's LICENSE file and official documentation on 2026-10-13 and do not constitute legal advice. Writing rule: Measured data is the default; unmeasured items are marked as "Unmeasured."

Table of Contents

1. Looking Only Once

Part 5's Faster R-CNN achieved about 5 fps per image. This is because it extracts candidate regions (Stage 1) and crops and classifies each candidate (Stage 2). Redmon et al.'s YOLO (You Only Look Once, 2016) changes the question: "Can we solve detection as a single regression problem?" The idea is to pass the image through a network once so that all bounding boxes and classes emerge simultaneously.

YOLO: 그림을 S×S 격자로 나눠 한 번에 예측 선수 상자의 중심이 떨어진 칸이 그 선수를 책임진다 칸마다 내는 것 상자 B개 × (x, y, w, h, 신뢰도) 클래스 확률 C개(한 벌) v1: 7×7×(2·5+20) = 7×7×30 후보 98개 → 신뢰도 문턱 → NMS 약점: 한 칸에 중심이 몰린 작은 물체들 (새 떼, 라켓과 손, 멀리 있는 공) 뒤 세대: 여러 해상도에서 예측(v3), 앵커 없이(YOLOX), NMS 없이(v10)
Figure: YOLO's output structure, dividing the image into a 7x7 grid where the cell containing the object's center is responsible for that object

YOLO v1's rules are as follows:

Try It Yourself: Which Cell Is Responsible

In a 448px image, a single cell is 64px. We applied this to a table tennis scene (measured).

선수 몸 중심  (200,260) → 칸 (행 4, 열 3)
공 중심       (330,95)  → 칸 (행 1, 열 5)
라켓 중심     (215,270) → 칸 (행 4, 열 3)   ← 선수와 같은 칸

The centers of the player and the racket fell into the same cell. Because that cell outputs only one setof class probabilities, "person" and "racket" compete. The paper also notes that a single cell predicting a limited number of objects is a weakness, stating it struggles when small objects like flocks of birds are clustered together.

Loss Design

The loss is the sum of squared errors for box coordinates, confidence, and classes. Several tweaks reveal the "why."

Results (Paper)

Model VOC 2007 mAP Speed Conditions
YOLO 63.4 45fps Desktop GPU, without batching
Fast YOLO 52.7 155fps 〃

In the error analysis of the same paper, YOLO's most common error type was localization error. On the other hand, it mistook background for objects less often than Fast R-CNN; combining the two raised VOC 2012 to 75.0 (compared to 71.8 for Fast R-CNN alone). Because it sees the entire image at once, contextual mistakes are rare, but because the grid is coarse, localization is less precise.

2. Lineage: Anchors, Multi-Scale, Anchor-Free, NMS-Free

Model (Year) Changes Paper Metrics (Conditions)
SSD (2016) Predicts using default boxes across feature maps of multiple resolutions SSD300 VOC 2007 74.3%, 59fps (Desktop GPU, batch 8)
YOLOv2 (2017) Introduced anchors. Instead of hand-picking sizes, training boxes are clustered into 5 clusters using k-means. 416x416 VOC 2007 76.8, 67fps (Desktop GPU)
YOLOv3 (2018) Predicts at three resolutions (similar to FPN), with 9 anchors (3 per resolution) COCO AP50 57.9, 51ms (608x608, Desktop GPU) vs. RetinaNet 57.5, 198ms
YOLOX (2021) Anchor-free, decoupled classification and localization heads, target assignment (SimOTA) YOLOX-L COCO 50.0 AP, 68.9fps (Datacenter GPU, FP16, 640x640)
YOLOv10 (2024) NMS-free: One-to-many and one-to-one heads during training, one-to-one only during inference v10-S 46.3 AP 2.49ms vs. RT-DETR-R18 46.5 AP 4.58ms (Inference Datacenter GPU, TensorRT FP16)

A few design rationales can be pointed out as follows:

3. Try It Yourself: Calculating AP

Almost all numbers in detection papers are AP(Average Precision). Suppose there are 5 ground truth balls in a scene and the detector outputs 8 boxes. Ordered by descending score, if a box matches a ground truth with an IoU of 0.5 or higher, it is correct (1); otherwise, it is incorrect (0) (measured).

점수 순 맞음/틀림: [1, 1, 0, 1, 0, 1, 0, 0]
재현율: [0.2, 0.4, 0.4, 0.6, 0.6, 0.8, 0.8, 0.8]
정밀도: [1.0, 1.0, 0.67, 0.75, 0.6, 0.67, 0.57, 0.5]
AP = 0.683

AP is the area under the curve plotting recall (ratio of found ground truths) on the horizontal axis against precision (ratio of correct predictions among those output) on the vertical axis. Precision is smoothed using the "maximum value seen from the right" (interpolated AP across all points). Since only 4 out of 5 ground truths were found, recall stops at 0.8, and the area beyond is 0.

Even with the same 8 boxes, if the score rankingchanges, the AP changes.

Score Ranking AP
4 correct ones first [1,1,1,1,0,0,0,0] 0.800
Original ranking 0.683
4 correct ones last [0,0,0,0,1,1,1,1] 0.400

AP evaluates not only whether it got it right, but also whether it gave higher scores to correct predictions. A detector with terrible confidence scores will have a low AP even if it outputs the exact same boxes. This is something to keep in mind when reading AP in papers.

4. What Is Real-Time Performance

"Real-time" is a relative term. If a table tennis video is 60 frames per second, the time available for a single frame is 16.7ms, which must encompass decoding, preprocessing, model inference, post-processing, and decision-making. When reading fps in papers, conditions must be examined together.

TT Score's ball detection (BlurBall) took 10.5ms for a single window (3 frames) on a server GPU (measured, TT Score Model Anatomy Part 2). Comparisons should be made using "ms per frame and what is included" rather than "fps."

5. Licensing: What AGPL Means for Web Services

The name YOLO is shared across multiple repositories. Licenses vary by repository (verified per LICENSE file on 2026-10-13).

Repository License
Darknet (Original YOLO) "YOLO LICENSE" — essentially public domain terms allowing almost anything
YOLOX (Megvii) Apache-2.0
RT-DETR (Official) Apache-2.0
Ultralytics Package (YOLOv8, YOLO11, etc., including YOLO-World and YOLOE ports) AGPL-3.0 or paid commercial license
YOLOv10 (Official, based on Ultralytics code) AGPL-3.0

AGPL-3.0 is GPL with the network clause(Section 13) added. If you modify the program and allow users to interact with it over a network, you must provide those users with a way to obtain the source code of the modified version. It differs from GPL in that obligations arise even if you only run it on a server without distributing it. Ultralytics explains on its guide page that using it without AGPL's disclosure obligations (for commercial products, SaaS/API, embedded devices, commercially used fine-tuned models, etc.) requires a enterprise license, and takes the stance that trained models also default to AGPL-3.0. This article cannot judge the extent to which this final claim (that AGPL also applies to weights) holds up legally. However, the mere fact that the company makes such a claim is already a risk factor.

TT Score is a web service. Therefore, for ball detection, it chose WASB and BlurBall, which have MIT licenses, and for table tennis tables, it chose SAM 2.1, which has an Apache-2.0 license, while excluding YOLO-family segmentation models due to AGPL conditions (TT Score Model Anatomy Part 1). This is why licenses are considered with the same weight as accuracy and speed when selecting a model.

6. Limitations and Our Project

The next post is about Vision Transformers that dropped convolutions.

TT's Word. We had the same eight boxes, but just by changing the score order, the AP dropped from 0.8 to 0.4. Giving confidently high scores to the correct predictions is also a skill.

References

Sign in to like

Comments

No comments yet.

Sign in to leave a comment