본문 바로가기

AI/Computer Vision

[Computer Vision] Image Segmentation

728x90
반응형

이미지 처리(Image Processing)의 종류

이미지 처리의 종류는 다음과 같이 분류할 수 있다.

출처 : https://www.superannotate.com/blog/image-segmentation-for-machine-learning

 

 

Classification - 이미지의 객체가 어떤 것인지 구분하는 것(고양이 인가? 강아지 인가?)

 

Classification + Localization - 이미지의 특정 객체에 Box를 쳐서 그 객체가 어디 있는지 표시(Detection과 구분)

 

Object Detection - 이미지 속 여러개의 객체를 각각 구별하여 각각을 box로 표시

 

Segmentation - 이미지 속 여러개의 객체를 각각 box가 아닌 정확한 영역으로 표시, 이미지 pixel 전체에 걸쳐서 객체를 구분하여 각 객체의 영역을 표시 

 

 

개요

pixel 기반의 Image Segmentation 문제는 Computer Vision 분야에서 널리 알려진 문제이다.

 

Image Segmentation의 목적은 이미지의 각각 Pixel들"특정 클래스"로 분류하는 것이다. 이를 위해 Deep CNN을 활용한다.

 

 

Image Segmentation?

미리 정해진 클래스의 집합을 이용하여 주어진 이미지의 각 Pixel을 특정 클래스로 분류하는 작업이다.

위의 그림을 보면 각각 클래스에 해당하는 Pixel들은 다르게 분류되어 다른 라벨이 붙게 된다.

좀 더 깊게 들어가서 이야기 하자면 Height * Width * Channel(RGB 3가지 색)의 이미지를 받아서 전체 Pixel의 예측 클래스를 담고 있는 Height * Width 배열을 생성하는 것이다. 

 

출처 : https://divamgupta.com/image-segmentation/2019/06/06/deep-learning-semantic-segmentation-keras.html

 

보통 여러 객체를 담고 있는 이미지에서 특정 Pixel이 어느 객체에 속하는지를 알고 싶어한다. 

Image Segmentation은 이미지 주변에 Box를 감싸는 Object Detection과는 다른 문제이다. 

같은 클래스에 속하는 서로 다른 개체들을 분류할 필요 없다. 

 

예를들어 설명하자면 Object Detection은 같은 "차"라는 라벨을 가진 Pixel 안에서도 여러 종류의 차를 분류하는 것이고 Image Segementation은 "차"라는 라벨을 가진 Pixel들을 모아서 차와 관련된 객체들을 구분한다. 즉, 한 이미지에서 여러 객체를 분리하여 개별적으로 인식하는 작업이다.

 

전체적인 이미지를 해석하는데 있어 가장 중요한 작업 중 하나라고 할 수 있다.

 

 

적용 분야

1. 의학 사진 - 스캔 사진을 자동으로 분석할 수 있다면 의사들의 진단을 하는데 있어 도움이 많이 될 것이다. (ex. 암 감지)

 

2. 자율주행 - 자율주행에 있어 운전 영역을 인식하거나 피해야하는 객체들을 인식할 때 사용한다.

 

3. 위성 사진 - 지형을 분석하는데 사용한다.

 

 

Segmentation 모델 종류

FCN(Fully Convolutional Network) 

  • 완전 컨볼루션 신경망
  • 입력 이미지를 효율적으로 처리하기 위해 전체 네트워크가 컨볼루션 레이어로만 구성되었다.

 

 

SegNet

  • 컨볼루션 신경망 기반의 모델
  • Encoder-Decoder 구조
  • Encoder : 저해상도 특징 맵 추출
  • Decoder : 추출된 특징 맵을 업샘플링하여 원본 이미지 크기로 복원

 

 

UNet

  • 의료 이미지 분석에 사용되는 Image Segmentation Network
  • Encoder-Decoder 구조
  • 경로를 통해 저해상도 특징을 전달하는 Skip Connection을 특징으로 한다.

 

 

PSPNet(Pyramid Scene Parsing Network)

  • 피라미드 구조를 이용하여 시각적 맥락을 포착하는 Image Segmentation Network
  • 다양한 스케일의 피라미드 특징 맵을 추출하고, 각 특징 맵을 추출하고, 각 특징 맵을 공간 피라미드 폴링(Spatial Pyramid Pooling)을 통해 전역 및 로컬 맥락 정보를 통합한다.

 

 

Keras API, Pytorch API 등을 이용해서 직접 모델을 구현하거나 기존의 모델을 활용할 수 있다.

728x90
반응형

'AI > Computer Vision' 카테고리의 다른 글

[Computer Vision] Inpainting  (0) 2024.03.25
[Computer Vision] DreamBooth  (0) 2024.03.11
[Computer Vision] LoRA(Low-Rank Adaptation)  (0) 2024.03.10
[Computer Vision] IP-Adapter  (0) 2024.03.10
[Computer Vision] Control Net  (0) 2024.03.09