AI(Artificial Intelligence)/DL(Deep Learning)

[Deep Learning] Semantic Segmentation - Deconvolution, Upsampling

탱젤 2021. 2. 18. 00:12

CNN(Convolutional Neural Network)의 convolution layer는 convolution을 통해서 feature map의 크기를 줄인다.

Deconvolution은 CNN의 역연산으로 CNN과 반대로 feature map의 크기를 증가시킨다.

 

이런 Deconvolution은 어디에 쓰일까? 바로 Semantic Segmantation이다.

 

Semantic Segmentation이란 Computer Vision Tasks들 중 하나이다.

 

Computer Vision Tasks

 

위의 그림에 잘 설명되어 있는데, Object Detection은 물체가 있는 위치를 찾아 Bounding Box를 그리는 작업이고 Semantic Segmentation이란, 이미지를 픽셀 단위로 구분해 각 픽셀이 어떤 object class 인지 구분하는 작업이다.

참고로 Instance Segmentation이란 dense한 segmentation이다.

 

 

  • 정리하면 Deconvolution은 CNN의 최종 결과물을 반대로 되돌려 input과 같은 size를 만들어내고 싶을 때 사용한다. (위의 그림을 보면 이해 가능)
  • Deconvolution을 통해 Feature map을 증가시키며 역주행하면 특정 filter가 처음의 input image에서 담당하는 부분을 시각적으로 알 수 있다. 즉, deconvolution은 CNN의 layer들에 있는 filter의 역할을 눈으로 보도록 CNN을 시각화해준다.

Upsampling

  • Upsampling은 Deconvolution과 비슷한 역할을 한다고 알려져 있다.
  • Deconvolution이 컨볼루션 아웃풋과 필터를 가지고(convolution의 역연산) 인풋을 복원해내는 것이라면 Upsampling은 줄어든 이미지에 원래 이미지 크기만큼 패딩으로 보간하는 것이다.

출처: cs231n.stanford.edu/slides/2017/cs231n_2017_lecture11.pdf

728x90