Semantic Segmentation : labeling per-pixel + No objects (개체를 찾지 않음)
Instance Segmentation : pixel labeling Things(O), Stuff (X)
Panoptic Segmentation : all pixel labeling Things(O), Stuff (O)
Things 와 Stuff 구분하지 않고 모든 픽셀을 라벨링하는 것을 목표로함
instance를 구별하지 않는다 (ex 소가 2마리인지 - (X) )
X : 원본 image
Y : 모든 pixel에 대해 labeling 된 이미지 (GT)
f( pixel ) → pixel category
👎 : CNN을 태우면 이미지 크기가 작아짐 (stride, pooling)
즉, output을 input 크기로 낼 수 없다
input size = output size 을 위한 두 가지 approach
input의 사이즈를 보존하는 CNN을 설계

Design a Network with only Conv layers with downsampling + upsampling layers

stride / max-pooling
Nearest Neighbor
주변을 다 같은 값으로 채워버린다
Bed of Nails
max 값 하나 남겨서 (위치 고정) 해놓고, 나머지 자리는 0으로 채운다.

Max Unpooling
max값의 위치를 기억하고 있다가, 위치대로 쓰고 나머지는 0 padding
Transpose Convolution - learnable upsampling
Recall : Convolution을 활용한 downsampling
Picking up things in the corresponding region (주워담기)

Deconvolution (stamping!) = Transpose Convolution
Deconvolution : 수학적 관점 = Transpose Convolution
conv-deconv 관계
그림으로 봤을 때는 : 역연산!
행렬으로 봤을 때는 : transpose!
Bilinear Interpolation
Bicubic interpolation
Dilated (Atrous) Convolution