1. Introduction

Deep convolutional networks는 긴 시간 동안 발전을 해왔지만, training set과 network의 크기 때문에 성공에 한계가 있었다. 하지만, AlexNet이 등장함으로써더 크고 깊은 네트워크를 학습할 수 있게 되었다.

Convolutional networks은 일반적으로 classification tasks 처리에 쓰인다. classification tasks에서는 output이 class label이다. Biomedical image processing의 경우, 전체 이미지에 대한 label이 아닌 이미지의 각 pixel마다 classification 즉 class label이 할당된 output이 필요했다. 여기서는 output이 localization을 포함해야 한다고 말한다.

<aside> ❓

Biomedical image

image.png

U-Net에서 사용한 biomedical image는 위 input처럼 세포를 찍은 사진을 의미한다. 이것의 output은 각 pixel마다 class label이 할당되어 localization을 포함해야 하므로 label 이미지와 같다.

</aside>

U-Net 이전에도 이 문제를 해결하기 위한 여러 네트워크가 나왔다.

본 논문에서는 Ciresan 외 세 명의 연구진들이 개발한 deep neural network 기반의 네트워크(논문 링크)를 소개한다. 이 방법은 sliding-window를 이용하여 네트워크를 train 하여 해당 pixel 주변의 local region(이를 patch 라고 함)을 입력으로 제공하여 각 pixel의 class label을 예측한다. localize가 가능하며, 이미지 단위가 아닌 patch 단위로 수행되기 때문에 training image가 더 많다는 장점이 있다.

하지만, patch 단위로 각각 네트워크가 훈련되기 때문에 연산 속도가 매우 느리며, sliding-window 수행 시 patch에 중복되는 영역이 생겨 redunduncy가 많다는 단점이 있다. 또한, localization accuracy와 use of context 사이의 trade-off 관계가 있다고 한다. Patch가 클수록 더 많은 max-pooling layers가 필요한데, 이는 localization accuracy를 떨어트린다. 그렇다고 patch의 크기를 줄이면 네트워크는 이미지 내에서 적은 context만을 보게 된다.

U-Net은 "fully convolutional network" 이라는 네트워크를 기반으로 만들어졌다. (아래 그림 참조)

아주 적은 training images로도 더 정확한 segmentation을 수행한다.

image.png

2. Network Architecture

<aside> 💡

네트워크가 알파벳 U 모양을 띄고 있어서 이름이 U-Net이다.

크게 contracting path (left side)와 expansive path (right side)로 구성된다.

전체 네트워크는 총 23 개의 convolutional layers로 구성된다.

</aside>

Encoder (Contracting Path)

전형적인 convolutional network 구조를 따른다.

아래와 같은 downsampling 과정을 반복하며, feature channels은 두 배로 늘리고 feature의 resolution은 줄인다. 이 과정에서 추출된 high resolution feature은 contextual 정보가 수집된다.

  1. 3x3 convolutional layer + ReLU (padding X, stride=1)
  2. 3x3 convolutional layer + ReLU (padding X, stride=1)
  3. 2x2 max pooling layer (stride=2) → downsampling 수행