論文読み SSD: Single Shot Multi Box Detector
とても有名な物体検出アルゴリズムなので読んでみました。
2 The Single Shot Detector (SSD)
2.1 Model
- SSDでは固定数のbounding boxとclass scoreを推定し、最後にNMSをかける。
- SSDの最初の方の層には、画像分類タスクにおいて高い性能を持つネットワークの分類層を除いたものを用いる(base networkと呼ぶ)。
Multi-scale feature maps for detection
- base networkの最後にいくつかの畳み込み層を追加する。
- 畳み込み層によって特徴マップのサイズを段階的に落としていくことで、マルチスケールでの検出を可能にする。
- 異なるスケールの特徴マップそれぞれでbounding boxとobject classを推定する。
Convolutional predictions for detection
- それぞれの特徴層に、の畳み込みをかけることでclass scoreとdefault box(後述)のoffsetを推定する。
- bounding boxのoffsetは、各特徴マップに対応するdefault boxを基準にして出力される。
Default box and aspect ratios
- 各特徴マップのそれぞれのcellについて、default boxを対応させる。
- default boxは畳み込みの要領で特徴マップ全体に敷き詰められるため、各cellに対応するboxの位置は固定。
- 各特徴マップのcellで、default boxのoffsetを推定するとともに、bounding box内に各クラスの物体が存在するかどうかのscoreを推定する。
- 具体的には、ある位置での個のboxそれぞれについて、 クラス数に対応した個のclass scoreと、default boxについての4つのoffsetを推定する。結果として、各位置について個のフィルタが適用されるため、の特徴マップから個の出力が生成される。
2.2 Training
- SSDでは、ground truth boxの情報をdetectorの対応する出力に割り当てる必要がある。
- 一回割り当てが決まれば、lossの計算や誤差逆伝播をend-to-endで行うことができる。
Matching strategy
- 学習の際に、どのdefault boxがground truthに対応しているのか決定するとともに、それに応じてネットワークを学習させる必要がある。
- MultiBoxでは、各ground truth boxについてjaccard overlapが最大となるdefault boxを対応するものとしている。
- SSDでは、あるdefault boxとground truth boxについて、jaccard overlapがしきい値(0.5)より大きい場合に一致していると見做す。
- これによって、overlapを最大化するdefault boxをたった一つ選択するという問題から、overlapしているdefault boxのscoreを高くするという問題へと単純化することができる。
Training objective
Choosing scales and aspect ratios for default boxes
- 複数の異なるスケールの特徴マップを検出に用いる。実用において、特徴マップの追加による計算コストの増加は僅か。
- 異なるスケールの特徴マップは、異なるサイズの受容野を持つ。
- SSDのフレームワークでは、default boxを各層の実際の受容野に対応させる必要はない。
- 特定の特徴マップが特定のスケールに対応するように学習を行うため、default boxのスケールとアスペクト比を設計する。
- 各特徴マップにおけるdefault boxのスケールは以下のように計算される。
- 最小と最大のスケールが決まれば、すべての特徴マップのスケールは等間隔になるように決定される。
Hard negative mining
- ほとんどのdefault boxは対応するground truthのないnegativeなものであるため、positive, negativeのサンプル数が不均衡になってしまう。
- そこで、全てのnegative exampleを使う代わりに、negative exampleを確信度が高い順にソートして、上位のものからnegative:positiveの比率が3:1になるように選択する。
- これによって学習が速く進むとともに安定する。
Data augmentation
- 以下からランダムに一つ選択した方法で学習用画像からパッチ画像をサンプリングする。
- 画像をそのままパッチ画像として用いる。
- 物体とのjaccard overlapの最小が0.1, 0.3, 0.5, 0.7, 0.9(ランダムに選択される)であるパッチ画像をサンプリングする。
- ランダムにパッチ画像をサンプリングする。
- ground truthの中心がサンプリングされたパッチ画像内にある場合は、パッチ画像に含まれるground truthと見做す(おそらく、見切れてるようなbounding boxを含めるかどうかの基準)。
- 各パッチ画像のスケールはオリジナルの画像に対して[0.1, 1]、アスペクト比は[1/2, 2]。
- パッチ画像に対してrandom horizontal flipといくつかのフォトメトリックな歪みを加える。