YOLOv7とYOLOv9#
リアルタイム物体検出の分野は急速に進化しており、新しいイテレーションごとにエッジデバイスとクラウドサーバーの両方で性能が向上しています。コンピュータービジョンプロジェクト向けのアーキテクチャを評価する際、開発者は確立されたベンチマークと新しい設計を頻繁に比較します。このガイドでは、YOLOファミリーにおける重要な2つの節目であるYOLOv7とYOLOv9を比較します。
このガイドでは、アーキテクチャ、性能指標、理想的なデプロイシナリオを取り上げ、アプリケーションに適したモデルを選べるよう支援します。また、Ultralytics PlatformとPython APIにより、YOLOv9などのサポート対象モデルを簡単にトレーニング、検証、デプロイできることも紹介します。
モデルの系譜と技術仕様#
モデルの起源と設計思想を理解すると、それぞれの能力を把握するうえで重要な背景を得られます。どちらのモデルも共通する研究の系譜を持ちながら、異なるアーキテクチャ上のボトルネックを対象としています。
YOLOv7:バッグ・オブ・フリービーの先駆け#
2022年半ばにリリースされたYOLOv7は、広く使われる最適化済みのアーキテクチャとなりました。構造的な再パラメーター化と「トレーニング可能なbag-of-freebies」アプローチを導入し、平均適合率(mAP)を損なうことなく高い推論速度を維持します。
- 著者: Chien-Yao Wang、Alexey Bochkovskiy、Hong-Yuan Mark Liao
- 組織: 台湾、中央研究院情報科学研究所
- 日付: 2022年7月6日
- arXiv: 2207.02696
- GitHub: WongKinYiu/yolov7
アーキテクチャの革新: YOLOv7はExtended Efficient Layer Aggregation Network(E-ELAN)を採用し、カーディナリティを拡張、シャッフル、統合することで、モデルがより多様な特徴を学習できるようにします。この設計によりGPUを優れた効率で活用でき、推論レイテンシも抑えられます。ただし、複雑なトレーニングでは、最新世代のモデルと比べて多くのメモリを必要とする場合があります。
YOLOv9:情報ボトルネックの解消#
2024年初頭に同じ研究チームが発表したYOLOv9は、ディープニューラルネットワークに内在する「情報ボトルネック」に対処します。データが深い層を通過する際、重要な詳細情報が失われることがよくあります。YOLOv9は、新しいアーキテクチャコンポーネントによってこの問題を軽減します。
- 著者: Chien-Yao Wang、Hong-Yuan Mark Liao
- 組織: 台湾、中央研究院情報科学研究所
- 日付: 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エンジニアは精度、推論速度、計算コストのバランスを取る必要があります。以下の表では、標準のCOCOデータセットにおける各モデルの性能差を示しています。
| モデル | サイズ (ピクセル) | mAPval50-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.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 |
主なポイント#
- パラメーター効率: YOLOv9mは、YOLOv7lと同等の精度(51.4% mAP)を、約45%少ないパラメーター(20.1M対36.9M)で実現します。この削減により、YOLOv9mはメモリに制約のあるエッジAIデバイスにもデプロイしやすくなります。
- マイクロデプロイ: YOLOv9t(tiny)バリアントは、TensorRTを使用してT4 GPU上で2.3 msで動作し、厳しいリアルタイム要件のある環境に適しています。
- 最高精度: 精度が最も重要となるアプリケーションでは、YOLOv9eは55.6% mAPを達成し、YOLOv7xを2.5ポイント上回ります。
YOLOv7とYOLOv9は高性能なモデルですが、現在、新しいプロジェクトに推奨されるUltralyticsモデルはYOLO26です。ネイティブのエンドツーエンドNMS不要設計(nms=Falseでオプション指定可能)を導入し、Non-Maximum Suppression(NMS)の後処理を省略するとともに、CPU推論を最大43%高速化します(YOLO26nとYOLO11nの比較)。MuSGDオプティマイザーはトレーニングの安定性を高め、ProgLoss + STAL(進行型損失と小さな対象物を考慮したラベル割り当て)は小さな物体の検出を向上させます。
Ultralyticsの強み#
モデルアーキテクチャの選択は、最初のステップにすぎません。モデルを取り巻くソフトウェアエコシステムによって、プロトタイプから本番環境へどれだけ迅速に移行できるかが決まります。Ultralytics Python APIを通じてYOLOv9などのサポート対象モデルを統合することは、開発者や研究者に大きなメリットをもたらします。
使いやすさとトレーニング効率#
従来、YOLOv7のトレーニングには複雑なデータ準備と大幅なカスタマイズを施したスクリプトが必要でした。Ultralyticsフレームワークがこうした詳細を処理するため、開発者は最小限のコードでアーキテクチャを切り替え、ハイパーパラメーター調整を試し、組み込みのデータ拡張パイプラインを利用できます。
Ultralyticsはトレーニングと推論時のメモリ使用量も最適化します。RT-DETRなどの、より大規模なTransformerモデルと比べると、Ultralytics YOLOアーキテクチャは通常、トレーニングが速く、必要なCUDAメモリも少ないため、一般消費者向けGPUでも実用的です。
コード例:効率的なトレーニング#
以下の実行可能な例では、Ultralytics Python APIを使ってYOLOv9モデルをトレーニング、検証、エクスポートします。
from ultralytics import YOLO
# モデルを初期化します('yolov9c.pt'を'yolo26n.pt'に置き換えることもできます)
model = YOLO("yolov9c.pt")
# COCO8サンプルデータセットでモデルを学習します
train_results = model.train(
data="coco8.yaml",
epochs=50,
imgsz=640,
device="0", # 利用可能な場合はGPU 0を使用します
batch=16, # メモリ効率を高めるためにバッチサイズを最適化します
)
# 検証セットでモデルの性能を評価します
metrics = model.val()
# トレーニング済みモデルをデプロイ用にONNX形式でエクスポートします
model.export(format="onnx")さまざまなタスクに対応する汎用性#
適切に保守されたエコシステムでは、より多くのコンピュータービジョンタスクを利用できます。YOLOv7は主に物体検出向けに構築されていましたが(後に他のタスク向けの実験的なブランチも登場しました)、最新のUltralyticsモデルは複数のタスクをネイティブにサポートします。すぐに利用できる機能として、インスタンスセグメンテーション、画像分類、姿勢推定、Oriented Bounding Box(OBB)検出を実行できます。
最適なユースケースと用途#
YOLOv7とYOLOv9のどちらを選ぶかは、多くの場合、業界固有の制約や利用可能なハードウェアによって決まります。
YOLOv7を使用する場面#
- レガシーエッジデプロイ: YOLOv7のE-ELANアーキテクチャ向けにすでに調整済みのハードウェア環境では、産業用IoTに適した堅実な選択肢として引き続き利用できます。
- 交通監視: YOLOv7は高いフレームレートと実証済みの安定性を備えており、スマートシティのインフラやリアルタイム交通管理に適しています。
- ロボティクスとの統合: 動的な環境を移動するには低レイテンシ処理が必要です。YOLOv7の各種モデルは、このような用途で広くテストされています。
YOLOv9を使用する場合#
- 医療画像: PGIはYOLOv9が深い層を通過する際に細かな詳細を保持するのに役立つため、腫瘍検出などの医療画像解析タスクで有用です。
- 高密度小売分析: 小売店の棚に密集して並ぶ商品を追跡、カウントする場合、YOLOv9の特徴統合により精度を高め、偽陰性を減らせます。
- 航空・ドローン画像: YOLOv9mはパラメーター効率に優れているため、ドローン上で高解像度画像を処理でき、バッテリーを消耗させずに野生生物保護や農業モニタリングを支援します。
結論#
YOLOv7とYOLOv9は、どちらもYOLOファミリーにおける重要な節目です。YOLOv7はリアルタイム処理に欠かせない最適化を導入し、YOLOv9はディープネットワークにおける情報損失に対処して、パラメーター効率を高めました。
ただし、新しいプロジェクトでは、YOLO11やYOLO26などの新しいUltralyticsモデルが、速度、精度、開発者エクスペリエンスのバランスに優れています。MuSGDオプティマイザーを採用し、幅広いハードウェアとの互換性を高めるためDistribution Focal Loss(DFL)を削除したYOLO26は、推奨される出発点です。
コメント
質問したり、結果を共有したり、ほかの人をサポートしたりできます。