Image Segmentation은 이미지 내에서 픽셀 단위로 서로 다른 객체와 배경을 구분하는 작업을 말한다. 이미지 내에서 객체를 픽셀 단위로 분류해야 하므로, Classification 작업이나 Object Detection에 비해 훨씬 정밀하게 객체의 경계와 형태를 구분해야 한다. Segmentation 작업은 객체와 배경을 구분하는 Semantic Segmentation, 동일 클래스 내의 각각의 객체를 구분하는 Instance Segmentation, 그리고 개별 객체를 구분할 뿐만 아니라 배경과 맥락까지 포함하여 구분하는 (Semantic + Instance Segmentation) Panoptic Segmentation이 있다. 특히, Semantic Segmentation은 이미지 내에 포함된 다중 클래스의 객체들과 배경을 각각 분리해내므로, 자율주행, 의료 영상 분석, 위성 사진 분석 등에서 중요한 역할을 한다.

픽셀 단위의 분류작업을 수행해내려면 객체의 경계를 매우 정밀하게 추론해야 하므로, 고해상도의 공간 정보가 매우 중요하다. 이를 위해서 Segmentation 모델의 설계에서는 이미지 분류 CNN을 활용하면서도, 완전 연결층(Fully-Connected Layer)을 Convolutional Layer로 대체하여 공간 정보를 보존하는 방법이 제시되었다. 이처럼 모든 층이 Convolutional Layer로 이루어진 모델을 FCN(Fully Convolutional Networks)라고 한다.

FCN은 1*1 사이즈의 Convolutional Layer를 이용해 feature map의 채널 수를 데이터셋 객체의 갯수와 동일하게 맞추고, 네트워크 마지막 층에서 이미지 전체에 대해 픽셀 단위의 예측 결과(heatmap)을 생성한다. 해당 heatmap을 이용하여 Upsampling 한 뒤, 입력 이미지와 같은 크기의 feature map을 생성하고 이를 원본에 대한 label과 비교하여 그 차이를 학습하는 것이다.
이미지 출처:
https://www.researchgate.net/figure/Example-of-the-semantic-segmentation-effect-of-street-view-photo_fig3_374514466
https://www.researchgate.net/figure/An-illustration-of-encoder-decoder-based-FCN-architecture-for-semantic-segmentation_fig1_333695010