YOLOv9:飛躍的に進歩した物体検出技術
YOLOv9 、Programmable Gradient Information (PGI)やGeneralized Efficient Layer Aggregation Network (GELAN)といった画期的な技術を導入し、リアルタイムの物体検出に大きな進歩をもたらしました。このモデルは、MSCOCO データセットで新たなベンチマークを設定し、効率性、精度、適応性において顕著な改善を示しています。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 ベンチマーク
YOLOv9 使ったベンチマーキング Ultralyticsでは、学習・検証したモデルのパフォーマンスを実世界のシナリオで評価します。このプロセスには以下が含まれます:
- パフォーマンス評価: モデルの速度と精度を評価します。
- エクスポート形式: 必要な標準を満たし、さまざまな環境で適切に機能することを保証するために、さまざまなエクスポート形式でモデルをテストします。
- フレームワークのサポート: Ultralytics YOLOv8内で包括的なフレームワークを提供し、これらの評価を容易にし、一貫性のある信頼性の高い結果を保証します。
ベンチマークを行うことで、モデルが管理されたテスト環境で良好に機能するだけでなく、実用的で現実世界のアプリケーションでも高いパフォーマンスを維持できることを保証できます。
見る: Ultralytics Python パッケージを使用したYOLOv9 モデルのベンチマーク方法
MSCOCO データセットでの性能
COCO データセットにおける YOLOv9 性能は、リアルタイム物体検出におけるYOLOv9 9の大きな進歩を例証するものであり、様々なモデルサイズにわたって新たなベンチマークを設定した。表1は、最先端のリアルタイム物体検出器の包括的な比較を示しており、YOLOv9優れた効率性と精度を示している。
パフォーマンス
| モデル | サイズ (ピクセル) | mAP値 50-95 | mAP 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 |
| モデル | サイズ (ピクセル) | mAPボックス 50-95 | mAPマスク 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イテレーションは、小さなものから小さなものまで多岐にわたる。 t 広範囲にわたるバリアント e モデルでは、精度mAP メトリクス)だけでなく、パラメータ数と計算量(FLOPs)の削減による効率性の向上も実証しています。この表は、YOLOv9高い精度(mAP指標)を提供できることを裏付けています。 適合率 以前のバージョンや競合モデルと比較して、計算オーバーヘッドを維持または削減しながら。
それに比べ、YOLOv9 目覚ましい成長を遂げている:
- 軽量モデル:YOLOv9sは、パラメータ効率と計算負荷でYOLO MS-Sを上回り、AP0.4~0.6%の改善を達成した。
- 中~大規模モデル: YOLOv9mとYOLOv9eは、モデルの複雑さと検出性能のバランスにおいて著しい進歩を示しており、精度が向上しているにもかかわらず、パラメータと計算量を大幅に削減しています。
特にYOLOv9cモデルは、アーキテクチャの最適化の有効性を浮き彫りにしている。このモデルは、YOLOv7 AFよりも42%少ないパラメータと21%少ない計算量で動作しながら、同等の精度を達成しており、YOLOv9大幅な効率向上を実証しています。さらに、YOLOv9eモデルは、YOLOv8xモデルよりも15%少ないパラメータと25%少ない計算量で、大規模モデルの新しい基準を打ち立てました。 YOLOv8xAP1.7%改善した。
これらの結果は、YOLOv9モデル設計における戦略的な進歩を示すものであり、リアルタイムの物体検出タスクに不可欠な精度を損なうことなく効率性を高めたことを強調しています。このモデルは、性能指標の限界を押し広げるだけでなく、計算効率の重要性も強調しており、コンピュータビジョンの分野における極めて重要な開発となっています。
結論
YOLOv9 、リアルタイム物体検出における極めて重要な発展であり、効率性、精度、適応性の面で大幅な改善をもたらします。PGIやGELANのような革新的なソリューションを通じて重要な課題に取り組むことで、YOLOv9 この分野における将来の研究と応用に新たな先例を打ち立てた。AIコミュニティが進化を続ける中、YOLOv9 、技術の進歩を促進するコラボレーションとイノベーションの力を証明するものである。
使用例
この例では、簡単なYOLOv9 トレーニングと推論の例を提供します。これらのモードや他のモードに関する完全なドキュメントは、Predict,Train,ValandExportdocs ページを参照してください。
例
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 | 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はパラメーターの利用と計算効率を最適化します。MSCOCO データセットで新たなベンチマークを設定したYOLOv9コアイノベーションの詳細については、こちらをご覧ください。
MSのCOCO データセットにおけるYOLOv9 パフォーマンスは、他のモデルと比較してどうなのか?
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 、情報損失を軽減するように設計されています。これは、重要な情報が失われがちな軽量モデルにとって特に重要です。プログラマブル勾配情報(PGI)と可逆関数を統合することで、YOLOv9 本質的なデータ保持を保証し、モデルの精度と効率を高めます。そのため、コンパクトで高性能なモデルを必要とするアプリケーションに非常に適しています。詳しくは、YOLOv9軽量モデルに与える影響のセクションをご覧ください。
YOLOv9 どのようなタスクやモードをサポートしていますか?
YOLOv9 、オブジェクト検出やインスタンス分割を含む様々なタスクをサポートする。推論、検証、トレーニング、エクスポートなど、複数の動作モードに対応している。この汎用性により、YOLOv9 多様なリアルタイム・コンピューター・ビジョン・アプリケーションに適応できる。詳細については、サポートされるタスクとモードのセクションを参照してください。