【ターゲット検出】(6)V1をベースにYOLOV2ターゲット検出を改善

みなさん、こんにちは。今日はYOLOV2ターゲット検出アルゴリズムの原理を紹介します。最初にYOLOV1について学ぶことをお勧めします。私の最後の記事を読むことができます:https ://blog.csdn.net/dgvv4/article/details/123767854

YOLOV1は非常に高速ですが、精度が低く、ローカリゼーションパフォーマンスが低く、再現率が低く、小さくて密度の高いターゲットの検出が不十分です。そのため、YOLOV2は以下の改善を行いました


1.バッチ正規化

バッチ正規化は、ニューロンの出力を平均から差し引き、それを標準偏差で除算します。その結果、平均が0、標準偏差が1の分布になります。シグモイド関数やtanh関数など、多くの活性化関数は0付近の不飽和領域にあるため、活性化関数の入力が大きすぎたり小さすぎたりすると、活性化関数の飽和領域に入り、消失します。勾配とトレーニングの難しさのバッチ正規化を使用して、ニューロンの出力を強制的に0付近に集中させます。

バッチ正規化は、モデルのトレーニングフェーズとテストフェーズで異なります。

トレーニングフェーズでは、batch_size = 32の場合、つまり、各バッチが32枚の画像を処理する場合、各画像はニューロンを通過した後に応答値を出力し、特定の層のニューロンは32個の応答値を出力します。この場合32個の応答値は平均、標準偏差として計算され、正規化されます。標準化された応答が乗算\ガンマおよび加算され\ベータ各ニューロンをグループでトレーニングする必要があります\ gamma、\ betaこのように、ニューロンの出力は、平均が0、標準偏差が1の分布に制限され、収束を高速化して過剰適合を防ぐために、出力は不飽和​​領域に制限されます。

テストフェーズでは、平均、分散、、、およびすべてが\ガンマ\ベータ トレーニングフェーズでグローバルに取得された結果を使用します。たとえば、テストの平均は、トレーニングフェーズ中の多くのバッチの平均の期待値を使用します

式は次のとおりです。これ\ epsilon は、分母が0になるのを防ぐための非常に小さい数値です。

BN(X_ {test})= \ gamma \ frac {X_ {test}-\ mu _ {test}} {\ sqrt {\ sigma _ {test} ^ {2}} + \ epsilon} + \ beta


2.高解像度分類器

一般的な画像分類ネットワークは、224*224などのより小さな解像度でimagenetデータセットでトレーニングされます。YOLOV1のモデルの入力画像の解像度は448*448であり、小さい解像度でトレーニングされたネットワークは大きい解像度のターゲット検出モデルでトレーニングされます。ネットワークトレーニング中にネットワークを小さい解像度から大きい解像度に切り替える必要があります。レートが低下し、パフォーマンスが低下します。YOLOV2は、448 * 448画像分類データセットでバックボーンネットワークを直接トレーニングし、ネットワークを大きな解像度に適応させ、マップを3.5%改善します。


3.アプリオリボックス

YOLOV1では、画像は7x7グリッドに分割され、各グリッドは2つの予測フレームを生成します。この予測フレームと実際の検出フレームのIOUの交差率は大きく、その予測フレームは実際の検出フレームのフィッティング、交差、小さい予測ボックスのマージは排除されます。2つの予測ボックスには長さと幅の制​​限がなく、どちらもランダムに変化します。YOLOV2では予測フレームには初期参照フレームがあり、予測フレームは元の位置で微調整するだけで済み、オフセットを調整できます。

YOLOV2では、画像は13 * 13グリッドに分割され、各グリッドには、長さと幅のスケールが異なる5つのアプリオリボックス、つまり5つの異なるアスペクト比があります。前の各ボックスは予測ボックスに対応し、予測は前のボックスに対する予測ボックスのオフセットを出力するだけで済みます。

手動でマークされた実際の検出フレームの中心点がどのグリッドにあるかは、グリッドで生成されたアプリオリフレームと実際の検出フレームIOUとの交差率が最大のアプリオリフレームによって予測され、予測結果は次のようになります。予測それ自体の前のボックスからのボックスのオフセット


4.モデル出力結果

YOLOV1では、前のフレームは使用されず、画像は7 * 7グリッドに分割され、各グリッドは2つの予測フレームを生成し、予測フレームには4つの位置パラメーターと1つの信頼パラメーターが含まれ、各グリッドには20のカテゴリクラスを含む条件付き確率があります。したがって、各グリッドには5 + 5+20のパラメータがありますモデル出力特徴マップの形状は[7,7,30]です。

YOLOV2では、画像は13 * 13グリッドに分割され、各グリッドは5つのアプリオリボックスを生成します。各アプリオリボックスには、4つの位置パラメーター、1つの信頼度パラメーター、および20の条件付き確率のカテゴリが含まれますしたがって、各グリッドには5 *(4 + 1 + 20)=125のパラメーターがありますモデル出力特徴マップの形状は[13,13,125]です。

次の図に示すように、モデルの入力画像の形状は[416、416、3]です。一連の畳み込み演算の後、13 * 13*125のテンソルが出力されます。各グリッドには5つのアプリオリボックスと5つのアプリオリボックスが含まれます。各アプリオリボックスには(5+ 20)*5パラメーターがあります


5.予測ボックスの微調整

モデル出力前のボックスと比較した予測ボックスのオフセット座標オフセット(tx、ty)、および幅と高さのオフセット(tw、th)(tx、ty)は、負の無限大から正の無限大までの任意の数にすることができます。座標オフセットが大きくなりすぎないようにするには、オフセットにシグモイド関数 \ sigma(tx)を追加し、座標オフセットを0-1に制限して、予測を設定します。フレームの中心点は、フレームが配置されているグリッドに拘束されます。

下の図に示すように、(cx、cy)は前のフレームの中心点が配置されているグリッドの左上の座標(正規化された座標)(pw、ph)は前の最大のフレームの幅と高さです実際のフレームと交差します。ターゲットオブジェクトが大きく、予測ボックスも大きい可能性があるため、前のボックスの幅と高さに指数exを掛けます。


6.損失関数

YOLOV2は、13*13グリッドのすべての予測ボックスをトラバースします。

(1)最初の項は信頼誤差です。前のボックスと実際の検出ボックスのIOU交差率がしきい値よりも小さいかどうか。未満の場合は1、それ以外の場合は0。前のボックスと検出ボックスの中心点を一致させて、交差率を計算します。オブジェクトの予測に関与しない前のボックスの信頼度を可能な限り0に近づけます

(2)第2項は、予測ボックスと前のボックスの間の位置誤差です。それが最初の12800回の反復であるかどうか、モデルトレーニングの初期段階であるかどうかを判断します。満足している場合は1、そうでない場合は0。事前フレームの位置パラメーター( x 、y、w、h)を予測フレームの位置パラメーターにできるだけ近づけます。

(3) 3番目の項目は、IOUが最大のアプリオリフレームがオブジェクトの検出を担当することです。はいの場合は1、いいえの場合は0。ここでは、グラウンドトゥルース検出ボックスは、IOUが最大の前のボックスによって予測されると想定されています。IOUがしきい値よりも大きいが最大値ではない以前のボックスの場合、その損失は無視されます。ポジショニングエラーでは、実際の検出フレームの位置と予測フレームの位置をできるだけ近づける必要があります。信頼エラーでは、前のフレームと実際のフレームのIOUと、予測フレームの信頼度ができるだけ一致している必要があります。可能な限り、分類エラーには実フレームと予測フレームのカテゴリが必要です。カテゴリは可能な限り一貫しています。


7.きめ細かい機能

浅いネットワークによって出力された特徴マップは2つのブランチに分割され、1つのブランチは畳み込み演算であり、もう1つのブランチは特徴マップを4つの部分に分割してチャネル次元にスタックし、2つのブランチを重ね合わせます。最下層のきめ細かい情報と畳み込み後の高レベルの情報の両方が取得されます。さまざまなスケールの情報を統合し、小さなオブジェクトの検出に役立ちます。

分割方法はYOLOV5のフォーカス方法と同等です。下図のように1つの特徴マップを4つに変更し、各特徴マップの長さと幅を元の半分に縮小し、チャンネル数をオリジナルの4倍。

おすすめ

転載: blog.csdn.net/dgvv4/article/details/123772756