Computer Vision 14 の応用 - 古典的なターゲット検出アルゴリズム YOLOv1 ~ YOLOv5 のモデル アーキテクチャと改善プロセスの詳細な説明で簡単に覚えられます

こんにちは、Wei Xue AI です。今日は、コンピューター ビジョン 14、古典的なターゲット検出アルゴリズム YOLOv1 ~ YOLOv5 のアプリケーションを紹介します。モデル アーキテクチャと改善プロセスは、記憶を容易にするために詳細に説明されています。YOLO (You Only Look Once) は、ターゲット検出のための深層学習モデルです。従来のターゲット検出方法は、シーン全体を注意深く観察し、ターゲットを見つけるために細部を 1 つずつ研究する必要がある探偵のようなものであると想像してください。しかし、YOLO はスーパーヒーローのようなもので、画面全体を一目見るだけで、すべてのターゲットを即座に捕らえることができます。YOLO はターゲット検出問題を回帰問題に変換するため、このような効率的なターゲット検出を実現できます。魔法のニューラル ネットワークを介した 1 回の順方向パスで、画像ピクセルからオブジェクトの境界ボックスとクラス確率を直接予測します。これは、YOLO が速いだけでなく正確であることを意味します。さまざまなサイズや場所のターゲットを同時に捕捉でき、それらがどのカテゴリに属しているかを知ることもできます。

移動中の車両を追跡している場合でも、歩いている歩行者を探している場合でも、YOLO は瞬時に正確な答えを提供します。その速度と精度により、YOLO は多くのコンピューター ビジョン アプリケーションで選ばれる手法となり、物体検出の分野ではスーパースターとなっています。

1. YOLOネットワークの詳しい紹介

1. 設計思想:
R-CNN シリーズなどの従来のターゲット検出アルゴリズムでは、最初に候補領域を生成し、次にこれらの領域を分類するという 2 つのステップが採用されています。YOLO は「一気に読む」戦略を採用しています。ターゲット検出タスクを回帰問題として扱い、ネットワーク内の境界ボックスの予測とカテゴリの判断を直接完了します。
2. ネットワーク構造:
YOLO は完全な畳み込みネットワークを使用し、予測のために最後に完全に接続された層を導入します。入力画像は SxS グリッドに分割されており、オブジェクトの中心がグリッド内にある場合、このグリッドがオブジェクトを予測します。各グリッドは、B 個の境界ボックスと、これらの境界ボックスにオブジェクトが含まれる確信度を予測し、C 個の条件付きクラス確率も予測します。
3. 損失​​関数:
このタスクには座標回帰と分類が含まれるため、損失関数もこれら 2 つの部分で構成されます。座標誤差と信頼誤差は二乗差分損失を使用して計算され、カテゴリ誤差はクロスエントロピー損失を使用して計算されます。
4. 利点:
高速: 結果を得るために順伝播を 1 回実行するだけで済むためです。
強力な一般化能力: 新しい色、スケール、角度、その他の変更をうまく処理できます。
5. 短所:
小さなオブジェクトの取り扱いが悪く、位置決め精度が比較的低い。

以下に、YOLOv1 から YOLOv5 までのネットワーク構造を詳しく紹介し、各バージョンで以前のバージョンと比較して改善された点について説明します。

YOLOv1 モデル

YOLOv1 は、単一のニューラル ネットワークでバウンディング ボックス予測とクラス確率を実装する、エンドツーエンドのオブジェクト検出の概念を導入した最初のモデルです。
ネットワーク構造: 単一の畳み込みネットワークが使用され、その後に 2 つの完全接続層と線形回帰層が続きます。入力はサイズ 448x448 の画像で、出力は 7x7 グリッドで、各グリッドは 2 つの境界ボックスと 20 のクラス確率を予測します。

モデルの改善

ターゲット検出タスクを完了するために多段階の処理が必要だった以前の方法 (R-CNN シリーズなど) と比較して、YOLOv1 は速度が大幅に向上し、画像内の複数のターゲット、小さなターゲット、ぼやけたターゲットを処理する際に優れたパフォーマンスを発揮しました。
ここに画像の説明を挿入します

YOLOv2 モデル

YOLOv2 は高速性を維持しながら精度を向上させます。基盤となるアーキテクチャとして Darknet-19 を導入し、さまざまな形状やサイズのオブジェクトをより適切に処理するために「アンカー ボックス」を追加します。
ネットワーク構造: Darknet-19 には、19 の畳み込み層と 5 つの最大プーリング層が含まれています。最後の完全に接続された層は削除され、13x13 グリッドの結果を直接出力できる新しい畳み込み層に置き換えられます。

モデルの改善

1. バッチ正規化アルゴリズムの実装: 畳み込みまたはプーリングの後、関数のアクティブ化の前に、各データ出力が正規化されます。これにより、トレーニング速度が大幅に向上し、トレーニング効果が向上します。
2. 異なる形状やサイズのオブジェクトを識別するという困難な問題を解決する「アンカー ボックス」の導入;
3. モデルがさまざまな解像度に適応できるようにする「マルチスケール トレーニング」の追加;
4. 「Darknet-19」アーキテクチャの追加モデルをより深くするためですが、計算効率は依然として非常に高いです。
Darknet-19 の全体的なネットワーク アーキテクチャ:
ここに画像の説明を挿入します

YOLOv3 モデル

YOLOv3 は、予測に 3 つの異なるスケールを使用し、実際のオブジェクトのサイズとよりよく一致させるために 3 つの異なるサイズの「アンカー ボックス」を使用することで、小さなオブジェクトの検出を向上させます。
ネットワーク構造: 53 の畳み込み層を含む Darknet-53 が使用され、トレーニング プロセスを改善するために残りの接続が追加されます。最後に、3 つの異なるスケール (13x13、26x26、52x52) の予測が出力されます。

モデルの改善

1. 3 つの異なるスケールでの予測:
YOLOv3 では、3 つの異なるスケール (13x13、26x26、52x52) での予測が導入され、各スケールで境界ボックスのセットが生成されます。これは、ネットワークにさらに多くのフィーチャ レイヤーを追加し、さまざまなレベルで予測を行うことで実現されます。そうすることで、モデルがさまざまなサイズのオブジェクトをより適切に検出できるようになります。具体的には、小スケール (13x13) は主に大きなオブジェクトの検出に使用され、中スケール (26x26) は主に中サイズのオブジェクトの検出に使用され、大スケール (52x52) は主に小さなオブジェクトの検出に使用されます。
2. 3 つの異なるサイズの「アンカー ボックス」を使用する:
各予測スケールで、YOLOv3 はグリッド ユニットごとに 3 つの固定比率の「アンカー ボックス」を使用します。これらの「アンカー ボックス」は、トレーニング セット内のすべてのグラウンド トゥルース境界ボックスの幅と高さの比率の分布から導出されます。「アンカー ボックス」は、モデルが実際のオブジェクトのサイズとよりよく一致し、予測するのに役立ちます。
3.Darknet-53 ネットワーク構造:
YOLOv3 はバックボーン ネットワークとして Darknet-53 を使用します。Darknet-53 には 53 の畳み込み層が含まれており、同様のパフォーマンスの ResNet-50 と比較して計算量がほぼ半分に削減されます。1×1畳み込みと3×3畳み込みを交互に使用して特徴を抽出し、連続ブロックを利用してネットワークの深さを増やし、より複雑で高レベルの抽象的な特徴を抽出します。
4. 残留接続:
Darknet-53 では、残留接続、またはショートカット接続またはスキップ接続 (ResNet と同様) と呼ばれる接続も導入されています。これは、ディープ ニューラル ネットワーク トレーニング中の勾配消失と表現のボトルネック問題を解決するために設計された典型的な手法です。残留接続により、入力が出力または後続の層に直接流れることができるため、情報が効果的に伝播され、低レベルおよび高レベルの特徴を捕捉するのに役立ちます。
5.マルチラベル分類:
分類器部分では、YOLOv3 はマルチラベル分類にソフトマックスの代わりにシグモイド関数を使用します。これにより、モデルがオブジェクトの複数のカテゴリを予測できるようになり、同時に複数のカテゴリに属する​​オブジェクトなど、いくつかの複雑なシナリオを処理するのに役立ちます。
ここに画像の説明を挿入します

YOLOv4 モデル

YOLOv4 は、速度の利点を維持しながら精度をさらに向上させます。CSPDarknet53、PANet、SAM ブロックなどの新しいテクノロジーが導入されています。
ネットワーク構造: CSPDarknet53 がバックボーン ネットワークとして使用され、PANet が機能融合に使用され、SAM ブロックがアテンション メカニズムに使用されます。また、パフォーマンスを向上させるために、Mish アクティベーション関数や CIOU 損失などのテクノロジーも導入されています。
この改善により、いくつかの新しいテクノロジーが導入されました。
1. CSPDarknet53:
バックボーン ネットワークとして、CSPDarknet53 は YOLOv4 の主要コンポーネントです。Darknet53 ネットワーク構造に基づいており、効率とパフォーマンスを向上させるためにクロスステージ部分接続 (CSP) 戦略を採用しています。CSP 戦略は、ネットワークの順方向伝播中のメモリ消費を効果的に削減し、情報の流動性を高めてモデルのパフォーマンスを向上させることができます。
2. PANet:
PANet (Path Aggregation Network) は、機能融合に使用されるモジュールです。PANet は、ボトムアップおよびトップダウンのパスによる情報交換と融合を通じて、各レベルの特徴マップ間のセマンティック情報をより適切に利用できるため、ターゲット検出の精度が向上します。
3.SAM ブロック:
SAM (空間アテンション モジュール) ブロックはアテンション メカニズム モジュールです。入力特徴マップに対して空間的注意変調を実行することにより、SAM ブロックは価値のある領域 (つまり、注意が必要なターゲットの位置) を強調し、重要でない領域の影響を抑制できます。
4. Mish 活性化関数:
Mish 活性化関数は、特定のタスクに関して ReLU や他の一般的な活性化関数よりも優れたパフォーマンスを発揮する新しいタイプの非線形活性化関数です。Mish 活性化関数は、正の値の領域では単調増加と滑らかな連続性を維持でき、負の値の領域ではゼロに近いがゼロではない出力の範囲が広いため、バックプロパゲーション中にニューロンがアクティブのままになる可能性が高くなります。

Mish 活性化関数の数式は次のように表されます。
Mish ( x ) = x ⋅ Tanh ⁡ ( Softplus ( x ) ) \text{Mish}(x) = x \cdot \tanh(\text{softplus}(x) )ミッシュ( × )=バツTanh ( softplus ( x ))
ただし、softplus ( x ) = log ⁡ ( 1 + ex ) \text{softplus}(x) = \log(1+e^x)ソフトプラス( x )=ログ( 1 _+ex )はソフトポジティブ関数を表します。

5. CIOU 損失:
CIOU 損失は新しいタイプの損失関数であり、元の IoU 損失、GIoU 損失およびその他の方法と比較して、形状、サイズ、位置、および差異評価のその他の側面を含む要素をより包括的に考慮しています。トレーニングの過程でより優れた能力を発揮し、優れた安定性を発揮します。

以下は、CIOU 損失関数の数式表現です。

CIOU = 1 − IoU + d ( g , p ) c 2 + α v \text{CIOU} = 1 - \text{IoU} + \frac{ {\text{d}(g, p)}}{ { \テキスト{c}^2}} + \alpha vチャウ=1IoU+c2d ( g ,p )+αv

その中には、ggg はグラウンド トゥルース ターゲット フレーム、ppp は予測されたターゲット ボックス、IoU \text{IoU}IoU は和集合上の交差を意味します。d ( g , p ) \text{d}(g, p)d ( g ,p )はターゲット ボックス間の距離を表します、c \text{c}c は対角線の長さの正規化係数α \alphaαはバランス項です、vvv は、予測されたボックスと真のボックスの間のオフセットとスケールの差にペナルティを与えるために使用される補助項を表します。
ここに画像の説明を挿入します

YOLOv5 モデル

YOLOv5 はリアルタイム物体検出アルゴリズムで、名前に「YOLO」(You Only Look Once)が含まれていますが、YOLO の原作者である Joseph Redmon 氏が開発したものではなく、オープンソース コミュニティが推進するプロジェクトです。その名前にもかかわらず、「v5」は実際には大きな革新や画期的な機能を提供しません。主に、速度と精度を最適化するためにモデル構造にいくつかの調整が加えられ、トレーニング、検出、展開ツール チェーンの完全なセットが提供されました。
ネットワーク構造に関しては、YOLOv5 は YOLOv3/v4 と同様の設計を採用し、これに基づいていくつかの調整を行っています。 1. 畳み込みブロック構成の変更: この変更は、構成パラメーターを変更することにより、主にネットワーク内の
畳み込み
層を目的としています。各層のサイズ (コンボリューション カーネル サイズ、ステップ サイズなど) によってネットワーク構造が変化する可能性があり、それによってモデルのパフォーマンスと計算の複雑さに影響を与える可能性があります。
PANet の追加: PANet (Path Aggregation Network) は、マルチスケールおよびマルチレベルのフィーチャ情報を効果的に集約できるフィーチャ ピラミッド ネットワークです。PANet を導入すると、さまざまなサイズのターゲットを認識するモデルの能力が向上します。
2. 速度と精度の微調整と最適化:
開発者は、モデルの実行速度と予測精度を最適化するために、モデルに対して多数の微調整操作を実行しました。これには、タスク要件により適した活性化関数と損失関数の選択、学習率戦略の変更、データ拡張テクノロジーの使用などが含まれますが、これらに限定されません。
包括的で使いやすいツールチェーンを提供します: これには、自動ハイパーパラメータ検索機能が含まれます。ユーザーは、検索範囲とターゲット評価指標を設定するだけで、最適なハイパーパラメータの組み合わせを自動的に見つけます。モデルプルーニング機能は、ユーザーがエラーを除去するのに役立ちます。モデルのサイズを縮小し、実行時間を増加させるための冗長または重要ではない部分。
3. フォーカス モジュール:
YOLOv5 では、YOLOv4 のダウンサンプリング操作を置き換えるために使用される軽量の畳み込み構造であるフォーカス モジュールが導入されています。Focus モジュールは、特徴マップのサイズを縮小しながらより多くの情報を保持できるため、小さなターゲットの検出パフォーマンスと精度が向上します。
ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/weixin_42878111/article/details/132856697