オムライスの備忘録

数学・統計学・機械学習・プログラミングに関することを記す

【深層学習】SSD / Single Shot MultiBox Detector #アルゴリズム編

この記事の読者

深層学習・ディープラーニングの手法の1つである「SSD / Single Shot MultiBox Detector」について知りたい.


キーワード・知ってると理解がしやすい

  • CNN
  • VGG

yhayato1320.hatenablog.com

Index

SSD / Single Shot MultiBox Detector とは

2015 年に Google から発表された CNN を用いた物体検出の手法.

yhayato1320.hatenablog.com

物体検出のタスクでは、「物体の位置」と「物体の種類」の 二つを特定する必要がある.

SSD では、ニューラルネットアーキテクチャを工夫することで、その二つを一つの流れ (Single Shot) で推定する. (その分、高速でに処理ができる.)

SSD Framework / 検出の仕組み

CNN での特徴量抽出を基本として、「物体の位置(Bounding Box)」 と 「物体の種類(Class Score)」を推定する.



ネットワーク上流は、画像分類によく使用されるアーキテクチャを利用する.

これを論文では、ベースネットワークをして、VGG16 などが利用される.



yhayato1320.hatenablog.com

Multi-Scale Feature Maps For Detection

ベースネットワークに、CNN を追加していき、途中途中の出力を物体検出にための特徴量として利用する. そうすることで、異なるスケール情報から物体を検出することができる.

Convolutional Predictors For Detection

各スケールでの、特徴量から「物体の位置(Bounding Box)」 と 「物体の種類(Class Score)」を検出する 予測用の CNN を利用する.

Default Boxes and Aspect Ratios

各スケールの特徴量のセル(マス目)に、Default Box (anchor / アンカー) を適用する.



Default Box は学習する前に決めておく.
縦横比率(Aspect Rations) の異なる Default Box になるように決定する.



各スケールの特徴量のセル(アンカー・マス目)に、複数個、設置!



上図だと、4x4 や 8x8 の特徴量マップに、4 つの Default Box を設置している.

各セルに対する Default Box の縦横比(Aspect Rations)位置(x, y)は固定されており(中心に固定)、
予測する項目は、Default Box (の中心点) からのずれている距離(cx, cy) と、 Default Box (幅と高さ)との大きさのずれ(w, h)



また、クラスの予測は Default Box ごとに行う.

出力される予測の形状

各スケールの特徴量マップを予測用の CNN に入力し、予測結果が出力される.

入力の特徴量マップが  m\ \times\ n\ \times\ c のとき、出力の形状は、

 m\ \times\ n\ \times\ New\ Channel\ Num


とかける. ここで、

 New\ Channel\ Num\ =\ (Class\ Num\ +\ 4)\ \times\ Default\ Box\ Num


  • Default Box Num は Default Box の数
  • 4 は ある Default Box との差分(cx, cy, w, y) の 4 次元



出力を「物体の位置(Bounding Box)」 と 「物体の種類(Class Score)」に分けて考えてみる.



さらに、細く考える.

Non-Maximum Suppression Step

各スケールごとの予測結果には、各セルごとにDefault Box 分の予測結果を含んでいる.

そこで、まず各セルの中の Default Box の中で、予測スコアの高い Default Box を候補とする.

さらに、各スケールの結果をあわせ、予測したクラス同士の BB の IoU を計算する.

閾値以上の BB を削除し、重複している BB を削除する.

yhayato1320.hatenablog.com

アーキテクチャ



各スケールの特徴量マップを予測用のCNN (Detectors) に入力され、Non-Maximum Suppression で、 使用する BB を選定している.

Train

上では、SSDアーキテクチャから、どのように出力されるかを確認した. 次に、その予測と正解データ(GT; ground truth)をどのように使って、学習を行うかを考える.

Matching strategy

「予測した BB」 が 「どの GT の BB」 なのかを考える.

閾値(0.5)を超える jaccard 指数の「予測した BB」 と「GT の BB」を対応付ける. 閾値を超えるものを対応付けすることで, 「GT の BB」に重複する複数の「予測した BB」を対応付けすることができる.

損失関数 / 目的関数

損失関数は、位置に関する誤差関数クラスに関する誤差関数で構成されている.(重み付き平均)

 L(x,\ c,\ l,\ g)\ =\ \displaystyle \frac{1}{N} \left(L_{conf} (x,\ c)\ +\ \alpha\ L_{loc}(x,\ l,\ g) \right)

参考

  • SSD: Single Shot MultiBox Detector

Web サイト