KimbgAI

[ML] U-Net(2015.05); Convolutional Networks for Biomedical Image Segmentation 요약 및 pytorch 코드 구현(1) 본문

machine learning

[ML] U-Net(2015.05); Convolutional Networks for Biomedical Image Segmentation 요약 및 pytorch 코드 구현(1)

KimbgAI 2022. 10. 5. 18:26
반응형

U-Net(2015.05); Convolutional Networks for Biomedical Image Segmentation
원문: https://arxiv.org/abs/1505.04597

본 리뷰는 Semantic Segmentation의 기술 동향을 살펴보며,
핵심 아이디어와 Contributions을 정리하고, 간단한 코드 구현을 통해 살펴보고자 한다. 

아래 그림과 같이 architecture의 형태가 U자 모양을 하고 있어 U-Net이라고 네이밍되었다.
U-Net은 FCN과 마찬가지로 skip architecture로 구성하여 feature map의 위치정보를 활용하였다는 점에서 FCN과 전반적인 구조는 크게 다르지 않기 때문에 architecture에 대한 내용은 그림으로 대체한다.

U-Net architecture

하지만 U-Net은 medical demain에 적용하기 위한 몇가지 테크닉이 포함되어 있다.


핵심 아이디어는 다음과 같다.

1. Using mirror padding not zero padding
 - mirror padding을 통해 input shape을 늘려 가장자리에 있는 feature들을 잘 포착하도록 했다. 일반적인 convolution 연산은 연산 전후의 feature map size가 같도록 zero padding을 적용하지만, 이는 가장자리에 있는 feature들이 의미없는 값(0)들을 포함하게 만든다. 따라서 아래와 같이 extraterpolation을 적용하여 이를 방지하였다.

2. No padding

 - 또한 padding 없는 convolution 연산을 위해 input shape과 output shape이 다르다는 점도 특징이다.

3. Using weight map for data imbalance problem
 - 세포 검출을 위한 segmentation은 세포영역 뿐만 아니라 경계선 검출도 중요하다.
 - 하지만, 경계선은 매우 작은 영역이기 때문에, 아래와 같은 weight map을 사전에 구성하여 해당되는 영역에 대한 weight를 loss에 반영하였다.
 - 이는 경계선이 얇을수록 높은 weight를 가지게 된다.

x는 각 pixel을 의미하며, d1와 d2는 x와 cell과의 거리를 나타낸다. 나머지 variables은 weight 조정값.

4. Others
 - Augmentation: rotation, shift, random elastic deformation (key concept for segmentation) etc.
 - Loss: pixel-wise cross entropy with weight map


결과
ISBI cell tracking challenge 2015에서 2등 모델과 현격한 성능차이를 내며 우승하였다.
'PhC-U373'데이터와 'DIC-HeLa'데이터에 대한 IOU score로 평가한 결과다.

Code

코드는 아래의 포스팅에 있습니다~

https://kimbg.tistory.com/19

반응형
Comments