본문 바로가기
Deep Learning/CNN

[SPPNet] Spatial Pyramid Pooling (대충봄)

by 꿈꾸는 띵땅근 2021. 9. 22.

SPPNet에서 나온 아이디어

- RCNN이 AlexNet을 이용하다 보니, 이미지 크기를 제한시켜야 한다는 단점이 있었다. 

- selective search를 통해 2000개의 후보 영역을 찾고, 그것을 224 224로 바꿔야 했는데, 그 과정에서 이미지 왜곡이 심해 정보가 많이 손상되었다. 

- SPPNet에서는, 이미지 크기는 그대로 두고, Conv Layer 거치게 하고, 그 다음에 SPP(Spatial Pyramid Pooling)을 거쳐 FCL(Fully connected Layer) 로 들어갈 때 크기를 맞춰주게 하였다. 

 

방법

기존 RCNN방식

이미지 -> selective search : 2000개의 영역 -> 224x224로 resize -> 각 영역에 CNN돌리기(시간↑) -> FCL에 집어넣어 분류

 

SPPNet 방식

이미지 -> selective search : 2000개의 영역(?) -> 전체 걍 한방에 CNN돌리기(이미지 사이즈 안줄임?) -> 2000개 영역 앞에서 미리 구획 정해둔거 SPP 거침(1x1, 2x2, 3x3, 6x6 bin 총 4개의 피라미드) -> FCL에 집어넣어 분류

 

 

이거 뭔가 SPPNet 맨앞에 selective search가 cnn 뒤에 와야할것같은데... 

 

 

SPP방법이란?

selective search 로 잡은 이미지가 예를들어 64x64면, 1x1bin은 64x64에서 maxpooling하는거고, 

2x2bin은 32x32로 4분할 한 다음에 각각의 영역에서 maxpooling 하는거고

3x3bin은 ...

마지막에는 이것들을 일렬로 붙인다. 

이런식으로 하면, 결국 FCL 인풋으로 들어가는 변수의 갯수를 조절할 수 있다. 

 

마지막단 bounding box regressor랑 mlp 동시에 진행하는거 아니라, 순차적으로 진행하는 것 같다?

Fast RCNN에서는 동시에 한다고 해서 더 빠르다고 한다. 

 

아무튼, 이 방식을 나중에 Fast RCNN에도 사용함. 

이미지 인풋크기에 제한이 사라짐. 

'Deep Learning > CNN' 카테고리의 다른 글

[Fast RCNN]  (0) 2021.09.23
CNN 특징 세세한 부분  (0) 2021.09.22
1x1 convolution  (0) 2021.09.22
QnA  (0) 2021.09.22
Keywords  (0) 2021.09.19

댓글