
Semantic Segmentation은 이미지의 모든 픽셀에 대해 어떤 클래스에 속하는지를 분류하는 컴퓨터 비전 기술입니다. 단순히 "이미지에 뭐가 있나?"를 넘어서, "이미지의 모든 점이 어디에 속하는가?"를 답하는 것이죠.
Dense Prediction (조밀한 예측)
이미지 분류가 하나의 벡터 값을 출력한다면, Semantic Segmentation은 이미지의 모든 위치에 대해 예측을 수행합니다. 따라서 출력물은 보통 원본 이미지와 해상도가 같은 세그멘테이션 맵 (Segmentation Map) 형태를 띱니다.
동일 클래스 미구분
Semantic Segmentation은 같은 클래스에 속하는 서로 다른 개체들을 구분하지 않습니다. 예를 들어, 한 사진에 강아지 세 마리가 있다면 이들을 개별적인 '강아지 1, 2, 3'으로 나누지 않고, 그저 '강아지'라는 하나의 영역(Class)으로 묶어서 표시합니다.
참고: 개체별로 구분하는 기술은 Instance Segmentation이라고 부른다.
대부분의 현대적 세그멘테이션 모델은 FCN (Fully Convolutional Network) 구조를 기반으로 하며, 크게 두 부분으로 나뉩니다.
이미지 분류와 세그멘테이션은 정보를 추출하는 정밀도에서 큰 차이를 보인다.
| 구분 | 이미지 분류 (Classification) | 의미론적 분할 (Semantic Segmentation) |
|---|---|---|
| 단위 | 이미지 전체 (Image-level) | 픽셀 (Pixel-level) |
| 목표 | 이미지에 어떤 물체가 있는지 라벨링 | 모든 픽셀이 어떤 클래스에 속하는지 분류 |
| 결과 | "이 사진은 고양이 사진이다." | "이 픽셀은 고양이, 저 픽셀은 배경이다." |
| 출력 | 클래스 확률 값 (예: Dog 90%) | 입력 이미지와 크기가 같은 마스크(Mask) |
