YOLOv9:飛躍的に進歩した物体検出技術
YOLOv9は、Programmable Gradient Information (PGI)やGeneralized Efficient Layer Aggregation Network (GELAN)といった画期的な技術を導入し、リアルタイムの物体検出に大きな進歩をもたらしました。このモデルは、MS COCOデータセットで新たなベンチマークを設定し、効率性、精度、適応性において顕著な改善を示しています。YOLOv9プロジェクトは、独立したオープンソース・チームによって開発されていますが、次のような堅牢なコードベースに基づいています。 UltralyticsYOLOv5によって提供された堅牢なコードベースに基づいており、AI研究コミュニティの協調精神を示している。
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は速度や精度を犠牲にすることなく、幅広いアプリケーションに適応できる。
MS COCOデータセットでの性能
COCOデータセットにおけるYOLOv9の性能は、リアルタイム物体検出におけるYOLOv9の大きな進歩を例証するものであり、様々なモデルサイズにわたって新たなベンチマークを設定した。表1は、YOLOv9の優れた効率性と精度を示す、最先端のリアルタイム物体検出器の包括的な比較です。
表1.最新のリアルタイム物体検出器の比較
他のスケールのモデルはいつ発売されますか?
下表の様々なモデル・スケールで示されているすべての指標にもかかわらず、 のみ のコンフィギュレーション YOLOv9c
そして YOLOv9e
が公開されました。Ultralytics チームは、他のコンフィギュレーションが利用可能になり次第、迅速に追加していきます。
パフォーマンス
モデル | サイズ (ピクセル) |
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のイテレーションは、小さなものから小さなものまで多岐にわたる。 t
広範な e
モデルでは、精度(mAPメトリクス)だけでなく、パラメータ数と計算量(FLOPs)の削減による効率性の向上も実証しています。この表は、YOLOv9が、以前のバージョンや競合モデルと比較して、計算オーバーヘッドを維持または削減しながら、高精度を実現する能力を有していることを強調しています。
それに比べ、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 | yolov9c.pt yolov9e.pt |
物体検出 | ✅ | ✅ | ✅ | ✅ |
YOLOv9セグ | yolov9c-seg.pt yolov9e-seg.pt |
インスタンスのセグメンテーション | ✅ | ✅ | ✅ | ✅ |
この表は、YOLOv9モデルバリアントの詳細な概要を示しており、物体検出タスクにおけるそれぞれの機能と、推論、検証、トレーニング、エクスポートといった様々な操作モードとの互換性を強調しています。この包括的なサポートにより、ユーザーは幅広い物体検出シナリオでYOLOv9モデルの能力をフルに活用することができます。
注
YOLOv9モデルのトレーニングには、同サイズのモデル(YOLOv8 )よりも多くのリソースが必要となり、時間がかかる。
引用と謝辞
リアルタイム物体検出分野におけるYOLOv9作者の多大な貢献に感謝したい:
オリジナルのYOLOv9論文はarXivに掲載されている。著者らは彼らの研究を公開し、コードベースはGitHubでアクセスできる。我々は、この分野を発展させ、より広いコミュニティーが彼らの研究にアクセスできるようにした彼らの努力に感謝している。