Ultralytics YOLO27:
Get Started

YOLOv9とYOLOv7#

リアルタイム物体検出の進化は、計算効率と高精度のバランスを追求し続けることで進んできました。この進化における重要な2つのアーキテクチャがYOLOv9とYOLOv7です。どちらも台湾の中央研究院情報科学研究所の研究者によって開発されました。YOLOv7が画期的な学習可能なバッグ・オブ・フリービーを導入したのに対し、新しいYOLOv9は深層学習における情報ボトルネックに正面から取り組んでいます。

この包括的な技術比較では、両モデルのアーキテクチャの違い、性能指標、理想的なデプロイメントシナリオを詳しく解説し、MLエンジニアや研究者がコンピュータービジョンのパイプラインに最適なツールを選択できるよう支援します。

パフォーマンスと指標の比較#

これらのモデルを比較する際には、生の性能と効率性が重要な要素となります。以下の表に、標準的なCOCOデータセットのベンチマークにおける平均適合率(mAP)と計算要件を示します。

モデルサイズ
(ピクセル)
mAPval
50-95
速度
CPU ONNX
(ms)
速度
T4 TensorRT10
(ms)
パラメーター
(M)
FLOPs
(B)
YOLOv9t64038.3-2.32.07.7
YOLOv9s64046.8-3.547.226.7
YOLOv9m64051.4-6.4320.176.8
YOLOv9c64053.0-7.1625.5102.8
YOLOv9e64055.6-16.7758.1192.5
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9
性能のバランス

YOLOv9cは、YOLOv7xとほぼ同じ精度(53.0 mAP対53.1 mAP)を達成しながら、パラメーター数(2,550万対7,130万)とFLOPsを大幅に削減しています。これは、現代のアーキテクチャで性能のバランスが向上していることを示しています。

YOLOv9:情報ボトルネックの解消#

2024年初頭に登場したYOLOv9は、深層ニューラルネットワークが各レイヤーを通じてデータを保持する方法を根本的に変えました。

アーキテクチャの革新#

YOLOv9は、汎用効率的層集約ネットワーク(GELAN)とプログラム可能な勾配情報(PGI)を導入しています。GELANはCSPNetとELANの長所を組み合わせてパラメーター効率と計算コストを最適化し、パラメーター数を抑えながら高精度を実現します。PGIは、深層ネットワークでのデータ損失を防ぎ、トレーニング中の重み更新に信頼性の高い勾配を生成するための補助的な監視フレームワークです。

長所と制約#

YOLOv9の主な強みは、計算オーバーヘッドを大幅に増やさずに微細な特徴を抽出できる点であり、医用画像解析のように高い特徴忠実度が必要なタスクで非常に優れた性能を発揮します。ただし、トレーニング時の複雑なPGI構造により、統合性の高いフレームワークと比べ、初心者がアーキテクチャをカスタマイズするのは難しい場合があります。

YOLOv9の詳細を見る

YOLOv7:バッグ・オブ・フリービーの先駆け#

2022年にリリースされたYOLOv7は、一般向けハードウェアで実現可能な性能の新たなベンチマークを確立し、リアルタイム推論を大幅に高速化する構造上の革新を導入しました。

アーキテクチャの革新#

YOLOv7の主な貢献は、拡張効率的層集約ネットワーク(E-ELAN)です。このアーキテクチャにより、モデルはより多様な特徴を継続的に学習できます。さらにYOLOv7は、計画的な再パラメーター化畳み込みや動的ラベル割り当てなどの「学習可能なバッグ・オブ・フリービー」を採用しています。これらの手法は、デプロイメント時の推論コストを増やさずに、トレーニング中のモデル精度を向上させます。

長所と制約#

YOLOv7はリアルタイムのエッジ処理向けに高度に最適化されており、旧式のシステムや古いCUDA環境で今も広く使われています。現在の主な制約は、新しいモデルよりパラメーター数が多いことです。性能表に示すように、最高水準の精度を得るには大規模なYOLOv7xモデルが必要であり、同等の最新アーキテクチャよりも大幅に多くのGPUメモリーを消費します。

YOLOv7の詳細を見る

Ultralyticsの強み:簡素化されたデプロイメント#

YOLOv9とYOLOv7のオリジナルの研究リポジトリは優れた学術的基盤を提供しますが、本番環境でこれらのモデルをデプロイするのは複雑な場合があります。YOLOv9をultralyticsパッケージ経由で統合すると(YOLOv7はエクスポート済みのONNXモデルまたはTensorRTモデルのみをサポート)、卓越した使いやすさを得られます。

統合されたUltralytics Platformを利用すると、開発者は直感的なPython API、活発なコミュニティサポート、堅牢な実験トラッキングを備えた、適切に保守されたエコシステムの恩恵を受けられます。

YOLO26で将来に備える#

新しいコンピュータービジョンプロジェクトを始める場合は、YOLOv9とYOLOv7のどちらよりも、新たにリリースされたYOLO26をぜひご検討ください。新たな最先端の標準モデルとしてリリースされたYOLO26は、画期的な進歩をもたらします。

  • エンドツーエンドのNMSフリー設計: オプションのワンツーワンヘッド(nms=False)により、非極大値抑制の後処理を省略し、デプロイメントの複雑さとレイテンシを大幅に低減します。
  • CPU推論が最大43%高速化:エッジコンピューティング環境向けに最適化されているため、専用GPUがなくてもアプリケーションをスムーズに実行できます。
  • MuSGD Optimizer: LLMのトレーニングに着想を得たハイブリッドオプティマイザーで、非常に安定した収束を実現し、トレーニング時間を短縮します。
  • DFL Removal: Distribution Focal Lossを削除することでモデルのエクスポートを簡素化し、低電力のモバイルデバイスとの互換性を高めます。
  • ProgLoss + STAL: 小規模オブジェクトの検出性能を大幅に向上させるため、航空画像や監視用途に最適な選択肢です。

エコシステム内で人気のある他の選択肢には、Ultralytics YOLOv8とYOLO11があります。どちらもインスタンスセグメンテーションや姿勢推定など、さまざまなタスクに幅広く対応します。

実装例#

統合APIを使用すれば、YOLOv9やYOLO26のトレーニングとエクスポートは非常に簡単です。以下のコードは、Ultralyticsのツールが備える効率的なトレーニング効率を示しています。

from ultralytics import YOLO

# YOLOv9または推奨モデルのYOLO26を初期化します
model = YOLO("yolov9c.pt")  # エッジでのパフォーマンスを向上させるには、"yolo26n.pt"に置き換えます

# 組み込みのデータ拡張を使用してカスタムデータセットでトレーニングします
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, batch=16, device=0)

# トレーニング済みモデルをデプロイ用にONNX形式でエクスポートします
model.export(format="onnx")
メモリ要件

コンシューマー向けハードウェアでトレーニングする場合、メモリ効率は非常に重要です。UltralyticsによるYOLOv9およびYOLO26の実装は、VRAMの急増を抑えるよう高度に最適化されています。一方、RT-DETRなどのTransformerベースのモデルは、トレーニング中にメモリ使用量が大幅に膨らむことがよくあります。

実環境での用途と適したユースケース#

これらのアーキテクチャのどちらを選ぶかは、多くの場合、本番環境の具体的な制約によって決まります。

YOLOv9を使用する場合: 細部の保持が必要な環境では、YOLOv9が優れた性能を発揮します。堅牢な特徴抽出により、棚に密集して並ぶ商品を数える小売分析や、小さな葉に生じた初期段階の作物病害の特定が重要な農業用途に最適です。

YOLOv7を使用する場合: YOLOv7は、既存のデプロイパイプラインに適した有力な選択肢です。Google Coral Edge TPUの特定世代など、古いハードウェアシステムに統合する場合は、YOLOv7のシンプルなCNNアーキテクチャのほうが、新しいモデルよりコンパイルしやすい可能性があります。

YOLO26を使用する場合(推奨): 自律型ドローンからスマートシティの交通管理まで、最新のデプロイにはYOLO26が最適です。NMSを使用しないアーキテクチャにより、推論時間が決定論的に保証されるため、安全性が極めて重要なロボティクスに欠かせません。また、精度ではあらゆる面でYOLOv9とYOLOv7を上回ります。

コントリビューター

コメント