Skip to main content

YOLOv9: 物体検出 テクノロジーの飛躍的進歩

YOLOv9は、リアルタイム物体検出における重要な進歩を示すモデルであり、Programmable Gradient Information (PGI) や Generalized Efficient Layer Aggregation Network (GELAN) といった画期的な技術を導入しています。このモデルは効率性、精度、適応性の面で顕著な改善を示しており、MS COCOデータセットにおいて新たなベンチマークを確立しました。YOLOv9プロジェクトは、独立したオープンソースチームによって開発されましたが、Ultralytics YOLOv5が提供する堅牢なコードベースに基づいて構築されており、AI研究コミュニティの協力的な精神を体現しています。



Watch: YOLOv9 Training on Custom Data using Ultralytics | Industrial Package Dataset

YOLOv9の性能比較

YOLOv9の紹介

最適なリアルタイム物体検出の追求において、YOLOv9は深層ニューラルネットワークに固有の情報損失の問題を克服するための革新的なアプローチで際立っています。PGIと多用途なGELANアーキテクチャを統合することで、YOLOv9はモデルの学習能力を向上させるだけでなく、検出プロセス全体を通じて重要な情報を保持し、卓越した精度と性能を実現します。

YOLOv9の主要な革新点

YOLOv9の進化は、深層ニューラルネットワークにおける情報損失という課題に対処することに深く根ざしています。設計の中心には、Information Bottleneck Principleと革新的なReversible Functionsの活用があり、これによりYOLOv9は高い効率性と精度を維持しています。

Information Bottleneck Principle

Information Bottleneck Principleは、深層学習における根本的な課題を明らかにしています。データがネットワークの連続する層を通過するにつれて、情報損失の可能性が高まるという現象です。これは数学的に以下のように表現されます:

I(X, X) >= I(X, f_theta(X)) >= I(X, g_phi(f_theta(X)))

ここでIは相互情報量を表し、fgはそれぞれパラメータthetaphiを持つ変換関数を表します。YOLOv9は、Programmable Gradient Information (PGI) を実装することでこの課題に対処しており、ネットワークの深さ全体にわたって不可欠なデータを保持し、より信頼性の高い勾配生成を実現することで、モデルの収束と性能を向上させています。

Reversible Functions

Reversible Functionsの概念も、YOLOv9の設計における重要な柱です。ある関数は、情報損失なしに反転できる場合、可逆であるとみなされます。これは以下のように表現されます:

X = v_zeta(r_psi(X))

ここでpsizetaはそれぞれ可逆関数とその逆関数のパラメータです。この特性は、ディープラーニングアーキテクチャにとって不可欠であり、ネットワークが完全な情報の流れを維持できるため、モデルパラメータのより正確な更新が可能になります。YOLOv9はそのアーキテクチャ内に可逆関数を組み込むことで、特に深層において情報が劣化するリスクを軽減し、物体検出タスクにとって重要なデータを確実に保持します。

軽量モデルへの影響

情報損失への対処は、特に軽量モデルにとって不可欠です。軽量モデルは多くの場合パラメータ不足であり、フィードフォワードプロセス中に重要な情報を失いやすいためです。YOLOv9のアーキテクチャは、PGIと可逆関数の使用を通じて、効率化されたモデルであっても、正確な物体検出に必要な本質的な情報が保持され、効果的に活用されることを保証します。

Programmable Gradient Information (PGI)

PGIは、情報ボトルネックの問題に対処するためにYOLOv9で導入された新しい概念であり、深層ネットワーク層全体で本質的なデータが確実に保持されるようにします。これにより、信頼性の高い勾配生成が可能になり、正確なモデル更新が促進され、全体的な検出性能が向上します。

Generalized Efficient Layer Aggregation Network (GELAN)

GELANは戦略的なアーキテクチャの進歩を表しており、YOLOv9が優れたパラメータ利用率と計算効率を達成することを可能にしています。その設計により、多様な計算ブロックを柔軟に統合できるため、速度や精度を犠牲にすることなく、幅広いアプリケーションにYOLOv9を適合させることが可能です。

YOLOv9のアーキテクチャ比較

YOLOv9のベンチマーク

Ultralytics を使用したYOLOv9のベンチマーク評価には、トレーニング済みおよび検証済みのモデルの実際のシナリオでのパフォーマンスを評価することが含まれます。このプロセスには以下が含まれます:

  • パフォーマンス評価: モデルの速度と精度を評価します。
  • エクスポートフォーマット: 必要な基準を満たし、さまざまな環境で適切に動作することを確認するために、異なるエクスポートフォーマットでモデルをテストします。
  • フレームワークのサポート: Ultralytics YOLOv8内で包括的なフレームワークを提供し、これらの評価を促進して一貫性のある信頼できる結果を保証します。

ベンチマークを行うことで、モデルが制御されたテスト環境だけでなく、実践的で現実的なアプリケーションでも高いパフォーマンスを維持することを確認できます。



Watch: How to Benchmark the YOLOv9 Model Using the Ultralytics Python Package

MS COCOデータセットでのパフォーマンス

YOLOv9のCOCOデータセットにおけるパフォーマンスは、リアルタイム物体検出における重要な進歩を実証しており、さまざまなモデルサイズで新しいベンチマークを確立しています。表1は、最先端のリアルタイム物体検出器の包括的な比較を示しており、YOLOv9の優れた効率性と精度.

パフォーマンス
モデルサイズ
(ピクセル)
mAPval
50-95
mAPval
50
パラメータ
(M)
FLOPs
(B)
YOLOv9t64038.353.12.07.7
YOLOv9s64046.863.47.226.7
YOLOv9m64051.468.120.176.8
YOLOv9c64053.070.225.5102.8
YOLOv9e64055.672.858.1192.5

YOLOv9のイテレーションは、最小のtバリアントから大規模なeモデルまで、精度(mAPメトリクス)だけでなく、パラメータ数と計算負荷(FLOPs)の削減による効率性においても改善を示しています。この表は、以前のバージョンや競合モデルと比較して、計算オーバーヘッドを維持または削減しながら、高いprecisionを実現する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は、リアルタイム物体検出における極めて重要な発展を象徴するものであり、効率性、精度、適応性の面で大幅な向上を提供しました。PGIやGELANのような革新的な解決策を通じて重要な課題に対処することにより、YOLOv9はリリース時に新しいベンチマークを確立しました。YOLO11YOLO26その後、さらなる改善を加えた新しいモデルがリリースされていますが、YOLOv9のアーキテクチャ上の革新は、引き続きこの分野に影響を与え続けています。

使用例

この例では、簡単なYOLOv9のトレーニングおよび推論の例を紹介します。これらおよびその他のモードに関する完全なドキュメントについては、予測, トレーニング, 検証エクスポートドキュメントページを参照してください。

PyTorch プリトレイン*.ptモデルや設定*.yamlファイルをYOLO()クラスを参照して、Pythonでモデルインスタンスを作成してください:

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")

サポートされているタスクとモード

YOLOv9シリーズは、高性能な物体検出向けに最適化されたさまざまなモデルを提供しています。これらのモデルは多様な計算ニーズと精度要件に対応しており、幅広いアプリケーションに対して多用途に活用できます。

モデルファイル名タスクInferenceバリデーショントレーニングエクスポート
YOLOv9yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.pt物体検出
YOLOv9-segyolov9c-seg.pt yolov9e-seg.ptインスタンスセグメンテーション

この表は、YOLOv9モデルバリアントの詳細な概要を提供し、物体検出タスクにおける機能と、Inference, バリデーション, トレーニング、およびエクスポートなどのさまざまな動作モードとの互換性を強調しています。この包括的なサポートにより、ユーザーは幅広い物体検出シナリオでYOLOv9モデルの機能を完全に活用できます。

注意

YOLOv9モデルのトレーニングには、より多くのリソースが必要ですそして、同等サイズのYOLOv8 model.

引用と謝辞

リアルタイム物体検出の分野に対する多大な貢献に対し、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からアクセス可能です。分野の発展に寄与し、研究成果をより広いコミュニティで利用可能にしてくれた彼らの努力に感謝します。

共に Ultralytics YOLO エコシステムのトラッキング機能を強化しましょう 🙏!

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モデルをトレーニングする方法は?

PythonとCLIコマンドの両方を使用してYOLOv9モデルをトレーニングできます。Pythonの場合は、YOLOクラスを使用してモデルをインスタンス化し、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は多様なリアルタイムのコンピュータビジョンアプリケーションに適応可能です。サポートされているタスクとモード セクションを参照してください。

コメント