AI・機械学習
初級
Yolo Algorithm(ヨロアルゴリズム)
Yolo Algorithmは、人工知能・機械学習分野における重要な概念・技術です。
0 回閲覧
0 いいね
2026/4/25 更新
関連タグ
AI
機械学習
初心者向け
YOLO Algorithm(You Only Look Once)
概要
YOLO(You Only Look Once)は、2015 年に Joseph Redmon らが提案したリアルタイム物体検出アルゴリズムです。従来の 2 段階検出器(Faster R-CNN 等)と異なり、画像を一度見るだけで物体の位置とクラスを同時予測する単段階(Single-Stage)アプローチを採用し、高速性で注目を集めました。2026 年現在、YOLOv11 / YOLOv12 まで進化しています。
進化の歴史
| バージョン | 年 | 作者 | 主な改良 |
|---|---|---|---|
| YOLOv1 | 2015 | Joseph Redmon | 初版、単段階検出 |
| YOLOv2 | 2017 | Redmon | Anchor Box、BN |
| YOLOv3 | 2018 | Redmon | FPN、Darknet-53 |
| YOLOv4 | 2020 | Alexey Bochkovskiy | CSP、PANet |
| YOLOv5 | 2020 | Ultralytics | PyTorch、デプロイ容易 |
| YOLOv6 | 2022 | Meituan | 産業向け最適化 |
| YOLOv7 | 2022 | Wang et al. | E-ELAN、高精度 |
| YOLOv8 | 2023 | Ultralytics | Anchor-Free |
| YOLOv9 | 2024 | Wang et al. | PGI、GELAN |
| YOLOv10 | 2024 | THU | NMS-Free |
| YOLOv11 | 2024 | Ultralytics | 最新、効率化 |
YOLOv11 の特徴
アーキテクチャの改良
- C3k2 ブロック: 効率的な特徴抽出
- C2PSA モジュール: Attention 統合
- 軽量化: パラメータ 22% 削減(YOLOv8 比)
- 精度向上: COCO mAP +0.5
サイズバリエーション
| モデル | パラメータ | GFLOPS | COCO mAP | 用途 |
|---|---|---|---|---|
| YOLOv11n | 2.6M | 6.5 | 39.5 | 組込み・モバイル |
| YOLOv11s | 9.4M | 21.5 | 47.0 | エッジデバイス |
| YOLOv11m | 20.1M | 68.0 | 51.5 | デスクトップ |
| YOLOv11l | 25.3M | 86.9 | 53.4 | 高精度用途 |
| YOLOv11x | 56.9M | 194.9 | 54.7 | 最高精度 |
主な応用
1. 自動運転
- 歩行者検出: 夜間・悪天候対応
- 標識認識: 道路標識・信号
- 車両検出: 前方車両の距離推定
2. セキュリティ
- 監視カメラ: 侵入者検出、不審行動
- 顔認識: 入退出管理
- 異常検知: 転倒・喧嘩
3. 製造業
- 不良品検出: 製造ラインでの品質管理
- 部品カウント: 在庫管理自動化
- 作業員安全: ヘルメット・保護具確認
4. 農業
- 作物検出: 収穫時期判定
- 害虫検出: ピンポイント農薬散布
- 雑草除去: 自動除草ロボット
5. スマートリテール
- 在庫管理: 棚の商品検出
- 万引き検出: 異常行動検知
- 顧客分析: 動線分析
実装例(Ultralytics YOLOv11)
インストール
pip install ultralytics
基本的な推論
from ultralytics import YOLO
# モデルロード
model = YOLO('yolo11n.pt')
# 画像で推論
results = model('image.jpg')
# 結果の可視化
for r in results:
r.show()
r.save('output.jpg')
# 動画で推論
results = model('video.mp4', save=True)
# Webcam でリアルタイム推論
results = model(0, show=True)
カスタムデータセットで学習
from ultralytics import YOLO
# 事前学習モデルから転移学習
model = YOLO('yolo11n.pt')
# 学習
model.train(
data='custom.yaml', # データセット設定
epochs=100,
imgsz=640,
batch=16,
device=0 # GPU 使用
)
自作 PC でのパフォーマンス
推論速度(1080p、FP16)
| GPU | YOLOv11n | YOLOv11s | YOLOv11m | YOLOv11x |
|---|---|---|---|---|
| RTX 4060 | 200 FPS | 150 FPS | 90 FPS | 30 FPS |
| RTX 4070 | 300 FPS | 220 FPS | 130 FPS | 45 FPS |
| RTX 4080 | 400 FPS | 300 FPS | 180 FPS | 65 FPS |
| RTX 4090 | 550 FPS | 420 FPS | 250 FPS | 95 FPS |
エッジデバイス
| デバイス | 対応モデル | FPS |
|---|---|---|
| Jetson Nano | YOLOv11n | 15-25 |
| Jetson Orin Nano | YOLOv11s | 60-80 |
| Jetson AGX Orin | YOLOv11m | 120+ |
| Raspberry Pi 5 | YOLOv11n | 5-10 |
類似手法との比較
| 手法 | タイプ | 速度 | 精度 | 用途 |
|---|---|---|---|---|
| YOLO | 単段階 | 超高速 | 高 | リアルタイム |
| SSD | 単段階 | 高速 | 中 | 軽量化 |
| Faster R-CNN | 2段階 | 低速 | 最高 | 高精度 |
| Mask R-CNN | 2段階 | 低速 | 最高 | セグメンテーション |
| RetinaNet | 単段階 | 中速 | 高 | 小物体 |
| DETR | Transformer | 中速 | 高 | 次世代 |
出力形式
Bounding Box 形式
- xyxy: 左上座標 + 右下座標
- xywh: 中心座標 + 幅・高さ
- xywhn: 正規化版(0〜1)
信頼度(Confidence)
- objectness: 物体が存在する確率
- class probability: 各クラスの条件付き確率
- total confidence: 2 つの積
エクスポート形式
YOLOv11 は多様なフォーマットにエクスポート可能:
- ONNX: クロスプラットフォーム
- TensorRT: NVIDIA GPU 最適化
- CoreML: iOS/macOS
- TFLite: モバイル・組込み
- OpenVINO: Intel 最適化
- NCNN: モバイル・組込み
model.export(format='onnx') # ONNX
model.export(format='tensorrt') # TensorRT
model.export(format='coreml') # CoreML
関連用語
- 物体検出(Object Detection)
- Bounding Box、IoU、NMS
- mAP(mean Average Precision)
- Anchor Box、Anchor-Free
- Ultralytics、Darknet