YOLOv9:飛躍的に進歩した物体検出技術
YOLOv9は、Programmable Gradient Information (PGI)やGeneralized Efficient Layer Aggregation Network (GELAN)といった画期的な技術を導入し、リアルタイムの物体検出に大きな進歩をもたらしました。このモデルは、MS COCOデータセットで新たなベンチマークを設定し、効率性、精度、適応性において顕著な改善を示しています。YOLOv9プロジェクトは、独立したオープンソース・チームによって開発されていますが、次のような堅牢なコードベースに基づいています。 UltralyticsYOLOv5によって提供された堅牢なコードベースに基づいており、AI研究コミュニティの協調精神を示している。
見るんだ: Ultralytics |工業用パッケージデータセットを使用したカスタムデータでのYOLOv9トレーニング
YOLOv9の紹介
最適なリアルタイムの物体検出を追求する中で、YOLOv9は、ディープニューラルネットワークに特有の情報損失の課題を克服する革新的なアプローチで際立っています。PGIと汎用性の高いGELANアーキテクチャを統合することで、YOLOv9はモデルの学習能力を高めるだけでなく、検出プロセス全体を通して重要な情報を確実に保持し、卓越した精度とパフォーマンスを実現します。
YOLOv9のコア・イノベーション
YOLOv9の進歩は、ディープ・ニューラル・ネットワークにおける情報損失がもたらす課題に対処することに深く根ざしている。情報ボトルネックの原理と革新的な可逆関数の使用が設計の中心となっており、YOLOv9が高い効率と精度を維持することを保証している。
情報のボトルネックの原理
情報ボトルネックの原理は、ディープラーニングにおける基本的な課題を明らかにする。データがネットワークの連続したレイヤーを通過するにつれて、情報損失の可能性が増大する。この現象は数学的には次のように表される:
どこ I
は相互情報を表し f
そして g
パラメータを持つ変換関数を表す theta
そして phi
それぞれYOLOv9は、プログラマブル勾配情報(PGI)を実装することで、この課題に対処している。PGIは、ネットワークの深さ全体にわたって重要なデータを保持するのに役立ち、より信頼性の高い勾配生成を保証し、その結果、モデルの収束とパフォーマンスが向上する。
可逆関数
可逆関数の概念は、YOLOv9の設計のもう一つの基礎である。関数が可逆的であるとみなされるのは、情報を失うことなく反転できる場合である:
と psi
そして zeta
をそれぞれ可逆関数と逆関数のパラメータとする。この性質は ディープラーニング アーキテクチャでは、ネットワークが完全な情報の流れを保持できるため、モデルのパラメータをより正確に更新できる。YOLOv9は、特に深いレイヤーにおける情報劣化のリスクを軽減するため、アーキテクチャに可逆関数を組み込んでおり、物体検出タスクにとって重要なデータの保存を保証している。
軽量モデルへの影響
情報損失への対処は、軽量モデルにとって特に重要です。軽量モデルはパラメータ化が不十分であることが多く、フィードフォワード処理中に重要な情報が失われがちです。YOLOv9のアーキテクチャーは、PGIと可逆関数の使用により、簡素化されたモデルであっても、正確な物体検出に必要な必須情報が保持され、効果的に利用されることを保証します。
プログラマブル・グラディエント・インフォメーション(PGI)
PGIは、情報のボトルネック問題に対処するためにYOLOv9に導入された新しい概念であり、深いネットワーク層にわたって必要不可欠なデータの保存を保証する。これにより、信頼性の高い勾配の生成が可能になり、正確なモデルの更新が容易になり、全体的な検出性能が向上する。
一般化された効率的なレイヤ集約ネットワーク(GELAN)
GELANは、YOLOv9が優れたパラメータ利用率と計算効率を達成することを可能にする、戦略的なアーキテクチャの進歩を表しています。その設計により、さまざまな計算ブロックを柔軟に統合できるため、YOLOv9は速度や精度を犠牲にすることなく、幅広いアプリケーションに適応できる。
YOLOv9ベンチマーク
を使用したYOLOv9のベンチマーキングでは、学習させたモデルの性能を実際のシナリオで評価します。 Ultralyticsを使用したベンチマークでは、学習・検証したモデルのパフォーマンスを実世界のシナリオで評価します。このプロセスには以下が含まれます:
- パフォーマンス評価:モデルのスピードと精度を評価する。
- エクスポート形式:さまざまなエクスポートフォーマットでモデルをテストし、必要な標準を満たし、さまざまな環境でうまく機能することを確認する。
- フレームワークのサポート: Ultralytics YOLOv8 内に包括的なフレームワークを提供することで、これらの評価を容易にし、一貫した信頼できる結果を保証する。
ベンチマークを行うことで、モデルが管理されたテスト環境で優れた性能を発揮するだけでなく、実用的な実世界のアプリケーションでも高い性能を維持できることを確認できます。
見るんだ: Ultralytics Python パッケージを使用したYOLOv9モデルのベンチマーク方法
MS COCOデータセットでの性能
COCOデータセットにおけるYOLOv9の性能は、リアルタイム物体検出におけるYOLOv9の大きな進歩を例証するものであり、様々なモデルサイズにわたって新たなベンチマークを設定した。表1は、最先端のリアルタイム物体検出器の包括的な比較を示しており、YOLOv9の優れた効率性と精度を示している。
パフォーマンス
モデル | サイズ (ピクセル) |
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のイテレーションは、小さなものから小さなものまで多岐にわたる。 t
広範な e
モデルでは、精度(mAPメトリクス)だけでなく、パラメータ数と計算量(FLOPs)の削減による効率性の向上も実証しています。この表は、YOLOv9が高い精度(mAP指標)を提供できることを裏付けています。 精度 を維持または削減しながら、以前のバージョンや競合モデルと比較して計算オーバーヘッドを削減することができます。
それに比べ、YOLOv9は目覚ましい成長を遂げている:
- 軽量モデル:YOLOv9sは、パラメータ効率と計算負荷でYOLO MS-Sを上回り、APでは0.4〜0.6%の改善を達成した。
- 中規模から大規模モデルYOLOv9mとYOLOv9eは、モデルの複雑さと検出性能のトレードオフのバランスにおいて顕著な進歩を示しており、精度の向上を背景に、パラメータと計算の大幅な削減を実現している。
特にYOLOv9cモデルは、アーキテクチャの最適化の有効性を浮き彫りにしている。このモデルは、YOLOv7 AFよりも42%少ないパラメータと21%少ない計算量で動作しながら、同等の精度を達成しており、YOLOv9の大幅な効率向上を実証しています。さらに、YOLOv9eモデルは、YOLOv7AFよりも15%少ないパラメータと25%少ない計算量で、大規模モデルの新しい基準を打ち立てました。 YOLOv8xさらに、YOLOv9eモデルは、APの1.7%向上とともに、パラメータを15%削減し、計算量を25%削減することで、大規模モデルの新しい基準を打ち立てた。
これらの結果は、YOLOv9のモデル設計における戦略的な進歩を示すものであり、リアルタイムの物体検出タスクに不可欠な精度を損なうことなく効率性を高めたことを強調しています。このモデルは、性能指標の限界を押し広げるだけでなく、計算効率の重要性も強調しており、コンピュータビジョンの分野における極めて重要な開発となっています。
結論
YOLOv9は、リアルタイム物体検出における極めて重要な発展であり、効率性、精度、適応性の面で大幅な改善をもたらします。PGIやGELANのような革新的なソリューションを通じて重要な課題に取り組むことで、YOLOv9はこの分野における将来の研究と応用に新たな先例を打ち立てた。AIコミュニティが進化を続ける中、YOLOv9は、技術の進歩を促進するコラボレーションとイノベーションの力を証明するものである。
使用例
この例では、簡単なYOLOv9のトレーニングと推論の例を提供します。これらのモードや他のモードに関する完全なドキュメントは、Predict,Train,ValandExportdocsページを参照してください。
例
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")
CLI コマンドでモデルを直接実行できる:
サポートされるタスクとモード
YOLOv9シリーズには、高性能な物体検出用に最適化された様々なモデルがあります。これらのモデルは、さまざまな計算ニーズや精度要件に対応し、幅広いアプリケーションに対応します。
モデル | ファイル名 | タスク | 推論 | バリデーション | トレーニング | 輸出 |
---|---|---|---|---|---|---|
YOLOv9 | yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.pt |
物体検出 | ✅ | ✅ | ✅ | ✅ |
YOLOv9セグ | yolov9c-seg.pt yolov9e-seg.pt |
インスタンスのセグメンテーション | ✅ | ✅ | ✅ | ✅ |
この表は、YOLOv9モデルバリアントの詳細な概要を示しており、物体検出タスクにおけるそれぞれの機能と、推論、検証、トレーニング、エクスポートといった様々な操作モードとの互換性を強調しています。この包括的なサポートにより、ユーザーは幅広い物体検出シナリオでYOLOv9モデルの能力をフルに活用することができます。
注
YOLOv9モデルのトレーニングには、同サイズのモデル(YOLOv8 )よりも 多くのリソースが必要となり、時間がかかる。
引用と謝辞
リアルタイム物体検出分野におけるYOLOv9作者の多大な貢献に感謝したい:
オリジナルのYOLOv9論文はarXivに掲載されている。著者らは彼らの研究を公開し、コードベースはGitHubでアクセスできる。我々は、この分野を発展させ、より広いコミュニティーが彼らの研究にアクセスできるようにした彼らの努力に感謝している。
よくあるご質問
YOLOv9は、リアルタイムの物体検出のためにどのようなイノベーションを導入したのですか?
YOLOv9は、Programmable Gradient Information(PGI)やGeneralized Efficient Layer Aggregation Network(GELAN)といった画期的な技術を導入している。これらのイノベーションは、ディープニューラルネットワークにおける情報損失の課題に対処し、高い効率性、精度、適応性を保証します。PGIはネットワークのレイヤーをまたいで重要なデータを保持し、GELANはパラメーターの利用と計算効率を最適化します。MS COCOデータセットで新たなベンチマークを設定したYOLOv9のコアイノベーションの詳細については、こちらをご覧ください。
MSのCOCOデータセットにおけるYOLOv9のパフォーマンスは、他のモデルと比較してどうなのか?
YOLOv9は、より高い精度と効率を達成することで、最先端のリアルタイム物体検出器を凌駕する。COCOデータセットにおいて、YOLOv9モデルは、計算オーバヘッドを維持または削減しながら、様々なサイズにおいて優れたmAPスコアを示す。例えば、YOLOv9cは、YOLOv7 AFよりも42%少ないパラメータと21%少ない計算量で、同等の精度を達成しています。詳細な指標については、性能比較をご覧ください。
Python 、CLI を使ってYOLOv9モデルをトレーニングするには?
YOLOv9モデルは、Python とCLI の両方のコマンドを使ってトレーニングできる。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 、トレーニングを実施する:
トレーニングと推論の使用例についてはこちらをご覧ください。
Ultralytics YOLOv9を軽量モデルに使う利点は何ですか?
YOLOv9は、情報損失を軽減するように設計されています。これは、重要な情報が失われがちな軽量モデルにとって特に重要です。プログラマブル勾配情報(PGI)と可逆関数を統合することで、YOLOv9は本質的なデータ保持を保証し、モデルの精度と効率を高めます。そのため、コンパクトで高性能なモデルを必要とするアプリケーションに非常に適しています。詳しくは、YOLOv9が軽量モデルに与える影響のセクションをご覧ください。
YOLOv9はどのようなタスクやモードをサポートしていますか?
YOLOv9は、オブジェクト検出やインスタンス分割を含む様々なタスクをサポートする。推論、検証、トレーニング、エクスポートなど、複数の動作モードに対応している。この汎用性により、YOLOv9は多様なリアルタイム・コンピューター・ビジョン・アプリケーションに適応できる。詳細については、サポートされるタスクとモードのセクションを参照してください。