시맨틱분할

반드시알아야할3가지

시맨틱분할이란?

시맨틱분할은이미지의모든픽셀에레이블또는카테고리를연관짓는딥러닝알고리즘입니다。시맨틱분할은서로다른카테고리를구성하는집합의픽셀을인식하는데사용됩니다。예를들어,자율주행차량은자동차,행인,교통표지판,인도와같은다양한도로상의특징을식별할수있어야합니다。

시맨틱분할은자율주행,의료영상,산업검사와같은다양한분야에서사용됩니다。

시맨틱분할의간단한예로이미지를두개의클래스로나누는것을들수있습니다。예를들어,바닷가에있는사람을나타내는그림1은이미지의픽셀이”사람”과”배경“이라는두개의클래스로구분된버전과페어링되어있습니다。

그림1:이미지와레이블된픽셀。

시맨틱분할은두개의카테고리로만제한되지않습니다。사용자는이미지의내용물을분류할때사용할카테고리의개수를변경할수있습니다。동일한이이미지는일례로”사람’,‘하늘’,‘물’,‘배경“이라는4개의클래스로구분될수있습니다。

시맨틱분할과객체감지의차이점

시맨틱분할에서는원하는객체가픽셀수준에서이미지의여러영역에걸쳐있어도되기때문에객체감지의유용한대안이될수있습니다。객체가경계상자안에있어야하는객체감지와달리시맨틱분할에서는비정형모양을갖는객체도깔끔하게감지됩니다(그림2)。

그림2:객체식별을위해경계상자가표시된객체감지。

시맨틱분할의용도

시맨틱분할에서는이미지의픽셀에분할레이블을적용하기때문에다른형태의객체감지보다훨씬정밀합니다。따라서시맨틱분할은다음과같이정밀한이미지지도가필요한다양한산업분야에서유용하게사용됩니다。

  • 자율주행——행인,보도,가로등,다른자동차와같은장애물과도로를분리하여차량이주행가능한경로식별
  • 산업검사- - - - - -재료에포함된결함감지(웨이퍼검사등)
  • 위성영상——강산사막과같은다양한지형식별
  • 의료영상- - - - - -세포에서암과같은이형을분석및감지
  • 로봇비전——객체와지형의식별및탐색

그림3:시맨틱분할이적용된다분광위성영상。

시맨틱분할의작동방식

시맨틱분할네트워크가이미지를분류하도록훈련하는과정은다음과같이진행됩니다。

  1. 픽셀이레이블된집합의이미지를분석합니다。
  2. 시맨틱분할네트워크를생성합니다。
  3. 이미지를픽셀카테고리로분류하도록해당네트워크를훈련시킵니다。
  4. 네트워크의정확도를평가합니다。

사례:자율주행분야에서의적용

그림4의시퀀스에서는자율주행에사용된시맨틱분할의실제사례를보여줍니다。도로이미지가다른자동차들로부터자동으로분할됩니다。다음섹션에서는시맨틱분할네트워크가어떻게생성되는지설명합니다。

그림4:자율주행분야에적용된시맨틱분할。

아키텍처의이해

시맨틱분할을적용하는일반적인방법은CNN (컨벌루션뉴럴네트워크)아키텍처기반의SegNet을생성하는것입니다。그림5에서전형적인CNN아키텍처를볼수있습니다。

이CNN은전체이미지를사전정의된여러개의카테고리중하나로분류합니다。

그림5:CNN의전형적인구조。

CNN의아키텍처를역으로추가하면전체이미지가아닌픽셀수준에서분류를수행할수있습니다。최종이미지의크기가입력이미지의크기와같도록업샘플링프로세스가다운샘플링프로세스횟수만큼실시됩니다。마지막으로,각픽셀을특정클래스로매핑하는픽셀분류출력레이어가사용됩니다。이로인해시맨틱분할을지원하는인코더——디코더아키텍처가형성됩니다。

그림6:각레이어에서이미지관련함수를적용한다음풀링레이어(녹색)를사용하여이미지를다운샘플링하는CNN。네트워크의처음절반에대해이과정이여러차례반복됩니다。이다이어그램의처음절반에대한출력이도출된뒤이와동일한양의언풀링레이어(주황색)가적용됩니다。

MATLAB을활용한시맨틱분할

MATLAB에서시맨틱분할을수행하는워크플로는다음과같은다섯가지단계에따라이루어집니다。

  1. 데이터에레이블을적용하거나레이블이적용된데이터를확보합니다。
  2. 원본이미지와레이블이적용된이미지를위한데이터저장소를생성합니다。
  3. 데이터저장소를파티션으로나눕니다。
  4. CNN을가져온다음SegNet이되도록수정합니다。
  5. 네트워크를훈련하고평가합니다。

1단계:데이터에레이블을적용하거나레이블이적용된데이터를확보합니다。

딥러닝모델은다량의데이터를바탕으로구축됩니다。시맨틱분할도예외는아닙니다。다량의데이터를확보하기위한한가지옵션은인터넷에서레이블이적용된데이터를찾는것입니다。자체적인데이터셋이이미확보되어있다면MATLAB의图片标志앱을사용할수있습니다。이데이터셋을사용하여SegNet을훈련시킬수있습니다。

그림7:시맨틱분할을위해이미지에레이블을적용하는贴标签앱MATLAB图像

추가정보

2단계원:본이미지와레이블이적용된이미지를위한데이터저장소를생성합니다。

다량의데이터로작업할때는모든정보를메모리에로드할수없는경우가자주있습니다。데이터저장소를사용하면대규모데이터셋을관리할수있습니다。데이터저장소는사용자가액세스하려는파일의위치를포함하고있으며,해당파일에연산을수행해야하는경우에만이를메모리에로드할수있습니다。

SegNet을생성하려면다음과같은두가지데이터저장소가필요합니다。

  1. ImageDatastore——원본이미지를포함하는데이터저장소
  2. PixelLabelDatastore——레이블이적용된이미지를포함하는데이터저장소

3단계:데이터저장소를파티션으로나눕니다。

SegNet을생성하려면데이터저장소를다음과같은두개의파티션으로나누어야합니다。

  1. 훈련세트- SegNet훈련에사용할파티션
  2. 테스트세트-네트워크의정확도를평가하는데사용할파티션

그림8:컬러이미지(왼쪽)와여기에대응하는레이블이적용된픽셀(오른쪽)을보여주는고속도로이미지。

4단계:CNN을가져온다음SegNet이되도록수정합니다。

VGG16과같은사전학습된네트워크를로딩하고SegNetLayers명령을활용해픽셀수준레이블지정에필요한인코더——디코더아키텍처를만듭니다。

그림9:MATLAB에서코드한줄을사용하여SegNet아키텍처생성하기。

5단계:네트워크를훈련하고평가합니다。

마지막단계에서는네트워크의하이퍼파라미터를설정하고네트워크를훈련시킵니다。

시맨틱분할에대해자세히알아보는방법

이미지분석에시맨틱분할을사용할수있는제품에는MATLAB®,픽셀레이블적용을위한计算机视觉的工具箱™,네트워크생성및훈련을위한深度学习工具箱™가있습니다。

계산기능이3.0이상인CUDA®지원GPU에서는훈련과예측이지원됩니다。이때GPU를사용하는것이권장되며,이를위해서는并行计算工具箱™가필요합니다。

소프트웨어참조

무료평가판받기

30일동안사용가능