1. 세그멘테이션(Segmentation)
분할이라는 뜻입니다. 컴퓨터 비전 분야에서 객체 탐색을 위해 쓰이는 대표적인 기법입니다. Object Detection의 개념을 사용하기도 합니다.
이미지 내 객체를 픽셀 단위로 구분합니다.
특징으로는 객체의 정확한 윤곽선과 면적을 알 수 있고, 바운딩 박스(Object Detection)보다 훨씬 정밀한 정보를 제공하기에 아주 미세한 검출을 해야하는 산업용 데이터나 의료용 데이터에서 사용하는 경우가 있습니다.

2. 종류
1. 시맨틱 세그멘테이션 (Sementic Segmentation)
"semantic": 의미의, 의미론적인
이미지 내 모든 픽셀을 클래스 단위로 분류. 각 픽셀은 특정 클래스에 해당합니다.
예시: 도로 장면에서
- 모든 하늘 픽셀 ➡️ sky
- 모든 차 픽셀 ➡️ Car
- 모든 사람 픽셀 ➡️ Person
같은 객체 클래스라면 개별 객체를 구분하지 않고 하나의 큰 영역으로 묶는다. ➡️ "이 픽셀이 무엇(클래스)에 속하는가?"를 답한다.

🔥 대표적인 기술
- FCN (Fully Convolutional Networks)
- U-Net
- DeepLabV3+
- SegFormer
2. 인스턴스 세그멘테이션 (Instance Segmentation)
"instance": 사례, 경우
이미지 내 객체를 픽셀 단위로 분할하면서, 같은 클래스라도 각각의 객체를 구분합니다.
예시: 도로 장면에서
- 하늘 픽셀 ➡️ sky (하나의 영역)
- 자동차 픽셀 ➡️ car (객체별로 분리)
- 사람 픽셀 ➡️ person (각 사람마다 따로 구분)
같은 클래스라도 개별 객체를 구분하여 각각 다른 영역으로 나눈다. ➡️ "이 픽셀이 어떤 객체(인스턴스)에 속하는가?"를 답한다.

✅ 추가 특징 (Bounding Box 포함)
인스턴스 세그멘테이션은 단순히 mask만 생성하는 것이 아니라, 각 객체에 대해 다음 정보를 함께 제공합니다.
- Bounding Box (객체 위치)
- Class (객체 종류)
- Mask (픽셀 단위 형태)
즉, ➡️ 객체 탐지(Object Detection) + 픽셀 분할(Segmentation)이 결합된 형태이다.

🔥 대표적인 기술
- Mask R-CNN
- Cascade Mask R-CNN
- YOLACT
- Mask2Former
3. 파놉틱 세그멘테이션 (Panoptic Segmentation)
"panoptic": 전체를 모두 포함하는
이미지 내 모든 픽셀을 빠짐없이 분류하면서, 객체는 개별 인스턴스로, 배경은 의미 단위로 함께 표현합니다.
예시: 도로 장면에서
- 하늘 픽셀 ➡️ sky (하나의 영역)
- 도로 픽셀 ➡️ road (하나의 영역)
- 나무 픽셀 ➡️ tree (하나의 영역)
- 사람 픽셀 ➡️ person_1, person_2 (객체별로 분리)
- 자동차 픽셀 ➡️ car_1, car_2 (객체별로 분리)
➡️ "이 픽셀이 어떤 클래스이며, (객체라면) 어떤 인스턴스인가?"를 동시에 답한다.
구성 요소:
- Thing (객체)
- 사람, 자동차 등
- 인스턴스 단위로 구분 (instance segmentation 방식)
- Stuff (배경)
- 하늘, 도로, 풀 등
- 하나의 영역으로 표현 (semantic segmentation 방식)
파놉틱 세그멘테이션 예시
- 사람 A ➡️ person_1 (bbox + mask)
- 사람 B ➡️ person_2 (bbox + mask)
- 도로 ➡️ road (하나의 영역)
- 하늘 ➡️ sky (하나의 영역)
➡️ 객체는 분리되고, 배경은 의미 단위로 채워짐

- 이미지의 모든 픽셀을 라벨링 (빈 영역 없음)
- 객체는 인스턴스로 분리
- 배경은 Semantic처럼 하나의 영역으로 처리
🔥 대표적인 기술
- Panoptic FPN
- Panoptic-DeepLab
- Mask2Former
3. 세그멘테이션 기법별 라벨링 방식
1. Semantic Segmentation
모든 픽셀을 클래스 단위로 분류하는 방식이다.
이미지 내 모든 픽셀은 반드시 하나의 클래스에 속해야 하며, 객체가 아닌 영역은 배경 클래스(보통 0번)로 처리된다.
➡️ 즉, 관심 객체가 아닌 영역을 채우기 위한 배경 클래스가 반드시 존재한다.
그래서 라벨링 시 하나의 "shape(객체 단위)"안에 여러개의 객체가 들어가도 문제 없다. 인스턴스 구분이 없이 모두 같은 클래스로 분류 되기 때문이다.
예시:
사람이 3명인 경우
사람 3명 → 한 번에 쭉 칠함 → shape 1개 (문제 없음)

2. Instance Segmentation
객체 단위로 분할하는 방식으로, 객체 검출(Detection)을 기반으로 동작한다.
- 모델은 객체만 예측
- 객체에 속하지 않은 영역은 별도의 클래스 없이 암묵적으로 배경 처리
✅ 특징:
- ROI(객체 박스) 밖 ➡️ 배경 (Implicit)
- ROI 안에서도:
- 객체 픽셀 ➡️ foreground
- 나머지 픽셀 ➡️ background
➡️ 박스 안에 객체가 있다고 가정하지만 실제로는 박스 내부에도 많은 배경 영역이 존재한다.
그래서 라벨링 시 하나의 "shape(객체 단위)"안에 하나의 객체만 들어가야 한다.
예시:
사람 3명인 경우
사람 1 브러시 시작 → 사람 1만 칠함 → 종료 (하나의 shape에 사람 1만 존재)
사람 2 브러시 시작 → 사람 2만 칠함 → 종료
사람 3 브러시 시작 → 사람 3만 칠함 → 종료

3. Panoptic Segmentation
Sementic + Instance를 결합한 방식으로, 이미지의 모든 픽셀을 빠짐없이 설명한다.
배경을 단순히 무시하지 않고, "Stuff"라는 개념으로 명시적으로 표현한다.
구성:
- Things (객체)
- ➡️ person, car (인스턴스 단위로 구분)
- Stuff (배경)
- ➡️ sky, road, wall, grass (하나의 영역으로 표현)
➡️ 배경은 하나의 클래스가 아니라, 여러 개의 stuff 클래스가 나누어 담당한다.
참고한 글:
'[AI]' 카테고리의 다른 글
| [딥러닝] 인공신경망(ANN)의 작동 원리 완전 정리: 순전파부터 역전파, 활성화 함수까지 (3) | 2025.08.04 |
|---|---|
| [컴퓨터비전] YOLOv8 기본 증강 ON/OFF (1) | 2025.06.06 |
| [OpenCV] 한글 깨짐 -> 대체 함수 사용 (0) | 2025.05.23 |
| [컴퓨터비전] editable mode 설정해서 git clone한 Ultralytics 라이브러리 커스텀하기 (0) | 2025.05.11 |
| [컴퓨터비전] YOLOv8 객체 탐지 모델 학습 따라하기 (0) | 2025.04.18 |