YOLOv8と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つの畳み込み層を持つCross-Stage Partialボトルネック)が組み込まれています。この構造上の改良により、勾配の流れが改善され、計算コストを大幅に増やすことなく、ニューラルネットワークがより豊かな特徴表現を学習できます。そのため、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はExtended Efficient Layer Aggregation Network (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.1 |
| 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)を標準でサポートします。この統合的なアプローチにより、チームは単一のAPIを習得するだけで、まったく異なるプロジェクト要件に対応できます。
効率的なデプロイと統合#
本番環境向けのモデルエクスポートがボトルネックになることは少なくありません。Ultralyticsパッケージを使えば、1行のPythonコードでONNX、TensorRT、CoreMLなどの形式にエクスポートできます。これにより、複雑なアンカーベースの計算グラフをエクスポートする際に発生することがある、演算子のサポートに関する問題を回避できます。
さらに、YOLOv8はMLOpsツールともシームレスに統合できます。Weights & Biasesで実験を追跡する場合も、Hugging Face Spacesでデプロイをテストする場合も、Ultralyticsエコシステムが面倒な作業を担います。
コード例:YOLOv8のトレーニングとエクスポート#
以下のコードは、Ultralytics Python APIのシンプルさを示しています。10行未満のコードで、モデルの初期化からトレーニング、エッジデプロイ用のエクスポートまで実行できます。
from ultralytics import YOLO
# 高速な推論向けに、事前トレーニング済みのYOLOv8 nanoモデルを読み込みます
model = YOLO("yolov8n.pt")
# COCO8データセットでモデルをトレーニングします
# APIがデータの読み込み、拡張、ロギングを自動的に処理します
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# テスト画像に対して推論を実行します
predictions = model("https://ultralytics.com/images/bus.jpg")
# トレーニング済みモデルをデプロイ用にONNX形式でエクスポートします
model.export(format="onnx")model.export()関数を使うと、高性能な推論エンジンへすぐに接続でき、モバイルアプリケーション、組み込みシステム、高スループットのクラウドサーバーにYOLOv8を簡単に統合できます。
実際のユースケース#
2つのモデルのアーキテクチャの違いによって、それぞれに最適なデプロイシナリオが決まります。
YOLOv8を選ぶ場合:
- エッジAIとIoTデバイス: 超高速なNanoモデルとSmallモデルを利用できるため、YOLOv8はスマートカメラやドローンなど、計算リソースが限られたハードウェアに最適です。
- マルチタスクプロジェクト: 人間の関節の追跡(姿勢推定)と障害物のマッピング(セグメンテーション)を同時にパイプラインで処理する必要がある場合、YOLOv8は両方を標準で扱えます。
- 迅速なプロトタイピングから本番環境への移行: 充実したUltralyticsのドキュメントと使いやすいPython APIにより、チームは製品をより早く市場に投入できます。
YOLOv7を検討する場合:
- 学術ベンチマーク: 再パラメーター化手法の効果を研究する場合、Hugging Face Papersでの人気にも示されているように、研究者はYOLOv7を標準的なベースラインとしてよく使用します。
- 既存のサーバーパイプライン: 既存の大規模計算パイプラインが、YOLOv7固有のアンカー出力に合わせてすでに厳密に最適化されている場合、短期的にはそのまま維持するのが現実的なこともあります。
今後の展望:次世代モデル#
YOLOv8は汎用性に優れていますが、AIを取り巻く状況は急速に変化しています。新しいプロジェクトを始めるチームには、Ultralyticsのラインアップにおける最新の進歩をぜひご検討いただくことをお勧めします。
最新世代のYOLO26は、現在のビジョンAIの最高峰です。Non-Maximum Suppressionの後処理を省略して、よりシンプルかつ高速なデプロイを実現するエンドツーエンドNMSフリーデザインのオプション(nms=False)を備えています。Distribution Focal Loss(DFL)の削除と、大規模言語モデルを着想源とするMuSGD Optimizerの導入により、YOLO26はトレーニングの安定性を高め、CPU推論を最大43%高速化します。さらに、高度なProgLoss + STAL損失関数によって小さな物体の認識精度が大幅に向上し、現代のエッジコンピューティングや航空画像に最適な選択肢となっています。
旧システムから移行するユーザー向けには、高性能なYOLO11と定番のYOLOv5も統合されたUltralyticsエコシステム内で引き続き完全にサポートされます。そのため、ハードウェアにどのような制約があっても、効率的で高性能なデプロイ可能モデルを利用できます。