Link to this sectionYOLOv9: 物体検出技術における飛躍的な進歩#
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

Link to this sectionYOLOv9の概要#
最適なリアルタイム物体検出を追求する中で、YOLOv9はディープニューラルネットワークに固有の情報損失という課題を克服するための革新的なアプローチで際立っています。PGIと柔軟なGELANアーキテクチャを統合することで、YOLOv9はモデルの学習能力を強化するだけでなく、検出プロセス全体を通じて重要な情報を維持し、卓越した精度とパフォーマンスを達成しています。
Link to this sectionYOLOv9の主要な革新技術#
YOLOv9の進歩は、ディープニューラルネットワークにおける情報損失という課題に対処することに深く根ざしています。その設計の中心となるのが情報ボトルネック原理と、可逆関数(Reversible Functions)の革新的な活用であり、これによってYOLOv9は高い効率性と精度を維持しています。
Link to this section情報ボトルネック原理#
情報ボトルネック原理は、ディープラーニングにおける根本的な課題を明らかにしています。データがネットワークの連続する層を通過するにつれて、情報が損失する可能性が高まるというものです。この現象は数式で以下のように表現されます:
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) を実装しました。これはネットワークの深さ全体で不可欠なデータを保持するのに役立ち、より信頼性の高い勾配生成を確実にし、結果としてモデルの収束とパフォーマンスを向上させます。
Link to this section可逆関数#
可逆関数の概念もYOLOv9の設計の礎の一つです。関数は、情報損失なしに反転可能である場合、可逆であるとみなされます。これは以下のように表現されます:
X = v_zeta(r_psi(X))ここで psi と zeta はそれぞれ可逆関数とその逆関数のパラメータです。この特性はディープラーニングのアーキテクチャにおいて、ネットワークが完全な情報の流れを維持し、モデルのパラメータをより正確に更新できるようにするために不可欠です。YOLOv9は、特に深い層における情報劣化のリスクを軽減し、物体検出タスクにとって重要なデータを確実に保持するため、アーキテクチャ内に可逆関数を組み込んでいます。
Link to this section軽量モデルへの影響#
情報損失への対処は、パラメータ数が少なく、フィードフォワードプロセス中に重要な情報を損失しやすい軽量モデルにとって特に不可欠です。YOLOv9のアーキテクチャは、PGIと可逆関数の使用を通じて、軽量なモデルであっても正確な物体検出に必要な不可欠な情報を維持し、効果的に活用できることを保証します。
Link to this sectionProgrammable Gradient Information (PGI)#
PGIは情報ボトルネック問題に対処するためにYOLOv9で導入された新しい概念であり、深いネットワーク層全体で重要なデータを確実に保存します。これにより、信頼性の高い勾配生成が可能になり、正確なモデル更新が促進され、全体的な検出パフォーマンスが向上します。
Link to this sectionGeneralized Efficient Layer Aggregation Network (GELAN)#
GELANは戦略的なアーキテクチャの進歩を表しており、YOLOv9が優れたパラメータ利用率と計算効率を達成することを可能にしています。その設計により、さまざまな計算ブロックを柔軟に統合できるため、速度や精度を犠牲にすることなく幅広いアプリケーションに適応できます。

Link to this sectionYOLOv9ベンチマーク#
YOLOv9におけるベンチマークは、Ultralyticsを使用して、トレーニングおよび検証済みのモデルのパフォーマンスを実際のシナリオで評価することです。このプロセスには以下が含まれます。
- パフォーマンス評価: モデルの速度と精度を評価します。
- エクスポートフォーマット: さまざまなエクスポートフォーマットでモデルをテストし、必要な基準を満たし、多様な環境で適切に動作することを確認します。
- フレームワークサポート: Ultralytics YOLOv8内で包括的なフレームワークを提供し、これらの評価を促進し、一貫した信頼性の高い結果を保証します。
ベンチマークを行うことで、モデルが制御されたテスト環境だけでなく、実用的な現実世界のアプリケーションでも高いパフォーマンスを維持することを確認できます。
Watch: How to Benchmark the YOLOv9 Model Using the Ultralytics Python Package
Link to this sectionMS COCOデータセットにおけるパフォーマンス#
COCOデータセットにおけるYOLOv9のパフォーマンスは、リアルタイム物体検出におけるその重大な進歩を証明しており、さまざまなモデルサイズで新しいベンチマークを打ち立てています。表1は、最先端のリアルタイム物体検出器を包括的に比較したものであり、YOLOv9の優れた効率性と精度を示しています。
最小の t バリアントから最大規模の e モデルに至るまで、YOLOv9のイテレーションは、精度(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の戦略的な進歩を示しており、リアルタイム物体検出タスクに不可欠な精度を損なうことなく効率性を向上させていることを強調しています。このモデルはパフォーマンスメトリクスの限界を押し広げるだけでなく、計算効率の重要性を重視しており、コンピュータビジョンの分野における極めて重要な開発成果となっています。
Link to this section結論#
2024年2月にリリースされたYOLOv9は、リアルタイム物体検出における極めて重要な開発成果であり、効率性、精度、適応性の面で大幅な向上を提供しました。PGIやGELANといった革新的なソリューションを通じて重要な課題に対処することにより、YOLOv9はリリース当時、新しいベンチマークを打ち立てました。YOLO11やYOLO26のような新しいモデルがリリースされ、追加の改善が加えられていますが、YOLOv9のアーキテクチャ上の革新は、引き続きこの分野に影響を与え続けています。
Link to this section使用例#
この例では、簡単なYOLOv9の学習と推論の例を紹介します。これらやその他のモードに関する詳細なドキュメントについては、Predict、Train、Val、および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")Link to this sectionサポートされるタスクとモード#
YOLOv9シリーズは、高性能な物体検出向けにそれぞれ最適化されたモデルを提供します。これらのモデルはさまざまな計算ニーズと精度の要件に対応しており、幅広いアプリケーションで汎用的に使用できます。
| モデル | ファイル名 | タスク | 推論 | バリデーション | トレーニング | エクスポート |
|---|---|---|---|---|---|---|
| YOLOv9 | yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.pt | オブジェクト検出 | ✅ | ✅ | ✅ | ✅ |
| YOLOv9-seg | yolov9c-seg.pt yolov9e-seg.pt | インスタンスセグメンテーション | ✅ | ✅ | ✅ | ✅ |
この表は、YOLOv9モデルバリアントの詳細な概要を提供しており、物体検出タスクにおける機能や、推論、検証、学習、エクスポートなどのさまざまな運用モードとの互換性を強調しています。この包括的なサポートにより、ユーザーは幅広い物体検出シナリオにおいてYOLOv9モデルの機能を最大限に活用できます。
YOLOv9モデルの学習には、同サイズのYOLOv8モデルよりも多くのリソースが必要であり、かつ時間がかかります。
Link to this section引用と謝辞#
リアルタイム物体検出の分野に対する多大な貢献に対し、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からアクセス可能です。私たちは、分野の発展に寄与し、研究成果をより広いコミュニティで利用可能にした彼らの取り組みに感謝いたします。
Link to this sectionよくある質問 (FAQ)#
Link to this sectionYOLOv9はリアルタイム物体検出のためにどのような革新を導入していますか?#
YOLOv9は、Programmable Gradient Information (PGI) やGeneralized Efficient Layer Aggregation Network (GELAN) といった画期的な手法を導入しています。これらの革新は、ディープニューラルネットワークにおける情報損失の課題に対処し、高い効率性、精度、適応性を保証します。PGIはネットワーク層全体で重要なデータを保持し、GELANはパラメータ利用率と計算効率を最適化します。MS COCOデータセットで新しいベンチマークを打ち立てたYOLOv9の主要な革新技術について詳しく学びましょう。
Link to this sectionYOLOv9は他のモデルと比較してMS COCOデータセットでどのようなパフォーマンスを示しますか?#
YOLOv9は、より高い精度と効率を達成することで、最先端のリアルタイム物体検出器を上回ります。COCOデータセットにおいて、YOLOv9モデルは、計算オーバーヘッドを維持または削減しながら、さまざまなサイズで優れたmAPスコアを示します。例えば、YOLOv9cは、YOLOv7 AFと比較してパラメータ数が42%少なく、計算需要が21%少ないにもかかわらず、同等の精度を達成しています。詳細なメトリクスについては、パフォーマンス比較をご覧ください。
Link to this sectionPythonおよび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学習と推論の使用例について詳しく学びましょう。
Link to this section軽量モデルにUltralytics YOLOv9を使用する利点は何ですか?#
YOLOv9は情報損失を軽減するように設計されており、これは多くの場合、重要な情報を失いやすい軽量モデルにとって特に重要です。Programmable Gradient Information (PGI) と可逆関数を統合することで、YOLOv9は不可欠なデータの保持を確実にし、モデルの精度と効率を向上させます。これにより、高性能なコンパクトモデルを必要とするアプリケーションに非常に適しています。詳細については、YOLOv9の軽量モデルへの影響に関するセクションをご覧ください。
Link to this sectionYOLOv9はどのようなタスクとモードをサポートしていますか?#
YOLOv9は、物体検出やインスタンスセグメンテーションを含むさまざまなタスクをサポートしています。推論、検証、学習、エクスポートなど、複数の運用モードと互換性があります。この汎用性により、YOLOv9は多様なリアルタイムコンピュータビジョンアプリケーションに適応できます。詳細については、サポートされているタスクとモードのセクションを参照してください。