Group Study (2022-2023)/Machine Learning

[Machine Learning] 8주차 스터디 - Segmentation: U-Net

sooking87 2022. 11. 28. 06:01

U-Net: Convolutional Networks for Biomedical Image Segmentation

이미지를 인식하는 다양한 방법

download1

  • Classification
  • Classification + Localization
  • Object Detection: 여러 개의 개체가 있는 곳을 탐지(bbox로 표현)
  • Instance Segmentation: Object Detection과 유사하지만 픽셀별로 어떤 클래스에 해당하는지 구별

Semantic Segmentaion

이미지 내에 있는 각 물체들을 의미 있는 단위로 분할하는 작업으로, 분류의 경우는 단일 이미지를 하나의 클래스로 분류했지만 분할의 경우는 각 픽셀마다 하나의 클래스로 분류한다.

download2

이미지가 주어졌을 때, 한 장의 분할 맵을 생성하는 것이 목표이다.

download3

CNN의 동작 과정

download1

필터는 슬라이딩을 하면서 컨볼루션 연산을 통해 feature map(activation map)을 계산한다.

실제 CNN 레이어는 여러 번 중첩되어 사용할 수 있다. 따라서 레이어가 중접될수록 필터의 채널의 수는 많아지고 너비와 높이는 줄어들어서 해상도는 감소하게 되는 형태로 진행이 된다.

여기서 중요한 정보는 유지한 상태로 해상도를 감소시키는 방법 중 하나로 Max Pooling이 있다.

download2

각 필터에 의해서 특징이 반영된 feature map을 생성하게 된다. 얕은 층에서는 local feature을, 깊은 층에서는 고차원적인 global feature을 인식하는 경향이 있다.

U-Net

download3

Semantic Segmentation에서는 입력 이미지와 같은 해상도의 출력 형식이 나와야 되므로 레이어를 U자 형태로 해상도를 줄였다가 늘리는 식으로 아키텍처를 제안했다.

의료 분야에서 레이블 정보를 얻기 위해서는 많은 지식을 가지고 있는 의료진이 직접 레이블을 붙혀야 하므로 데이터를 얻는데 많은 비용이 필요하다. 하지만 이 논문에서는 레이블 정보가 있는 데이터가 적을 때 효율적인 데이터 증진 기법을 제안한다는데에도 의의가 있다.

download3

  • Down-Sampling의 목적

    strided convolution을 통해서 너비와 높이를 줄인다. stride = 2이다.
  • Up-Sampling의 목적

    Transposed Convolution을 통해서 너비와 높이를 증가시킨다. stride = 1이다.

U-Net Architecture

download1

커널을 이용해서 해상도는 줄이고 채널의 수는 늘려준다.

-> 그 다음 Max Pooling을 이용해서 해상도를 절반씩 줄여준다. 그 다음 다시 convolution layer를 통해서 해상도는 줄이고 채널 수는 늘린다.

-> 이를 반복 : 32 x 32까지 해상도를 줄인다.

-> 그 다음부터 해상도를 늘리는데, up-conv를 통해서 해상도를 2배로 늘리고 채널의 수는 줄여준다.

-> 이 과정을 반복해서 input image와 해상도를 같게 만들어준다.

흰 색 부분은 앞쪽 레이어의 feature map을 그대로 사용하는 것이다. 이를 통해서 앞쪽 레이어의 특징들을 재사용할 수 있어서 보다 좋은 결과를 얻을 수 있다.

download1

수축 경로의 경우는 일반적인 CNN 모델과 유사하기 때문에 기존에 잘 학습되어 있는 모델을 사용하는 경우도 많다.

download2

수축 경로에서의 feature map을 사용하게 함으로써 보다 학습 난이도는 낮아지고 좋은 결과를 가지게 된다.

U-Net의 Overlap-tile 전략

download3

U-Net 구조상 출력 이미지의 해상도가 입력 이미지보다 작아서 실제로 필요한 영역보다 더 큰 범위의 패치를 삽입한다.

더 큰 범위의 패치를 만들기 위해서는 일부 범위를 미러링을 통해서 이미지 크기를 키운다.

Objective Function

download1

모든 픽셀마다 확률값을 구하여 소프트맥스 함수를 사용하는 것을 알 수 있다.

픽셀 x 위치에서의 정답 레이블에 대한 확률값에서 로그를 씌워주고 가중치를 곱해 학습이 잘 되도록 만들어준다.

여기서 가중치 함수는 세포를 명확히 구분하기 위해서 작은 분리 경계를 학습하도록 한다. w(x)는 인접한 셀 사이에 있는 배경 레이블에 대하여 높은 가중치를 부여하여 명확한 분리를 할 수 있도록 한다. 인접한 세포와의 거리가 가까울수록 가중치를 증가시킨다.

데이터 증진

download2

일반적인 data augmentation 기술을 사용하고 Elastic Deformation 방법을 사용한다.

그리드에 대해서 변형을 가해서 이 이미지도 학습 데이터로 넣게 되는 것이다.