【YOLOv5】Backbone、Neck、Headの各モジュールの詳細説明

YOLOv5 アルゴリズムの概要

Yolov5 は、アンカーベースの検出方法を使用するターゲット検出アルゴリズムであり、一段階ターゲット検出方法に属します。Yolov5 は Yolov4 と比較して高速かつ高精度であり、現在業界をリードするターゲット検出アルゴリズムの 1 つです。

YOLOv5アルゴリズムの基本原理

Yolov5 は、ターゲット検出アルゴリズムにおける 1 段階法に基づいており、その主なアイデアは、画像全体をいくつかのグリッドに分割し、各グリッドがグリッド内のオブジェクトの種類と位置情報を予測し、予測された結果に従って、フレームと実際のボックス間の IoU 値を使用してターゲット ボックスをフィルタリングし、最終的に予測ボックスのカテゴリと位置情報を出力します。

特徴

Yolov5 には次の特徴があります。

  • 効率: 他のターゲット検出アルゴリズムと比較して、Yolov5 は高精度を確保することを前提として高速であり、特に GPU 環境でリアルタイム検出を実現します。

  • 高精度: マルチスケール予測や CIoU 損失などのメカニズムを使用することで、Yolov5 はターゲット検出の精度を向上させることができます。

  • 使いやすさ: Yolov5 はオープンソースで使いやすく、異なるハードウェア上で実行できる PyTorch バージョンと ONNX バージョンを提供します。

Yolov5 は、物体検出、顔検出、交通標識検出、動物検出など、さまざまな実用的なシナリオのターゲット検出タスクに適用できます。

YOLOv5 モデルの構造

yolov5 には、yolov5s、yolov5m、yolov5l、yolov5x、yolov5nano の 5 つのバージョンがあります。このうち、yolov5s が最小バージョン、yolov5x が最大バージョンです。両者の違いは、ネットワークの深さ、幅、パラメータの量にあります。

以下では、yolov5s をテンプレートとして使用して、yolov5 について詳しく説明します。より高い精度とより速い検出速度を備え、
同時にパラメーターが少なくなります。
YOLOv5s モデルは主に Backbone、Neck、Head で構成されており、ネットワーク モデルは次の図に示されています。その中で、
バックボーンは主に入力画像の特徴抽出を担当します。
Neck は、特徴マップのマルチスケール特徴融合を担当し、これらの特徴を予測レイヤーに渡します。
Head は最終的な回帰予測を行います。

![ここに画像の説明を挿入](https://img-blog.csdnimg.cn/856c6e2b5861444b9b94386d6eb5c8e1.png)

バックボーン バックボーン ネットワーク

バックボーン ネットワークは、画像特徴を抽出するために使用されるネットワークを指します。その主な機能は、後続のターゲット検出タスクのために元の入力画像を多層特徴マップに変換することです。Yolov5 では、CSPDarknet53 または ResNet バックボーン ネットワークが使用されており、これら 2 つのネットワークは比較的軽量であり、高い検出精度を確保しながら、計算量とメモリ使用量を可能な限り削減できます。
Backbone の主な構造は、Conv モジュール、C3 モジュール、SPPF モジュールです。

変換モジュール

Conv モジュールは、畳み込みニューラル ネットワークで一般的に使用される基本モジュールであり、主に畳み込み層BN 層、および活性化関数で構成されます。これらのコンポーネントは以下で詳細に分析されます。
ここに画像の説明を挿入

  • 畳み込み層は、畳み込みニューラル ネットワークの最も基本的な層の 1 つであり、入力特徴の局所的な空間情報を抽出するために使用されます。畳み込み演算はスライディング ウィンドウとみなすことができ、ウィンドウは入力特徴上でスライドし、ウィンドウ内の特徴値は畳み込みカーネルで畳み込まれて出力特徴を取得します。畳み込み層は通常、複数の畳み込みカーネルで構成され、それぞれが出力チャネルに対応します。コンボリューション カーネルのサイズ、ステップ サイズ、パディング方法などのハイパーパラメーターによって、コンボリューション層の出力サイズと受容野サイズが決まります。畳み込みニューラル ネットワークでは、特徴抽出器を構築するために畳み込み層がよく使用されます。
  • BN層は、ニューラルネットワークにおける特徴量の分布を正規化するために畳み込み層の後に追加される正規化層です。これにより、トレーニング プロセスが高速化され、モデルの汎化能力が向上し、モデルの初期化への依存が軽減されます。BN 層の入力は、各チャネルの特徴の平均と分散を計算し、各チャネルの特徴を標準化するバッチ特徴マップです。正規化された特徴は、学習可能なアフィン変換 (ストレッチとオフセット) によって復元され、BN 層の出力が得られます。
  • 活性化関数は、ニューラル ネットワークに非線形変換機能を導入するために使用される非線形関数です。一般的に使用される活性化関数には、シグモイド、ReLU、LeakyReLU、ELU などが含まれます。入力値の範囲が異なると出力動作が異なるため、さまざまな種類のデータ分布に適切に適応できます。

要約すると、Conv モジュールは畳み込みニューラル ネットワークで一般的に使用される基本モジュールであり、畳み込み演算を通じて局所的な空間情報を抽出し、BN 層を通じて固有値の分布を正規化し、最後に活性化関数を通じて非線形変換機能を導入します。入力特徴の変換と抽出を実現します。

C3モジュール

C3 モジュールは YOLOv5 ネットワークの重要な部分であり、その主な機能はネットワークの深さと受容野を増やし、特徴抽出能力を向上させることです。

C3 モジュールは 3 つの Conv ブロックで構成されます。最初の Conv ブロックのストライドは 2 (特徴マップのサイズを半分にできます)、2 番目と 3 番目の Conv ブロックのストライドは 1 です。C3 モジュールの Conv ブロックは 3x3 コンボリューション カーネルを使用します。各 Conv ブロックの間には、モデルの安定性と汎化パフォーマンスを向上させるために、BN 層と LeakyReLU 活性化関数も追加されています。

C3 モジュールの最初の Conv ブロックのストライドは 2 で、赤いボックス内の 2 つの Conv がボトルネックを形成します。これは、特徴マップのサイズが半分になることを意味します。この目的は、計算量を削減しながらネットワークの受容野を増やすことです。特徴マップのサイズを半分にすることで、ネットワークはオブジェクトのグローバル情報により多くの注意を払うことができ、それによって特徴抽出の効果が向上します。

C3 モジュールの 2 番目と 3 番目の Conv ブロックのストライドは 1 です。これは、特徴マップの次元を変更しないことを意味します。この目的は、オブジェクトのローカル情報をより適切に保存するために、特徴マップの空間解像度を維持することです。同時に、これら 2 つの Conv ブロックの主な機能は、特徴をさらに抽出し、ネットワークの深さと受容野を増やすことです。

一般に、C3 モジュールは、ネットワークの深さと受容野を増加させることにより、特徴抽出の能力を向上させます。これは、物体検出などのコンピュータ ビジョン タスクにとって非常に重要です。これらのタスクでは、物体の正確な認識と位置特定が必要であり、正確な認識と位置特定には優れた特徴抽出機能が必要であるためです。
ここに画像の説明を挿入

SPP

SPP モジュールは、畳み込みニューラル ネットワークで通常使用されるプーリング モジュールで、入力データの空間不変性と位置不変性を実現し、ニューラル ネットワークの認識能力を向上させるように設計されています。主なアイデアは、異なるサイズの受容野を同じ画像に適用して、異なるスケールの特徴情報をキャプチャできるようにすることです。SPP モジュールでは、まず入力特徴マップに対してさまざまなサイズのプーリング操作が実行され、さまざまなサイズの特徴マップのセットが取得されます。次に、これらの特徴マップが連結され、完全に接続された層を通じて次元削減が行われ、最終的に固定サイズの特徴ベクトルが取得されます。
ここに画像の説明を挿入

SPP モジュールは通常、次の 3 つのステップで構成されます。

  • プーリング: 入力特徴マップは、さまざまなサイズのプーリング操作を受けて、さまざまなサイズの特徴マップのセットが取得されます。
  • 連結: 異なるサイズの特徴マップを連結します。
  • 完全接続: 接続された特徴ベクトルの次元が完全接続層を通じて削減され、固定サイズの特徴ベクトルが取得されます。

ネックフィーチャーピラミッド

画像内のオブジェクトのサイズと位置は不確実であるため、さまざまなスケールやサイズのオブジェクトを処理するメカニズムが必要です。フィーチャ ピラミッドは、バックボーン ネットワーク上に異なるスケールのフィーチャ レイヤーを追加することで実現できる、マルチスケールのオブジェクト検出に対処するための手法です。Yolov5 では、FPN (Feature Pyramid Network) 特徴ピラミッド構造が採用されており、異なるレベルの特徴マップがアップサンプリングおよびダウンサンプリング操作によって融合され、マルチスケールの特徴ピラミッドが生成されます。トップダウン部分は主に、アップサンプリングと粗粒特徴マップとの融合によって異なるレベルの特徴の融合を実現し、ボトムアップ部分は畳み込み層を使用して異なるレベルの特徴マップを融合します。

ターゲット検出アルゴリズムでは、ネック モジュールは通常、さまざまなレベルの特徴マップを組み合わせてマルチスケール情報を含む特徴マップを生成し、ターゲット検出の精度を向上させるために使用されます。YOLOv5 では、PANet と呼ばれる機能融合モジュールが Neck モジュールとして使用されます。

具体的には、トップダウンの部分は、アップサンプリングと粗粒度の特徴マップとの融合によって、さまざまなレベルの特徴の融合を実現することであり、主に次のステップに分かれています。

1.对最后一层特征图进行上采样,得到更精细的特征图;
2.将上采样后的特征图与上一层特征图进行融合,得到更丰富的特征表达;
3.重复以上两个步骤,直到达到最高层。

ボトムアップ部分では主に畳み込み層を使用して、さまざまなレベルの特徴マップを融合します。これは主に次のステップに分かれています。

1.对最底层特征图进行卷积,得到更丰富的特征表达;
2.将卷积后的特征图与上一层特征图进行融合,得到更丰富的特征表达;
3.重复以上两个步骤,直到达到最高层。

最後に、トップダウン部分とボトムアップ部分の特徴マップが融合されて、物体検出のための最終的な特徴マップが得られます。

ヘッドターゲット検出ヘッド

ターゲット検出ヘッドは、いくつかの畳み込み層、プーリング層、全結合層を含む特徴ピラミッド上でターゲット検出を実行するために使用される部分です。YOLOv5 モデルでは、検出ヘッド モジュールは主に、バックボーン ネットワークによって抽出された特徴マップ上のマルチスケール ターゲット検出を担当します。このモジュールは主に 3 つの部分で構成されており、さらに、Yolov5 では、GIoU 損失、Mish 活性化関数、マルチスケール トレーニングなど、検出精度をさらに向上させるためのいくつかのテクニックも使用されています。

  • アンカー: さまざまなサイズとアスペクト比のターゲット ボックスを定義するために使用されます。通常、K 平均法クラスタリングを使用してトレーニング セットのターゲット ボックスをクラスタリングすることによって取得されます。これは、モデルのトレーニング前に計算され、予測のためにモデルに保存されます。検出ボックスを生成します。
  • 分類: 各検出フレームを分類して対象物体であるかどうかを判断するために使用され、通常、特徴は全結合層とソフトマックス関数の形式で分類されます。
  • 回帰: 各検出フレームを回帰してその位置とサイズを取得するために使用されます。通常は、特徴を回帰するための完全に接続されたレイヤーの形式で行われます。

YOLOv5 の検出ヘッド モジュールはマルチレベルの特徴融合方式を採用しており、まずバックボーン ネットワークから出力された特徴マップを Conv モジュールに通してチャネル数を削減し、特徴マップをスケーリングしてから、特徴マップを融合します。さまざまなレベルでより豊富な機能情報を取得し、検出パフォーマンスを向上させます。

YOLOv5の概要

Yolov5 は、ターゲット検出分野の深層学習アルゴリズムであり、Yolov4 の改良版であり、速度と精度が大幅に向上しました。Yolov5 の全体的なアーキテクチャは、バックボーン ネットワーク、FPN、Neck、Head およびその他のモジュールで構成されます。
バックボーンネットワーク部分にはCSPDarknet53を使用しており、残差構造と特徴再利用機構を利用することで、モデルの特徴抽出能力を効果的に向上させることができます。
FPN 部分は、ガウス重み付けに基づく特徴ピラミッドを使用し、マルチスケールのターゲット検出の問題を解決できます。

ネック部にはSPPとPANを組み合わせた構造を採用し、高効率を維持しながらモデルの性能を向上させることができます。
Head部分はYOLOv5ヘッド構造を採用しており、ネットワークの予測結果を出力することができます。

一般に、各モジュールの Yolov5 の設計では速度と精度のバランスが十分に考慮されており、ターゲット検出タスクで優れたパフォーマンスを発揮します。

おすすめ

転載: blog.csdn.net/qq_44878985/article/details/129287587