YOLOv8とYOLOv9#
リアルタイム物体検出の進化は、精度の向上、レイテンシの低減、ハードウェア活用の改善を絶えず追求してきた歴史でもあります。この進化における2つの大きな節目が、Ultralytics YOLOv8とYOLOv9です。どちらのモデルもコンピュータービジョンの最先端技術を体現していますが、想定するデプロイ要件、アーキテクチャの設計思想、開発者エコシステムは異なります。
この包括的なガイドでは、技術的な違い、アーキテクチャの革新、実践的なデプロイ時の考慮事項を詳しく解説し、次の人工知能プロジェクトに適したモデルを選べるよう支援します。
モデルの系譜と中核となる設計思想#
評価指標を見る前に、各モデルの起源と主な設計目標を理解することが重要です。
Ultralytics YOLOv8:汎用性の高いエコシステム標準#
UltralyticsのチームがリリースしたYOLOv8は、単独の物体検出器ではなく、統合型のマルチタスクフレームワークとして設計されました。シームレスな開発者体験、低いメモリ要件、幅広いハードウェア互換性を重視しています。
- 著者: Glenn Jocher、Ayush Chaurasia、Jing Qiu
- 組織: Ultralytics
- 日付: 2023-01-10
- GitHub: ultralytics/ultralytics
- ドキュメント: YOLOv8ドキュメント
YOLOv9:プログラム可能な勾配情報#
Academia Sinicaの研究者が独自に開発したYOLOv9は、アーキテクチャ理論に重点を置き、特にディープニューラルネットワークにおける情報ボトルネック現象に取り組んでいます。
- 著者: Chien-Yao Wang、Hong-Yuan Mark Liao
- 所属機関: 台湾、中央研究院情報科学研究所
- 日付: 2024-02-21
- Arxiv: 2402.13616
- GitHub: WongKinYiu/yolov9
大規模な商用デプロイを計画している場合は、クラウドトレーニング、データセット管理、ワンクリックで利用できるAPIエンドポイントを簡素化するUltralytics Platformをご検討ください。
アーキテクチャの詳細#
ディープラーニングのアーキテクチャの選択は、モデルの学習効率や、NVIDIA JetsonやIntel CPUなどのターゲットハードウェア上での実行速度を左右します。
YOLOv8のアーキテクチャ:C2fとデカップルドヘッド#
YOLOv8ではC2fモジュール(2つの畳み込み層を持つCross-Stage Partialボトルネック)が導入され、従来のC3モジュールに置き換わりました。この変更により、勾配の流れが改善され、GPUメモリへの負荷を大幅に増やすことなく、ネットワークがより豊かな特徴表現を学習できるようになります。
さらに、YOLOv8はアンカーフリー設計とデカップルドヘッドを採用しています。分類と回帰を別々の経路で処理することで、トレーニング中の収束が速まり、多様なカスタムデータセットに対する汎化性能も向上します。
YOLOv9のアーキテクチャ:PGIとGELAN#
YOLOv9では、Programmable Gradient Information (PGI)とGeneralized Efficient Layer Aggregation Network (GELAN)が導入されています。PGIはネットワークの各層を通過する際に重要なデータが失われないようにし、重みの更新に必要な信頼性の高い勾配を提供します。GELANはパラメーター効率を最大化し、FLOPsを適切な範囲に抑えながら高い精度を実現します。
数学的には優れた手法ですが、トレーニング中に特定の補助的な可逆ブランチに依存するため、YOLOv9のトレーニングコードは標準的なパイプラインと比べてカスタマイズが複雑になることがあります。
パフォーマンス指標とベンチマーク#
以下の表では、異なるサイズのモデルを直接比較しています。パフォーマンスは、物体検出の標準ベンチマークである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 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.2 | 26.7 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.1 | 76.8 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.5 | 102.8 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 58.1 | 192.5 |
注:各列の最良値は太字で示しています。
トレードオフの分析#
YOLOv9は、特に大規模なeバリアントで、最高精度(mAP)がやや高くなっています。ただし、その分、代償もあります。Ultralytics YOLOv8は、特にTensorRTやONNXなどの形式にコンパイルした場合、推論速度で大きな優位性を保っています。Raspberry Piや旧世代のモバイルチップなど、計算リソースが限られたエッジハードウェア上で高いフレームレート(FPS)が求められる用途では、YOLOv8のnおよびsバリアントの方が、はるかに実用的な性能バランスを提供します。
トレーニング効率とエコシステム統合#
モデルを選ぶ際は、精度の表を見るだけでは不十分です。開発者体験も非常に重要です。
Ultralyticsの強み:使いやすさ#
YOLOv9のトレーニングでは、複雑なGitHubリポジトリをクローンし、PyTorch環境を慎重に管理して、補助損失の重みを手動で設定しなければならないことがよくあります。
一方、Ultralytics YOLOv8は、非常に洗練されたPython APIを備えています。使いやすさを重視して構築されており、データ拡張、Weights & BiasesやComet MLなどのツールへのロギング、ハードウェアへの分散処理を標準で扱えます。
from ultralytics import YOLO
# 事前トレーニング済みのYOLOv8 smallモデルを読み込みます
model = YOLO("yolov8s.pt")
# カスタムデータでモデルを効率よくトレーニングします
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# エッジデプロイ用にエクスポートします
model.export(format="engine", quantize=16) # TensorRTへのエクスポートこの単一のAPIにより、プロトタイプから本番環境に至るまでの時間を大幅に短縮できます。さらに、YOLOv8は通常、トレーニング中に必要なCUDAメモリが少ないため、開発者は一般向けハードウェアでもバッチサイズを大きくできます。
タスクへの対応力#
YOLOv9は優れたバウンディングボックス検出器ですが、実環境のビジョンAIでは、それ以上の機能が求められることがよくあります。YOLOv8は汎用性に優れ、インスタンスセグメンテーション、姿勢推定、画像分類、有向バウンディングボックス (OBB)を標準でサポートします。複数のタスクに単一のフレームワークを使うことで、ソフトウェアの肥大化と保守の負担を大幅に抑えられます。
新しいプロジェクトを始める場合は、Ultralytics YOLO11や、最先端のYOLO26も評価するとよいでしょう。YOLO26は、エンドツーエンドのNMSフリー推論をオプションで利用できます。
実際のユースケース#
これらのモデルは本番環境でどのような性能を発揮するのでしょうか?
自律型ドローンとロボティクス#
迅速な障害物回避が必要なロボティクスでは、YOLOv8が有力な選択肢です。YOLOv8nの超低レイテンシにより、自律システムは周囲の環境にリアルタイムで反応して衝突を防げます。OpenVINOやCoreMLへの標準エクスポート機能を使えば、商用ドローンで一般的な低消費電力チップにも簡単にデプロイできます。
高解像度の欠陥検出#
微細な異常の検出が重要で、オフライン処理が許容される特殊な製造環境では、YOLOv9が非常に効果的です。PGIアーキテクチャは、細い亀裂やPCBのはんだ付け不良の特定に必要な、細かな視覚的特徴をネットワークが保持するのに役立ちます。
スマートリテールとセキュリティ分析#
店舗内の通路を移動する顧客の追跡や、自動チェックアウトシステムの運用には、YOLOv8が最適なバランスを提供します。BoT-SORTなどの標準アルゴリズムを使って検出と複数物体追跡を同時に実行できるため、複数カメラを使った小売環境でも堅牢なソリューションになります。
ユースケースと推奨事項#
YOLOv8とYOLOv9のどちらを選ぶかは、プロジェクト固有の要件、デプロイ上の制約、エコシステムに関する好みによって決まります。
YOLOv8を選ぶ場合#
YOLOv8は、次のような場合に適しています。
- 汎用的なマルチタスクデプロイ: Ultralyticsエコシステムで、検出、セグメンテーション、分類、ポーズ推定に対応した、実績のあるモデルを必要とするプロジェクト。
- 確立済みの本番システム: 安定性と十分なテストが確認されたデプロイパイプラインを備え、すでにYOLOv8アーキテクチャを基盤として構築されている本番環境。
- 広範なコミュニティとエコシステムのサポート: YOLOv8の豊富なチュートリアル、サードパーティ製ツールとの統合、活発なコミュニティリソースを活用できるアプリケーション。
YOLOv9を選ぶ場合#
YOLOv9は、次のような用途に推奨されます。
- 情報ボトルネックの研究: プログラム可能な勾配情報(PGI)や一般化効率的層集約ネットワーク(GELAN)のアーキテクチャを研究する学術プロジェクト。
- 勾配フロー最適化の研究: 学習中の深層ネットワーク層における情報損失の理解と抑制に焦点を当てた研究。
- 高精度検出のベンチマーク: アーキテクチャの比較において、YOLOv9の優れたCOCOベンチマーク性能を基準として必要とするシナリオ。
Ultralytics (YOLO26)を選ぶ場合#
多くの新規プロジェクトにおいて、Ultralytics YOLO26はパフォーマンスと開発者体験を最適なバランスで提供します。
- NMSを使用しないエッジデプロイ: 非最大抑制の後処理を複雑化させずに、安定した低レイテンシー推論を必要とするアプリケーション。
- CPUのみの環境: 専用のGPUアクセラレーションを備えていないデバイスで、YOLO26の最大43%高速なCPU推論が大きな優位性を発揮します。
- 小物体検出: ドローンによる航空画像やIoTセンサーの分析など、ProgLossとSTALによって小さな物体の精度が大幅に向上する難しいシナリオ。
次世代への進化:YOLO26#
YOLOv8とYOLOv9は高性能ですが、AIを取り巻く状況は急速に変化しています。最高のパフォーマンスを求めるチームには、今回リリースされたYOLO26をお勧めします。YOLO26は、前世代の成果を土台に開発されています。
YOLO26は、複雑な後処理のボトルネックを解消するオプションのエンドツーエンドNMSフリーデザイン(nms=False)を導入し、デプロイを簡素化してレイテンシを予測しやすくします。新しいMuSGD Optimizerと強化されたProgLoss + STAL損失関数を採用し、DFLの削除(Distribution Focal Lossを削除してエクスポートを簡素化し、エッジデバイスや低消費電力デバイスとの互換性を向上)も実施したことで、小さな物体の認識精度を高めながら、CPU推論を最大43%高速化します。エッジコンピューティングの限界に挑む開発者には、YOLO26の評価を強くお勧めします。
まとめると、YOLOv9は興味深いアーキテクチャ研究と優れた最高精度を提供しますが、信頼性の高いソフトウェアを迅速にリリースしたい大多数のコンピュータービジョンエンジニアにとって、Ultralytics YOLOv8は依然として最も実用的で、サポートが充実し、汎用性に優れた選択肢です。