Image Segmentation

 

Image Segmentation이란?

꼭 알아야 할 3가지 사항

Image segmentation은 디지털 영상 처리와 분석에서 널리 사용하는 기법으로, 대개 영상 내 픽셀의 특징을 기반으로 하나의 영상을 다수의 부분이나 영역으로 분할하는 기법입니다. Image segmentation에는 배경에서 전경을 분리하거나 컬러 또는 형상의 유사성을 기반으로 픽셀 영역을 군집화하는 작업이 수반될 수 있습니다. 예를 들면, 의료 영상에서 Image segmentation의 흔한 응용 사례는 환자의 뇌에 있는 종양 또는 기타 장기를 나타내는 영상의 픽셀이나 3차원 볼륨의 복셀을 감지하고 레이블을 지정하는 것입니다.

Image Segmentation이 중요한 이유

특정 응용 분야의 분할 문제를 효과적으로 해결하기 위해 분야 특정 지식을 활용한 image segmentation 알고리즘 및 기법이 다년간 개발되어 왔습니다.  이런 응용 분야에는 의료 영상, 자율주행, 비디오 감시, 머신 비전 등이 있습니다.

의료 영상

암에 대한 의료 진단 과정에서 병리학자들은 H&E(헤마톡실린 및 에오신)로 신체 조직을 염색하여 조직 유형을 구분합니다. 다음으로 군집화라는 image segmentation 기법을 사용하여 영상 내 조직 유형을 식별합니다. 군집화란 한 장면 내 객체의 그룹을 분리하는 방법을 가리킵니다. K-평균 군집화 알고리즘은 각각의 군집 안의 객체끼리는 최대한 서로 가까이 있고, 다른 군집 안의 객체들로부터는 최대한 멀리 있도록 나누는 구획을 찾습니다.

군집화를 사용하여 H&E(헤마톡실린 및 에오신) 염색 처리된 신체 조직의 영상에서 조직 유형을 구분합니다.

군집화를 사용하여 H&E(헤마톡실린 및 에오신) 염색 처리된 신체 조직의 영상(위)에서 조직 유형(아래)을 구분합니다.

자율주행

자율주행 자동차 같은 자율주행 차량의 인식 기능을 설계할 때는, 의미론적 분할을 주로 사용하여 도로의 차량 및 기타 객체를 시스템이 식별하고 위치를 파악하도록 합니다.

의미론적 분할을 사용하여 영상에 있는 픽셀과 클래스 레이블(자동차, 도로, 하늘, 보행자, 자전거 등)을 연결합니다.

의미론적 분할을 사용하여 영상에 있는 픽셀과 클래스 레이블(자동차, 도로, 하늘, 보행자, 자전거 등)을 연결합니다.

Image Segmentation의 작동 방식

Image segmentation에는 하나의 영상을 마스크 또는 레이블이 지정된 영상으로 표현되는 픽셀 영역들로 변환하는 과정이 수반됩니다. 영상을 여러 세그먼트로 나누어 영상 전체를 처리하지 않고 영상 내 중요한 세그먼트만 처리할 수 있습니다. 

널리 사용되는 기법은 픽셀 값이 급격하게 불연속적인 지점을 찾는 것인데, 일반적으로 이런 지점은 하나의 영역을 정의하는 경계를 나타냅니다. 

이진화를 통해 이진 영상으로 변환하여 영상 속 텍스트의 가독성을 개선합니다.

이진화를 통해 이진 영상으로 변환하여 영상 속 텍스트의 가독성을 개선합니다.

널리 사용되는 또 다른 접근법은 한 영상의 영역들간의 유사성을 검출하는 것입니다. 이런 접근법을 따르는 기법으로는 영역 확장, 군집화, 이진화 등이 있습니다.

색 값, 형태 또는 텍스처를 기반으로 한 영역 분할.

색 값, 형태 또는 텍스처를 기반으로 한 영역 분할.

특정 응용 분야의 분할 문제를 효과적으로 해결하기 위해 분야 특정 지식을 활용한 기타 image segmentation 알고리즘 접근법이 다년간 다양하게 개발되어 왔습니다. 

MATLAB을 사용한 Image Segmentation

MATLAB® 을 사용하여 다음과 같은 작업을 수행할 수 있습니다.

  • 앱을 사용하여 대화형 방식으로 다양한 분할 기법 탐색
  • 내장된 Image Segmentation 알고리즘을 사용한 영상 분석 워크플로 단순화
  • Image Segmentation을 위한 딥러닝 수행

앱을 사용하여 대화형 방식으로 영상 이진화하기

영상 분할기 앱

대화형 방식의 영상 분할기 앱을 사용하면 반복적으로 몇 가지 방법을 시도하여 영상을 분할하고 원하는 결과를 달성할 수 있습니다. 예를 들어, 앱을 사용하여 무릎 MRI 영상의 결과를 다양한 방법으로 분할하고 더욱 정교화할 수 있습니다.

영상 분할기 앱을 사용하여 다양한 분할 기법을 대화형 방식으로 적용합니다.

영상 분할기 앱을 사용하여 다양한 분할 기법을 대화형 방식으로 적용합니다.

색 이진화 앱

색 이진화 앱을 통해 다양한 컬러스페이스를 기반으로 대화형 방식으로 영상의 색상을 조작함으로써 컬러 영상에 이진화를 적용할 수 있습니다. 예를 들어, 색 이진화 앱을 사용하면 컬러 영상에 대해 포인트 클라우드 컨트롤을 사용하여 이진 마스크를 생성할 수 있습니다.

색 이진화 앱을 사용하여 색 분할을 적용해 전경에 있는 새를 배경에서 분리합니다.

다양한 Image Segmentation 기법 사용하기

MATLAB 및 Image Processing Toolbox™의 함수를 사용하여 이진화, 군집화, 그래프 기반 분할, 영역 확장 등 다양한 image segmentation 기법을 실험하고 지식을 쌓을 수 있습니다.

이진화

imbinarize는 오츠의 알고리즘을 사용하여 2차원 또는 3차원 회색조 영상에 대해 이진화를 수행하여 이진 영상을 만들 수 있습니다. RGB 컬러 영상에서 이진 영상을 생성하려면 rgb2gray를 사용하여 먼저 RGB 컬러 영상을 회색조 영상으로 변환하십시오.

이진화를 사용하여 컬러 영상을 이진 영상으로 변환합니다.

이진화를 사용하여 컬러 영상을 이진 영상으로 변환합니다.

군집화

이 기법을 통해 특정 군집화 알고리즘을 사용하여 분할된 레이블 지정 영상을 생성할 수 있습니다. imsegkmeans로 k-평균 군집화 기반 분할을 사용하여 영상을 K개의 군집으로 분할할 수 있습니다.

바닥의 무늬가 있는 배경을 분리하는 데 사용되는 군집화 기법.

바닥의 무늬가 있는 배경을 분리하는 데 사용되는 군집화 기법.

그래프 기반 분할

Lazy snapping과 같은 그래프 기반 분할 기법을 통해 영상을 전경 영역과 배경 영역으로 분할할 수 있습니다. MATLAB에서는 프로그래밍 방식으로(lazysnapping) 또는 영상 분할기 앱을 사용하여 대화형 방식으로 영상을 분할할 수 있습니다.

전경과 배경을 분리하는 lazy snapping.

전경 영역과 배경 영역을 분리하는 lazy snapping.

영상 분할기 앱 그래프 기반 분할.

영상 분할기 앱을 사용하여 대화형 방식으로 그래프 기반 분할을 적용합니다.

영역 확장

영역 확장은 간단한 영역 기반(픽셀 기반 방식으로도 분류됨) image segmentation 방법입니다. 널리 활용되는 알고리즘은 activecontour로서, 초기 시드 점에 인접한 픽셀을 검사하여 인접 픽셀을 영역에 추가할지 반복적으로 판단합니다. 영상 분할기 앱을 사용하여 영상에 대해 이러한 분할을 수행할 수도 있습니다.

영상 분할기 앱을 사용하여 영역 확장을 수행합니다.

Image Segmentation을 위한 딥러닝

CNN(컨벌루션 신경망)을 사용하는 딥러닝 기법인 의미론적 분할을 통해 영상 내 모든 픽셀을 클래스 레이블과 연결할 수 있습니다. 의미론적 분할의 응용 분야는 자율주행, 산업 검사, 의료 영상, 위성 영상 분석 등이 있습니다.

의미론적 분할 기법의 도식.

의미론적 분할 기법의 도식.

MATLAB을 사용하면 영상의 모음 및 이에 대응하는 레이블 지정 영상으로 의미론적 분할 신경망을 설계 및 훈련하고, 훈련된 신경망을 사용하여 새로운 영상에 레이블을 지정할 수 있습니다. 훈련 영상에 레이블을 지정하려면 Image Labeler, Video Labeler 또는 Ground Truth Labeler 앱을 사용할 수 있습니다.

Ground Truth Labeler 앱을 사용하여 의미론적 분할을 수행합니다.

Ground Truth Labeler 앱을 사용하여 의미론적 분할을 수행합니다.

Image Segmentation에 대해 자세히 알아보기

영상 분할 앱을 통해 명암 기반 접근법을 비롯한 그래프 절단, 원 찾기, 영역 확장 등의 기법을 사용하여 분할한 후의 영상을 미리 볼 수 있습니다.
대화형 방식의 앱을 사용하여 색 기반 분할을 수행하고, 영상 마스크를 개선하고, 영역을 분석하는 방법을 알아봅니다.
딥러닝 신경망을 사용한 의미론적 분할의 전반적인 워크플로에 대해 알아봅니다. 또한 영상 레이블 지정기 앱으로 픽셀 수준에서 실측 레이블 지정 워크플로를 신속하게 처리하는 방법을 알아봅니다.
L*a*b* 컬러스페이스와 k-평균 군집화를 사용하여 자동으로 컬러를 분할할 수 있습니다.
경계 검출과 기본 모폴로지를 사용하여 세포를 검출합니다.
워터셰드 분할을 사용하여 영상 속의 맞닿은 객체를 분리합니다.
영상 처리 개념과 알고리즘에 관해 알아볼 수 있습니다.
예제를 따라 해보며 MATLAB에서 영상 처리를 시작할 수 있습니다. 이 비디오를 통해 Image Processing Toolbox에서 사용 가능한 기본적인 영상 처리 및 분석 기능을 파악할 수 있습니다.