IT/AI\ML

segmentation의 종류 (semantic segmentation, instance segmentation, panoptic segmentation의 차이)

개발자 두더지 2022. 3. 31. 22:30
728x90

 논문을 읽는 중에 segmentation 태스크관련해서 종류가 나눠져 있다는 사실을 알게 되어 종류에 대해 간단하게 정리하고자 한다.

 

 segmentation은 단순 사전적의미로는 "분할"으로, 기계학습에 있어서는 이미지를 몇 개의 오브젝트로 분할하는 태스크 를 의미한다. 현재 segmentaion은 크게 세 가지 종류가 있다. 아래의 이미지는 각각의 예이다.

 그림에서 (b) semantic segmentation은 이미지의 모든 요소에 대해 클래스 라벨을 예측하는 것을 목표로 한다.

 한편으로, (c) instance segmentation 태스크는 이미지의 모든 물체에 대해서 클래스 라벨을 예측하고, 추가로 임의의 ID를 부여한다. (b)의 semantic segmentation과 주된 차이점은 겹쳐진 물체를 각각 검출하는 점과 하늘이나 도로 등  정해진 형태가 없는 물체의 경우는 클래스 라벨을 부여하지 않는 점, 그리고 각 물체에 대해서 임의의 ID를 부여하기 위해, 예를 들어 1개의 이미지에 여러 개의 차가 찍혀 있는 경우, 각각의 차는 각자 구분이 되는 물체도 인식한다는 것등이 있다. 아래의 의자 이미지를 보면 확실히 와닿을 것이라고 생각한다.

 마지막으로, (d)의 panoptic segmentation은 위 두 가지의 segmentation을 결합한 형태로 이미지 안의 모든 화소에 대해 클래스 라벨을 예측하고 임의의 ID를 부여한다.

  

  segmentation의 특징을 표로 정리하면 다음과 같다.

semantic segmentation instance segmentation panoptic segmentation
- 색칠 공부처럼 이미지 상의 모든 픽셀에 대해 클래스 카테고리를 부여한다.
- 중첩은 분할하지 않고 인식한다.
- 하늘이나 길과 같은 물체로 셀 수 없는 클래스의 영역 분할로 가능하다.
- U-NET을 이용한 Auto Encoder 방식이 주된 사용 예이다.
-Object detection과 같은 물체의 인식을 픽셀 레벨에서 수행하는 태스크이다.
- 중첩의 경우 분할하여 인식한다.
- RoI 단위로 모든 것을 분할할 수는 없다.
- Mask R-CNN이 주요 모델 예이며, detection 기법을 사용하며 instance 영역을 취득 후, 각각의 영역에 대해 mask를 예측한다.
- semantic segmentation과 instance segmentation을 결합한 방식이다.
 이 태스크에서는 셀 수 있는 클래스(예를 들어 차나 사람)을 Thing 클래스라고 하며, 셀 수 없는 클래스(예를 들어 하늘이나 길)은 Stuff 클래스라고 하는데, Thing 클래스에 대해서는 Instance Segmentation, Stuff 클래스에 대해서는 semantic segmentation을 수행한다.

 


참고자료

https://ml.1book.info/cv/segmentation/diff_of_segmentation.html

https://www.skillupai.com/blog/tech/segmentation1/

728x90