Pooling Layer

부제 : Semantic Segmentation의 골치 꺼리 Pooling

1. 정의

목적 : 위치 변화에 대한 강건성 확보

- 합성곱층에서 추출한 자질의 위치 감도를 약간 저하시켜 대상이 되는 자질값의 이미지 내에서의 위치가 조금씩 변화하는 경우에도 풀링층의 출력에는 변화를 주지 않는다. 

위치 : 보통 합성층 바로 뒤

종류

  • 최대 풀링 : 개의 픽셀값 중 최댓값을 고르기
  • 평균 풀링 : 평균값을 계산한후 픽셀값으로 나눈다.

계산

  • 입력 이미지의 각 채널마다 병렬로 실행
    • 따라서, 입력 채널수와 출력 채널수는 같다.
  • Stride 설정 가능
  • Pad 설정 가능

2. 다양한 Pooling Layer

2.1 Spatial Pyramid Pooling

SPPNet에 적용된 Pooling Layer

  • Object Detection 네트워크의 후보영역(다양한크기)에 대한 처리
    • 다양한 입력 크기 처리
    • 위치 정보 유지

A. 다양한 입력 크기 처리

  • 기존 : VGG16등의 활용을 위해 지정된 크기로 Croping 수행 (이미지 외곡 발생)

  • 제안 Bag-of-words(BoG)를 활용하여 다양한 크기의 (후보영역)입력으로부터 일정한 크기(VGG16입력)의 출력 feature를 추출

    • BoG : 많은 입력 패턴 중 강한 특징 성분(Top x)이 무었인지 확인
  • 단점 : 위치 정보 사라짐

B. 위치 정보 유지

  • 기존 : BoG 사용시 위치 정보는 사라지고 많은 입력 패턴 중 가장 강한 특징 성분이 무었인지만 확인 가능 [1]

  • 제안 : 위치별로 BoG를 실시 하여 위치 정보 유지

    • 나누는 위치의 갯수는 이후 Fully Connected Layer에 입력 요구사항으로 결정 (맞나??)

출처 : R-CNNs Tutorial

2.2 Region of Interest(RoI) Pooling

Fast R-CNN에 적용된 Pooling Layer

  • SPP layer[2.1]의 single level pyramid만을 사용

  • RoI Pooling layer에서 다양한 후보 영역들에 대하여 FC layer로 들어갈 수 있도록 크기를 조정하는 역할 수행

A. 동작 과정

목표 : 입력 feature map의 사이즈가 a a 이고, 출력 bin이 n n개로 함

방법 : bin의 window size를 올림하고( ), 각 bin을 pooling하기 위한 stride를 내림 ( )

장점 : bin의 window size가 정수배가 되지 않는 misalignment문제 해결 (eg. 13×13 feature map을 6×6 bins으로 나눌 경우 window size가 2.167)

단점 : 올림/내림 과정에서 좌표값의 미묘한 차이 발생

- Fast R-CNN 같은 Object Detection에는 큰 문제 아님 
- Mask R-CNN 같은 Fixel단위 Detection에는 큰 문제, [2.3]으로 해결

2.3 RoIAlign layer

Mask R-CNN에 적용된 Pooling Layer

  • Fast R-CNN에서 사용하는 RoI Pooling layer의 단점 해결

results matching ""

    No results matching ""