Posts List

[머신러닝/딥러닝] 9-4. CNN을 활용한 컴퓨터 비전 - Semantic Segmentation

2. Semantic Segmentation

※ Segmentation에 대한 자세한 내용은 [컴퓨터 비전]시간에 다루도록 하고, 이번 포스팅에서는 예습 차원에서 기본적으로 숙지해야할 기술들만 다룬다.

Object detection에서는 객체들의 위치를 표현하기 위해 bounding box라는 간단한 표기법을 사용했다.

반면 Segmentation(세분화)는 bounding box를 더욱 섬세하게 pixel 단위로 표현하여 위 그림과 같이 세분화 하는 기술을 의미한다. 결국 pixel 단위로 labeling 하는 것이다. 

Up-sampling

Segmentation는 추후에 Object Tracking과 같이 객체를 추적하는 문제로 발전할 수 있는데, 그렇기 때문에 단순히 객체의 좌표를 얻고 끝이 아니라 위 그림과 같이 pixel 단위로 segmentation 된 결과 이미지로 변환해 줘야 한다. 이때  필요한 기술이 sub-sampling의 반대 개념인 up-sampling이다.
※ 이번 포스팅에서는 up-sampling에 대한 개념과 몇 가지 기법만 소개하고 더 자세한 segmentation은 [컴퓨터 비전]강의에서 다루도록 한다.

1) Nearest Neighbor

가장 간단한 up-sampling 방법이다. 그림과 같이 2x2를 4x4로 up-sampling 할 때 주변을 동일한 값으로 채운다.

2) Bed of Nails

Bed of Nails는 마치 침대에 바늘이 솟아 오르듯 1개 구역만 값을 유지하고 나머지는 0으로 채운다.

3) Max unpooling

Max unpooling은 Max pooling을 반대로 수행하는 것이다. max pooling시에 최대값으로 선택된 cell의 위치를 기억해 뒀다가 그 자리에 값을 반환하고 나머지는 0으로 채우는 기법이다.

4) Deconvolution (=Transposed Convolution)

사실 Deconvolution은 정확히 convolution의 반대원리는 아니다. 그래서 Transposed Convolution이라고 더 많이 불린다.

Convolution layer를 De-Conv. 하기 위해 쓰이는 기법인데, Convolution layer의 Filter값을 가져와서 마치 Convolution을 역재생하듯 순차적으로 값을 채워 넣는다.

댓글 쓰기

0 댓글