2. Introduction
- initial technical report for ECCV 2014
- published on Arxiv in Apr, 2015
“Spatial Pyramid Pooling in Deep convolutional Networks for Visual Recognition”
https://arxiv.org/abs/1406.4729
4. Backgrounds
일반적인 CNN은 항상 fixed-size image 만 고려 ex) 224 x 224
이러한 입력 영상의 크기를 맞추기 위해서, 다양한 크기의 이미지를 이 네트워크에 집어넣기 위해서는 cropping,
warping 등 영상에 대한 전처리를 통해서 이루어졌다.
6. Backgrounds
그러면, 왜 사람들은 항상 fixed-size 의 네트워크를 설계하였는가?
원인은 바로 “Fully Connected Layer”
Convolutional layer는 sliding window 방식으로 계산되기 때문에, 굳이 output 뉴런의 개수가 fixed 될 필요가
없다.
하지만, FC의 경우는, input neuron 의 개수가 미리 정해져 있어야 하기 때문에, 여기서부터 문제 발생
논문에서는, 이미지 크기 변경없이 SPP를 이용한 고정된 개수의 feature extraction 을 가능하게 한다.
7. 3 Advantages
1) fixed-length output 을 만들어낼 수 있다.
2) multi-level spatial bin 을 이용하였다.
3) 다양한 level에서 feature 를 뽑아낼 수 있다.
8. What normal Pooling do?
sliding window pooling
input 크기에 따라, output 의 크기가 달라진다.
9. Proposed Pooling
output => k * M
k : number of filters of past convolutional layer
M : bin size. 입력 영상 크기에 따라 동적으로 결정
global pooling 도 중요!
12. how to get “FIXED”?
pre-compute the bin sizes needed for spatial pyramid pooling
ex) feature map size after conv5 : 13 * 13 (a * a)
-> n x n bin level => window size == ceil(a/n)
-> n x n bin level => stride == floor(a/n)
13. Training
1. Single size training
proposed) training with 2244 * 224 images
enable the multi-level pooling behavior
2. Multi size training