YOLOv7とYOLOv9#
リアルタイム物体検出の分野は急速に進化しており、新たな世代が登場するたびに、エッジデバイスやクラウドサーバーで可能なことの限界が押し広げられています。コンピュータービジョンプロジェクトのアーキテクチャを評価する際、開発者は確立されたベンチマークと新しい技術革新を比較することがよくあります。この包括的なガイドでは、YOLOファミリーの重要な節目となった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データセットにおける各モデルの性能差を示しています。
| モデル | サイズ (ピクセル) | 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.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は、約45%少ないパラメーター(20.1M対36.9M)でYOLOv7lと同等の精度(51.4% mAP)を達成します。この大幅な削減により、メモリに制約のあるエッジAIデバイスへのYOLOv9mのデプロイが容易になります。
- 小規模デプロイ: YOLOv9t(tiny)バリアントの登場により、リアルタイム性が絶対条件となる環境でも、非常に高速な推論(T4で2.3msのTensorRT)が可能になりました。
- 最高精度: 精度が最優先となるアプリケーションでは、YOLOv9eが検出精度を55.6% mAPまで高め、YOLOv7xを大きく上回ります。
YOLOv7とYOLOv9は高性能ですが、新たにリリースされたYOLO26は、決定的な飛躍を示しています。YOLO26はネイティブのエンドツーエンドNMSフリーデザイン(nms=Falseで任意に有効化可能)を導入し、複雑な後処理を省略して、CPU推論を最大43%高速化します。新しいMuSGDオプティマイザーと強化されたProgLoss + STAL損失関数を活用することで、YOLO26は比類のない学習安定性と小物体検出精度を実現します。
Ultralyticsの強み#
モデルアーキテクチャの選択は、最初のステップにすぎません。モデルを取り巻くソフトウェアエコシステムによって、プロトタイプから本番環境へどれだけ迅速に移行できるかが決まります。Ultralytics Python APIを通じてYOLOv9などのサポート対象モデルを統合することは、開発者や研究者に大きなメリットをもたらします。
使いやすさとトレーニング効率#
従来、YOLOv7の学習には、複雑なデータ準備と大幅にカスタマイズされたスクリプトが必要でした。Ultralyticsフレームワークは、こうしたディープラーニングの複雑さを抽象化します。開発者は、アーキテクチャを簡単に切り替え、ハイパーパラメーター調整を試し、最小限のコードで高度なデータ拡張パイプラインを活用できます。
さらに、Ultralyticsは学習時と推論時のメモリ使用量を最適化します。大規模なTransformerモデル(RT-DETRなど)とは異なり、Ultralytics YOLOアーキテクチャは大幅に短時間で学習でき、必要なCUDAメモリもはるかに少ないため、一般消費者向けGPUに最適です。
コード例:効率的なトレーニング#
最先端モデルの学習は、Ultralyticsエコシステムでシームレスに行えます。以下は、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モデルは当初から汎用性を備えています。追加設定なしで、インスタンスセグメンテーション、姿勢推定、画像分類、方向付きバウンディングボックス(OBB)検出をシームレスに実行できます。
最適なユースケースと用途#
YOLOv7とYOLOv9のどちらを選ぶかは、多くの場合、業界固有の制約や利用可能なハードウェアによって決まります。
YOLOv7の活用に適したケース#
- レガシーエッジ環境へのデプロイ: YOLOv7のE-ELANアーキテクチャ向けにすでに高度な調整と最適化が施されているハードウェア環境では、産業用IoTに適した堅牢な選択肢です。
- 交通監視: YOLOv7の高いフレームレートと実証済みの安定性は、スマートシティのインフラやリアルタイム交通管理に最適です。
- ロボティクスとの統合: 動的な環境を移動するには低レイテンシ処理が必要です。YOLOv7の各種モデルは、このような用途で広くテストされています。
YOLOv9を利用する場面#
- 医用画像: YOLOv9のPGIアーキテクチャは、深い層を通じて細部の情報を保持する能力に優れており、腫瘍検出などの複雑な医用画像解析タスクで重要な役割を果たします。
- 小売店舗の高密度分析: 小売店の棚に密集した商品を追跡・計数する場合、YOLOv9の特徴統合によって精度が向上し、偽陰性が減少します。
- 航空・ドローン画像: YOLOv9mはパラメーター効率に優れているため、ドローン上で高解像度画像を処理でき、バッテリーを消耗させずに野生生物保護や農業モニタリングを支援します。
結論#
YOLOv7とYOLOv9は、どちらもコンピュータービジョンの歴史にその名を刻んでいます。YOLOv7はリアルタイム処理に不可欠な最適化を導入し、YOLOv9は構造的なディープラーニングのボトルネックに対処して、パラメーター効率を最大化しました。
しかし、現在新しいプロジェクトを始める開発者には、Ultralyticsエコシステム、特にYOLO11やYOLO26などの次世代モデルを活用することで、速度、精度、開発者エクスペリエンスの間で最も優れたトレードオフが得られます。MuSGDオプティマイザーのような革新や、幅広いハードウェアとの互換性を実現するDistribution Focal Loss(DFL)の廃止により、UltralyticsはビジョンAIの専門家にとって、最も利用しやすく高性能なツールを提供し続けています。