04ディープラーニング~ターゲット検出~ディープラーニング手法を詳しく解説~2段階のターゲット検出アルゴリズム

1. ディープラーニング対象検出アルゴリズムの紹介

       第 2 回の記事では、ターゲット検出における従来のアルゴリズムとターゲット検出手法を紹介し、第 3 回の記事では、従来のターゲット検出アルゴリズムとディープラーニングのターゲット検出アルゴリズムを簡単に比較し、ディープラーニングのターゲット検出の内容を記録します。アルゴリズム. ターゲット検出における深層学習アルゴリズムの原理と効果について詳しく見てみましょう。深層学習アルゴリズムは、ターゲット検出における分類の 2 段階に分かれています。 

  • ワンステージ(YOLO、SSDシリーズ):目標位置に直接復帰します。
  • 2 段階 (高速 RCNN シリーズ): RPN ネットワークを使用して候補領域を推奨します。つまり、完全な畳み込みニューラル ネットワークを通じて検出プロセスを完了します。

       まずはTwo-stageについて紹介します。

2. 2段階に基づくターゲット検出アルゴリズム

       2 段階のターゲット検出アルゴリズムは、主に完全な畳み込みニューラル ネットワーク
を通じてターゲット検出プロセスを完了します。ターゲット検出に使用される特徴はCNN 特徴です。つまり、CNN 畳み込みニューラル ネットワークは候補のペアを抽出するために使用されます。特徴の説明エリアターゲットの。

        二段階ターゲット検出アルゴリズムの最も代表的なものは、2014 年に提案された R-CNN からより高速な RCNN までの一連のアルゴリズムです。

       トレーニング プロセスには 2 つのステップが必要です。RPN ネットワークのトレーニングと、ターゲット エリアでのネットワーク トレーニングです。従来のターゲット検出アルゴリズムと比較して、分類器をトレーニングしたり、特徴表現を実行したりする必要はありません。AからBまでのプロセス全体が完全な畳み込みニューラルネットワークによって完了され、同時に精度が向上します。ただし、1 段階よりも遅くなります。

        上記の説明は次の点に要約できます。

  • CNN の畳み込み機能
  • R. Girshick et al.、2014 年、R-CNN をより高速な RCNN に提案
  • エンドツーエンドのターゲット検出 (RPN ネットワーク)
  • 高精度、1ステージに比べて比較的遅い速度

 3. 2段階の基本プロセス

       入力画像 -------画像から深い特徴を抽出 (バックボーン ニューラル ネットワーク) --RPN ネットワークはスライディング ウィンドウのタスクを完了します。つまり、候補領域を生成し、候補領域の分類 (背景とターゲット) を完了します。 ) 目標位置の予備位置決め ------- 計算を繰り返さずに CNN 特徴を計算するために、roi_pooling を通じてマッティング操作が完了します ------- fc 全結合層が候補領域を表します -- -- 分類と回帰 カテゴリの決定と候補ターゲットの位置の絞り込み (オブジェクトの真のカテゴリの取得)
 

詳細なプロセス:

       まず、画像が入力され、次にその画像が深い特徴のために抽出されます。つまり、画像が入力として使用され、畳み込みニューラル ネットワークを通過します。通常、バックボーン ネットワークと呼ばれます。典型的なバックボーン ネットワークには、いくつかの古典的な畳み込みニューラル ネットワークが含まれますVGG や ResNet ネットワークなどのネットワークを使用し、次にRPN ネットワークを使用して、従来のターゲット検出アルゴリズムのスライディング ウィンドウによって完了するタスク、つまり候補領域を生成します。候補フレーム領域を抽出する際、候補フレーム領域は分類されます (分類プロセス中に、候補フレーム領域は背景とターゲットの 2 つの異なるカテゴリに分類されます)RPN ネットワークは候補エリアを生成するときに、ターゲットの位置の事前予測も行います。これは、RPN ネットワークがエリア分類と位置の絞り込みの両方を同時に完了することを意味します。候補領域を取得した後, 候補領域は roi_pooling 層によってさらに正確に回帰および補正されます. Roi_pooling はマッティングとして理解できます. 次に, 特徴マップ上の候補ターゲットに対応する特徴を取得した後, fc 層を使用してさらに、候補エリアの特性を表現し、分類と回帰による候補ターゲットのカテゴリの決定と候補ターゲット位置の絞り込みを完了しますここでのカテゴリは RPN ネットワークのカテゴリとは異なります。回帰は主に、通常長方形のボックスとして表される現在のターゲットの特定の座標位置、つまり 4 つの値 (x、y、w、h) を取得します。

4. 2段階の共通アルゴリズム

  • RCNN
  • 高速RCNN
  • より高速な RCNN
  • より高速な RCNN バリアント

 

5. 2 段階のコアコンポーネント 

1. Two-stageの2つのコアコンポーネント

       2 ステージには 2 つの重要なコア コンポーネントがあります。

  • CNNネットワーク(バックボーンネットワーク)
  • RPNネットワーク

2. バックボーン CNN ネットワークの設計原則

  • 単純なものから複雑なものへ、そして複雑なものから単純な畳み込みニューラル ネットワークへ

        単純なネットワーク構造: より古典的なものは LeNet (入力層が 1 つ、畳み込み層が 2 つ、プーリング層が 2 つ、全結合層が 3 つあります。ただし、LeNet は大規模タスクにおけるネットワーク表現と抽象化の能力が比較的貧弱です)。

       複雑なネットワーク構造: LeNet に続いて、LSNet、Resnet、Vgg などの複雑なネットワーク構造が登場しましたが、これらのネットワーク構造は、ネットワークが深いほど非線形表現能力が強くなり、ネットワークの深さを増すためによく使用されます。取得されるオブジェクトはより抽象的になります。表現は画像の変化に対する感度が低くなり、ロバスト性が強くなり、非線形タスクを解決する能力が高くなります。また、勾配の消失や勾配の分散にもつながります。最も典型的なのは 100 層を超える深さを持つ Resnet で、最も古典的なのは GoogleNet です。

  • マルチスケールの機能融合ネットワーク
  • より軽量な CNN ネットワーク

       設計するときは、パフォーマンスとモデルのサイズを考慮してください。現時点では、従来の ShuffleNet、MobileNet などの軽量の CNN ネットワークを使用する必要があります。

3.RPNネットワーク

       RPN ネットワークを理解する前に、まずエリア推奨 (アンカー メカニズム) の関連概念をいくつか理解します。

1. 地域推薦(アンカーメカニズム)

1.1 問題の導入

       多くの場合、ターゲット オブジェクトは画像上のあらゆる位置に現れる可能性があり、ターゲットのサイズは不確かです。では、すべてのオブジェクトを検出する方法はあるのでしょうか? 最も簡単に考える方法は、ピクセルを中心としてアスペクト比とサイズの異なる多数の小さなブロックをインターセプトすることです。各小さなブロックは、パッケージにオブジェクトが含まれているかどうかを検出します。オブジェクトが含まれている場合は、オブジェクトの位置がそのオブジェクトの位置になります。小さな破片の位置を特定し、同時にそのカテゴリを予測します。このようにして、現在のピクセルのアスペクト比とサイズを持つオブジェクトが見逃されることはありません。ちょうどインターセプトされた小さなブロックがアンカー ボックスです

       画像内のさまざまな位置にあるオブジェクトを検出するには、スライディング ウィンドウ法を使用して画像を左から右、上から下にスキャンし、各ピクセル ポイントで検出用に多数の小さなブロックを取得し、さまざまな位置を確保します。さまざまなサイズのオブジェクトを見逃すことはありません。図1はスキャンチェックの一例です。

       この方法は分かりやすく確かに効果的ですが、計算量が膨大になるというデメリットも目立ちます。画像の特徴マップ サイズが 640*640 で、画像内のピクセルごとにアスペクト比とサイズが異なる 10 個のフレームが検出用に選択された場合、検出する必要があるフレームは 640 x 640 x 10 = 4096000 になります。 . 以下のように多すぎます。どうすれば改善できますか? 

        実際、上記の問題に関して改善できる明らかな点が 2 つあります。

  • まず、4,096,000 のスキャン フレームが重なりすぎます。
  • まず、これらのフレームの多くは背景であり、オブジェクトが含まれていないため、検出する必要がありません。

したがって、画像全体が確実にカバーされるようにすること、重なりすぎるフレームを省略すること、背景フレームを回避すること、および検出対象のオブジェクトを含む可能性のある高品質の候補フレーム       を見つけることが特に重要です。計算量を削減し、検出速度を向上させます

       アンカー ボックスは、検出前に決定される一連の候補ボックスです。デフォルトでは、画像上に表示されるすべてのオブジェクトは、設定したアンカー ボックスで覆われます。アンカー ボックスの選択の品質は、次の 2 つの側面に直接関係します。

  • 一つは、全体像をうまくカバーできるかどうか。
  • 1 つは、写真に映るすべてのオブジェクトをフレームに収めることができるかどうかです。

       したがって、アンカー ボックスの設定は非常に重要であり、精度だけでなく速度にも関係します (速度は上記のスキャン方法のみに適用されます)。

1.2 ソリューションセットのアンカーボックス

設定したアンカーボックスを        利用すること計算量を削減し、検出速度を向上させます。アンカーボックスの設定方法は?これを実現するには、次の手順に従います。

  • アスペクト比の決定
  • 規模の決定
  • アンカーボックスの数の決定

       例: データ セットでオブジェクト検出を実行する場合、データ セットの画像解像度は 256 x 256 で、データ セット内のほとんどのターゲット オブジェクトのサイズは40 x 40 または 80 x 40 です

アスペクト比の決定

       データ セットの大部分のターゲット オブジェクトのサイズは40*40 または 80*40 であるため、これは、データ セット内のほとんどのオブジェクトの実際の境界線の高さと幅の比率が1:1 であることを意味します。 2:1 。この情報に基づいて、アンカー ボックスのアスペクト比情報を決定できます。このデータ セットのアンカー ボックスを設計する場合、アスペクト比には少なくとも 1:1 および 2:1 が含まれる必要があります便宜上、ここでは 1:1 と 2:1 のみを例として取り上げます。

規模の決定

       スケールとは、オブジェクトの高さまたは幅画像の高さまたは幅の比率ですたとえば、画像の幅が 256 ピクセルで、画像内のオブジェクトの幅が 40 ピクセルの場合、オブジェクトのスケールは 40/256=0.15625 になります。これは、オブジェクトが画像の幅の 15.62% を占めることを意味します。 。

       データ セット内のターゲットをより適切に表現できるスケール セットを選択するには、データ セット内のターゲット オブジェクト最大スケール値最小スケール値を上限と下限として使用する必要があります。たとえば、データセット内のオブジェクトのスケールの最小値と最大値はそれぞれ 0.15625 と 0.3125 であり、この範囲内で 3 つのスケールを設定する場合は、{0.15625, 0.234375, 0.3125} を選択できます。

アンカーボックスの数の決定

       スケールは {0.15625, 0.234375, 0.3125}、アスペクト比は {1:1, 2:1} で、各アンカー ポイントのアンカー ボックスのセットの数は 3x2 = 6 です。下図に示すように、サイズは {0.15625、0.234375、0.3125} の 3 つがあり、各サイズには 2 つのアスペクト比 {1:1、2:1} があります。

       上記の方法によれば、アンカーポイントは256x256画像内の各ピクセルを指しますが、アンカーベースのニューラルネットワークターゲット検出によれば、アンカーポイントはネットワークの最終出力特徴マップ上の各点になります

1.3 アンカーはターゲット検出にどのように使用されますか?

       ネットワークでは、アンカー ボックスを使用してターゲット オブジェクトの位置をエンコードしますターゲット検出は一般に、オブジェクト フレームの絶対座標を直接検出するのではなく、アンカー フレームに対するそのオフセット (下図の緑色の真値フレームから青色のフレームへのオフセットなど) を検出します。データセット内のすべてのオブジェクトは、アンカー ボックスからのオフセットとしてエンコードされます。たとえば、質問 1.1 で紹介した画像には、多くのアンカー ボックスがあります。画像には複数のオブジェクトと多くのアンカー ボックスが含まれる場合があります。では、アンカー ボックスを使用して真の値をエンコードするにはどうすればよいでしょうか?

True 値の境界ボックスをアンカー ボックスでエンコードする手順

  • a. 各アンカー ボックスについて、どの true 値境界ボックスが和集合スコアの最大の交差を持つかを計算します。
  • b. 交差率が >50% の場合、現在のアンカー ボックスは、現在の真値バウンディング ボックスに対応するオブジェクトを検出し、アンカー ボックスに対する真値バウンディング ボックスのオフセットを見つけます。
  • c. 交差率が 40% から 50% の間の場合、アンカーにオブジェクトが含まれているかどうかを判断できず、ファジー ボックスとなります。
  • d. 交差率が <40% の場合、アンカー フレームはすべて背景であるとみなされ、アンカーは背景クラスとして分類されます。
  • 割り当てられたオブジェクトのアンカーボックス以外にも、背景のみを含むアンカーボックスや曖昧ボックスについては、オフセットに0が割り当てられ、分類に背景が割り当てられる。

       エンコード後、オブジェクト検出ネットワークの回帰ターゲットは、回帰エンコードされた offset になりますネットワークの入力は画像で、出力は各アンカー ボックスの分類とオフセットです。ネットワークが最終的に出力する特徴マップ上の各ピクセルは、アンカー ボックスのセットを持ちます (アンカー ボックスのセットの数が 6 の場合、アスペクト比は 2:1 と 1:1、スケールは 0.15625、0.234375、図に示すように、0.3125)、ネットワークの最終出力特徴マップ解像度が 7*7 であると仮定すると、回帰ネットワーク内のアンカー ボックスの総数は 7x7x6=296 になります。ネットワークが受け取る真の値は、296 個のアンカー ボックスが背景であるかどうかの分類情報 (オブジェクトが含まれている場合、オブジェクト カテゴリに分類されます) と、ターゲット オブジェクトの境界ボックスに対する各アンカーのオフセット (ブラー間のオフセット) です。シフト量は 0)、ネットワークの出力は 296 個のボックスのオフセットと分類情報です。

        トレーニング済みネットワークの場合、その出力では、背景のみを含むアンカー ボックスは背景として分類され、オフセットは 0 になります。オブジェクトを含むアンカー ボックスはオブジェクト カテゴリとして分類され、オフセットは、アンカー ボックスとオブジェクトの実際の境界線の間のオフセット

 

絶対座標ではなくオフセットを返す理由

       ニューラル ネットワークの特性の 1 つは変位不変性です。たとえば、木が写っている写真の場合、その木が写真の左上隅にあるか右下隅にあるかに関係なく、ネットワークによって出力される分類は木であり、変更によって分類結果は変わりません。写真の木の位置です。したがって、木の場合、画像内での位置に関係なく、回帰ネットワークは同じ位置座標を出力する傾向があります。変位の不変性は、必要な位置座標の変更と矛盾することがわかりますが、これは明らかにそうではありません。許容範囲です。回帰オフセットに目を向けると、ツリーが画像内のどこにあっても、ツリーが配置されているアンカー ボックスまでのオフセットは基本的に同じであり、これはニューラル ネットワーク回帰により適しています。

出力特徴マップとアンカー ボックスの関係は何ですか?

       アンカー ボックスは入力マップ上に配置されるべきではありませんか? 出力フィーチャ マップ上の各ポイントには一連のアンカー ボックスがあると言われるのはなぜですか?

図に示すように、出力特徴マップ (右端の 3 x 3 の小さな特徴マップ) 上の任意の点を入力画像 (受容野の意味) にマッピングできます。つまり、次のようになります。スケールとネットワークのダウンサンプリングにより、出力特徴マップ上の任意の点は、入力画像上の対応する位置で比例的に見つけることができます。たとえば、入力画像上の出力特徴マップ上の点 (0, 0) の対応する位置は (2, 2) であり、ネットワークの出力特徴次元は 3 3 84 (= 3 3 6 14) です。 次に、 出力 特徴 マップの 点 (0, 0) での 84 チャネルに対応する値は、入力画像の位置 (2, 2) での 6 つのアンカー ボックスのオフセットと分類値です。84 = 3  14 の 6 は 6 つのアンカー ボックス、14 の 4 は (x, y, w, h) のオフセット、14 の 10 はカテゴリの数です。

このような暗黙的なマッピング関係により、すべてのアンカー ボックスが入力画像上に配置されます。

1.3 アンカーの本質

          Anchorの本質はSPP(空間ピラミッドプーリング)の考え方を逆にしたものです。SPP 自体は、異なるサイズの入力を同じサイズの出力にサイズ変更するため、SPP の逆は、同じサイズの出力を反転して、異なるサイズの入力を取得することです。 

         領域の推奨事項: アンカー メカニズムと呼ばれます。つまり、n*c*w*h です。ここで、n はサンプル数を表し、c はチャネル数を表し、w と h は画像の高さと幅を表し、w* 内の各ポイントを表します。 h 領域を候補として使用します。
          領域の中心点は候補領域を抽出するために使用され、そのような各点はアンカーと呼ばれます。
          ある点を候補領域の中心点として候補領域を抽出する場合、通常、一定の割合に従って候補領域が抽出される。たとえば、fastRCN の各中心点は 9 つの候補領域を抽出します。したがって、1 w*h 領域には、w*h*9 個の候補領域を抽出する必要があります。
          これらの候補領域と真の値 (GT) について、真の値を使用してこれらの後続の領域をスクリーニングし、スクリーニング後に陽性サンプルと陰性サンプルを取得します。陽性サンプルとは、候補ターゲットを含む領域であり、それら
          が含まれるかどうかは通常 IOU を通じて決定されます。判定、つまり真値と候補領域の重なりの範囲判定です。真値
          と次の領域の重なり面積が 70% を超えた場合、陽性サンプルとなります。30% 未満の場合、陰性サンプルとなります。

         ここでの 0.7 と 0.3 はスーパーパラメータであり、自分で設定できます。

     RPN ネットワークは、バックボーン ネットワーク (VGG、ResNet などの 1 つ) によって出力された特徴マップを処理し、ターゲットを含む可能性のある複数の推奨エリアを生成します。これは 2 つの畳み込みブランチで構成され、1 つのブランチは座標回帰によって画像内のターゲットのおおよその位置を特定し、もう 1 つのブランチは二値分類処理によってターゲットを含む前景領域を見つけます。RPN のネットワーク構造を次の図に示します。

        RPN の入力特徴マップは、図 1 のバックボーン ネットワークによって抽出された特徴マップであり、共有特徴マップとも呼ばれ、スケールは H (高さ) × W (幅) × C (チャネル数) です。この特徴パラメータに基づいて、3×3 スライディング ウィンドウを介して、この H×W 領域をスライディングすると、H×W 3×3 ウィンドウが得られます。各 3×3 ウィンドウの中心点は、元の画像内のターゲット領域の中心点に対応します。

       次に、各特徴ベクトルに対して 2 つの完全接続操作を実行します。1 つのブランチは 2 つのスコア (前景と背景の信頼度) を取得し、もう 1 つのブランチは 4 つの座標 (ターゲットの座標フレーム情報) を取得します。4 つの座標は、元のオフセットを参照します。グラフ座標の。同じ全結合演算を各ベクトルに対して実行する必要があるため、これは特徴マップ全体に対して 2 つの 1 × 1 畳み込みを実行することと同等であり、その結果、2 × H × W および 4 × H × W サイズの特徴マップが生成されます。最後に、事前定義されたアンカーと結合されて後処理操作が完了し、候補フレームが取得されます。
 

     全体として、RPN の顧客は次の点に要約できます。

  • 地域推薦(アンカーメカニズム)
  • ROIプーリング
  • 分類と回帰

おすすめ

転載: blog.csdn.net/qq_41946216/article/details/132801357