AI/Computer Vision

Image Segmentation이란? Image Matting과의 차이

방황하는 데이터불도저 2024. 5. 21. 01:03

이미지 분할 모델은 이미지 분류(Image Classification) 모델과 달리 이미지에 대해 하나의 정답레이블을 가지는 것이 아니라 이미지의 구체적인 정보를 알고자하는 모델이다. 정확히 객체가 어떤 모양인지 또는 특정 픽셀이 어느 객체에 포함되어있는지를 알고자 하기때문에 Image Segmentation 모델의 데이터셋을 보면 이미지 픽셀마다 label이 할당된 것을 볼 수 있다.

 

따라서, Image Segmentation은 이미지에서 중요한 객체의 정확한 형태를 파악하고, 그 위치를 경계로 객체를 분할하기 위한 기술이다. 이미지 분할 기술은 위성영상, 자율주행을 위한 도로영상, 의학 촬영영상 등에서 많이 사용되고 있으며, 더 나아가 최근에는 탐지된 객체를 삭제하고 빈 공간을 생성형 이미지로 채우는 등 다양한 분야에서 많이 활용되고 있다.

 

Dataset for Image Segmentation Task

Image Segmentation에 사용되는 데이터셋을 보면 더 잘 이해할 수 있다.

 

Oxford-IIIT Pet Dataset

  • 애완동물 37가지 종(breeds)
  • 한 종류당 200개의 이미지. (학습용, 테스트용 100개씩)
  • annotation 정보
  1. 종 이름
  2. 동물의 머리영역 ROI
  3. 픽셀단위 foreground(object)-background 분할 (Trimap; 트라이맵)

 

* 트라이맵 (Trimap)

  • foreground, background, unknown 3가지 영역으로 이미지를 분할한 것을 표현한다.

 

해당 이미지를 만드는 코드는 Github에서 확인할 수 있습니다.

 

위의 데이터셋을 통해서 우리는 이미지 속 객체가 box형태가 아닌 정확히 객체의 형태로 그 객체의 위치를 알 수 있다. 더불어 객체가 고양이인지 개인지, 어떤 종인지, 동물의 머리는 어느 위치에 있는지도 학습시킬 수 있도록 데이터를 제공한다.

 

Image Matting 

Image Segmentation과 비슷하지만 Image Matting은 좀 더 세분화된 개념으로 전경(foreground)과 배경(background)이 비슷한 색상이거나 복잡한 질감이어도 전경을 정확히 분할해내는 데에 의의가 있다.

 

Deep Image Matting, 2017, Adobe Research

  • 기존에는 low-level features만 사용가능했으며, high-level context에 대한 정보는 부족했다.
  • 모델1의 Inputs : 원본이미지와 trimap → Output : the alpha matte of the image
  • 모델2에서는 a small CNN으로 좀 더 정확히 객체의 edge를 예측하기 위해 alpha matte 값을 정제하였다.

 

alpha matte란?

 

흔히 이미지에서 alpha란 각 픽셀에 대한 투명도를 나타내는 것이다. 이를 차용하여 일반적으로 grayscale 이미지로 0에서 1사이의 실수값으로 표현되며, 0은 완전 투명(배경), 1은 불투명(전경)을 의미한다. 따라서 alpha값에 따라 전경과 배경을 분리하는데 사용한다.

 

수학적으로는 아래와 같은 식을 사용한다. 

$$ I = \alpha F + (1-\alpha )B $$

각 픽셀값 I는 전경 픽셀 F, 배경 픽셀 B의 혼합으로 표현된다.

여기에서 $ \alpha $는 alpha matte 값이다. 배경에 가까운지, 전경에 가까운지를 나타낸다.