SSD: Single Shot MultiBox Detector
(ECCV2016)
@conta_
緒方 貴紀 (@conta_)
CRO@ABEJA, Inc.
Computer Visionとか、Machine Learning
の研究開発をやっています
Self Introduction
2
3
一般物体検出の論文
• 検出速度のアルゴリズム(YOLO)より高速で、Faster R-CNNと同等の高精度
なを実現するState of the artなアルゴリズムの提案
• 比較的低解像度でも高精度に検出できる
• 階層的なFeature mapと利用することで様々なスケールに対応
• アスペクト比ごとに識別器を作ることで、高い精度の検出率を達成
• シンプルなネットワーク設計によりEnd-to-Endで学習できる
SSD: Single Shot MultiBox Detector
4
画像から定められたクラスの物体を検出&識別するタスク
Object Detection
5
Shaoqing Ren, Kaiming He, Ross Girshick, & Jian Sun. “Faster R-CNN: Towards Real-Time
Object Detection with Region Proposal Networks”. NIPS 2015.
• R-CNN (Regions with CNN features) (CVPR 2014) [1]
• SPPnet (ECCV 2014) [2]
• Fast R-CNN (ICCV 2015) [3]
• Faster R-CNN (NIPS 2015) [4]
• YOLO(You Only Look Once) (CVPR 2016) [5]
Related Works
6
• R-CNN (Regions with CNN features) (CVPR 2014) [1]
• SPPnet (ECCV 2014) [2]
• Fast R-CNN (ICCV 2015) [3]
• Faster R-CNN (NIPS 2015) [4]
• YOLO(You Only Look Once) (CVPR 2016) [5]
Related Works
7
深いぃ歴史!
• R-CNN (Regions with CNN features) (CVPR 2014) [1]
• SPPnet (ECCV 2014) [2]
• Fast R-CNN (ICCV 2015) [3]
• Faster R-CNN (NIPS 2015) [4]
• YOLO(You Only Look Once) (CVPR 2016) [5]
Overview
8
• Selective Searchを用いて、画像から物体候補(Region proposals)を探す(2000個程度)
• 物体候補の領域画像を全て一定の大きさにリサイズしてCNNにかけてfeaturesを取り出す
• 取り出したFeaturesを使って複数のSVMによって学習しカテゴリ識別、Regressionによって
Bounding Box(物体を囲う正確な位置)を推定
R-CNN
9
■欠点
• 学習を各目的ごとに別々に学習する必要がある(Fine-tune/SVM/Bounding Box Regression)
• 実行時間がすごく遅い(GPUを使って10-45 [s/image])
R-CNN
10
• R-CNN (Regions with CNN features) (CVPR 2014) [1]
• SPPnet (ECCV 2014) [2]
• Fast R-CNN (ICCV 2015) [3]
• Faster R-CNN (NIPS 2015) [4]
• YOLO(You Only Look Once) (CVPR 2016) [5]
Overview
11
• RoI pooling layerというシンプルな幅可変Pooling
• Classification/Bounding Box Regressionを同時に学習させるためのMulti-task lossに
よって1回で学習させる
• オンラインで教師データを生成する工夫の提案
VGG16を用いたR-CNNより9倍の学習速度、213倍の識別速度
Fast R-CNN
12
■欠点
• Region Proposalの部分はDeepじゃない(Selective Search)
Fast R-CNN
13
• R-CNN (Regions with CNN features) (CVPR 2014) [1]
• SPPnet (ECCV 2014) [2]
• Fast R-CNN (ICCV 2015) [3]
• Faster R-CNN (NIPS 2015) [4]
• YOLO(You Only Look Once) (CVPR 2016) [5]
Overview
14
• Region Proposal Network (RPN)という物体候補領域を推定してくれるネットワーク
• + RoI Poolingにクラス推定を行うことでEnd to Endで学習できるアーキテクチャを提案
既存手法(Selective Search)よりも物体候補が高精度化
GPU上で5fpsの実行速度を達成、識別精度もFast-RCNNより高精度化
Faster R-CNN
15
■欠点
• ネットワークが複雑、意外と実装大変(所感)
• まだまだReal-Timeには程遠い
Faster R-CNN
16
• R-CNN (Regions with CNN features) (CVPR 2014) [1]
• SPPnet (ECCV 2014) [2]
• Fast R-CNN (ICCV 2015) [3]
• Faster R-CNN (NIPS 2015) [4]
• YOLO(You Only Look Once) (CVPR 2016) [5]
Overview
17
• 予め画像全体をグリッド分割、各領域ごとに物体のクラスとBounding Boxを求める
• シンプルなCNNのアーキテクチャ
R-CNNに識別精度は少し劣るが45-155FPSの検出速度を達成
YOLO(You Only Look Once)
18
■欠点
• グリッド内に大量のオブジェクトが映ってしまうような場合に弱い
• 分割されたグリッドサイズは固定かつ、グリッド内で識別できるクラスは1つで、
• 検出できる物体の数は2つという制約を設けている(実験の設定では)
YOLO(You Only Look Once)
19
20
シンプルなネットワークを用いた物体検出アルゴリズム(YOLOに近い)
• 学習時にObject Proposalを直接学習
• Proposal Generationが不要
• Fast/Faster R-CNNのようなFeature Resamplingのステージが不要
• 全ての演算を1つのネットワークで実現
SSD
21
シンプルなネットワークを用いた物体検出アルゴリズム(YOLOに近い)
• 学習時にObject Proposalを直接学習
• Proposal Generationが不要
• Fast/Faster R-CNNのようなFeature Resamplingのステージが不要
• 全ての演算を1つのネットワークで実現
SSD
22
VOC2007のデータセットにおいて、
300×300の入力画像サイズで74.3% mAP at 59 FPSを達成(Nvidia Titan Xを利用)
512×512の画像サイズにおいては、76.8% mAPを達成(Faster R-CNNは73.2% mAP)
• Multi-scale feature maps for detection
• Convolutional predictors for detection
• Default boxes and aspect ratios
Model
23
• Multi-scale feature maps for detection
• Convolutional predictors for detection
• Default boxes and aspect ratios
Model
24
ベースネットワークの最後に
FeatureMapを追加
=> 出力サイズをゴリゴリ減らしてマ
ルチスケールに対応
• Multi-scale feature maps for detection
• Convolutional predictors for detection
• Default boxes and aspect ratios
Model
25
3x3の小さなフィルタを掛け、
物体クラスのスコアと、物体位置の
オフセットを出力
• Convolutional predictors for detection
3x3の小さなフィルタを掛け、物体クラスのスコアと物体位置のオフセット(x, y ,
w, h)を出力
出力の一つ一つのセルが
・物体クラス
・物体位置
を表すイメージ
Model
26
• Multi-scale feature maps for detection
• Convolutional predictors for detection
• Default boxes and aspect ratios
Model
27
• Default boxes and aspect ratios
異なるアスペクト比に対応するために、アスペクト比ごとに出力を分ける
k個のアス比の異なるボックス、c個の物体クラスと、4つのオフセットを出力する
場合、1つセルのサイズは(c+4)kになる
feature mapがm*nとすると、
最終的な出力マップは、(c+4)kmnになる
Model
28
ロス関数は
物体の位置ずれである、localization loss (loc) と
物体のクラスである、confidence loss (conf)を組み合わせたもの
各画像で出てきた全ての出力に対して、(1)式を計算する
(Nはマッチしたボックスの数、重みαは実験では1.0)
Training Objective
29
localization loss (loc)は、Faster R-CNNと同様の Smooth L1 loss
Training Objective
30
confidence loss (conf)は、Softmax Loss
マルチスケールな出力をするために、各Feature Mapに役割を与える
Choosing scales and aspect ratios for default boxes
31
Feature Mapのみなさん
m個のFeatureMapを使う場合、
各FeatureMapは下記のスケールを持つ大きさのオブジェクトを
検出する役割を持つ
Choosing scales and aspect ratios for default boxes
32
(Sminは0.2、Smaxは0.9)
アスペクト比が1の場合においては、下記の異なるスケールのBoxを計算
アスペクト比は、
 ar ∈ {1, 2, 3, 1/2, 1/3}
において、下記の式でDefault Boxの大きさを計算
Choosing scales and aspect ratios for default boxes
33
1つのFeatureMapに対して、合計6個のアスペクト比のBoxを作る
*ただし幾つかのFeatureMapは除く(4個)
大量にBounding Boxをサジェストされるので、
学習時にNegativeが大量に発生
confidence lossを降順にソートして、上位からピックアップ
NegativeとPositiveの比率が3:1になるように調整
Hard negative mining
34
下記3つの方法からランダムにとる
• 画像全体を利用
• Jaccard Overlapが{0.1, 0.3, 0.5, 0.7, 0.9} のパッチをサンプリング
• パッチをランダムサンプリング
パッチサイズはオリジナルの[0.1, 1]、aspect ratioは[1/2, 2]
もし、Cropしたサンプル内にGround Truthの領域が入っていたら、その領域はすべて含む
(その後)サンプリングした後に、各サンプルをリサイズして0.5の確率でFlip
Data augmentation
35
■Base Network
- ILSVRC CLS-LOC datasetでPretrainされたVGG16をベースにする
- fc6とfc7をConvolution Layerに変更
- pool5を 2×2−s2 -> 3×3−s1
- a trous algorithmを利用
- Dropoutなし
- fc8 Layerは削除
Experimental Results
36
SSD300 is already better than Faster R-CNN by 1.1%
SSD512 is 3.6% better.
PASCAL VOC 2007
37
- Data augmentationは重要
- Default boxは多い方がいい
- Atrous is faster
- 使わない場合は精度はほぼ同じで20%遅い
Model analysis
38
- Multiple output layers at different resolutions is better
- SSDのメジャーコントリビューション
- conv7だけだと一番精度が低い
- ROI Poolingを使わないので"collapsing bins problem"は起きない
Model analysis
39
SSD512 achieves 80.0% mAP, which is 4.1% higher than Faster R-CNN.
PASCAL VOC2012
40
Results
41
Inference time
42
Faster R-CNNとYOLOより高精度
Fast YOLOは155 FPSだけど、SSDより22% mAP精度が低い
• 検出速度のアルゴリズム(YOLO)より高速で、Faster R-CNNと同等の高精度
なを実現するState of the artなアルゴリズムの提案
• 比較的低解像度(300x300px)でも高精度に検出できる
• 階層的なFeature mapと利用することで様々なスケールに対応
• アスペクト比ごとに識別器を作ることで、高い精度の検出率を達成
• シンプルなネットワーク設計によりEnd-to-Endで学習できる
まとめ
43
Join Us!
https://www.wantedly.com/companies/abeja
• [1] Girshick, Ross, et al. "Rich feature hierarchies for accurate object detection and semantic
segmentation." Proceedings of the IEEE conference on computer vision and pattern recognition. 2014.
• [2] He, Kaiming, et al. "Spatial pyramid pooling in deep convolutional networks for visual recognition."
European Conference on Computer Vision. Springer International Publishing, 2014.
• [3] Girshick, Ross. "Fast r-cnn." Proceedings of the IEEE International Conference on Computer Vision. 2015.
• [4] Ren, Shaoqing, et al. "Faster R-CNN: Towards real-time object detection with region proposal networks."
Advances in neural information processing systems. 2015.
• [5] Redmon, Joseph, et al. "You only look once: Unified, real-time object detection." arXiv preprint arXiv:
1506.02640 (2015).
• [6] Liu, Wei, et al. "SSD: Single Shot MultiBox Detector." arXiv preprint arXiv:1512.02325 (2015).
• [7] Uijlings, Jasper RR, et al. "Selective search for object recognition." International journal of computer
vision 104.2 (2013): 154-171.
Appendix
45

SSD: Single Shot MultiBox Detector (ECCV2016)