-> 최종 출력인 Segmentation map의 크기는 Input image의 크기보다 작게 출력된다.
-> tile(patch) 단위로 넣을 때 끊기지 않는 segmenation map을 얻기 위해서는 input tile size가 2x2 max pooling에 들어가는 input의 x,y의 크기가 짝수가 되도록 만들어야 한다.
Training
Segmentation map이 산출되면 그것을 기준으로 network가 훈련을 한다.
큰 배치 사이즈보다는 큰 input tiles를 선호 (single image를 batch로 사용)
high momentum(0.99): 이전에 보았던 훈련 샘플들이 현재 최적화에 가장 많은 영향을 미침
Loss function
Softmax function final feature map에 대한 pixel-wise softmax를 한 후에 cross entropy를 적용
※ $p_{k}(\mathbf{x})=\exp \left(a_{k}(\mathbf{x})\right) /\left(\sum_{k^{\prime}=1}^{K} \exp \left(a_{k^{\prime}}(\mathbf{x})\right)\right)$ $a_{k}(x)$: channel k에서의 특정 pixel position x의 activation 값 $K$: number of classes
Cross Entropy cross entropy $\ell: \Omega \rightarrow\{1, \ldots, K\}$ $w$: weight map. 특정 픽셀에 더 많은 가중치 부여
Weight map 각각의 ground truth segmentation에 대한 weight map은 미리 계산해 놓는다. touching cell 간의 경계선을 학습하기 위해서 훈련 데이터 셋의 특정 클래스에 대한 different frequencey of pixels($w_{c}(x)$)을 보상하는 방식으로 weight map을 계산한다. (이미지 내에서 클래스마다 차지하는 픽셀 개수가 상이할 것이다) 또한, 가까운 cell의 경계와 가까우면 가중치를 높게 부여한다.
weight map
$w_{c}$: weight map to balance class frequencies $d_{1}$: distance to the border of the nearest cell $d_{2}$: distnace to the border of the second nearest cell (여기서 cell은 하나의 클래스 객체를 지칭. 의학에서의 cell)
Data Augmentation
매우 적은 수의 샘플을 가지고 있을 때 network에 invariance와 robustness를 부여하기 위한 목적으로 사용된다. 본 논문에서 사용한 데이터처럼 아주 미세한 이미지의 경우 shift, rotation, deformation, gray value variation를 적용한다. 특히, random deformation이 훈련 데이터 수가 적은 경우 가장 중요하다.
Conclusion
U-Net은 다양한 biomedical segmentation task에서 좋은 성능을 보였다.
Image augmentation 방법으로 인해 매우 적은 양의 이미지로도 학습이 가능해졌다.