YOLO Vision 2026:

YOLOv9:Object Detectionテクノロジーにおける飛躍的な進歩#

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 performance comparison

YOLOv9の概要#

最適なリアルタイム物体検出の追求において、YOLOv9は、深層neural networksに固有の情報損失の課題を克服するための革新的なアプローチで際立っています。PGIと汎用性の高いGELANアーキテクチャを統合することにより、YOLOv9はモデルの学習能力を向上させるだけでなく、検出プロセス全体を通じて重要情報の維持を確実にし、それにより卓越した精度とパフォーマンスを実現します。

YOLOv9の主要な革新技術#

YOLOv9の進歩は、ディープニューラルネットワークにおける情報損失という課題に対処することに深く根ざしています。その設計の中心となるのが情報ボトルネック原理と、可逆関数(Reversible Functions)の革新的な活用であり、これによって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)を実装することでこの課題に対処し、より信頼性の高い勾配生成、ひいてはより優れたモデルの収束とパフォーマンスを確保します。

可逆関数#

可逆関数の概念もYOLOv9の設計の礎の一つです。関数は、情報損失なしに反転可能である場合、可逆であるとみなされます。これは以下のように表現されます:

X = v_zeta(r_psi(X))

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

軽量モデルへの影響#

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

Programmable Gradient Information (PGI)#

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

Generalized Efficient Layer Aggregation Network (GELAN)#

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

YOLOv9 architecture comparison

YOLOv9ベンチマーク#

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

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

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



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

MS COCOデータセットにおけるパフォーマンス#

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

性能
モデルサイズ
(ピクセル)
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

極小のtバリアントから大規模なeモデルに及ぶYOLOv9のイテレーションは、精度(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の戦略的な進歩を示しています。このモデルは、パフォーマンス指標の限界を押し広げるだけでなく、計算効率の重要性も強調しており、computer visionの分野において極めて重要な開発となっています。

結論#

2024年2にリリースされたYOLOv9は、リアルタイム物体検出における極めて重要な開発であり、効率性、精度、適応性の面で大幅な改善を提供しました。PGIやGELANなどの革新的なソリューションを通じて重要な課題に対処することにより、YOLOv9はリリース当時新しいベンチマークを確立しました。YOLO11YOLO26のような新しいモデルがその後追加の改善とともにリリースされていますが、YOLOv9のアーキテクチャの革新は引き続きこの分野に影響を与え続けています。

使用例#

この例では、簡単なYOLOv9のトレーニングと推論の例を提供します。これらおよびその他のmodesに関する完全なドキュメントについては、PredictTrainVal、およびExportのドキュメントページを参照してください。

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シリーズは、それぞれが高性能なObject Detection向けに最適化されたさまざまなモデルを提供しています。これらのモデルは、さまざまな計算ニーズや精度の要件に対応し、幅広いアプリケーションに対応できるように汎用性を持たせています。

モデルファイル名タスクトレーニングバリデーション推論エクスポート
YOLOv9yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.ptObject Detection
YOLOv9-segyolov9c-seg.pt yolov9e-seg.ptInstance Segmentation

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

注意

YOLOv9モデルのトレーニングには、同等サイズのYOLOv8 modelよりも多くのリソースが必要であり、時間も長くかかります。

引用と謝辞#

リアルタイム物体検出の分野に対する多大な貢献に対し、YOLOv9の著者に感謝の意を表します:

引用
@inproceedings{wang2024yolov9,
  title={YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information},
  author={Wang, Chien-Yao and Yeh, I-Hau and Liao, Hong-Yuan Mark},
  booktitle={Computer Vision -- ECCV 2024},
  pages={1--21},
  year={2024},
  organization={Springer Nature Switzerland}
}

公式のYOLOv9論文はSpringer ECCV 2024 proceedingsに掲載され、プレプリントがarXivに公開されました。著者らはその作業を一般に公開しており、コードベースはGitHubからアクセスできます。分野を発展させ、その作業をより広いコミュニティにアクセス可能にしてくれた彼らの努力に感謝します。

よくある質問 (FAQ)#

  • YOLOv9は、Programmable Gradient Information (PGI)やGeneralized Efficient Layer Aggregation Network (GELAN)などの画期的なテクニックを導入しています。これらの革新は、深層ニューラルネットワークにおける情報損失の課題に対処し、高い効率性、精度、適応性を確保します。PGIはネットワーク層全体で不可欠なデータを保存し、GELANはパラメータの利用と計算効率を最適化します。MS COCOデータセットで新しいベンチマークを確立したYOLOv9's core innovationsの詳細をご覧ください。

  • YOLOv9は、より高い精度と効率性を達成することで、最先端のリアルタイム物体検出器を上回ります。COCO datasetにおいて、YOLOv9モデルは計算オーバーヘッドを維持または削減しながら、さまざまなサイズにわたって優れたmAPスコアを示します。たとえば、YOLOv9cは、YOLOv7 AFよりも42%少ないパラメータと21%少ない計算需要で同等の精度を達成します。詳細なメトリックについてはperformance comparisonsをご覧ください。

  • 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

    トレーニングと推論のusage examplesの詳細をご覧ください。

  • YOLOv9は情報損失を軽減するように設計されており、これは重要な情報を失いがちな軽量モデルにとって特に重要です。Programmable Gradient Information (PGI)と可逆関数を統合することにより、YOLOv9は不可欠なデータの保持を確実にし、モデルの精度と効率性を向上させます。これにより、高いパフォーマンスを持つコンパクトなモデルを必要とするアプリケーションに非常に適しています。詳細については、YOLOv9's impact on lightweight modelsのセクションをご覧ください。

  • YOLOv9は、物体検出やinstance segmentationを含むさまざまなタスクをサポートしています。推論、検証、トレーニング、エクスポートなどの複数の操作モードと互換性があります。この汎用性により、YOLOv9は多様なリアルタイムコンピュータビジョンアプリケーションに適応できます。詳細については、supported tasks and modesのセクションを参照してください。

コメント