-
SPP<OpenCV>/[model] 2022. 6. 7. 21:38728x90
이미지를 고정된 크기로 크롭하거나 비율을 조정(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'<OpenCV> > [model]' 카테고리의 다른 글
2022-06-22 얼굴을 인식하여 캐릭터 씌우기 (0) 2022.06.22 YOLOP (0) 2022.06.07 칼만 필터 (0) 2022.06.07 CSPNet (0) 2022.06.07 R-CNN, Fast R-CNN, Faster R-CNN (0) 2022.06.07