YOLOv9: 物体検出技術における飛躍
YOLOv9は、Programmable Gradient Information (PGI) やGeneralized Efficient Layer Aggregation Network (GELAN) といった画期的な技術を導入し、リアルタイム物体検出において大きな進歩を遂げました。このモデルは、効率性、精度、適応性において目覚ましい改善を示し、MS COCOデータセットで新たなベンチマークを確立しています。YOLOv9プロジェクトは、独立したオープンソースチームによって開発されましたが、UltralyticsYOLOv5が提供する堅牢なコードベースを基盤としており、AI研究コミュニティの協力的な精神を示しています。
見る: Ultralyticsを使用したカスタムデータでのYOLOv9トレーニング | 産業用パッケージデータセット

YOLOv9の概要
最適なリアルタイム物体検出を追求する中で、YOLOv9は、ディープニューラルネットワークに内在する情報損失の課題を克服するための革新的なアプローチで際立っています。PGIと多用途なGELANアーキテクチャを統合することにより、YOLOv9はモデルの学習能力を高めるだけでなく、検出プロセス全体で重要な情報の保持を確実にし、それによって卓越した精度と性能を達成しています。
YOLOv9の核となる革新
YOLOv9の進歩は、ディープニューラルネットワークにおける情報損失によって引き起こされる課題への対処に深く根ざしています。情報ボトルネック原理と可逆関数の革新的な使用がその設計の中心であり、YOLOv9が高い効率と精度を維持することを保証しています。
情報ボトルネック原理
情報ボトルネック原理は、深層学習における根本的な課題を明らかにします。データがネットワークの連続する層を通過するにつれて、情報損失の可能性が増加します。この現象は、数学的に次のように表現されます。
I(X, X) >= I(X, f_theta(X)) >= I(X, g_phi(f_theta(X)))
場所: I は相互情報量を示し、 f および g パラメータを持つ変換関数を表します theta および phiです。YOLOv9は、Programmable Gradient Information (PGI) を実装することでこの課題に対処します。PGIは、ネットワークの深さ全体にわたって重要なデータを保持するのに役立ち、より信頼性の高い勾配生成を保証し、その結果、モデルの収束とパフォーマンスが向上します。
可逆関数
可逆関数の概念は、YOLOv9の設計におけるもう一つの基礎です。関数は、次のように表現されるように、情報の損失なしに反転できる場合に可逆と見なされます。
X = v_zeta(r_psi(X))
with psi および zeta それぞれ、可逆関数とその逆関数のパラメータとして。この特性は、以下にとって重要です。 深層学習 アーキテクチャは、ネットワークが完全な情報フローを保持することを可能にし、それによってモデルのパラメータへのより正確な更新を可能にします。YOLOv9は、特に深い層での情報劣化のリスクを軽減するために、そのアーキテクチャ内に可逆関数を組み込み、物体検出タスクのための重要なデータの保存を確実にします。
軽量モデルへの影響
情報損失への対処は、特に軽量モデルにとって極めて重要です。軽量モデルは、パラメータが不足していることが多く、順伝播プロセス中に重要な情報を失いやすい傾向があります。YOLOv9のアーキテクチャは、PGIと可逆関数を使用することで、合理化されたモデルであっても、正確な物体検出に必要な本質的な情報が保持され、効果的に活用されることを保証します。
Programmable Gradient Information (PGI)
PGIは、情報ボトルネック問題に対処するためにYOLOv9で導入された新しい概念であり、ディープネットワーク層全体で不可欠なデータの保存を保証します。これにより、信頼性の高い勾配の生成が可能になり、正確なモデル更新を促進し、全体的な検出性能を向上させます。
Generalized Efficient Layer Aggregation Network (GELAN)
GELANは戦略的なアーキテクチャの進歩を表しており、YOLOv9が優れたパラメータ利用率と計算効率を達成することを可能にします。その設計により、様々な計算ブロックの柔軟な統合が可能になり、YOLOv9は速度や精度を犠牲にすることなく、幅広いアプリケーションに適応できます。

YOLOv9のベンチマーク
Ultralyticsを使用したYOLOv9でのベンチマークは、トレーニングおよび検証済みのモデルの実際のシナリオでの性能を評価することを含みます。このプロセスには以下が含まれます。
- パフォーマンス評価: モデルの速度と精度を評価します。
- エクスポート形式: 必要な標準を満たし、さまざまな環境で適切に機能することを保証するために、さまざまなエクスポート形式でモデルをテストします。
- フレームワークのサポート: Ultralytics YOLOv8内で包括的なフレームワークを提供し、これらの評価を容易にし、一貫性のある信頼性の高い結果を保証します。
ベンチマークを行うことで、モデルが管理されたテスト環境で良好に機能するだけでなく、実用的で現実世界のアプリケーションでも高いパフォーマンスを維持できることを保証できます。
見る: Ultralytics Pythonパッケージを使用してYOLOv9モデルをベンチマークする方法
MS COCOデータセットでのパフォーマンス
COCOデータセットにおけるYOLOv9の性能は、リアルタイム物体検出におけるその著しい進歩を例示しており、様々なモデルサイズで新たなベンチマークを確立しています。表1は、最先端のリアルタイム物体検出器の包括的な比較を示し、YOLOv9の優れた効率と精度を明確にしています。
パフォーマンス
| モデル | サイズ (ピクセル) | mAPval 50-95 | mAPval 50 | params (M) | FLOPs (B) |
|---|---|---|---|---|---|
| YOLOv9t | 640 | 38.3 | 53.1 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | 63.4 | 7.2 | 26.7 |
| YOLOv9m | 640 | 51.4 | 68.1 | 20.1 | 76.8 |
| YOLOv9c | 640 | 53.0 | 70.2 | 25.5 | 102.8 |
| YOLOv9e | 640 | 55.6 | 72.8 | 58.1 | 192.5 |
| モデル | サイズ (ピクセル) | mAPbox 50-95 | mAPmask 50-95 | params (M) | FLOPs (B) |
|---|---|---|---|---|---|
| YOLOv9c-seg | 640 | 52.4 | 42.2 | 27.9 | 159.4 |
| YOLOv9e-seg | 640 | 55.1 | 44.3 | 60.5 | 248.4 |
YOLOv9のイテレーションは、tinyモデルから t 広範囲にわたるバリアント e モデルは、精度(mAPメトリクス)だけでなく、パラメータ数と計算ニーズ(FLOPs)の削減による効率性においても改善を示しています。この表は、YOLOv9が高い性能を提供できる能力を強調しています。 適合率 以前のバージョンや競合モデルと比較して、計算オーバーヘッドを維持または削減しながら。
比較すると、YOLOv9は目覚ましい進歩を示しています。
- 軽量モデル: YOLOv9sは、パラメータ効率と計算負荷においてYOLO MS-Sを上回り、APで0.4∼0.6%の改善を達成しています。
- 中~大規模モデル: YOLOv9mとYOLOv9eは、モデルの複雑さと検出性能のバランスにおいて著しい進歩を示しており、精度が向上しているにもかかわらず、パラメータと計算量を大幅に削減しています。
特にYOLOv9cモデルは、アーキテクチャの最適化の有効性を際立たせています。YOLOv7 AFと比較して、パラメータが42%少なく、計算負荷が21%低いにもかかわらず、同等の精度を達成しており、YOLOv9の著しい効率改善を示しています。さらに、YOLOv9eモデルは、YOLOv8xと比較してパラメータが15%少なく、計算負荷が25%低いことに加え、APが1.7%向上しており、大規模モデルの新たな標準を打ち立てています。
これらの結果は、YOLOv9のモデル設計における戦略的な進歩を示しており、リアルタイム物体検出タスクに不可欠な精度を損なうことなく、その効率性の向上を強調しています。このモデルは、性能指標の限界を押し広げるだけでなく、計算効率の重要性も強調しており、コンピュータビジョン分野における極めて重要な進展となっています。
結論
2024年2月にリリースされたYOLOv9は、リアルタイム物体detectにおける極めて重要な開発であり、効率性、精度、適応性の面で大幅な改善をもたらしました。PGIやGELANのような革新的なソリューションを通じて重要な課題に対処することで、YOLOv9はリリース時に新たなベンチマークを確立しました。その後、YOLO11やYOLO26のような新しいモデルがさらなる改善を伴ってリリースされていますが、YOLOv9のアーキテクチャ革新は引き続きこの分野に影響を与え続けています。
使用例
この例では、シンプルなYOLOv9のトレーニングと推論の例を提供します。これらおよびその他のモードに関する完全なドキュメントについては、予測、トレーニング、検証、およびエクスポートのドキュメントページを参照してください。
例
PyTorch 学習済み *.pt モデルおよび構成 *.yaml filesを以下に渡すことができます。 YOLO() pythonでモデルインスタンスを作成するためのclass:
from ultralytics import YOLO
# Build a YOLOv9c model from scratch
model = YOLO("yolov9c.yaml")
# Build a YOLOv9c model from pretrained weight
model = YOLO("yolov9c.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the YOLOv9c model on the 'bus.jpg' image
results = model("path/to/bus.jpg")
CLIコマンドは、モデルを直接実行するために利用できます。
# Build a YOLOv9c model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640
# Build a YOLOv9c model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov9c.yaml source=path/to/bus.jpg
サポートされているタスクとモード
YOLOv9シリーズは、様々なモデルを提供しており、それぞれが高性能な物体検出に最適化されています。これらのモデルは、様々な計算要件と精度要件に対応し、幅広いアプリケーションに多用途で利用できます。
| モデル | ファイル名 | タスク | 推論 | 検証 | 学習 | エクスポート |
|---|---|---|---|---|---|---|
| YOLOv9 | yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.pt | 物体検出 | ✅ | ✅ | ✅ | ✅ |
| YOLOv9-seg | yolov9c-seg.pt yolov9e-seg.pt | インスタンスセグメンテーション | ✅ | ✅ | ✅ | ✅ |
この表は、YOLOv9モデルのバリアントの詳細な概要を提供し、物体検出タスクにおける機能と、推論、検証、トレーニング、エクスポートなどの様々な運用モードとの互換性を強調しています。この包括的なサポートにより、ユーザーは幅広い物体検出シナリオでYOLOv9モデルの機能を最大限に活用できます。
注
YOLOv9モデルのトレーニングには、同サイズのYOLOv8モデルよりも多くのリソースが必要となり、時間もかかります。
引用と謝辞
リアルタイム物体検出の分野におけるYOLOv9の著者らの多大な貢献に感謝いたします。
@article{wang2024yolov9,
title={YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information},
author={Wang, Chien-Yao and Liao, Hong-Yuan Mark},
booktitle={arXiv preprint arXiv:2402.13616},
year={2024}
}
オリジナルのYOLOv9論文はarXivで公開されています。著者らはその研究成果を公開しており、コードベースはGitHubでアクセスできます。分野の進歩に貢献し、その研究をより広範なコミュニティにアクセス可能にした彼らの努力に感謝いたします。
よくある質問
YOLOv9はリアルタイム物体検出においてどのような革新を導入していますか?
YOLOv9は、Programmable Gradient Information (PGI) やGeneralized Efficient Layer Aggregation Network (GELAN) といった画期的な技術を導入しています。これらの革新は、深層ニューラルネットワークにおける情報損失の課題に対処し、高い効率性、精度、適応性を保証します。PGIはネットワーク層全体で重要なデータを保持し、GELANはパラメータ利用と計算効率を最適化します。MS COCOデータセットで新たなベンチマークを打ち立てたYOLOv9の主要な革新について詳しくはこちらをご覧ください。
YOLOv9はMS COCOデータセットにおいて、他のモデルと比較してどのような性能を発揮しますか?
YOLOv9は、より高い精度と効率性を達成することで、最先端のリアルタイム物体検出器を凌駕します。COCOデータセットにおいて、YOLOv9モデルは、計算オーバーヘッドを維持または削減しつつ、様々なサイズで優れたmAPスコアを示します。例えば、YOLOv9cはYOLOv7 AFと比較して、パラメータが42%少なく、計算負荷が21%低いにもかかわらず、同等の精度を達成します。詳細なメトリクスについては、性能比較をご覧ください。
PythonとCLIを使用してYOLOv9モデルをトレーニングするにはどうすればよいですか?
YOLOv9モデルは、pythonとCLIコマンドの両方を使用してトレーニングできます。pythonの場合、モデルをインスタンス化するには YOLO classと呼び出し train メソッド:
from ultralytics import YOLO
# Build a YOLOv9c model from pretrained weights and train
model = YOLO("yolov9c.pt")
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
CLIトレーニングの場合は、以下を実行します。
yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640
トレーニングと推論のための使用例の詳細はこちら。
軽量モデルにUltralytics YOLOv9を使用する利点は何ですか?
YOLOv9は情報損失を軽減するように設計されており、これは重要な情報を失いがちな軽量モデルにとって特に重要です。Programmable Gradient Information (PGI) と可逆関数を統合することで、YOLOv9は重要なデータ保持を保証し、モデルの精度と効率を向上させます。これにより、高性能なコンパクトモデルを必要とするアプリケーションに非常に適しています。詳細については、YOLOv9の軽量モデルへの影響に関するセクションをご覧ください。
YOLOv9はどのようなタスクとモードをサポートしていますか?
YOLOv9は、物体検出やインスタンスセグメンテーションを含む様々なタスクをサポートしています。推論、検証、トレーニング、エクスポートなどの複数の運用モードと互換性があります。この多用途性により、YOLOv9は多様なリアルタイムコンピュータビジョンアプリケーションに適応可能です。詳細については、サポートされているタスクとモードのセクションを参照してください。