YOLO Family
YOLO (You Only Look Once) は、画像全体を一度の forward で見て detection を行う real-time object detector の系譜です。Real-time / edge deployment で広く使われ、industrial / robotics / autonomous vehicle / production system において de facto standard の一つです。
設計思想
- Backbone (CSPDarknet、ELAN、ConvNeXt 系)
- Neck (FPN / PAN による multi-scale feature)
- Head (anchor-based / anchor-free / DFL)
を grid 上で同時推論するため、real-time inference が可能になります。
主要バージョン
| Version | 主な貢献 |
|---|---|
| YOLOv1 | Real-time grid detection |
| YOLOv2 / v3 | Anchor、multi-scale、Darknet-53 |
| YOLOv4 / v5 | Bag of freebies / specials、簡単な PyTorch 実装 |
| YOLOX | Anchor-free、SimOTA |
| YOLOv6 / v7 | Industrial 向け軽量化、E-ELAN |
| YOLOv8 | Anchor-free、segmentation / pose 統合 |
| YOLO-World | Open-vocabulary real-time detection |
| YOLOv9 / v10 / v11+ | NMS-free、DFL、最新 backbone |
YOLO-World
YOLO-World は、CLIP の text encoder を YOLOv8 系に組み込み、real-time open-vocabulary detection を実現します。Grounding DINO のような heavy DETR と異なり、edge / streaming で使いやすい点が特徴です。
強みと弱み
| 観点 | YOLO 系 |
|---|---|
| 速度 | 非常に速い |
| Deployment | エッジ・mobile に強い |
| 精度 (closed set) | DETR 系と競合 |
| Open-vocabulary | YOLO-World で対応 |
| Long-tail | Two-stage / DETR 系が有利な場合あり |
| Set prediction | NMS が必要 (v10 以降で NMS-free に) |
数式で見る one-stage detection
YOLO 系は、画像を一回の forward pass で dense に予測します。各位置または anchor が objectness 、class probability 、bbox を出します。概念的な loss は次のように分けられます。
Objectness は「この予測が object を含んでいるか」を表し、bbox loss は localization を合わせます。近年の YOLO では、bbox loss に CIoU / DIoU / GIoU 系の loss が使われることがあります。
この式の気持ちは、「box が重なるだけでなく、中心位置や縦横比も自然に合わせたい」ということです。One-stage detector は候補生成と分類を分けないため高速ですが、positive / negative の割り当てや class imbalance の扱いが性能に大きく影響します。
関連ページ
- Object Detection Fundamentals
- DETR Family
- Multi-Object Tracking
- Grounding DINO and Open-Vocabulary Detection
主なソース
- YOLOv8 / Ultralytics docs: https://docs.ultralytics.com/
- YOLO-World: https://arxiv.org/abs/2401.17270
- YOLOX: https://arxiv.org/abs/2107.08430
- YOLOv10: https://arxiv.org/abs/2405.14458