YOLOv9: オブジェクト検出技術における飛躍
YOLOv9は、リアルタイム物体検出における大きな進歩を示しており、Programmable Gradient Information (PGI) や Generalized Efficient Layer Aggregation Network (GELAN) などの画期的な技術を導入しています。このモデルは、効率、精度、適応性において目覚ましい向上を示し、MS COCOデータセットで新たなベンチマークを確立しています。YOLOv9プロジェクトは、別のオープンソースチームによって開発されましたが、Ultralytics YOLOv5によって提供された堅牢なコードベースを基盤としており、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)を実装することでこの課題に対処し、ネットワークの深さ全体にわたって重要なデータを保持し、より信頼性の高い勾配生成を保証し、その結果、モデルの収束とパフォーマンスを向上させます。
可逆関数
可逆関数の概念は、YOLOv9の設計におけるもう1つの基礎です。関数が情報の損失なしに反転できる場合、それは可逆的であると見なされます。これは次のように表されます。
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のモデル設計における戦略的進歩を示しています。このモデルは、パフォーマンス指標の限界を押し広げるだけでなく、計算効率の重要性を強調しており、コンピュータービジョンの分野における極めて重要な開発となっています。
結論
YOLOv9は、リアルタイム物体検出における極めて重要な開発を表しており、効率、精度、適応性において大幅な改善を提供します。PGIやGELANなどの革新的なソリューションを通じて重要な課題に対処することで、YOLOv9は将来の研究とこの分野での応用に対する新たな先例を確立します。AIコミュニティが進化し続けるにつれて、YOLOv9は、技術の進歩を推進するコラボレーションとイノベーションの力の証となります。
使用例
この例では、シンプルな YOLOv9 のトレーニングと推論の例を紹介します。これらおよびその他のモードに関する完全なドキュメントについては、Predict、Train、Val、Exportのドキュメントページを参照してください。
例
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シリーズは、高性能なObject Detection向けに最適化されたさまざまなモデルを提供します。これらのモデルは、さまざまな計算ニーズと精度の要件に対応しており、幅広いアプリケーションに汎用性があります。
モデル | ファイル名 | タスク | 推論 | 検証 | 学習 | エクスポート |
---|---|---|---|---|---|---|
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はパラメータの利用と計算効率を最適化します。YOLOv9の中核となる技術革新について、MS COCOデータセットで新たなベンチマークを確立した詳細をご覧ください。
YOLOv9は、MS COCOデータセット上で、他のモデルと比較してどのようなパフォーマンスを発揮しますか?
YOLOv9は、より高い精度と効率を達成することにより、最先端のリアルタイム物体検出器を凌駕します。COCOデータセットでは、YOLOv9モデルは、計算オーバーヘッドを維持または削減しながら、さまざまなサイズで優れたmAPスコアを示します。たとえば、YOLOv9cは、YOLOv7 AFよりも42%少ないパラメータと21%少ない計算量で、同等の精度を達成します。パフォーマンスの比較で詳細な指標をご覧ください。
pythonとCLIを使用してYOLOv9モデルをトレーニングするにはどうすればよいですか?
pythonとCLIコマンドの両方を使用して、YOLOv9モデルをトレーニングできます。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は多様なリアルタイムコンピュータビジョンアプリケーションに適応できます。詳細については、サポートされているタスクとモードのセクションを参照してください。