논문링크 : https://arxiv.org/abs/1406.4729

 

Contribution

입력 이미지 크기와 상관없이 CNN을 적용할 수 있도록 하는 Spatial Pyramid Pooling 기법을 제안

 

Motivation

  1. R-CNN의 경우, Selective search를 통해 대략 2000개의 bounding box를 만든 후, 모두 CNN layer를 통과시켜야만 했다. -> 연산 시간 too long
  2. R-CNN의 경우, feature를 추출하기 위해 이미지를 warping하게 된다. -> 이미지 왜곡 

 

Core Idea 

Spatial Pyramid Pooling 

  • SPP는 input feature에 대해 여러 개의 고정된 크기의 pooling layer를 통과시킨 결과를 하나의 layer로 합친다.
  • SPPnet은 1x1, 2x2, 4x4 spatial bin을 사용 (각각의 spatial bin을 얻기 위해서 pooling하는 window size와 stride가 다름)
  • 1x1, 2x2, 4x4 spatial bin을 얻었으면 spatial bin들을 모두 flatten한 뒤 합침.

(예) 3x3 spaital bin을 사용 => pooling 연산을 통해 3x3 feature map을 얻음을 의미

    : RoI feature가 13x13인 경우, max pooling(window size=5, stride=4)을 하면 3x3 feature map을 얻게됨

 

학습구조

SPPnet 구조

  1. 이미지를 미리 학습된 CNN을 통과시켜 피쳐맵을 추출
  2. Selective Search를 통해서 찾은 각각의 RoI를 피쳐맵에 반영한 뒤,  SPP를 적용하여 고정된 크기의 feature vector를 추출
  3. fully connected layer들을 통과시킴
  4. (3)의 출력값으로 Classifier와 bounding box regressor를 학습시킴

 

 

한계점

  1.  end-to-end 방식이 아니라 학습에 여러 단계가 필요
  2. Region proposal을 위해 여전히 Selective Search를 이용
  3. Fine tuning 과정에서 SPP 이전의 CNN network는 tuning하지 못함 -> 성능 저하의 원인
반응형

+ Recent posts