Link to this sectionYOLOv8 と YOLOv7 の比較#
コンピュータビジョンの分野は絶えず進化しており、新しいアーキテクチャがリアルタイム物体検出の可能性の限界を押し広げています。本記事では、非常に影響力の高い2つのモデル、Ultralytics YOLOv8 と YOLOv7 を詳細に比較します。両モデルとも、開発者コミュニティや学術研究に大きな影響を与えており、複雑な視覚タスクを解決するための独自のアプローチを提供しています。
これら2つのモデル間の構造的および手法的な違いを理解することは、デプロイパイプラインを最適化しようとする機械学習エンジニアにとって極めて重要です。YOLOv7 が生のスループットに特化した強力な「bag-of-freebies」アプローチを導入したのに対し、Ultralytics YOLOv8 は、高い精度と低いメモリ消費、そしてマルチタスクの汎用性を両立させた、使いやすい包括的なエコシステムの構築に焦点を当てています。
Link to this sectionUltralytics YOLOv8: 多用途なエコシステムのスタンダード#
2023年初頭に Ultralytics によってリリースされた YOLOv8 は、先行モデルからアーキテクチャを大幅に刷新したものです。単なるリアルタイム物体検出器にとどまらず、多種多様なビジョンタスクを即座に処理できる統合フレームワークとしてゼロから設計されました。
- 著者: Glenn Jocher, Ayush Chaurasia, Jing Qiu
- 組織: Ultralytics
- 日付: 2023-01-10
- GitHub: ultralytics/ultralytics
- ドキュメント: YOLOv8ドキュメント
Link to this sectionアーキテクチャの革新#
YOLOv8 は、革新的な anchor-free 検出ヘッドを導入しました。これにより、カスタムデータセットの特定の分布に基づいてアンカーボックスを手動で設定する必要がなくなり、トレーニングプロセスが根本的に簡素化されます。この設計により、モデルは非常に堅牢になり、さまざまな環境への汎用性が高まりました。
さらに、アーキテクチャには C2f モジュール (2つの畳み込みを用いたクロスステージ部分ボトルネック) が搭載されています。これは、勾配フローを改善し、計算コストを劇的に増やすことなくニューラルネットワークがより豊かな特徴表現を学習できるようにする構造的アップグレードです。これにより、PyTorch のような標準的なディープラーニングフレームワークを使用して推論を実行する際に、モデルは極めて高い効率を発揮します。
Ultralytics YOLO モデルは、トレーニング効率を最大化するように設計されています。通常、トランスフォーマーベースのアーキテクチャやより重い CNN と比較して、トレーニング中の CUDA メモリ消費が大幅に少なくなります。これにより、民生用ハードウェアでも大きなバッチサイズでトレーニングが可能になり、開発サイクルが加速します。
Link to this sectionYOLOv7: 「Bag-of-Freebies」アプローチ#
YOLOv7 は 2022 年半ばに導入され、すぐに学術界で人気のあるベースラインとなりました。リアルタイム物体検出の限界をハイエンド GPU 上で押し広げるため、アーキテクチャの再パラメータ化と勾配パスの最適化に大きく重点を置いています。
- 著者: Chien-Yao Wang, Alexey Bochkovskiy, Hong-Yuan Mark Liao
- 組織: 台湾 中央研究院 情報科学研究所
- 日付: 2022-07-06
- Arxiv: 2207.02696
- GitHub: WongKinYiu/yolov7
Link to this sectionアーキテクチャの革新#
YOLOv7 は Extended Efficient Layer Aggregation Network (E-ELAN) を採用しており、これによりモデルはより多様な特徴を継続的に学習できます。アンカーベースのパラダイムに強く依存しており、推論コストを上げずに精度を向上させる一連の最適化手法である、学習可能な「bag-of-freebies」を導入しています。
YOLOv7 は MS COCO dataset のような標準的な学術ベンチマークで優れた性能を発揮しますが、そのアーキテクチャはサーバーグレードのアクセラレータに強く最適化されています。これらのモデルをエッジデバイスへエクスポートしてデプロイするには、より現代的で合理化されたフレームワークと比較して、より多くの手動設定が必要になる場合があります。
Link to this section詳細なパフォーマンス比較#
これらのモデルを評価する際、速度、精度、モデルサイズのトレードオフが主な検討事項となります。以下の表は、両モデルの指標をまとめたものです。
| モデル | サイズ (ピクセル) | 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) を達成する一方で、ナノバリアント (YOLOv8n) は卓越した推論速度と非常に軽量なフットプリントを提供します。この多様性により、YOLOv8 は制約のあるハードウェア環境に対してはるかに適応しやすくなっています。
Link to this sectionUltralytics の利点: 使いやすさとエコシステム#
YOLOv7 は強力な生の検出指標を提供しますが、Ultralytics YOLOv8 は、開発者の体験、エコシステムの統合、マルチタスク能力の面でそれを大幅に上回っています。
Link to this section比類なき汎用性#
YOLOv7 は主に検出モデルであり、他のタスクには実験的なブランチが存在します。対照的に、YOLOv8 は Object Detection、Instance Segmentation、Image Classification、Pose Estimation、および Oriented Bounding Boxes (OBB) をネイティブにサポートしています。この統合的なアプローチにより、チームは一度 API を学べば、全く異なるプロジェクト要件全体にわたってデプロイすることが可能です。
Link to this section合理化されたデプロイと統合#
モデルのプロダクションへのエクスポートは、しばしばボトルネックになります。Ultralytics パッケージを使用すると、開発者は 1 行の Python コードで ONNX、TensorRT、CoreML などの形式へエクスポートできます。これにより、複雑なアンカーベースのグラフをエクスポートする際に発生する可能性のあるオペレータサポートの問題を回避できます。
さらに、YOLOv8 は MLOps ツールとシームレスに統合されます。Weights & Biases で実験を追跡する場合でも、Hugging Face Spaces でデプロイメントをテストする場合でも、Ultralytics エコシステムが煩雑な作業を引き受けます。
Link to this sectionコード例: 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 をモバイルアプリケーション、組み込みシステム、あるいは高スループットなクラウドサーバーへ簡単に統合できます。
Link to this section実際のユースケース#
これら2つのモデルのアーキテクチャの違いにより、理想的なデプロイシナリオが決まります。
YOLOv8 を選択すべき場合:
- エッジ AI および IoT デバイス: 超高速な Nano モデルや Small モデルが利用可能なため、YOLOv8 はスマートカメラやドローンなど、計算資源が限られたハードウェアに最適です。
- マルチタスクプロジェクト: パイプラインで人体の関節追跡 (Pose Estimation) と同時に障害物のマッピング (Segmentation) が必要な場合、YOLOv8 はこれをネイティブに処理できます。
- ラピッドプロトタイピングからプロダクションへ: 充実した Ultralytics ドキュメント と摩擦のない Python API により、チームは製品をより迅速に市場へ投入できます。
YOLOv7 を検討すべき場合:
- 学術的ベンチマーク: 再パラメータ化手法の効果を研究する研究者は、Papers With Code での人気が示すように、標準的なベースラインとして YOLOv7 をよく使用します。
- レガシーなサーバーパイプライン: 既存の高負荷計算パイプラインが YOLOv7 の特定のアンカー出力に厳密に最適化されている場合、短期的には維持管理が実用的である可能性があります。
Link to this section今後の展望: 次世代モデル#
YOLOv8 は依然として万能なパワーハウスですが、AI の状況は急速に変化しています。新しいプロジェクトを開始するチームには、Ultralytics シリーズの最新の進歩を探求することを強く推奨します。
最新世代の YOLO26 は、現在のビジョン AI の頂点を表しています。これは End-to-End NMS-Free Design を特徴としており、Non-Maximum Suppression の後処理を排除することで、よりシンプルで高速なデプロイを実現します。Distribution Focal Loss (DFL) の削除と、LLM に着想を得た MuSGD Optimizer の導入により、YOLO26 はより安定したトレーニングを提供し、CPU 推論が最大 43% 高速化されています。高度な ProgLoss + STAL 損失関数が小物体認識を劇的に向上させており、現代のエッジコンピューティングや航空画像にとって究極の選択肢となっています。
旧システムから移行するユーザー向けに、高性能な YOLO11 および古典的な YOLOv5 も統合された Ultralytics エコシステム内で完全にサポートされており、ハードウェアの制約がどのようなものであれ、デプロイ可能な合理化された高性能モデルが存在します。