スタブ YOLOv9: リアルタイム物体検出の飛躍 - Unite.AI
私達と接続

Artificial Intelligence

YOLOv9: リアルタイム物体検出の飛躍

mm

公開済み

 on

オブジェクト検出 ~のおかげで近年急速な進歩が見られます 深い学習 YOLO (You Only Look Once) のようなアルゴリズム。最新のイテレーションでは、 YOLOv9は、以前のバージョンに比べて精度、効率、適用性が大幅に向上しました。この投稿では、YOLOv9 をリアルタイムの物体検出のための新しい最先端のものにするイノベーションについて詳しく説明します。

物体検出に関する簡単な入門書

YOLOv9 の新機能について説明する前に、オブジェクト検出がどのように機能するかを簡単に確認してみましょう。物体検出の目的は、車、人、動物など、画像内の物体を識別して位置を特定することです。これは、自動運転車、監視システム、画像検索などのアプリケーションにとって重要な機能です。

検出器は画像を入力として受け取り、検出されたオブジェクトの周囲の境界ボックスを出力します。各境界ボックスには、関連付けられたクラス ラベルが付けられます。 MS COCO などの人気のあるデータセットは、これらのモデルをトレーニングおよび評価するための何千ものラベル付き画像を提供します。

物体検出には主に 2 つのアプローチがあります。

  • 2段検出器 Faster R-CNN と同様に、最初に領域提案を生成し、次に各領域の境界を分類して調整します。精度は高くなりますが、速度が遅くなる傾向があります。
  • 単段検出器 YOLO のように、シングルパスで画像上にモデルを直接適用します。これらは、非常に高速な推論時間と引き換えに、ある程度の精度を犠牲にします。

YOLO はシングルステージアプローチの先駆者です。精度と効率を向上させるために、複数のバージョンを経てどのように進化したかを見てみましょう。

以前の YOLO バージョンのレビュー

YOLO (You Only Look Once) ファミリーのモデルは、2016 年にオリジナルのバージョンが公開されて以来、高速物体検出の最前線に立ってきました。ここでは、YOLO が複数の反復にわたってどのように進歩したかを簡単に概要説明します。

  • YOLOv1 単一パスで完全な画像から直接境界ボックスとクラス確率を予測する統合モデルを提案しました。これにより、以前の 2 ステージ モデルと比較して非常に高速になりました。
  • YOLOv2 バッチ正規化を使用して安定性を向上させ、さまざまなスケールとアスペクト比でボックスを固定して複数のサイズを検出し、その他のさまざまな最適化を使用してオリジナルを改良しました。
  • YOLOv3 Darknet-53 と呼ばれる新しい特徴抽出ツールが追加され、より多くのレイヤーとそれらの間のショートカットが追加され、精度がさらに向上しました。
  • YOLOv4 他のオブジェクト検出器とセグメンテーション モデルのアイデアを組み合わせて、高速推論を維持しながら精度をさらに高めました。
  • YOLOv5 PyTorch で YOLOv4 を完全に書き直し、CSPDarknet と呼ばれる新しい機能抽出バックボーンと他のいくつかの機能拡張を追加しました。
  • YOLOv6 パフォーマンスをさらに向上させるために、大規模な外部データセットで事前トレーニングされたモデルを使用して、アーキテクチャとトレーニング プロセスの最適化を継続しました。

要約すると、以前の YOLO バージョンは、モデル アーキテクチャ、トレーニング手法、事前トレーニングの改善により、より高い精度を達成しました。しかし、モデルが大きくなり複雑になるにつれて、速度と効率が低下し始めます。

効率の向上の必要性

多くのアプリケーションでは、コンピューティング リソースが限られているデバイス上でオブジェクト検出をリアルタイムで実行する必要があります。モデルが大きくなり、計算量が増えると、展開が現実的ではなくなります。

たとえば、自動運転車は、車内のプロセッサを使用して高いフレーム レートで物体を検出する必要があります。セキュリティ カメラは、独自の組み込みハードウェア内でビデオ フィードに対してオブジェクト検出を実行する必要があります。電話やその他の消費者向けデバイスには、非常に厳しい電力と熱の制約があります。

最近の YOLO バージョンでは、多数のパラメーターと積和演算 (FLOP) を使用して高い精度が得られます。ただし、これには速度、サイズ、電力効率が犠牲になります。

たとえば、YOLOv5-L では、100 つの 1280×1280 画像を処理するのに XNUMX 億 FLOP を超える必要があります。これは、多くのリアルタイムの使用例にとって遅すぎます。モデルがますます大規模になる傾向により、過学習のリスクも増大し、一般化が困難になります。

したがって、物体検出の適用範囲を拡大するには、効率を向上させる方法、つまりより少ないパラメータと計算でより高い精度を得る方法が必要です。この課題に取り組むために YOLOv9 で使用されているテクニックを見てみましょう。

YOLOv9 – 少ないリソースで精度を向上

YOLOv9 の背後にある研究者は、より広範囲のデバイスでリアルタイム パフォーマンスを実現するために、効率の向上に重点を置いています。彼らは XNUMX つの重要なイノベーションを導入しました。

  1. と呼ばれる新しいモデル アーキテクチャ General Efficient Layer Aggregation Network (GELAN) パラメータと FLOP を最小限に抑えながら、精度を最大化します。
  2. と呼ばれるトレーニングテクニック プログラマブル勾配情報 (PGI) これにより、特に小規模なモデルに対して、より信頼性の高い学習勾配が提供されます。

これらのそれぞれの進歩がどのように効率の向上に役立つかを見てみましょう。

GELAN によるより効率的なアーキテクチャ

モデル アーキテクチャ自体は、推論中の速度とリソース使用量に対する精度のバランスをとるために重要です。ニューラル ネットワークには、入力画像から関連する特徴をキャプチャするために十分な深さと幅が必要です。ただし、レイヤーやフィルターが多すぎると、モデルが遅く肥大化してしまいます。

著者らは、可能な限り最小のアーキテクチャから最大の精度を絞り出すように特別に GELAN を設計しました。

GELAN は、次の 2 つの主要な構成要素を積み重ねて使用します。

  • 効率的なレイヤー集約ブロック – これらは、複数のネットワーク ブランチにわたる変換を集約して、マルチスケールの機能を効率的にキャプチャします。
  • 計算ブロック – CSPNet ブロックは、層間で情報を伝播するのに役立ちます。計算制約に基づいて任意のブロックを置き換えることができます。

これらのブロックを注意深くバランスさせて組み合わせることで、GELAN はパフォーマンス、パラメーター、速度の間のスイートスポットを見つけます。同じモジュラー アーキテクチャを、さまざまなサイズのモデルやハードウェアにわたってスケールアップまたはスケールダウンできます。

実験により、GELAN は以前の YOLO アーキテクチャと比較して、より小さなモデルにより多くのパフォーマンスを適合させることが示されました。たとえば、7M パラメータの GELAN-Small は、11M パラメータの YOLOv7-Nano よりも優れたパフォーマンスを示しました。また、20 万のパラメータを備えた GELAN-Medium は、7 ~ 35 万のパラメータを必要とする YOLOv40 中モデルと同等のパフォーマンスを発揮しました。

したがって、GELAN は、特に効率を最適化したパラメーター化されたアーキテクチャを設計することにより、モデルをより高速に、よりリソースに制約のあるデバイス上で実行できるようにします。次に、PGI がトレーニングの向上にどのように役立つかを見ていきます。

プログラマブル勾配情報 (PGI) によるトレーニングの改善

限られたリソースで精度を最大化するには、モデルのトレーニングも同様に重要です。 YOLOv9 の作成者は、信頼性の低い勾配情報によって引き起こされる小規模なモデルのトレーニングの問題を特定しました。

グラデーション トレーニング中にモデルの重みがどの程度更新されるかを決定します。ノイズの多い勾配や誤解を招く勾配は、収束の低下につながります。この問題は、小規模なネットワークではより顕著になります。

のテクニック 深い監督 は、ネットワークを通じてより良い勾配信号を伝播するために、損失のある追加の側枝を導入することでこの問題に対処します。しかし、小型軽量モデルでは故障して発散を引き起こす傾向があります。

YOLOv9: プログラム可能な勾配情報を使用して学びたいことを学ぶ

YOLOv9: プログラム可能な勾配情報を使用して学びたいことを学ぶ https://arxiv.org/abs/2402.13616

この制限を克服するために、YOLOv9 では、 プログラマブル勾配情報 (PGI)。 PGI には 2 つの主要なコンポーネントがあります。

  • 補助可逆分岐 – これらは、RevCols などのブロックを使用して入力への可逆接続を維持することにより、よりクリーンなグラデーションを提供します。
  • マルチレベルの勾配統合 – これにより、干渉するさまざまな側枝からの分岐が回避されます。メイン モデルにフィードバックする前に、すべてのブランチからの勾配を結合します。

より信頼性の高い勾配を生成することにより、PGI は、より小さなモデルがより大きなモデルと同様に効果的にトレーニングできるように支援します。

実験では、PGI がすべてのモデル サイズ、特に小規模な構成にわたって精度を向上させたことが示されました。たとえば、YOLOv9-Small の AP スコアは、ベースラインの GELAN-Small より 0.1 ~ 0.4% 向上しました。 YOLOv9-E の 55.6% mAP のようなより深いモデルでは、この向上はさらに顕著でした。

そのため、PGI では、これまでは過剰にパラメータ化されたモデルによってのみ達成できた、より小型で効率的なモデルをより高い精度レベルまでトレーニングできるようになります。

YOLOv9 による効率化のための新たな最先端技術

GELAN のアーキテクチャの進歩と PGI によるトレーニングの改善を組み合わせることで、YOLOv9 は前例のない効率とパフォーマンスを実現します。

  • 以前の YOLO バージョンと比較して、YOLOv9 は次のことを実現します。 10 ~ 15% 少ないパラメータと 25% 少ない計算で精度が向上。これにより、モデルのサイズ全体にわたって速度と機能が大幅に向上しました。
  • YOLOv9 は、YOLO-MS や RT-DETR などの他のリアルタイム検出器を次の点で上回っています。 パラメータ効率と FLOP。特定のパフォーマンス レベルに到達するために必要なリソースははるかに少なくなります。
  • より小さな YOLOv9 モデルは、RT-DETR-X のようなより大きな事前トレーニング済みモデルをも打ち負かします。使っているにも関わらず パラメータが 36% 減少、YOLOv9-Eは達成します AP 55.6% 向上 より効率的なアーキテクチャを通じて。

したがって、YOLOv9 は、アーキテクチャとトレーニング レベルでの効率化に取り組むことで、制約のあるリソース内でパフォーマンスを最大化するための新しい最先端技術を確立します。

GELAN – 効率を高めるために最適化されたアーキテクチャ

YOLOv9 では、最小限のパラメーター バジェット内で精度を最大化する、General Efficient Layer Aggregation Network (GELAN) と呼ばれる新しいアーキテクチャが導入されています。以前の YOLO モデルの上に構築されていますが、特に効率を重視してさまざまなコンポーネントが最適化されています。

https://arxiv.org/abs/2402.13616

YOLOv9: プログラム可能な勾配情報を使用して学びたいことを学ぶ
https://arxiv.org/abs/2402.13616

CSPNet と ELAN の背景

v5 以降の最近の YOLO バージョンでは、効率を向上させるために Cross-Stage Partial Network (CSPNet) に基づくバックボーンを利用しています。 CSPNet を使用すると、最小限のオーバーヘッドを追加しながら、並列ネットワーク ブランチ間で機能マップを集約できます。

これは、多くの場合、冗長な計算や過剰なパラメータ化につながるレイヤーを単に直列に積み重ねるよりも効率的です。

YOLOv7 は CSPNet を Efficient Layer Aggregation Network (ELAN) にアップグレードし、ブロック構造を簡素化しました。

ELAN は、出力における集約ノードを優先して、レイヤー間のショートカット接続を削除しました。これにより、パラメータと FLOP の効率がさらに向上しました。

柔軟な効率性を実現する ELAN の一般化

著者らは ELAN をさらに一般化して作成しました。 ジェラン、YOLOv9 で使用されるバックボーン。 GELAN は、柔軟性と効率を向上させるために重要な変更を加えました。

  • 交換可能な計算ブロック – 以前の ELAN には固定畳み込み層がありました。 GELAN では、ResNets や CSPNet などの任意の計算ブロックを置き換えることができ、より多くのアーキテクチャ オプションが提供されます。
  • 深さ方向のパラメータ化 – メイン ブランチとアグリゲーター ブランチの個別のブロック深度により、リソース使用量の微調整が簡素化されます。
  • どの構成でも安定したパフォーマンス – GELAN は、さまざまなブロック タイプと深さでも精度を維持し、柔軟なスケーリングを可能にします。

これらの変更により、GELAN は効率を最大化するための強力かつ構成可能なバックボーンになります。

実験では、GELAN モデルはパラメータごとの精度において以前の YOLO アーキテクチャよりも一貫して優れていました。

  • 7M パラメータの GELAN-Small が YOLOv7-Nano の 11M パラメータを上回る
  • GELAN-Medium は、より重い YOLOv7 中モデルと一致しました

したがって、GELAN は、さまざまな効率目標にわたって YOLO を拡張するために最適化されたバックボーンを提供します。次に、PGI がトレーニングの向上にどのように役立つかを見ていきます。

PGI – すべてのモデルサイズに対するトレーニングの改善

アーキテクチャの選択は推論時の効率に影響しますが、トレーニング プロセスもモデルのリソース使用量に影響します。 YOLOv9 は、プログラマブル勾配情報 (PGI) と呼ばれる新しい技術を使用して、さまざまなモデルのサイズと複雑さにわたるトレーニングを改善します。

信頼性の低い勾配の問題

トレーニング中、損失関数はモデル出力をグラウンド トゥルース ラベルと比較し、誤差勾配を計算してパラメーターを更新します。 ノイズが多いまたは誤解を招くグラデーション 収束性と効率性の低下につながります。

非常に深いネットワークでは、次のような問題が発生します。 情報のボトルネック – 深いレイヤーからのグラデーションは、信号の損失または圧縮によって破損します。

徹底した監督 損失のある補助側枝を導入することで、よりきれいな勾配を提供することができます。しかし、それはしばしば 小型モデルでは故障、異なるブランチ間で干渉と分岐が発生します。

したがって、すべてのモデルサイズ、特に小さいサイズで機能する信頼性の高い勾配を提供する方法が必要です。

プログラマブル勾配情報 (PGI) の導入

信頼性の低い勾配に対処するために、YOLOv9 はプログラム可能な勾配情報 (PGI) を提案しています。 PGI には、グラデーションの品質を向上させるために設計された XNUMX つの主要なコンポーネントがあります。

1. 補助可逆分岐

追加のブランチが提供するもの 可逆接続 RevCols などのブロックを使用して入力に戻ります。これにより、情報のボトルネックを回避し、きれいなグラデーションが維持されます。

2. マルチレベルの勾配統合

融合ブロックは、メイン モデルにフィードバックする前に、すべてのブランチからの勾配を集約します。これにより、ブランチ間の分岐が防止されます。

より信頼性の高い勾配を生成することにより、PGI はすべてのモデル サイズにわたってトレーニングの収束と効率を向上させます。

  • 軽量モデル 以前は利用できなかった徹底した監視の恩恵を受ける
  • 大型モデル よりきれいな勾配を取得し、より適切な汎化を可能にする

実験では、小規模および大規模な YOLOv9 構成において、PGI がベースライン GELAN よりも精度を向上させたことが示されました。

  • YOLOv0.1-Small の場合、+0.4 ~ 9% AP
  • 大型の YOLOv0.5 モデルでは +0.6 ~ 9% AP

したがって、PGI のプログラム可能な勾配を使用すると、大小を問わずモデルをより効率的にトレーニングできます。

YOLOv9 が新たな最先端の精度を確立

GELAN によるアーキテクチャの改善と PGI によるトレーニングの強化を組み合わせることで、YOLOv9 はリアルタイムの物体検出のための新しい最先端の結果を実現します。

COCO データセットの実験では、YOLOv9 が精度と効率において、以前の YOLO バージョンや YOLO-MS などの他のリアルタイム検出器を上回っていることが示されています。

いくつかの重要なハイライト:

  • YOLOv9-Small は YOLO-MS-Small を上回り、パラメータと計算が 10% 削減されています
  • YOLOv9-Medium は、半分未満のリソースを使用して、より重い YOLOv7 モデルと一致します。
  • YOLOv9-Large は、パラメータが 8% 少なく、FLOP が 15% 少ないため、YOLOv25-X よりも優れています。

注目すべきことに、より小型の YOLOv9 モデルは、RT-DETR-X などの事前トレーニングを使用する他の検出器のより重いモデルをも上回っています。パラメータが 4 分の 9 であるにもかかわらず、YOLOvXNUMX-E は精度において RT-DETR-X を上回ります。

これらの結果は、YOLOv9 の優れた効率を示しています。この改善により、より現実世界のユースケースで高精度の物体検出が可能になります。

YOLOv9 アップグレードに関する重要なポイント

YOLOv9 の新しい最先端のパフォーマンスを可能にする主要なアップグレードと革新のいくつかを簡単にまとめてみましょう。

  • GELAN に最適化されたアーキテクチャ – 柔軟な集計ブロックによりパラメータの効率が向上します。さまざまなターゲットに合わせてモデルをスケーリングできます。
  • プログラム可能な勾配情報 – 可逆接続と融合により信頼性の高い勾配を提供します。モデルのサイズ全体でトレーニングを改善します。
  • 少ないリソースで高い精度を実現 – YOLOv10 よりもパラメーターと計算が 15 ~ 8% 削減され、精度が向上します。より効率的な推論が可能になります。
  • モデルサイズを問わず優れた結果 – 軽量、中型、大型のモデル構成に最新の最新技術を導入します。高度に事前トレーニングされたモデルよりも優れたパフォーマンスを発揮します。
  • 適用範囲の拡大 – 効率が高まると、エッジデバイスでのリアルタイム検出など、実行可能なユースケースが広がります。

YOLOv9 は、精度、効率、適用性に直接取り組むことで、物体検出を前進させ、現実世界の多様なニーズに応えます。このアップグレードは、この重要なコンピュータ ビジョン機能における将来のイノベーションのための強力な基盤を提供します。

私は過去 50 年間、機械学習と深層学習の魅力的な世界に没頭してきました。 私の情熱と専門知識により、特に AI/ML に重点を置いた XNUMX を超える多様なソフトウェア エンジニアリング プロジェクトに貢献してきました。 私の継続的な好奇心は、私がさらに探求したいと思っている分野である自然言語処理にも引き寄せられました。