Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Feature	Pyramid	Networks	for	Object	Detec8on		
近年のSingle	Shot	Detectorのアーキテクチャまとめ	
第41回コンピュータビジョン勉強会@関東	
	
Yusuke	Uchida	(@yu4u)	
⾏けなかったので画像で	
気分だけ盛り上げております
1	
Photo	by	(c)Tomo.Yun	
hBp://www.yunphoto.net
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
⾃⼰紹介
!  Yusuke Uchida, Ph.D. (@yu4u)
!  ~2017: KDDI研(Researcher)
⁃  画像検索、画像認識、近似最近傍探索、深層学習
!  2017~: DeNA(Research Engineer)
⁃  コンピュータビジョン、深層学習、なんでも
⁃  ResNet系の細かすぎて違いがわからない亜種、
モデル圧縮、最近はsingle shot detectorがブーム
⁃  最近の進捗
KonbuNet
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
物体検出のアプローチ
!  スライディングウィンドウ系(e.g. Haar-like+Boosting, HOG+SVM)
a.  1つのスケールの物体のみを検出する検出器+画像リスケール
b.  複数のスケールの物体を検出する検出器を全スケール分
c.  少数のスケールの物体を検出する検出器+画像ピラミッド
!  (Deepでない)Region Proposal系(e.g. R-CNN, Fast-RCNN)
!  Deep Single Shot Detector系(e.g. Faster R-CNN, SSD, YOLO)
3	
e.g.	HOG	
+	SVM
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Single	Shot	Detectorの基本
4	
⼊⼒画像
Fully	ConvoluOonal	
Networks	(FCN)等	
e.g.	VGG,	ResNet
出⼒	
特徴マップ	
チャネル数=C
W
H	
W/S
H/S
C
S:	ストライド	
ダウンサンプルによる	
縮⼩倍率
⼊⼒画像をサイズ	(S,	S)	の	
W/S	x	H/S	(WF	x	HF)	グリッドに分割し	
各領域で※物体の検出、分類、	
BBOXの回帰を⾏っていることになる
※特徴量はより広い領域から抽出
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Single	Shot	Detectorの基本
5	
⼊⼒画像
Fully	ConvoluOonal	
Networks	(FCN)等	
e.g.	VGG,	ResNet
出⼒	
特徴マップ	
チャネル数=C
W
H	
W/S
H/S
C
S:	ストライド	
ダウンサンプルによる	
縮⼩倍率
FC層を含むCNNでも良いが	
⼊⼒サイズが任意になり	
学習が効率的なFCNが理想	
⼊⼒画像をサイズ	(S,	S)	の	
W/S	x	H/S	(WF	x	HF)	グリッドに分割し	
各領域で物体の検出、分類、	
BBOXの回帰を⾏っていることになる
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Single	Shot	Detectorの基本
6	
W
H	
W/S
H/S
C
例えばC	=	5とすると1クラスの物体検出	
特徴マップ:WF	x	HF	x	5	
5:	BBoxの座標 (4-dim)	+	検出スコア	
検出スコア=グリッド内に物体の中⼼があると1を出⼒	
⼊⼒画像をサイズ	(S,	S)	の	
W/S	x	H/S	(WF	x	HF)	グリッドに分割し	
各領域で物体の検出、分類、	
BBOXの回帰を⾏っていることになる
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Single	Shot	Detectorの基本
7	
W
H	
W/S
H/S
C
⼊⼒画像をサイズ	(S,	S)	の	
W/S	x	H/S	(WF	x	HF)	グリッドに分割し	
各領域で物体の検出、分類、	
BBOXの回帰を⾏っていることになる
例えばBをスケール数とし、C	=	B	x	5とすると	
1クラス・Nスケールの物体検出	
特徴マップ:WF	x	HF	x	5	x	N	
5:	BBoxの座標 (4-dim)	+	検出スコア
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Faster	R-CNN:	Towards	Real-Time	Object	Detec8on	with	Region	
Proposal	Networks,	NIPS’15.
8	
特徴マップ:WF	x	HF	x	B	x	(4	+	2)	
B:	BBoxの数 (=9),	異なるスケール、Aspect	raOo	
4:	BBoxの座標 (4-dim)
2:	検出スコア(前景・背景分類)	
クラス分類は⾏わない	
VGGNet,	ZFNet
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
特徴マップ:WF	x	HF	x	(B	x	5	+	C)	=	7	x	7	x	30	
B:	BBoxの数 (=2)	
5:	Bboxの座標 (4-dim)+検出スコア
C:	クラス数 (=20)	
クラス分類までする	
You	Only	Look	Once:	Unified,	Real-Time	Object	Detec8on,	CVPR’16.
9	
FCが	
⼊っている
特徴	
マップ
YOLOv1
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
SSD:	Single	Shot	Mul8Box	Detector,	ECCV’16.
10	
分かりにくいが、1つの特徴マップに着⽬すると同じ	
特徴マップ:WF	x	HF	x	B	x	(4	+	C)	
B:	BBoxの数 (=6),	1,	2,	3,	1/2,	1/3のアス⽐+scaleの⼤きいBOX	
4:	Bboxの座標 (4-dim)
C:	クラス数 (=20)	Pr(Class)	←	Class毎のdetecOonをしている	
出⼒特徴マップ群、各マップが異なるスケールの物体を担当	
Log-scaleではなく何故かリニア
See	hBps://www.slideshare.net/takanoriogata1121/ssd-single-shot-mulObox-detector-eccv2016
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
YOLO9000:	BeZer,	Faster,	Stronger,	CVPR’17.
11	
YOLOv2
Conv	3	x	3	x	1024	
Conv	1	x	1	x	125	
↓Darknet
concat
特徴マップ:WF	x	HF	x	B	x	(5	+	C)	
B:	BBoxの数 (=5)	
5:	Bboxの座標 (4-dim)+信頼度
C:	クラス数 (=20)	
特徴マップは1つ	
Bbox毎の検出になった	
BBoxのデフォルト形状をk-means	
で求めている
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Feature	Pyramid	Networks	for	Object	Detec8on	
CVPR’17
12
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
13	
Fast	R-CNN
ResNet
Integral	channel	features	&	
Aggregate	channel	features
Shape	context
Feature	Pyramid	Networks	for	Object	Detec8on	
CVPR’17
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
アーキテクチャの分類
14	
Faster	R-CNN	
YOLO	
SSD	 Proposed	
Upsample
AddiOon
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
アーキテクチャの分類
15	
Faster	R-CNN	
YOLO	
SSD	
Proposed	
(b) は特徴マップの解像度が低い	
(c) は低いレイヤの特徴抽出が弱い
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
アーキテクチャの分類
16	
Faster	R-CNN	
YOLO	
SSD	
Proposed	
(b) は特徴マップの解像度が低い	
(c) は低いレイヤの特徴抽出が弱い	
(d) は低いレイヤもコンテキストを
抽出した特徴を利⽤でき	
解像度も⾼い
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
(参考)コンテキストの重要性	(Finding	Tiny	Faces,	CVPR’17)
!  異なるスケールのfeature mapを統合したheatmap prediction精度
!  コンテキストを増やすほど精度が向上する
⁃  ⼩さい顔でres5まで追加すると精度低下→過学習によるもの
!  ⼩さい顔は⼩さい受容野でも精度が⾼い(顔がまるまる⼊るので
!  ⼩さい顔のほうがゲインが⼤きい=⼈の精度とconsistent
17	
+18.9%
+1.5%
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
(参考)コンテキストの重要性	(Finding	Tiny	Faces,	CVPR’17)
!  異なるスケールのfeature mapを統合したheatmap prediction精度
!  コンテキストを増やすほど精度が向上する
⁃  ⼩さい顔でres5まで追加すると精度低下→過学習によるもの
!  ⼩さい顔は⼩さい受容野でも精度が⾼い(顔がまるまる⼊るので
!  ⼩さい顔のほうがゲインが⼤きい=⼈の精度とconsistent
18	
+18.9%
+1.5%
コンテキストはめちゃくちゃつよい	
Single	shot	detectorの強みもそこに	
YOLOv2とかで⽿に⼿を当てるとMobile	phoneが出てくる
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
(参考)コンテキストの重要性	(Finding	Tiny	Faces,	CVPR’17)
!  異なるスケールのfeature mapを統合したheatmap prediction精度
!  コンテキストを増やすほど精度が向上する
⁃  ⼩さい顔でres5まで追加すると精度低下→過学習によるもの
!  ⼩さい顔は⼩さい受容野でも精度が⾼い(顔がまるまる⼊るので
!  ⼩さい顔のほうがゲインが⼤きい=⼈の精度とconsistent
19	
+18.9%
+1.5%
ちなみにこの論⽂ではres3まで戻した解像度で	
25スケールの検出を⾏っている…	
(チャネル数 =	25	x	5)
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Feature	Pyramid	Networks	for	Object	Detec8on,	CVPR’17.
20	
conv1
conv2_x
conv3_x
conv4_x
conv 3x3 256
upsample
upsample
upsample
conv1x13x(4+2)
conv5_x
conv 3x3 256
conv 3x3 256
conv 3x3 256
特徴マップ:WF	x	HF	x	B	x	(4	+	2)	
B:	BBoxの数 (=3),	アス⽐	(1,	2,	1/2)	
4:	Bboxの座標 (4-dim)
2:	検出スコア(前景・背景分類)←推測	
ResNet
⾯積が322くらいの物体を検出
642
1282
2562
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
DSSD:	Deconvolu8onal	Single	Shot	Detector,	CVPR'17.
21	
アーキテクチャ
Deconvモジュール
Element-wise	
product
Naïveにやると駄⽬なので	
Deconv	module	
PredicOon	module追加
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Enhancement	of	SSD	by	Concatena8ng	Feature	Maps	for	Object	
Detec8on,	BMVC'17	under	review.
22	
Deconvとpoolingで上にも下にもfeature	mapをconcat
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
U-Net:	Convolu8onal	Networks	for	Biomedical	Image	Segmenta8on,	
MICCAI'15.
23	
ぶっちゃけU-Net
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Dilated	Residual	Networks,	CVPR’17.
24	
Deconvしなくてもdilated	convoluOonで	
解像度を⾼く保つアプローチもある
Copyright	©	DeNA	Co.,Ltd.	All	Rights	Reserved.	
Take-home	message
!  Single Shot Detectorはどれもやってることは同じ
⁃  FCNで特徴マップ作成→検出・認識・矩形Regression
⁃  BBox(アンカー)の配置、p(class)かp(object)->p(class|object)か
!  SegmentationとDetectionのアーキテクチャは同⼀化していく
⁃  ⼩さい物体を⾒つけるならtop-down architecture
!  シンプルなのでFeature Pyramid Networksを
Single shot化(クラス分類までやる)するのが良さそう
25

最近のSingle Shot系の物体検出のアーキテクチャまとめ