Overfeat은 AlexNet이후 ImageNet대회에서 Object Detection task에서 처음으로 CNN을 사용하여 좋은 성능을 보인 논문이다.
OverFeat은 Fast model과 Accurate model 두개의 버전을 가지고있으며 AlexNet과 유사한 구조를 사용하였고 아래와 같은 학습 세팅을 갖는다.
(a) single input image에서 6개의 scale에 대해 extractor로부터 나온 feature map(unpooled map)에 대해 pooling을 진행한다.
(b,c) 3x3 kernel을 5x5지역에 region에서 offset에 따라 shift시켜주어 9개의 5x5 feature map을 생성한다.
(d,e) 각각의 offset output을 Layer6,7,8을 통해 C-dimensional 1x1 을 생성하고 각 offset 들의 최종 output을 concatenate시켜준다.
Scale2에 해당하는 281x317을 input으로 받은 extractor가 20x23 feature map을 output으로 출력한다.
앞서 언급한데로 offset을 3으로 주어 20x23 feature을 각 offset별로 256-dim 6x7 feature map으로 pooling시키는데 이때 각 offset은 전부 overrap되지 않는 형태이다.
layer 6,7,8을 거쳐 C-dim 2x3 feature map 9개를 뽑아내고 이를 combine시켜 이를통해 inference를 진행하게된다.
위 그림은 논문에서 제안된 6개의 scale image에 대한 spatial output을 나타낸 것 이다.
위 그림 아래서 언급한 것 처럼 좀더 큰 image scale pyramid를 사용하게되면 좀더 작은 region을 커버할수 있게되고 이 spatial output은 결국 하나의 bounding box라고 생각해볼 수 있다.
위 그림은 feature extractor의 output feature map을 pooling을 거쳐 Classifier에 해당하는 layer 7,8을 1x1 convolution으로 대체한 것을 보여준다.
상단의 그림은 14x14 output에 대해 classifier를 학습시키는 모습을 보여주며 하단의 그림으로 input size가 변해도 output feature의 한 pixel이 갖는 receptive field는 같은 것을 알 수 있다.
학습된 regressor는 6개의 input size별 수많은 bounding box를 얻게되는데 논문에선 수많은 bounding box를 병합하는 gready merge algorithm을 사용하여 prediction하고 이는 다음과같다.
OverFeat 논문은 동일 시기에 나온 R-CNN보다 detection task에서 낮은 성능을 보였지만 1-stage detector모델로서 이후의 많은 모델에 영향을 준것 같고 spatial output에대한 intuition을 주는 것 같아 읽어볼만한 가치가 충분히 있었다.
하지만 내가 실력이 미천한 탓인지 논문이 체계적인 단계로 설명을 해주지 않는 것 처럼 느꼈고 자세하게 설명해주지 않아 이해하는데 오래걸렸다 ㅜㅜ.