SSD(シングルショットマルチボックス検出器)
SSD ペーパーのアドレス: https://arxiv.org/abs/1512.02325
SSD ペーパーは、VGG16 を使用して機能マップを抽出します。次に、Conv4_3 レイヤーを使用してオブジェクトを検出します。これは、古典的な 1 段階のネットワークです。ネットワーク構造:
アルゴリズムのステップ
- 画像を入力し、その画像に畳み込みニューラル ネットワーク (CNN) を通じて特徴を抽出させ、特徴マップを生成します。
- 6 つのレイヤー (マルチスケール) の特徴マップを抽出し、特徴マップの各点にデフォルト ボックスを生成します。
- 生成されたデフォルトボックスを全て集めてNMS(最大値抑制)に放り込み、フィルタリングしたデフォルトボックスを出力して出力
SSD は、YOLO の回帰のアイデアとFaster-RCNN のアンカー メカニズム(論文ではDefalut Boxと呼ばれています) を組み合わせており、画像全体の各位置のマルチスケール領域を回帰に使用します。これにより、YOLO の高速性が維持されるだけでなく、 , しかし、ウィンドウも保証します 予測は Faster-RCNN と同じくらい正確です. SSD のコアは、さまざまなスケールの特徴マップで畳み込みカーネルを使用して、一連のデフォルト バウンディング ボックスのカテゴリと座標オフセットを予測することです. SSD コアの設計は主にには以下の3点があります。
1. マルチスケール
SSD アルゴリズムでは、さまざまなサイズの Conv4_3、c、conv8_2、conv7_2、conv8_2、conv9_2、conv10_2、conv11_2 の特徴マップが使用されます。目的は、低レベルの特徴マップでは、受容野が異なるスケールのオブジェクトを正確に検出することです。これは比較的小さく、高レベルの受容野は比較的大きいため、さまざまな特徴マップの畳み込みによりマルチスケールの目的を達成できます。
より大きなスケールの特徴マップで小さなオブジェクトを照合し (a)、より深い特徴マップでより大きなオブジェクトを照合する (b)、
2. 予測に全結合層の代わりに畳み込み層を使用する
SSD は完全に接続された層を使用しません。小さな畳み込みフィルターを使用して位置とクラスのスコアを計算します。特徴マップを抽出した後、SSD は予測のために各ユニットに 3×3 畳み込みフィルターを適用します。(これらのフィルターは通常の CNN フィルターと同じように計算します。) 各フィルターは 25 チャネル (各クラスの 21 スコアと境界ボックス) を出力します。
3. 前のボックスを設定します
デフォルト ボックス (Prior Box) は、RPN のスライディング ウィンドウによって生成される候補ボックスに似ています。SSD では、特徴マップのピクセルごとにいくつかのボックスも生成されます。
名前 | アウトサイズ | 以前のボックス名 | 合計_数 |
---|---|---|---|
変換4_3 | 38×38 | 4 | 5776 |
conv5_2 | 19x19 | 6 | 2166 |
変換7_2 | 10×10 | 6 | 600 |
conv9_2 | 5x5 | 6 | 150 |
変換10_2 | 3x3 | 4 | 36 |
conv11_2 | 1x1 | 4 | 4 |
8732 |
前のボックスは高速 rcnn のアンカーに相当し、いくつかのボックスは事前に設定されており、ネットワークはボックスに従って分類と回帰を通じて検出されたオブジェクトのカテゴリと位置を与えます。各ウィンドウはソートされ、より正確な位置とサイズに戻されます。
論文では、conv4_3、conv10_2、conv11 には 4 つのデフォルト ボックスが使用され、他の 3 つは 6 つのデフォルト ボックスが設定されています。デフォルトのボックス (prior_box_name) の数とサイズ設定は、次の表に従って計算されます。
画像出典: SSD アルゴリズム理論
トレーニングと予測
入力 -> 出力 -> 結果とグラウンド トゥルースの回帰損失計算 マークされたサンプル -> バックプロパゲーション、重みの更新
最初に前のボックスをグラウンド トゥルース ボックスと照合して、正と負のサンプルをマークし、デフォルトで 8732 個の計算されたサンプルを毎回トレーニングしませんボックスでは、最初に信頼性スクリーニングを実行し、指定されたポジティブ サンプルとネガティブ サンプルをトレーニングします。次のルールが適用されます:
ポジティブ サンプル:
GT の最大 IOU (マーク値 - グラウンド トゥルース) に一致するデフォルト ボックスは、任意のグラウンドに対してポジティブ サンプルです。 true IOU 0.5 より大きい場合も陽性サンプルとして設定されます。
写真は元の紙から切り取ったものです
負のサンプル:
信頼損失が大きいほど、損失も大きくなります。負のサンプルとして上部の値を選択します。トレーニング中、デフォルトのボックスは正と負のサンプルに従って制御されます。正: 負=1:3
失敗計算
L ( x , c , l , g ) = 1 N ( L conf ( x , c ) + α L loc ( x , l , g ) L(x, c, l, g)=\frac{1} {N}\left(L_{conf}(x, c)+\alpha L_{loc}(x, l, g)\right.L ( x ,c 、l 、g )=N1( Lコンファ_ _( x ,c )+αL _ロック_( x ,l 、g )
L conf ( x , c ) = − ∑ i ∈ Pos N xijp log ( c ^ ip ) − ∑ i ∈ N eg log ( c ^ i 0 ) where c ^ ip = exp ( cip ) ∑ p exp ( cip ) L_{\text {conf }}(x, c)=-\sum_{i \in P os}^{N} x_{ij}^{p} \log \left(\hat{c} _{i}^{p}\right)-\sum_{i \in N eg} \log \left(\hat{c}_{i}^{0}\right) \quad \text { where } \ quad \hat{c}_{i}^{p}=\frac{\exp \left(c_{i}^{p}\right)}{\sum_{p} \exp \left(c_{i} ^{p}\右)}L会議 ( x ,c )=−i ∈位置_∑Nバツijpログ_(c^私p)−i ∈負_ _∑ログ_(c^私0) どこ c^私p=∑p経験値( c私p)経験値( c私p)
- N は、一致から GT (グラウンド トゥルース) までの以前のボックスの数です。
- c ^ ip \hat{c}_{i}^{p}c^私p予測されたiiについてiデフォルト ボックスは GT ボックスP \mathrm{P}のカテゴリ確率に対応しますP
- xijp = { 0 , 1 } x_{ij}^{p}=\{0,1\}バツijp={ 0 ,1} 为第 i i i のデフォルト ボックスと一致するj 番目の \mathrm{j}j GT ボックス (カテゴリはP \mathrm{P}P )
参考:
SSD: Single Shot MultiBox Detector
SSD 物体検出: リアルタイム処理
対象検出用 Single Shot MultiBox Detector | SSD の原理と
深層学習の実装 – SSD アルゴリズムプロセスの詳細説明