YOLOv7 最も先進的な物体検出アルゴリズム?

YOLOv7 最先進の物体検出アルゴリズム?

2022年7月6日は、AIの歴史において画期的な日として記録されるでしょう。なぜなら、この日にYOLOv7がリリースされたからです。そのリリース以来、YOLOv7はコンピュータビジョン開発者コミュニティで最も注目されており、その理由は正当なものです。YOLOv7は、既に物体検出業界のマイルストーンとして認識されています。

YOLOv7の論文が公開されて間もなく、それは最速で最も正確なリアルタイム物体検出モデルとして登場しました。しかし、YOLOv7はどのようにしてこれまでのモデルと競争力を持っているのでしょうか?なぜYOLOv7はコンピュータビジョンのタスクを効率的に実行できるのでしょうか?

この記事では、YOLOv7モデルを分析し、なぜYOLOv7が業界標準になりつつあるのかについて考察します。しかし、それに答える前に、物体検出の簡単な歴史を見てみる必要があります。

物体検出とは何ですか?

物体検出は、画像やビデオファイル内のオブジェクトを識別し、位置を特定するコンピュータビジョンの分野です。物体検出は、自動運転車、監視カメラ、さらにはロボットなど、数多くのアプリケーションの基礎となっています。

物体検出モデルは、シングルショット検出器マルチショット検出器の2つの異なるカテゴリに分類されます。

リアルタイム物体検出

YOLOv7の仕組みを正確に理解するためには、「リアルタイム物体検出」という主要な目標を理解することが重要です。リアルタイム物体検出は、現代のコンピュータビジョンの重要な要素です。リアルタイム物体検出モデルは、リアルタイムで興味のあるオブジェクトを識別・特定しようとします。リアルタイム物体検出モデルにより、開発者はビデオやライブ監視入力などの動画フレーム内の興味のあるオブジェクトを効率的に追跡することができます。

リアルタイム物体検出モデルは、従来の画像検出モデルよりも一歩進んだものです。前者はビデオファイル内のオブジェクトを追跡するために使用され、後者は静止画像のフレーム内のオブジェクトを特定・識別します。

その結果、リアルタイム物体検出モデルは、ビデオ解析、自動運転車、オブジェクトのカウント、複数のオブジェクトの追跡などに非常に効率的です。

YOLOとは何ですか?

YOLO(You Only Look Once)は、リアルタイム物体検出モデルのファミリーです。YOLOのコンセプトは、2016年にJoseph Redmonによって初めて紹介されました。既存の物体検出アルゴリズムよりもはるかに高速かつ正確であったため、これにより瞬く間に注目を集めました。やがて、YOLOアルゴリズムはコンピュータビジョン業界の標準となりました。

YOLOアルゴリズムが提案する基本的なコンセプトは、バウンディングボックスとクラスの確率を使用してリアルタイムで予測を行うエンドツーエンドのニューラルネットワークを使用することです。YOLOは、以前の物体検出モデルと異なるアプローチを提案し、分類器を再利用して物体検出を行います。

このアプローチの変化により、YOLOは自身と他のリアルタイム物体検出アルゴリズムとの性能差が大きかったため、業界標準となりました。しかし、YOLOがなぜ効率的だったのかはどうしてでしょうか?

当時の物体検出アルゴリズムと比較すると、YOLOは領域提案ネットワークを使用して興味領域を検出しました。認識プロセスはそれぞれの領域で個別に行われました。その結果、これらのモデルは同じ画像に対して複数の反復を行い、正確性が低く実行時間が長くなりました。一方、YOLOアルゴリズムは1つの完全連結層を使用して一度に予測を行います。

YOLOはどのように動作するのですか?

YOLOアルゴリズムの動作を説明するためには、3つのステップがあります。

物体検出を単一の回帰問題として再構築する

YOLOアルゴリズムは、画像ピクセルからクラスの確率と境界ボックスの座標までを含む、オブジェクト検出を単一の回帰問題として再定義しようとします。したがって、アルゴリズムは画像を1度だけ見ることで、画像内の対象物を予測して位置を特定する必要があります。

画像をグローバルに判断する理由

さらに、YOLOアルゴリズムが予測を行う際、画像をグローバルに判断します。これは、領域提案ベースやスライディング技術とは異なり、YOLOアルゴリズムがデータセット上で訓練およびテストを行う際に画像全体を見ることができるため、クラスとその出現方法に関する文脈情報をエンコードすることができます。

YOLOの前に、Fast R-CNNは背景のパッチをオブジェクトと誤認識するため、画像の大きな文脈を見ることができませんでした。背景のエラーに関しては、Fast R-CNNアルゴリズムと比較すると、YOLOは50%正確性が向上しています。

オブジェクトの一般化表現

最後に、YOLOアルゴリズムは画像内のオブジェクトの表現を一般化することも目指しています。その結果、自然画像のデータセットでYOLOアルゴリズムを実行し、結果をテストした場合、YOLOは既存のR-CNNモデルを大幅に上回りました。これは、YOLOが高度に一般化できるためであり、予期しない入力や新しいドメインで実装する際のトラブルの可能性が非常に低いためです。

YOLOv7:新機能

リアルタイムオブジェクト検出モデルとYOLOアルゴリズムの基本的な理解ができたので、YOLOv7アルゴリズムについて話し合いましょう。

トレーニングプロセスの最適化

YOLOv7アルゴリズムは、モデルアーキテクチャを最適化するだけでなく、トレーニングプロセスも最適化することを目指しています。オブジェクト検出の精度を向上させるために、最適化モジュールとメソッドを使用し、トレーニングのコストを強化しながら干渉コストを維持することを目指しています。これらの最適化モジュールは、「トレーニング可能な無料コンテンツバッグ」と呼ばれることがあります。

粗いから細かいリードガイド付きラベル割り当て

YOLOv7アルゴリズムは、従来の「動的ラベル割り当て」の代わりに新しい「粗いから細かいリードガイド付きラベル割り当て」を使用する予定です。これは、動的ラベル割り当てでは、複数の出力層を持つモデルをトレーニングすることでいくつかの問題が発生するためです。異なるブランチとその出力に対して動的なターゲットを割り当てる方法が最も一般的な問題です。

モデル再パラメータ化

モデルの再パラメータ化は、オブジェクト検出において重要な概念であり、トレーニング中にいくつかの問題が発生する場合があります。YOLOv7アルゴリズムでは、ネットワーク内の異なるレイヤーに適用可能なモデル再パラメータ化ポリシーを分析するための勾配伝播パスの概念を使用する予定です。

拡張と複合スケーリング

YOLOv7アルゴリズムは、リアルタイムオブジェクト検出のためのパラメータと計算の効果的な利用に向けて、拡張と複合スケーリングの方法を導入します。

リアルタイムオブジェクト検出

YOLOは現在の業界基準であり、ほとんどのリアルタイムオブジェクト検出器がYOLOアルゴリズムとFCOS(完全畳み込み単段オブジェクト検出)を使用しています。最先端のリアルタイムオブジェクト検出器には通常、次の特徴があります:

  • 強力で高速なネットワークアーキテクチャ。
  • 効果的な特徴統合方法。
  • 正確なオブジェクト検出方法。
  • 堅牢な損失関数。
  • 効率的なラベル割り当て方法。
  • 効率的なトレーニング方法。

YOLOv7アルゴリズムは、多くのデータが必要な自己教師あり学習や蒸留のメソッドを使用しません。逆に、YOLOv7アルゴリズムは訓練可能なバッグオブフリービーズの手法を使用します。

モデル再パラメータ化

モデル再パラメータ化技術は、複数の計算モジュールを干渉ステージで統合するアンサンブル技術として考えられています。この技術は、モデルレベルのアンサンブルとモジュールレベルのアンサンブルの2つのカテゴリにさらに分けることができます。

最終的な干渉モデルを得るために、モデルレベルの再パラメータ化技術は2つの手法を使用します。最初の手法は、異なるトレーニングデータを使用して複数の同一のモデルをトレーニングし、トレーニングされたモデルの重みを平均化するというものです。また、別の手法では、異なるイテレーションの間でモデルの重みを平均化します。

モジュールレベルの再パラメータ化は最近非常に人気があります。この手法では、モジュールをトレーニングフェーズ中に異なるモジュールブランチまたは同一のブランチに分割し、これらの異なるブランチを干渉時に等価なモジュールに統合します。

ただし、再パラメータ化技術はすべての種類のアーキテクチャに適用することはできません。そのため、YOLOv7アルゴリズムでは、異なるアーキテクチャに適した関連戦略を設計するために新しいモデル再パラメータ化技術を使用しています。

モデルスケーリング

モデルスケーリングは、既存のモデルを異なる計算デバイスに合わせて拡大または縮小するプロセスです。モデルスケーリングは、レイヤーの数(深さ)、入力画像のサイズ(解像度)、特徴ピラミッドの数(ステージ)、チャネルの数()など、さまざまな要素を使用します。これらの要素は、ネットワークパラメータ、干渉速度、計算、モデルの精度のバランスを確保する上で重要な役割を果たします。

最も一般的に使用されるスケーリング方法の1つは、複雑なルールなしに、検索エンジンから適切なスケーリング要因を自動的に検索するNAS(Network Architecture Search)です。NASを使用することの主な欠点は、適切なスケーリング要因を検索するための費用がかかることです。

ほとんどのモデル再パラメータ化モデルは、個々のユニークなスケーリング要因を独立して分析し、さらにこれらの要因を独立して最適化します。これは、NASアーキテクチャが非相関のスケーリング要因で動作するためです。

幅を含む連結ベースのモデル(VoVNetDenseNetなど)は、モデルの深さがスケーリングされたときに一部のレイヤーの入力幅を変更します。YOLOv7は提案された連結ベースのアーキテクチャで動作するため、複合スケーリング手法を使用します。

上記の図は、異なるモデルの拡張効率的レイヤ集約ネットワーク(E-ELAN)を比較しています。提案されたE-ELANメソッドは、元のアーキテクチャの勾配伝達パスを維持しながら、グループ畳み込みを使用して追加された特徴の基数を増加させることを目的としています。このプロセスにより、異なるマップで学習された特徴を強化し、計算とパラメータの使用をより効率的にします。

YOLOv7アーキテクチャ

YOLOv7モデルは、YOLOv4、YOLO-R、およびスケーリングされたYOLOv4モデルをベースにしています。YOLOv7は、これらのモデルで行われた実験により、結果を改善し、モデルをより正確にするために作成されました。

拡張効率的レイヤ集約ネットワーク(E-ELAN)

E-ELANはYOLOv7モデルの基本的な構築ブロックであり、既存のネットワーク効率モデルであるELANを元にしています。

効率的なアーキテクチャを設計する際の主な考慮事項は、パラメータの数、計算密度、および計算量です。他のモデルでは、入力/出力チャネル比の影響、アーキテクチャネットワーク内のブランチ、ネットワーク干渉速度、畳み込みネットワークのテンソルの要素数などの要素も考慮されます。

CSPVoNetモデルは、上記のパラメータだけでなく、異なるレイヤーの重みを有効にすることで、より多様な特徴を学習するための勾配パスを分析します。このアプローチにより、干渉がはるかに高速で正確になります。ELANアーキテクチャは、最短最長の勾配パスを制御する効率的なネットワークを設計することを目指しており、学習と収束においてより効果的になるようにします。

ELANは、計算ブロックの積み重ねの数や勾配経路長に関係なく、既に安定した段階に達しています。無制限に計算ブロックを積み重ねると、安定した状態が破壊され、パラメータの利用率が低下する可能性があります。提案されたE-ELANアーキテクチャは、拡張、シャッフル、マージングの基数を使用して、元の勾配経路を保持しながらネットワークの学習能力を継続的に向上させることができます。

さらに、E-ELANのアーキテクチャをELANと比較すると、計算ブロックのみが異なり、トランジションレイヤーのアーキテクチャは変わりません。

E-ELANでは、計算ブロックの基数を拡大し、グループ畳み込みを使用してチャネルを拡張します。その後、特徴マップが計算され、グループごとにグループパラメータに従ってシャッフルされ、結合されます。各グループのチャネル数は元のアーキテクチャと同じままです。最後に、特徴マップのグループが加算され、基数が行われます。

連結ベースモデルのモデルスケーリング

モデルスケーリングは、モデルの属性を調整して、要件に応じたモデルを生成し、異なる干渉速度に対応するのに役立ちます。

図は、異なる連結ベースモデルのモデルスケーリングについて説明しています。図(a)と(b)では、モデルの深度スケーリングが増加すると、計算ブロックの出力幅が増加します。その結果、伝送層の入力幅も増加します。これらの方法を連結ベースのアーキテクチャに実装すると、スケーリングプロセスは深度で実行され、図(c)で示されています。

したがって、連結ベースのモデルでは、対応する複合モデルスケーリング方法を使用することが適しています。また、深度要因をスケーリングする場合、ブロックの出力チャネルもスケーリングする必要があります。

トレーニング可能な無料アイテムのバッグ

無料アイテムのバッグとは、開発者がモデルの精度を向上させるためにトレーニング戦略やコストを変更するための一連の方法や技術を指す用語です。では、YOLOv7のトレーニング可能な無料アイテムとは何でしょうか。

計画された再パラメータ化畳み込み

YOLOv7アルゴリズムは、再パラメータ化畳み込みとネットワークの理想的な組み合わせ方法を決定するために勾配フロー伝播経路を使用します。このアプローチは、RepConvアルゴリズムがVGGモデルではなめらかに動作する一方、DenseNetやResNetモデルに直接適用すると性能が低下することに対抗する試みです。

畳み込み層内の接続を特定するために、RepConvアルゴリズムは3×3の畳み込みと1×1の畳み込みを組み合わせます。アルゴリズムとその性能、アーキテクチャを分析すると、RepConvはDenseNetの連結やResNetの残差を破壊することがわかります。

上の図は、計画された再パラメータ化モデルを示しています。YOLOv7アルゴリズムは、連結または残差接続を持つネットワークのレイヤーには、RepConvアルゴリズムでアイデンティティ接続が存在しないことを発見しました。その結果、アイデンティティ接続のないRepConvNに切り替えることができます。

補助用に粗く、主要な損失用に細かく

ディープスーパーバイジョンは、深層ネットワークのトレーニングプロセスでよく使用されるコンピュータサイエンスの分野です。ディープスーパーバイジョンの基本原則は、ネットワークの中間層に追加の補助ヘッドを追加し、浅いネットワークの重みとともに補助損失をガイドとして使用することです。YOLOv7アルゴリズムでは、最終出力を担当するヘッドをリードヘッドと呼び、トレーニングを補助するヘッドを補助ヘッドと呼びます。

続いて、YOLOv7はラベルの割り当てに異なる方法を使用しています。従来、ラベルの割り当ては、直接グラウンドトゥルースを参照し、与えられた一連のルールに基づいてラベルを生成するために使用されてきました。しかし、近年では、予測入力の分布と品質が信頼性のあるラベルを生成するために重要な役割を果たしています。YOLOv7は、バウンディングボックスとグラウンドトゥルースの予測を使用して、オブジェクトのソフトラベルを生成します。

さらに、YOLOv7アルゴリズムの新しいラベル割り当て方法は、リードヘッドの予測を使用してリードヘッドと補助ヘッドの両方をガイドします。ラベル割り当て方法には2つの提案された戦略があります。

リードヘッドガイドラベル割り当て

この戦略は、リードヘッドの予測結果とグラウンドトゥルースに基づいて計算し、最適化を使用してソフトラベルを生成します。これらのソフトラベルは、リードヘッドと補助ヘッドの両方のトレーニングモデルとして使用されます。

この戦略は、リードヘッドが学習能力がより高いため、生成されるラベルがより代表的でソースとターゲットの間に相関があるという仮定に基づいています。

粗から細のリードヘッドガイドラベル割り当て

この戦略も、リードヘッドの予測結果とグラウンドトゥルースに基づいて計算し、最適化を使用してソフトラベルを生成します。ただし、重要な違いがあります。この戦略では、粗いレベル細かいラベルの2つのセットのソフトラベルがあります。

粗いラベルは、正のサンプルの制約を緩和してより多くのグリッドを正のターゲットとして扱うことで生成されます。これは、補助ヘッドの学習力が弱いために情報の損失のリスクを避けるために行われます。

上の図は、YOLOv7アルゴリズムでトレーニング可能なフリービーのバッグの使用を説明しています。それは補助ヘッド用の粗いラベルとリードヘッド用の細かいラベルを描いています。モデルに補助ヘッド(b)を持つモデルと通常のモデル(a)を比較すると、(b)のスキーマには補助ヘッドがありますが、(a)にはありません。

(c)は一般的な独立したラベル割り当てを示し、(d)と(e)はそれぞれYOLOv7で使用されるリードガイドアサイナーと粗から細のリードガイドアサイナーを表しています。

その他のトレーニング可能なフリービーのバッグ

上記に加えて、YOLOv7アルゴリズムは、元々彼らによって提案されたものではありませんが、追加のフリービーのバッグを使用しています。それらは次のとおりです。

  • Conv-Bn-Activationテクノロジーにおけるバッチ正規化:この戦略は、畳み込み層をバッチ正規化層に直接接続するために使用されます。
  • YOLORにおける暗黙の知識:YOLOv7は、この戦略を畳み込み特徴マップと組み合わせて使用します。
  • EMAモデル:EMAモデルは、YOLOv7で最終的な参照モデルとして使用されますが、主な使用目的は平均教師法で使用することです。

YOLOv7:実験

実験のセットアップ

YOLOv7アルゴリズムは、オブジェクト検出モデルのトレーニングと検証にMicrosoft COCOデータセットを使用しており、これらの実験のすべてが事前トレーニングされたモデルを使用しているわけではありません。開発者はトレーニングに2017年のトレインデータセットを使用し、ハイパーパラメータの選択には2017年のバリデーションデータセットを使用しました。最後に、YOLOv7オブジェクト検出結果の性能は、オブジェクト検出の最先端アルゴリズムと比較されます。

開発者は、エッジGPU(YOLOv7-tiny)、通常のGPU(YOLOv7)、およびクラウドGPU(YOLOv7-W6)のために基本モデルを設計しました。さらに、YOLOv7アルゴリズムは、異なるサービス要件に応じてモデルのスケーリングに基づいた基本モデルを使用し、異なるモデルを取得します。YOLOv7アルゴリズムでは、スタックスケーリングはネックで行われ、モデルの深さと幅を拡大するために提案された化合物が使用されます。

ベースライン

YOLOv7アルゴリズムは、以前のYOLOモデルとYOLORオブジェクト検出アルゴリズムをベースラインとして使用しています。

上の図は、YOLOv7モデルのベースラインを他のオブジェクト検出モデルと比較したもので、結果は非常に明白です。YOLOv7アルゴリズムは、YOLOv4アルゴリズムと比較してパラメーター数が75%少なく、計算量も15%少なく、正確性が0.4%高いです。

最新のオブジェクト検出モデルとの比較

上の図は、モバイルおよび一般のGPU向けに最新のオブジェクト検出モデルと比較した場合のYOLOv7の結果を示しています。YOLOv7アルゴリズムによる提案手法は、最適な速度と正確性のトレードオフスコアを持っていることが観察されます。

削除研究:提案された複合スケーリング方法

上の図は、モデルをスケーリングするための異なる戦略を使用した場合の結果を比較しています。YOLOv7モデルのスケーリング戦略は、計算ブロックの深さを1.5倍にスケーリングし、幅を1.25倍にスケーリングします。

深さのみをスケーリングするモデルと比較した場合、YOLOv7モデルはパラメーターと計算パワーをより少なく使用しながら0.5%優れた性能を発揮します。一方、深さのみをスケーリングするモデルと比較した場合、YOLOv7の正確性は0.2%向上しますが、パラメーターのスケーリングは2.9%、計算は1.2%必要です。

提案された計画された再パラメータ化モデル

提案された再パラメータ化モデルの一般性を検証するために、YOLOv7アルゴリズムは残差ベースと連結ベースのモデルを検証に使用しています。検証プロセスでは、連結ベースのモデルには3段積み重ねのELANを使用し、残差ベースのモデルにはCSPDarknetを使用します。

連結ベースのモデルでは、アルゴリズムは3×3畳み込み層を3段積み重ねのELANでRepConvに置き換えます。以下の図は、計画されたRepConvと3段積み重ねのELANの詳細な構成を示しています。

さらに、残差ベースのモデルでは、元のダークブロックには3×3畳み込みブロックがないため、YOLOv7アルゴリズムは逆転ダークブロックを使用します。以下の図は、3×3と1×1の畳み込み層の位置を逆にした逆転CSPDarknetのアーキテクチャを示しています。

補助ヘッドのための提案されたアシスタント損失

補助ヘッドのためのアシスタント損失について、YOLOv7モデルは独立したラベル割り当てと先行ヘッドの方法を比較しています。

上の図は、提案された補助ヘッドの研究結果を示しています。アシスタント損失の増加とともに、モデルの全体的な性能が向上することがわかります。さらに、YOLOv7モデルが提案する先行ガイド付きラベル割り当ては、独立した先行割り当て戦略よりも優れた性能を発揮します。

YOLOv7の結果

上記の実験に基づいて、他のオブジェクト検出アルゴリズムと比較した場合のYOLOv7のパフォーマンス結果は次のとおりです。

上記の図はYOLOv7モデルを他の物体検出アルゴリズムと比較したものであり、YOLOv7が他の物体検出モデルに比べて平均精度(AP)とバッチ干渉の関係で優れていることが明確に観察できます。

さらに、以下の図はYOLOv7と他のリアルタイム物体検出アルゴリズムの性能を比較したものです。再度、YOLOv7は総合的な性能、精度、効率の面で他のモデルを上回っています。

以下はYOLOv7の結果と性能から得られたいくつかの追加の観察です。

  1. YOLOv7-TinyはYOLOファミリーで最も小さなモデルであり、600万以上のパラメータを持っています。YOLOv7-Tinyの平均精度は35.2%であり、同等のパラメータを持つYOLOv4-Tinyモデルよりも優れています。
  2. YOLOv7モデルは3700万以上のパラメータを持ち、YOLov4などよりも高いパラメータを持つモデルを上回っています。
  3. YOLOv7モデルは5〜160 FPSの範囲で最も高いmAPとFPS率を持っています。

結論

YOLO(You Only Look Once)は、現代のコンピュータビジョンにおける最先端の物体検出モデルです。YOLOアルゴリズムは高い精度と効率性で知られており、その結果、リアルタイム物体検出業界で広範な応用が見られます。2016年に最初のYOLOアルゴリズムが導入されて以来、実験によって開発者はモデルを継続的に改善してきました。

YOLOv7モデルはYOLOファミリーの最新の追加であり、これまでで最も強力なYOLOアルゴリズムです。この記事では、YOLOv7の基本について説明し、なぜYOLOv7が効率的なのかを説明しました。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

人工知能

LLM SaaSのためのFastAPIテンプレート パート1 — Authとファイルのアップロード

最近、FastAPIはPythonバックエンド開発者コミュニティで注目を集めていますそのシンプルさ、非同期性、ネイティブのSwagger ...

機械学習

ディープネットワークの活性化関数の構築

ディープニューラルネットワークの基本的な要素は、活性化関数(AF)です活性化関数は、ネットワーク内のノード(「ニューロ...

AIニュース

「先進的なマルチモーダル生成AIの探求」

イントロダクション テクノロジーの進歩する現代において、興奮すべき展開が現れています – 高度なマルチモーダルジェ...

機械学習

「React開発者にとってのAI言語モデルの力包括的なガイド」

このブログでは、AI言語モデルとReactのシナジーについて探求し、このコラボレーションが開発者の能力を向上させる方法を探り...

AIニュース

「AIパワード広告でソーシャルをより魅力的に」

「デマンドジェンキャンペーンを学んで、YouTubeやGoogleでより良い結果を出す方法を探ってみましょう新しい事例、ビデオ、ヒ...

機械学習

「AIの進化と生成AIへの道のりとその仕組み」

この記事では、AI/MLの基礎、その使用方法、生成AIの進化、Prompt Engineering、およびLangChainについて説明しています