9566 2022. 6. 7. 21:38
728x90

이미지를 고정된 크기로 크롭하거나 비율을 조정(warp)
image - crop/warp - conv layer(이미지가 고정될 필요X) - fully connected layer(이미지가 고정될 필요O)
image - conv layer - spp - fully connected layer
크기를 조절하지 않은 채로 컨볼루션을 진행하면 원본 이미지의 특징을 고스란히 간직한 피쳐 맵
 피쳐 맵들을 동일한 크기로 조절해주는 pooling을


먼저 Conv Layer들을 거쳐거 추출된 피쳐맵을 인풋으로 받습니다. 
그리고 이를 미리 정해져 있는 영역으로 나누어 줍니다. 
위의 예시에서는 미리 4x4, 2x2, 1x1 세 가지 영역을 제공하며, 각각을 하나의 피라미드라고 부릅니다. 
즉, 해당 예시에서는 3개의 피라미드를 설정한 것입니다. 피라미드의 한 칸을 bin 이라고 합니다. 
예를 들어 입력이 64 x 64 x 256 크기의 피쳐 맵이 들어온다고 했을 때, 4x4의 피라미드의 bin의 크기는 16x16이 됩니다.


이제 각 bin에서 가장 큰 값만 추출하는 max pooling을 수행하고, 그 결과를 쭉 이어붙여 줍니다.
입력 피쳐맵의 체널 크기를 k, bin의 개수를 M이라고 했을 때 SPP의 최종 아웃풋은 kM 차원의 벡터입니다. 
위의 예시에서 k = 256, M = (16 + 4 + 1) = 21 이 됩니다. 
정리해보면 입력 이미지의 크기와는 상관없이 미리 설정한 bin의 개수와 CNN 체널 값으로 SPP의 출력이 결정되므로, 항상 동일한 크기의 결과를 리턴한다고 볼 수 있습니다. 
실제 실험에서 저자들은 1x1, 2x2, 3x3, 6x6 총 4개의 피라미드로 SPP를 적용합니다.

728x90