노트와 노트

분류(Classification), 객체 탐지(Object Detection), 세그멘테이션(Segmentation)의 차이점 본문

Machine Learning & DeepLearning

분류(Classification), 객체 탐지(Object Detection), 세그멘테이션(Segmentation)의 차이점

gellygelly 2022. 3. 24. 20:46

이미지 객체 검출 분야에서는 분류, 객체 탐지, 세그멘테이션이란 용어를 자주 접해볼 수 있다. 오늘은 이 세 가지 용어의 뜻과 차이점에 대해 정리해 보려고 한다.

 

 

1. 분류(Classification)

 

분류란, 학습 데이터로 주어진 이미지 데이터의 피처와 레이블 값(클래스 값, 정답)을 학습한 후 새로운 데이터가 주어졌을 때 해당 데이터의 레이블 값을 예측하는 것이다. 

 

분류 예시 / 신경망 이미지 출처: https://sdc-james.gitbook.io/onebook/4.-and/5.4.-tensorflow/5.4.2.-cnn-convolutional-neural-network / 고양이 이미지 출처: 우리 집 고양이

2. 객체 탐지(Object Detection, 객체 검출)

객체의 클래스를 분류하고(Classification), 객체가 존재하는 위치(영역)까지도 탐지(Localization)하는 것을 뜻한다. 탐지한 객체 위치는 대개 Bounding Box로 표현된다. 

 

3. 세그멘테이션(Segmentation)

픽셀 단위(pixel-level)로 객체를 분류(Classification)하는 것을 뜻한다. 

 

Classification, Object Detection, Segmentation의 차이

 

 

위 이미지를 보면 세 가지 용어의 차이점을 확실히 알 수 있다. 

 

Classification은 객체 클래스 분류만을, Object Detection은 각 객체별 클래스 분류 및 위치(영역) 탐지까지, Segmentation은 객체 클래스 분류+픽셀 레벨의 객체 위치(영역) 탐지를 수행한다. 

 

 

3-1. Instance Segmentation vs. Semantic Segmentation 

위 이미지에 보면 그냥 Segmentation이 아니라, 'Instance Segmentation'이라 쓰여 있다. 이는 Segmentation이 2가지로 나뉘는데, 그 중에서도 Instance Segmentation 방식을 사용해 검출했다는 의미이다. 

 

  • Instance Segmentation: 같은 클래스에 속하는 객체여도, 각각 따로 masking
  • Semantic Segmenation: 같은 클래스에 속하는 객체는 함께 masking

Semantic Segmentation, Instance Segmentation