Upsampling의 목적

Upsampling은 Pooling 레이어를 거치면서 축소된 피처맵을 원본 이미지의 크기로 되돌리기 위해 사용하는 방식. Pooling과 반대되는 과정이라서 ‘Unpooling’이라고 부르기도 함. Conv와 Pooling을 통과시키면서 원본 이미지를 압축해나가는 과정을 Downsampling이라고 한다면 그 반대로 크기를 늘려나가는 방식을 Upsampling이라고 한다.

이러한 네트워크 구조를 수축 경로(contracting path) - 확장 경로(expansive path) 또는 인코더(Encoder) - 디코더(Decoder)라고 불렀다. Downsampling은 Pooling의 필터 사이즈와 stride를 조정해가면서 출력 피처맵의 크기를 조절할 수 있었다.


Screen Shot 2022-06-26 at 5.28.35 PM.png


Upsampling의 방법들

  1. Nearest Neighbor / Bed of nails

기존에 가지고 있던 동일한 값을 근접한 픽셀값에 채워넣거나 한쪽 픽셀에만 채워넣고 나머지는 0으로 채우는 방식이다.

Screen Shot 2022-06-26 at 5.30.58 PM.png


  1. Max Unpooling

Bed of nails과 비슷하지만 MaxPooling 을 했을 때 최댓값을 가지고 왔던 위치를 기억해서 그 자리에 값을 넣어주는 방식. 이것을 구현하기 위해서는 네트워크 앞단에서 MaxPooling을 수행할 때 최댓값의 자리를 기억해서 뒷단에서 Upsampling 시에 그 값을 넘겨주어야 함.

Screen Shot 2022-06-26 at 5.34.10 PM.png