hgk0404.tistory
Code After Work
hgk0404.tistory

공지사항

  • 블로그
전체 방문자
오늘
어제
  • 전체 카테고리
    • [AI]
      • [Numpy, Pandas]
    • [MLOps]
      • [FastAPI]
    • [Computer Science]
      • [컴퓨터네트워크]
      • [알고리즘]
      • [자료구조 in C]
      • [C & C++]
      • [이산수학]
      • [Math]
    • [Cloud]
      • [AWS]
      • [NCP]
      • [Kubernetes]
      • [Terraform]
    • [Dev]
      • [가상환경]
      • [Linux]
      • [Docker]
    • [Python]
    • [Coding Test]
      • [백준]
      • [프로그래머스]
      • [SQL]
    • [WEB]
    • [일상]
    • [엑셀]
    • [금융]

인기 글

최근 글

최근 댓글

250x250
hELLO · Designed By 정상우.
hgk0404.tistory

Code After Work

[컴퓨터비전] Segmentation
[AI]

[컴퓨터비전] Segmentation

2026. 4. 30. 22:45
728x90

1. 세그멘테이션(Segmentation)

분할이라는 뜻입니다. 컴퓨터 비전 분야에서 객체 탐색을 위해 쓰이는 대표적인 기법입니다. Object Detection의 개념을 사용하기도 합니다.

이미지 내 객체를 픽셀 단위로 구분합니다.

특징으로는 객체의 정확한 윤곽선과 면적을 알 수 있고, 바운딩 박스(Object Detection)보다 훨씬 정밀한 정보를 제공하기에 아주 미세한 검출을 해야하는 산업용 데이터나 의료용 데이터에서 사용하는 경우가 있습니다.

https://www.cityscapes-dataset.com/examples/


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 클래스가 나누어 담당한다.


참고한 글:

(1) https://www.gdsonline.tech/ko/3%EA%B0%80%EC%A7%80-%EC%9C%A0%ED%98%95%EC%9D%98-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%84%B8%EA%B7%B8%EB%A9%98%ED%85%8C%EC%9D%B4%EC%85%98/ 

 

728x90
저작자표시 동일조건 (새창열림)

'[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
'[AI]' 카테고리의 다른 글
  • [딥러닝] 인공신경망(ANN)의 작동 원리 완전 정리: 순전파부터 역전파, 활성화 함수까지
  • [컴퓨터비전] YOLOv8 기본 증강 ON/OFF
  • [OpenCV] 한글 깨짐 -> 대체 함수 사용
  • [컴퓨터비전] editable mode 설정해서 git clone한 Ultralytics 라이브러리 커스텀하기
hgk0404.tistory
hgk0404.tistory
공부기록

티스토리툴바