YOLOv7 vs YOLOv8: リアルタイム検出器の技術比較
コンピュータビジョンの急速な進化により、開発者や研究者向けに強力なツール群が生み出されています。物体検出パイプラインに適したアーキテクチャを決定する際には、確立されたモデル同士を比較することが不可欠です。本技術ガイドでは、非常に影響力の大きい2つのモデル、YOLOv7とUltralytics YOLOv8のアーキテクチャ、パフォーマンスメトリクス、および理想的なユースケースについて深く掘り下げます。
アーキテクチャの概要
両モデルともパフォーマンスにおいて重要な飛躍を遂げていますが、ディープニューラルネットワークの最適化という課題に対して、異なる構造哲学でアプローチしています。
YOLOv7:Bag-of-Freebiesのパイオニア
2022年半ばに導入されたYOLOv7は、アーキテクチャ上の勾配経路の最適化と「トレーニング可能な無料の工夫(trainable bag-of-freebies)」というコンセプトに重点を置き、ハイエンドハードウェアにおけるリアルタイム検出の限界を押し広げました。
- 著者: Chien-Yao Wang, Alexey Bochkovskiy, Hong-Yuan Mark Liao
- 組織: 中央研究院 資訊科學研究所(台湾)
- 日付: 2022-07-06
- Arxiv: 2207.02696
- GitHub: WongKinYiu/yolov7
- ドキュメント: Ultralytics YOLOv7ドキュメント
アーキテクチャのハイライト: YOLOv7は主にアンカーベースの検出ヘッドを利用し(アンカーフリーのブランチも実験されてはいましたが)、Extended Efficient Layer Aggregation Networks (E-ELAN) を導入しています。この設計により、元の勾配経路を損なうことなくネットワークの学習能力が向上します。サーバーグレードのGPUで非常に優れたパフォーマンスを発揮するため、負荷の高いビデオ分析に最適です。
強みと弱み: YOLOv7は専用ハードウェア上で優れたレイテンシを実現しますが、そのエコシステムは非常に断片化されています。トレーニングには複雑なコマンドライン引数、手動でのリポジトリクローン、そしてPyTorchにおける厳格な依存関係管理が必要です。さらに、トレーニング中のメモリ要件がコンシューマー向けハードウェアでは高負荷になる可能性があります。
Ultralytics YOLOv8: 汎用性の高い標準
2023年初頭にリリースされたYOLOv8は、最先端の精度だけでなく、統合されたプロダクションレディなフレームワークを提供することに重点を置き、開発者体験を完全に再定義しました。
- 著者:Glenn Jocher、Ayush Chaurasia、Jing Qiu
- 組織:Ultralytics
- 日付:2023-01-10
- GitHub: ultralytics/ultralytics
- プラットフォーム: Ultralytics YOLOv8
アーキテクチャのハイライト: YOLOv8はネイティブなアンカーフリー検出ヘッドを導入し、MS COCO datasetやカスタムデータ分布に基づいてアンカーボックスを手動設定する必要を排除しました。勾配フローを改善するためにC2fモジュールを組み込み、Objectness(物体らしさ)、分類、回帰の各タスクを分離するデカップリングヘッド構造を採用しています。これにより、収束が大幅に加速し、精度が向上しています。
強みと弱み: YOLOv8は優れたメモリ要件効率を誇ります。YOLOv7やより重いTransformerモデルと比較してトレーニング中のCUDAメモリ消費量が大幅に少なく、開発者はより大きなバッチサイズを使用できます。最大の強みは汎用性にあり、インスタンスセグメンテーション、画像分類、姿勢推定、および指向性バウンディングボックス (OBB)をネイティブでサポートしています。唯一の軽微な欠点は、YOLOv7のテンソル専用に構築された極めて特殊なレガシーパイプラインの場合、短期間のリファクタリングが必要になる可能性があることです。
Ultralytics YOLOv8は、十分に保守されたエコシステムの恩恵を受けています。直感的なPython API、活発な開発、そして強力なコミュニティサポートにより、スタンドアロンのリポジトリと比較して、ローカルテストからグローバルなデプロイメントへ移行する時間を大幅に短縮できます。
詳細な性能比較
以下の表は、主要なモデルサイズごとのパフォーマンスメトリクスを分解したものです。YOLOv8が達成している明確なパフォーマンスバランスに注目してください。エッジデバイスでの高速な推論のために最適化しつつ、世界クラスの精度を維持しています。
| モデル | サイズ (ピクセル) | mAPval 50-95 | 速度 CPU ONNX (ms) | 速度 T4 TensorRT10 (ms) | パラメータ (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
注: このグループにおいてYOLOv8xは最高のmAPを達成し、一方でYOLOv8nはパラメータ効率と推論速度で圧倒的であり、エッジAIデバイスへのコンピュータビジョン導入における議論の余地のないチャンピオンとなっています。
使いやすさとトレーニング効率
使いやすさという点において、Ultralytics YOLOv8は別格です。YOLOv7のような古いアーキテクチャでは、特定のリポジトリをクローンし、冗長なコマンドラインスクリプトを実行してデータセットやパスを設定する必要があります。
Conversely, YOLOv8's ultralytics package offers a highly streamlined developer experience. Training Efficiency is maximized through automatic data downloading, ready-to-use pretrained weights, and seamless exporting capabilities to formats like ONNX and TensorRT.
Ultralytics Python APIを使用して、ロード、トレーニング、推論を実行する方法は以下の通りです。
from ultralytics import YOLO
# Load a pretrained YOLOv8 nano model
model = YOLO("yolov8n.pt")
# Train the model efficiently on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
# Run fast inference on a test image
predictions = model("https://ultralytics.com/images/bus.jpg")
# Display the predictions
predictions[0].show()YOLOv8はWeights & BiasesやClearMLなどの一般的なMLopsツールとネイティブに統合されており、ハイパーパラメータチューニングやトレーニングメトリクスをリアルタイムで監視できます。
理想的な使用ケース
これらのアーキテクチャのどちらを選択するかは、多くの場合、デプロイメント環境の特定の制約によって決まります。
YOLOv7を選択すべき場面
- レガシーベンチマーク: 2022年のアーキテクチャ標準と比較するための固定されたベースラインを必要とする研究者に適しています。
- 既存の重厚なインフラストラクチャ: NVIDIA V100やA100 GPUに多額の投資を行っており、YOLOv7の特定のテンソル構成がレガシーなC++パイプラインに深く組み込まれている環境。
YOLOv8を選択すべき場合
- クロスプラットフォームプロダクション: クラウドGPU、モバイルデバイス、ブラウザ間でシームレスにデプロイする必要があるチームに最適です。
- マルチタスク要件: プロジェクトにおいてバウンディングボックスの枠を超え、高度なインスタンスセグメンテーションマスクや姿勢キーポイントを活用する必要がある場合。
- リソース制約のあるエッジ環境: YOLOv8 Nano (
yolov8n) は、ロボティクス、ドローン、IoTセンサー向けに、精度と速度の素晴らしい比率を提供します。
展望: YOLO26への世代交代
YOLOv8は依然として非常に堅牢な選択肢ですが、コンピュータビジョンの分野は急速に動いています。完全に新しい高性能プロジェクトを開始する開発者向けに、Ultralyticsは最近、AIモデルの次なる進化形を導入しました。深く洗練されたYOLO11と、新しくリリースされたYOLO26の両方を検討することを強く推奨します。
2026年1月にリリースされたYOLO26は、エッジデバイスで可能なことの境界を押し広げます。
- エンドツーエンドのNMSフリー設計: YOLO26はネイティブなエンドツーエンド設計であり、Non-Maximum Suppression (NMS) の後処理を完全に排除しています。これにより、従来の密な予測モデルにおけるレイテンシのボトルネックを解消し、より高速でシンプルなデプロイメントパイプラインを保証します。
- DFLの削除: Distribution Focal Lossを削除することで、YOLO26はよりシンプルなモデルデプロイオプションと優れたエッジ互換性を実現しています。
- 最大43%高速なCPU推論: Raspberry Piや組み込みシステムのような制約のある環境向けに高度に最適化されており、CPUスループットにおいて全世代を凌駕しています。
- MuSGDオプティマイザ: 大規模言語モデル (LLM) のトレーニングパラダイムに触発されたYOLO26は、SGDとMuonのハイブリッドを組み込んでいます。これにより、前例のないトレーニングの安定性と超高速な収束を実現します。
- ProgLoss + STAL: これらの高度な損失関数は、航空写真、自動農業、ロボティクスにおいて極めて重要な、小さな物体の認識において顕著な改善をもたらします。
YOLOv8による大規模なビデオ分析クラスターへのスケールアップであれ、最先端のYOLO26による小さなエッジデバイスへの推論実装であれ、Ultralytics PlatformはAIライフサイクル全体をシームレスに管理するためのツールを提供します。