YOLOv7とYOLOv8#
コンピュータービジョンの急速な進化により、開発者や研究者向けに多くの高性能なツールが生まれています。物体検出パイプラインのアーキテクチャを選ぶ際には、確立されたモデルを比較することが重要です。このガイドでは、影響力の大きい2つのモデル、YOLOv7とUltralytics YOLOv8のアーキテクチャ、性能指標、理想的なユースケースを検証します。
アーキテクチャの概要#
どちらのモデルも大幅な性能向上を実現しましたが、ディープニューラルネットワークの最適化には異なる設計アプローチを採用しています。
YOLOv7:バッグ・オブ・フリービーの先駆け#
2022年半ばに登場したYOLOv7は、アーキテクチャの勾配経路最適化と「学習可能な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データセットやカスタムデータ分布に基づくアンカーボックスの手動設定を不要にします。勾配フローを改善するC2fモジュールを組み込み、分類タスクと回帰タスクを分離するデカップルドヘッド構造を採用しており、収束を速めて精度を高めます。
長所と短所: YOLOv8はメモリ効率に優れており、トレーニング中に必要なCUDAメモリは通常、YOLOv7やより大規模なTransformerモデルより少なく、バッチサイズを大きくできます。主な強みは汎用性であり、インスタンスセグメンテーション、画像分類、姿勢推定、Oriented Bounding Boxes(OBB)をネイティブにサポートします。主な欠点は、YOLOv7の出力テンソルを前提に構築されたレガシーパイプラインでは、リファクタリングが必要になる場合があることです。
Ultralytics YOLOv8は、積極的に保守されているエコシステムの一部です。Python API、定期的なリリース、コミュニティサポートにより、単独の研究リポジトリと比べて、ローカルテストから本番環境へのデプロイまでの道のりを短縮できます。
詳細なパフォーマンス比較#
以下の表では、主要なモデルサイズごとの性能指標を詳しく示します。YOLOv8は、エッジデバイス向けのコンパクトなモデルから、この比較で最高精度を実現する大型モデルまで、幅広い速度と精度のトレードオフに対応します。
| モデル | サイズ (ピクセル) | mAPval50-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.1 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
注: このグループではYOLOv8xが最高のmAPを達成し、YOLOv8nはパラメーター数が最少で推論も最速であるため、エッジAIデバイスへのコンピュータービジョンのデプロイに適しています。
使いやすさとトレーニング効率#
Ultralytics YOLOv8は使いやすさを重視して設計されています。YOLOv7などの旧式アーキテクチャでは、データセットやパスを設定するために、特定のリポジトリをクローンし、冗長なコマンドラインスクリプトを実行する必要があります。
これに対し、YOLOv8のultralyticsパッケージは、データセットの自動ダウンロード、すぐに使える事前学習済み重み、ONNXやTensorRTなどの形式への組み込みエクスポートサポートを備えた、効率的なワークフローを提供します。
以下の例では、Ultralytics Python APIを使ってモデルを読み込み、トレーニングし、推論を実行します。
from ultralytics import YOLO
# 事前学習済みのYOLOv8 Nanoモデルを読み込みます
model = YOLO("yolov8n.pt")
# COCO8データセットでモデルを効率的にトレーニングします
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
# テスト画像で高速推論を実行します
predictions = model("https://ultralytics.com/images/bus.jpg")
# 予測結果を表示する
predictions[0].show()YOLOv8はWeights & BiasesやClearMLなどの人気のMLOpsツールと統合されているため、ハイパーパラメーター調整やトレーニング指標をリアルタイムで監視できます。
最適なユースケース#
これらのアーキテクチャのどちらを選ぶかは、多くの場合、デプロイ環境に固有の制約によって決まります。
YOLOv7を選ぶ場合#
- レガシーベンチマーク: 2022年のアーキテクチャ基準と比較するために、固定されたベースラインを必要とする研究者に適しています。
- 既存の大規模インフラ: YOLOv7の出力テンソルがレガシーC++パイプラインに組み込まれている、NVIDIA V100またはA100 GPUを基盤とする環境。
YOLOv8を選ぶ場合#
- クロスプラットフォームの本番運用: クラウドGPU、モバイルデバイス、ブラウザーにまたがるデプロイが必要なチームに最適です。
- マルチタスク要件: バウンディングボックスに加えて、プロジェクトでインスタンスセグメンテーションマスクや姿勢キーポイントが必要な場合。
- リソースに制約のあるエッジ: YOLOv8 Nano(
yolov8n)は、ロボティクス、ドローン、IoTデバイスで優れた精度と速度のバランスを実現します。
今後の展望: YOLO26への世代交代#
YOLOv8は引き続き信頼できる選択肢ですが、新しいプロジェクト向けには、YOLO11や、現在推奨されているモデルのYOLO26など、新しいUltralyticsモデルも利用できます。
2026年1月にリリースされたYOLO26は、エッジデバイスへの効率的なデプロイを目的に設計されています。
- エンドツーエンドのNMS不要設計: YOLO26はネイティブのエンドツーエンド推論に対応しており、オプションのワン・ツー・ワンヘッド(
nms=False)を使ってNon-Maximum Suppression(NMS)の後処理を省略できます。これによりデプロイパイプラインが簡素化され、独立したNMS処理によるレイテンシがなくなります。 - DFLの削除: Distribution Focal Lossを削除すると検出ヘッドが簡素化され、モデルのデプロイオプションが広がり、エッジとの互換性も高まります。
- CPU推論が最大43%高速: CPU上のONNX推論ではYOLO26nがYOLO11nより最大43%高速に動作し、Raspberry Piなどの制約のあるデバイスや、その他の組み込みシステムに適しています。
- MuSGDオプティマイザー: 大規模言語モデル(LLM)のトレーニングに着想を得て、YOLO26はSGDとMuonを組み合わせたハイブリッド方式を採用し、トレーニングの安定性と収束速度を高めています。
- ProgLoss + STAL: 進行型損失と小さな対象物を考慮したラベル割り当て(STAL)により、小さな物体の検出が向上します。これは航空画像、農業、ロボティクスで重要です。
大規模な動画分析クラスターにYOLOv8をデプロイする場合も、小型のエッジデバイスにYOLO26をデプロイする場合も、Ultralytics PlatformはAIライフサイクル全体にわたるデータのアノテーション、トレーニング、モデルのデプロイ用ツールを提供します。