YOLOv8 vs YOLOv7#
コンピュータビジョンの分野は常に進化しており、新しいアーキテクチャによって、リアルタイム物体検出で可能なことの限界が押し広げられています。ここでは、特に大きな影響力を持つ2つのモデル、Ultralytics YOLOv8 と YOLOv7 を詳しく比較します。どちらのモデルも開発者コミュニティと学術研究に大きな影響を与えており、複雑な視覚タスクを解決するための独自のアプローチを提供しています。
これら2つのモデルの構造上および手法上の違いを理解することは、デプロイパイプラインの最適化を目指す機械学習エンジニアにとって重要です。YOLOv7が生のスループットに特化した強力な「bag-of-freebies」アプローチを導入した一方で、Ultralytics YOLOv8は、高い精度と低いメモリ消費、マルチタスク対応を両立する、包括的で使いやすいエコシステムの構築に注力しました。
Ultralytics YOLOv8:汎用性の高いエコシステム標準#
2023年初頭にUltralyticsからリリースされたYOLOv8は、従来モデルからの大幅なアーキテクチャ変更を示しています。単なるリアルタイム物体検出器を超えるものとしてゼロから設計されており、幅広いビジョンタスクをすぐに処理できる統合フレームワークです。
- 著者: Glenn Jocher、Ayush Chaurasia、Jing Qiu
- 組織: Ultralytics
- 日付: 2023-01-10
- GitHub: ultralytics/ultralytics
- ドキュメント: YOLOv8ドキュメント
アーキテクチャのイノベーション#
YOLOv8は革新的なアンカーフリー検出ヘッドを導入しました。これにより、カスタムデータセット固有の分布に基づいてアンカーボックスを手動設定する必要がなくなり、トレーニングプロセスが根本的に簡素化されます。この設計上の選択により、モデルの堅牢性が高まり、異なる環境間でより容易に汎化できるようになります。
さらに、このアーキテクチャにはC2fモジュール(2つの畳み込みを備えたクロスステージ部分ボトルネック)が採用されています。これは勾配フローを改善し、計算コストを大幅に増加させることなく、ニューラルネットワークがより豊かな特徴表現を学習できるようにする構造上のアップグレードです。そのため、PyTorch などの標準的なディープラーニングフレームワークを使用して推論を実行する際に、モデルを高効率で利用できます。
Ultralytics YOLOモデルは、トレーニング効率を最大限に高めるよう設計されています。一般に、Transformerベースのアーキテクチャや大規模なCNNと比較して、トレーニング中に必要なCUDAメモリが大幅に少なくて済みます。これにより、コンシューマー向けハードウェアでより大きなバッチサイズを使用してトレーニングでき、開発サイクルを短縮できます。
YOLOv7:「Bag-of-Freebies」アプローチ#
YOLOv7は2022年半ばに導入され、学術分野で人気のベースラインモデルとしてすぐに定着しました。アーキテクチャの再パラメータ化と勾配パスの最適化に重点を置き、ハイエンドGPU上でリアルタイム物体検出の限界を押し広げることを目指しました。
- 著者: Chien-Yao Wang、Alexey Bochkovskiy、Hong-Yuan Mark Liao
- 所属機関: 台湾 中央研究院 情報科学研究所
- 日付: 2022-07-06
- Arxiv: 2207.02696
- GitHub: WongKinYiu/yolov7
アーキテクチャのイノベーション#
YOLOv7は拡張効率的レイヤー集約ネットワーク (E-ELAN) を採用しており、モデルがより多様な特徴を継続的に学習できるようにしています。アンカーベースのパラダイムに大きく依存し、推論コストを増加させずに精度を向上させる最適化手法の集合である、トレーニング可能な「bag-of-freebies」を導入しています。
YOLOv7はMS COCOデータセット などの標準的な学術ベンチマークで優れた性能を発揮しますが、そのアーキテクチャはサーバーグレードのアクセラレーター向けに大きく最適化されています。これらのモデルをエッジデバイス向けにエクスポートしてデプロイする場合、より新しく合理化されたフレームワークと比較して、手動設定が多く必要になることがあります。
詳細な性能比較#
これらのモデルを評価する際には、速度、精度、モデルサイズのトレードオフが主な考慮事項になります。以下の表では、両モデルのメトリクスを示します。
| モデル | サイズ (ピクセル) | mAPval 50-95 | 速度 CPU ONNX (ms) | 速度 T4 TensorRT10 (ms) | パラメーター数 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
データから分かるように、YOLOv8xは最高の絶対精度(53.9 mAP)を達成し、Nanoバリアント(YOLOv8n)は非常に高速な推論速度と極めて軽量なフットプリントを実現します。この多様性により、YOLOv8はリソースが制限されたハードウェア環境にもはるかに柔軟に対応できます。
Ultralyticsの優位性:使いやすさとエコシステム#
YOLOv7が生の検出メトリクスで優れた性能を提供する一方、Ultralytics YOLOv8は、開発者エクスペリエンス、エコシステム統合、マルチタスク機能の点で大きく上回っています。
比類のない汎用性#
YOLOv7は主に検出モデルであり、他のタスク向けには実験的なブランチがあります。これに対してYOLOv8は、物体検出、インスタンスセグメンテーション、画像分類、ポーズ推定、回転バウンディングボックス (OBB) をネイティブにサポートしています。この統合アプローチにより、チームは1つのAPIを学習するだけで、まったく異なるプロジェクト要件に対応してデプロイできます。
合理化されたデプロイと統合#
本番環境向けのモデルエクスポートは、ボトルネックになることがあります。Ultralyticsパッケージを使用すると、1行のPythonコードでONNX、TensorRT、CoreMLなどの形式にエクスポートできます。これにより、複雑なアンカーベースのグラフをエクスポートする際に発生することがある、オペレーターのサポート問題を回避できます。
さらに、YOLOv8はMLOpsツールとシームレスに統合できます。Weights & Biases で実験を追跡する場合でも、Hugging Face Spaces でデプロイをテストする場合でも、Ultralyticsエコシステムが複雑な処理を担います。
コード例:YOLOv8のトレーニングとエクスポート#
次のコードは、Ultralytics Python APIのシンプルさを示しています。10行未満のコードで、モデルの初期化からトレーニング、エッジデプロイ向けのエクスポートまで実行できます。
from ultralytics import YOLO
# Load a pretrained YOLOv8 nano model for fast inference
model = YOLO("yolov8n.pt")
# Train the model on the COCO8 dataset
# The API handles data loading, augmentation, and logging automatically
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on a test image
predictions = model("https://ultralytics.com/images/bus.jpg")
# Export the trained model to ONNX format for deployment
model.export(format="onnx")model.export() 関数を使用すると、高性能な推論エンジンへすぐに接続でき、YOLOv8をモバイルアプリケーション、組み込みシステム、高スループットのクラウドサーバーに簡単に統合できます。
実世界でのユースケース#
2つのモデルのアーキテクチャ上の違いによって、それぞれに適したデプロイシナリオが決まります。
YOLOv8を選択する場合:
- エッジAIおよびIoTデバイス: 超高速なNanoモデルとSmallモデルを利用できるため、YOLOv8はスマートカメラやドローンなど、計算リソースが限られたハードウェアに最適です。
- マルチタスクプロジェクト: パイプラインで人間の関節の追跡(姿勢推定)と障害物のマッピング(セグメンテーション)を同時に行う必要がある場合、YOLOv8はこれらをネイティブに処理します。
- 迅速なプロトタイピングから本番環境まで: 充実したUltralyticsドキュメントとスムーズなPython APIにより、チームはより迅速に製品を市場投入できます。
YOLOv7を検討する場合:
- 学術ベンチマーク: 再パラメータ化手法の効果を研究する研究者は、Papers With Codeでの人気にも表れているように、YOLOv7を標準的なベースラインとして使用することがよくあります。
- レガシーサーバーパイプライン: 既存の高負荷計算パイプラインがYOLOv7固有のアンカー出力を中心に厳密に最適化されている場合、短期的にはそのまま維持することが現実的な選択肢になる可能性があります。
将来を見据えて:次世代モデル#
YOLOv8は引き続き汎用性の高い強力なモデルですが、AIの状況は急速に変化しています。新しいプロジェクトを開始するチームには、Ultralyticsのラインナップにおける最新の進歩を検討することを強くおすすめします。
最新世代の**YOLO26は、現在のビジョンAIの頂点に位置するモデルです。エンドツーエンドNMSフリーデザインを採用し、Non-Maximum Suppressionの後処理を不要にすることで、よりシンプルで高速なデプロイを実現します。Distribution Focal Loss (DFL)を廃止し、LLMに着想を得たMuSGD Optimizerを導入することで、YOLO26はより安定したトレーニングと最大43%高速なCPU推論を実現します。高度なProgLoss + STAL**損失関数により小物体認識が大幅に向上しており、最新のエッジコンピューティングや航空画像に最適な選択肢です。
旧システムから移行するユーザー向けに、高性能な**YOLO11と従来モデルのYOLOv5**も、統合されたUltralyticsエコシステム内で引き続き完全にサポートされています。そのため、ハードウェアの制約にかかわらず、すぐにデプロイできる合理化された高性能モデルを利用できます。