アンカー適応アンカーフレーム計算

適応アンカーフレーム計算

事前定義されたフレームは、事前設定されたフレームのセットです。トレーニング中は、事前設定されたフレーム(つまり、配置するラベル)に対する実際のフレーム位置のオフセットを使用して構築されます。

トレーニングサンプル。これは、ターゲットをプリセットフレームからほぼ可能な位置「フレーム」し、これらのプリセットフレームに基づいて調整することと同じです。

ANアンカーボックスをによって定義することができる。プリセットフレーム生成規則のシリーズに相当するフレームのフレームのアスペクト比およびエリア(スケール)、アンカーボックスによれば、フレームの一連に発生させることができます画像の任意の位置

アンカーボックスは通常、CNNによって抽出されたフィーチャマップのポイントを中心位置としてフレームを生成するため、アンカーボックスは中心位置を指定する必要はありません。

より高速なR-CNNは、3セットのアスペクト比ratio = [0.5,1,2]と3つのスケールを定義しscale = [8,16,32]、9つの異なる形状とサイズの境界線を組み合わせることができます。

言い換えると、比率はアスペクト比を定義します。スケールは境界の面積です

アンカーボックスの生成は、CNNネットワークによって最後に生成された(元の画像の座標にマッピングされた)フィーチャマップ上のポイントを中心に行われます。例として、より高速なR-CNNを取り上げます。VGGネットワ​​ークは、入力画像を16ダウンサンプリングするために使用されます。つまり、フィーチャマップ上の点は、入力画像上の16×16の正方形の領域(受容野)に対応します。事前定義されたアンカーによると、次の図に示すように、フィーチャマップ上のポイントは、元の画像上に9つの異なる形状とサイズの境界線を生成できます。

img

上の写真から、アンカーが必要な理由もわかります。CNNの受容野によると、機能マップ上の点は、元の画像の16×1616×16の正方形の領域に対応します。領域の境界のみを使用してターゲットを特定すると、その精度は間違いなく非常に低くなり、ターゲットを「フレーム化」することすらできない場合があります。アンカーを追加すると、フィーチャマップ上のポイントで9つの異なる形状とサイズのボックスを生成できるため、ターゲットを「ボックス化」する可能性が非常に高くなります。検査のリコール率を大幅に向上;そして、これらの境界を調整するための後続のネットワークを介して、その精度も大幅に向上させることができます。

Faster R-CNN by Anchor Boxによって生成された機能マップは、元の画像の16倍のダウンサンプリングによって取得されます。このように、さまざまなアスペクト比は、実際には、16×16の領域をさまざまな形状に拡大します。次の図:

img

つまり、中心点だけが同じで、面積が同じで、形状が変わっているということです。

異なる比率で生成されたフレームの領域は同じであり、同じサイズです。3つの異なる領域(スケール)は、実際には上記の16×1616×16の領域を拡大または縮小します。
128×128128×128は16×1616×16の倍率8倍、256×256256×256は16倍の倍率、512×512512×512は32倍の倍率です。以下に示すように:

img

境界線の計算

Yoloアルゴリズムでは、さまざまなデータセットに対して、初期の長さと幅のアンカーボックスあります

ネットワークトレーニングでは、ネットワークは最初のアンカーフレームに基づいて予測フレームを出力し、それを実際のフレームのグラウンドトゥルースと比較し、2つの間のギャップを計算してから、更新を逆にしてネットワークパラメータ繰り返します

img

Yolov3とYolov4では、異なるデータセットをトレーニングする場合、初期アンカーボックスの値の計算は別のプログラムを介して実行されます。

しかし、Yolov5では、この関数はコードに埋め込まれており、トレーニングされるたびに、さまざまなトレーニングセットの最適なアンカーボックス値が適応的に計算されます。

もちろん、計算されたアンカーフレームの効果があまり良くないと感じた場合は、コードで自動アンカーフレーム計算機能をオフにすることもできます

img

質問1:なぜアンカーボックスが必要なのですか?

アンカーボックスが必要な理由を理解するには、最初に以前のターゲット認識方法のいくつかを理解する必要があります。

1.スライディングウィンドウ

これは比較的原始的なターゲット検出方法です。固定サイズのウィンドウが与えられた場合、設定されたペースに従って左から右、上から下に段階的にスライドし、予測と分類のために各ウィンドウを畳み込みニューラルネットワークに入力します。これには2つあります。短所:

  • ウィンドウサイズが固定されているため、大きな変形のあるオブジェクトには適していません
  • より多くのウィンドウと多くの計算

2.地域の推奨事項

img

これはR-CNNシリーズのコアアイデアです。より高速なR-CNNを例にとると、モデルでは2つのニューラルネットワークが使用されます。1つはCNNで、もう1つはRPN(地域提案)です。地域提案ネットワークは責任を負いません。画像分類用。データセットの1つに属する可能性のある画像内の候補領域の選択のみを担当します。次のステップは、RPNによって生成された候補領域を分類ネットワークに入力して最終的な分類を行うことです。

3.アンカーボックス

アンカーボックスは、Faster R-CNNペーパーに最初に登場しました。アンカーボックスを理解するには、最初に2つの問題を理解する必要があります。

*なぜアンカーボックスを提案するのですか?*

主な理由は2つあります。

  • ウィンドウは1つのターゲットしか検出できません
  • マルチスケールの問題を解決できません。

img

以前のモデルでは、ウィンドウごとに1つのターゲットしか予測できません。ウィンドウを分類ネットワークに入力し、最終的に予測確率を取得します。この確率がどのカテゴリに偏っている場合、ウィンドウ内のターゲットは、次の回帰などの対応するカテゴリとして予測されます。図の赤いボックス歩行者の確率が高い場合、ターゲットは歩行者であると見なされます。さらに、1つのアイデアは、主にマルチスケールの問題を解決するときに使用されます。ピラミッド、またはDPMモデルなどの古典的な機能ピラミッドです。さまざまな解像度の特徴マップの下で、さまざまなサイズのターゲットを検出します。しかし、これには問題があります。つまり、計算量が大幅に増加します。

*なぜ異なるサイズと異なるアスペクト比を使用するのですか?*

img

ユニオン(IOU)よりも大きな交差点を取得するため。

例としてトレーニングフェーズを取り上げます。

コンピュータビジョンの場合、理解しやすいグラウンドトゥルース、各ターゲットの人工ラベル。しかし、アンカーボックスのアイデアをトレーニングセットに追加した後、各アンカーボックスをトレーニングサンプルとして扱いますしたがって、ターゲットモデルをトレーニングするには、各アンカーボックスのラベルにマークを付ける必要があります。ここでのラベルには、次の2つの部分が含まれています。

  • カテゴリラベル
  • オフセット

複数のアンカーボックスがありますが、どれを選択すればよいですか?これは、クロスコンビネーションによって選択を行うためです。固定サイズのアンカーが使用されている場合、アンカーマークは対象外であると想像してください。

img

たとえば、図の茶色は歩行者の実際のラベル、黄色は車両の実際のラベル、赤いボックスはフィーチャマップからマッピングされたアンカーボックスであるため、それぞれを取得することは困難です。交差点と比較によるフィーチャマップのユニット。対応するラベル。

img

img

この場合、アンカーボックス1と歩行者との交差比は比較的大きく、歩行者の訓練と予測に使用でき、アンカーボックス2と車との交差比は比較的大きく、訓練と車を予測します。よりターゲットを絞った、さまざまなアスペクト比とサイズのアンカーボックスを使用します。

アンカーボックスのサイズの選び方は?

現在、アンカーボックスを選択する主な方法は3つあります。

  • 人間の経験の選択
  • k-クラスタリングを意味します
  • ハイパーパラメータとして学習する

質問2:アンカーボックスはどの段階で使用されますか?

もちろん、トレーニングフェーズと予測フェーズの両方で使用されます。しかし、ここで問題が発生します。トレーニングフェーズと予測フェーズでどのように使用しますか?

先ほど見た雲や霧の中は大丈夫ですので、ここで詳しく話しましょう。

1.トレーニングフェーズ

トレーニングフェーズの主な理解は、アンカーボックスが実際にトレーニング中に設定されるということです。つまり、実際の予測中に複数のアンカーボックスが生成され、反復によって損失関数が最小になるため、予測ボックスは次のようになります。前の入力と同じアンカーフレームは可能な限り一貫しています

ラベル

トレーニングフェーズでは、アンカーボックスがトレーニングサンプルとして使用されます。トレーニングサンプルの場合、各アンカーボックスに2種類のラベルを付ける必要があります。1つはアンカーボックスに含まれるターゲットカテゴリで、もう1つはカテゴリと呼ばれます。アンカーボックスに対する実際のバウンディングボックスの偏差です。シフト、オフセット(オフセット)と呼ばれます

ターゲット検出中、最初に複数のアンカーボックスを生成し、次に各アンカーボックスのカテゴリとオフセットを予測し、次に予測されたオフセットに従ってアンカーボックスの位置を調整して予測された境界ボックスを取得し、最後に出力が必要な予測された境界ボックスをフィルタリングします。

各ターゲットのグラウンドトゥルースを知っているので、アンカーボックスにラベルを付ける方法は?

最大交差比(IOU)を使用する

img

写真は実践的なディープラーニングからのものです

画像に
アンカーボックスあるとすると

このようにして、実際の境界ボックスは、アンカーボックスと実際の境界ボックスとの間の対応する関係行列が形成される。
ここに画像の説明を挿入

[外部リンク画像の転送に失敗しました。ソースサイトにヒル防止リンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします(img-pStVuRZK-1612342739834)(https://www.zhihu.com/equation? tex = X%5Cin%20R%5E%7Bn_a%5Ctimes%20n_b%7D#pic_center)]

[外部リンク画像の転送に失敗しました。元のサイトにヒル防止リンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします(img-54ufaga1-1608376802802)(https://www.zhihu.com/equation? tex = X%5Cin + R%5E%7Bn_a%5Ctimes + n_b%7D)]次に、この対応に従って、各アンカーボックスとの交差率が最大の真の境界ボックスを見つけ、真の境界のラベルを使用します。ボックスをアンカーボックスのラベルとして使用し、アンカーを計算します。実際の境界ボックスに対するボックスのオフセット。

このようにして、各アンカーボックスにラベルとオフセットのマークが付けられます。

トレーニング

img

*トレーニングフェーズ中にアンカーボックスはいつトリガーされますか?*

一連の畳み込みとプーリングの後、アンカーボックスが特徴マップレイヤーで使用されます。上の図に示すように、一連の特徴抽出の後、最終的に[外部リンク画像転送の失敗に対して、ソースサイトにアンチ-リーチチェーンメカ​​ニズム、推奨されます画像を保存して直接アップロードします(img-NIuAJ1rz-1608376802804)(https://www.zhihu.com/equation?tex=3%5Ctimes3)]グリッドは[外部リンクを取得します画像の転送に失敗しました。ソースサイトにリーチ防止チェーンメカ​​ニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします(img-sGwmbK5n-1608376802805)(https://www.zhihu.com/equation?tex= 3%5Ctimes3%5Ctimes2%5Ctimes8)]フィーチャレイヤー、ここで2はアンカーボックスの数、例として「深層学習」コースを取り、2つのアンカーボックスを選択します。8は各アンカーボックスに含まれる変数の数を表します。 4つの位置オフセットと3つのカテゴリ(ワンホットラベリング方式)、1つのアンカーボックスラベル(アンカーボックスと実際のフレームの交差比が最大の場合は1、それ以外の場合は0)です。

フィーチャレイヤーに到達したら、各セルを元の画像にマッピングし、事前にラベル付けされたアンカーボックスを見つけて、このアンカーボックスとグラウンドトゥルースの間の損失を計算します。トレーニングの主な目的は、アンカーボックスを実際の画像に合うようにトレーニングすることです。フレームモデルパラメータ。

損失関数を見ると、この概念を理解するのに役立ちます。FasterR-CNNの元のテキストで使用されている損失関数は次のとおりです。

[外部リンク画像の転送に失敗しました。元のサイトにヒル防止リンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします(img-Qsi29swv-1608376802806)(https://www.zhihu.com/equation? tex = L%5Cleft%28%5Cleft%5C%7Bp_%7Bi%7D%5Cright%5C%7D%2C%5Cleft%5C%7Bt_%7Bi%7D%5Cright%5C%7D%5Cright%29%3D%5Cfrac% 7B1%7D%7BN_%7Bc + l + s%7D%7D +%5Csum_%7Bi%7D + L_%7Bc + l + s%7D%5Cleft%28p_%7Bi%7D%2C + p_%7Bi%7D%5E% 7B%2A%7D%5Cright%29%2B%5Clambda +%5Cfrac%7B1%7D%7BN_%7Br + e + g%7D%7D +%5Csum_%7Bi%7D + p_%7Bi%7D%5E%7B%2A% 7D + L_%7Br + e + g%7D%5Cleft%28t_%7Bi%7D%2C + t_%7Bi%7D%5E%7B%2A%7D%5Cright%29)]

[外部リンク画像の転送に失敗しました。ソースサイトにヒル防止リンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします(img-NObpkzft-1608376802806)(https://www.zhihu.com/equation? tex = L_%7Bc + l + s%7D%5Cleft%28p_%7Bi%7D%2C + p_%7Bi%7D%5E%7B%2A%7D%5Cright%29)]はカテゴリの損失、[外部リンク画像転送に失敗しました。ソースサイトにアンチホットリンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします(img-Ssoa3IjB-1608376802807)(https://www.zhihu.com/equation?tex=p%5E% 2A_i)]は実際のラベルです。正のサンプルの場合は、1としてマークします。負のサンプルの場合は、0としてマークします。同様に、[外部リンク画像の転送に失敗しました。ソースサイトにヒル防止リンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします(img-GGBUOqum-1608376802808)(https://www.zhihu.com/方程式?tex = L_%7Br + e + g%7D%5Cleft%28t_%7Bi%7D%2C + t_%7Bi%7D%5E%7B%2A%7D%5Cright%29)]は位置オフセット損失、[外部リンク画像の転送に失敗しました。ソースサイトにヒル防止チェーンメカ​​ニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします(img-84SaTL87-1608376802809)(https://www.zhihu.com/equation?tex = t%5E%2A_i))。アンカーボックスの4つのパラメーター化された座標のベクトル。トレーニングの最終的な目標は、損失関数を作成することです。https://www.zhihu。

2.予測フェーズ

*モデルの予測段階で、予測された境界ボックスを取得するにはどうすればよいですか?*

まず、画像内に複数のアンカーボックスが生成され、次にこれらのアンカーボックスのタイプとオフセットが、トレーニングされたモデルパラメータに従って予測され、次に予測された境界ボックスが取得されます。しきい値とアンカーボックスの数の選択により、同じターゲットが複数の同様の予測境界ボックスを出力する場合があります。これは、簡潔であるだけでなく、計算量も増加します。この問題を解決するために、一般的に使用される方法非最大抑制(非最大抑制、NMS)を使用することです。

* NMSを理解する方法は?*

img

NMSは、冗長性を抑制する反復トラバーサルプロセスです。

予測されたバウンディングボックスの場合[外部リンク画像の転送に失敗しました。ソースサイトにヒル防止リンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします(img-MnIIAqSU-1608376802814)(https://www.zhihu .com / equation?tex = B)]の場合、モデルは最終的に各カテゴリに属する​​確率値を計算します。確率値が最大のカテゴリは、予測された境界ボックスのカテゴリです。同じ画像上で、すべての予測バウンディングボックスの予測確率を(カテゴリを区別せずに)大きいものから小さいものに並べてから、最も高い確率で予測されたバウンディングボックスを取り出します。[外部リンク画像の転送に失敗しました。ソースサイトに盗難防止チェーンメカ​​ニズム、画像を保存して直接アップロードすることをお勧めします(img-TrZbZ1vm-1608376802815)(https://www.zhihu.com/equation?tex=B_1)]次に、残りの予測バウンディングボックスと[外部リンク画像の転送に失敗しました。ソースサイトにリーチ防止チェーンメカ​​ニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします(img-bMDg2HrO-1608376802816)(https://www.zhihu .com / equation?tex = B_1)]比率が、指定されたAの特定のしきい値より大きい場合、この予測境界ボックスは削除されます。このようにして、確率が最も高い予測された境界ボックスが保持され、他の同様の境界ボックスが削除されます。次に行うことは、残りの予測された境界ボックスから最大の確率値を持つ予測された境界ボックスを選択することです[外部リンク画像の転送に失敗しました。ソースサイトに盗難防止リンクメカニズムがある可能性があります。画像を保存することをお勧めします直接アップロードします(img-UAMXo6XT-1608376802817)(https://www.zhihu.com/equation?tex=B_2)]計算プロセスは上記のプロセスを繰り返します。


おすすめ

転載: blog.csdn.net/ahelloyou/article/details/111409090