YOLOv7 と YOLOv9 の比較#
リアルタイムobject detectionの分野は急速に進化しており、新しいバージョンが登場するたびに、エッジデバイスやクラウドサーバーの両方で何が可能になるかの限界が押し上げられています。コンピュータビジョンのプロジェクト向けにアーキテクチャを評価する際、開発者は既存のベンチマークと新しいイノベーションを頻繁に比較します。この包括的なガイドでは、YOLOファミリーにおける2つの重要なマイルストーンであるYOLOv7とYOLOv9を比較します。
アプリケーションに適したモデルを選択できるよう、両者のアーキテクチャの画期的な点、パフォーマンス指標、および理想的なデプロイシナリオを分析します。また、Ultralytics Platformがこれらのモデルをどのように統合し、トレーニング、検証、デプロイをより簡単に行えるようにするかについても解説します。
モデルの系譜と技術仕様#
これらのモデルの起源と設計哲学を理解することは、その能力を把握するための重要な背景となります。両モデルは共通の研究系譜を共有していますが、異なるアーキテクチャ上のボトルネックに対処しています。
YOLOv7: Bag-of-Freebies の先駆者#
2022年中頃にリリースされたYOLOv7は、非常に信頼性が高く、高度に最適化されたアーキテクチャとしての地位を確立しました。これは、mean Average Precision (mAP)を損なうことなく高い推論速度を維持するために、構造的再パラメータ化と「trainable bag-of-freebies」アプローチを導入しました。
- 著者: Chien-Yao Wang, Alexey Bochkovskiy, Hong-Yuan Mark Liao
- 組織: Institute of Information Science, Academia Sinica, Taiwan
- 日付: 2022年7月6日
- Arxiv: 2207.02696
- GitHub: WongKinYiu/yolov7
アーキテクチャの革新: YOLOv7はExtended Efficient Layer Aggregation Network (E-ELAN)を備えており、カーディナリティの拡張、シャッフル、マージを通じてモデルがより多様な特徴を学習できるようになります。この設計により、優れたGPU利用率とinference latencyが実現します。ただし、最新のバージョンと比較して、複雑なトレーニングの実行時に多くのメモリが必要になる場合があります。
YOLOv9: 情報ボトルネックの解決#
同じ研究チームによって2024年初頭に導入された YOLOv9 は、ディープニューラルネットワークに固有の「情報ボトルネック」に取り組みました。データが深い層を通過する際、重要な詳細が失われることがよくあります。YOLOv9 は、根本的に新しい層の設計を通じてこれを緩和しています。
- 著者: Chien-Yao Wang および Hong-Yuan Mark Liao
- 組織: Institute of Information Science, Academia Sinica, Taiwan
- 日付: 2024年2月21日
- Arxiv: 2402.13616
- GitHub: WongKinYiu/yolov9
アーキテクチャの革新: YOLOv9は、Programmable Gradient Information (PGI)とGeneralized Efficient Layer Aggregation Network (GELAN)を導入しています。PGIは、信頼性の高い勾配が確実に維持され、重みを正確に更新するためにフィードバックされるようにします。GELANはパラメータ効率を最大化し、YOLOv9が従来のものよりも大幅に少ないFLOPsで高い精度を達成できるようにします。
パフォーマンス分析#
アーキテクチャを選択する際、AIエンジニアは精度、inference speed、および計算コストのバランスをとる必要があります。以下の表は、標準のCOCO datasetにおけるこれらのモデルのパフォーマンスの違いを示しています。
| モデル | サイズ (ピクセル) | mAPval 50-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 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
重要なポイント#
- パラメータ効率: YOLOv9mは、ほぼ45%少ないパラメータ(36.9Mに対して20.0M)を使用しながら、YOLOv7l(51.4% mAP)の精度に匹敵します。この劇的な削減により、YOLOv9mはメモリ制約のあるedge AIデバイスへのデプロイがはるかに容易になります。
- マイクロデプロイ: YOLOv9t(tiny)バリアントの導入により、リアルタイム制約が絶対的である環境向けに、驚異的な速度(T4 TensorRT上で2.3ms)が提供されます。
- 最大精度: 精度が最優先されるアプリケーション向けに、YOLOv9e は検出精度を 55.6% mAP まで向上させ、YOLOv7x を大幅に上回ります。
YOLOv7とYOLOv9は強力ですが、新しくリリースされたYOLO26は決定的な飛躍を表しています。YOLO26はネイティブなエンドツーエンドNMSフリー設計を導入しており、複雑な後処理を排除し、CPU推論速度を最大43%向上させます。新規のMuSGDオプティマイザと拡張されたProgLoss + STAL損失関数を活用することで、YOLO26は比類のないトレーニング安定性と小さなオブジェクトの検出精度を提供します。
Ultralyticsの利点#
モデルアーキテクチャの選択は最初のステップにすぎません。モデルを取り巻くソフトウェアエコシステムによって、プロトタイプから本番環境へどれだけ速く移行できるかが決まります。Ultralytics Python APIを通じてこれらのモデルを統合することで、開発者と研究者に大きなメリットがもたらされます。
使いやすさと学習の効率性#
歴史的に、YOLOv7のトレーニングには複雑なデータ準備と大幅にカスタマイズされたスクリプトが必要でした。Ultralyticsフレームワークは、これらのディープラーニングの複雑さを抽象化します。開発者は、最小限のコードでアーキテクチャを簡単に切り替え、hyperparameter tuningを実験し、インテリジェントなdata augmentationパイプラインを利用できます。
さらに、Ultralyticsはトレーニングおよび推論中のmemory usageを最適化します。(RT-DETRなどの)重いtransformer modelsとは異なり、Ultralytics YOLOアーキテクチャは大幅に高速にトレーニングでき、必要なCUDAメモリもはるかに少なくて済むため、コンシューマー向けGPUに最適です。
コード例: 合理化されたトレーニング#
最先端モデルのトレーニングは、Ultralytics エコシステム内であればシームレスです。以下は、YOLOv9 モデルのトレーニングと検証方法を示す完全に実行可能な例です。
from ultralytics import YOLO
# Initialize the model (you can swap 'yolov9c.pt' with 'yolov7.pt' or 'yolo26n.pt')
model = YOLO("yolov9c.pt")
# Train the model on the COCO8 sample dataset
train_results = model.train(
data="coco8.yaml",
epochs=50,
imgsz=640,
device="0", # Use GPU 0 if available
batch=16, # Optimized batch size for memory efficiency
)
# Validate the model's performance on the validation set
metrics = model.val()
# Export the trained model to ONNX format for deployment
model.export(format="onnx")タスク全体にわたる比類のない汎用性#
適切にメンテナンスされたエコシステムとは、多様なコンピュータビジョンタスクへのアクセスを意味します。YOLOv7は主にオブジェクト検出用に構築されていましたが(後のタスク用の実験的フォークを除く)、現代のUltralyticsモデルは汎用性を考慮してネイティブに構築されています。すぐに使用して、instance segmentation、pose estimation、image classification、およびOriented Bounding Box (OBB)検出をシームレスに実行できます。
理想的なユースケースとアプリケーション#
YOLOv7 と YOLOv9 の選択は、多くの場合、特定の業界の制約や利用可能なハードウェアに依存します。
YOLOv7 の活用#
- レガシーエッジデプロイ: YOLOv7のE-ELANアーキテクチャ向けにすでに高度にチューニングおよび最適化されているハードウェア環境にとって、これはindustrial IoT向けに堅牢な選択肢であり続けます。
- 交通監視: YOLOv7の高いフレームレートと実証された安定性により、スマートシティインフラストラクチャやreal-time traffic managementに最適です。
- ロボティクス統合: 動的な環境をナビゲートするには低レイテンシの処理が必要であり、YOLOv7 バリアントはそのようなシナリオで徹底的にテストされています。
YOLOv9を活用すべき場面#
- 医療画像: YOLOv9のPGIアーキテクチャは、ディープレイヤーを通じてきめ細かな詳細を保持することに優れており、腫瘍検出のような複雑なmedical image analysisタスクを分析する際に不可欠です。
- 高密度な小売分析: 小売店の棚にある高密度に詰め込まれた商品を追跡およびカウントする場合、YOLOv9 の特徴統合は優れた精度を提供し、偽陰性を低減します。
- 航空およびドローン画像: YOLOv9mのパラメータ効率により、ドローンでの高解像度画像処理が可能になり、バッテリー寿命を消耗させることなく、wildlife conservationや農業監視を支援します。
結論#
YOLOv7 と YOLOv9 は、どちらもコンピュータビジョンの歴史にその名を刻みました。YOLOv7 はリアルタイム処理のための重要な最適化を導入し、YOLOv9 は構造的なディープラーニングのボトルネックに対処してパラメータ効率を最大化しました。
ただし、今日新しくプロジェクトを開始する開発者にとって、Ultralyticsエコシステム、具体的にはYOLO11やYOLO26などの次世代モデルを活用することが、速度、精度、開発者エクスペリエンスの間で最も有利なトレードオフを提供します。MuSGDオプティマイザや、より幅広いハードウェア互換性のためのDistribution Focal Loss (DFL)の削除などの革新により、UltralyticsはビジョンAIプロフェッショナル向けに最もアクセシブルで強力なツールを提供し続けています。