Unet
Unet Intro
Unet은 의료계열에서의 문제상황을 해결하기 위해 나왔지만 구조가 좋기 때문에 다방면에서 사용된다.
Unet Architecture

Contracting Path : 이미지 추출
- (3x3 Conv Network + BottleNeck + ReLU)x2
- Nonzero-padding으로 patch size 감소
- 2x2 Maxpooling(stride=2)
- FeatureMap의 크기가 절반으로 감소
- MaxPooling 이후 채널 수 2배 증가
ExpandingPath : Localization을 가능하게 한다.
- 2x2 Up-Conv 사용했다.
- FeatureMap의 크기가 2배 증가했다.
- 채널의 수를 절반으로 감소시켰다.
- Contracting에서 얻은 Feature Map과 Concat을 진행했다.
- Skip Connection을 할 때 Input Size가 맞지 않는 경우 왼쪽부분에서 가운데를 Crop하여 맞춘다.
Unet의 장점
1. Encoder가 확장함에 따라 채널의 수를 1024 까지 증가시켜서 더 고차원에서 정보를 Mapping할 수 있다.
2. 각기 다른 계층의 Encoder의 출력을 Decoder와 결합시켜서 이전 Layer의 정보를 효율적으로 활용할 수 있다.
Unet에 적용된 기술들
- Data Augmentation
- RandomElasticDeformations
- Pixel Wise Loss Weight를 계산하기 위한 Weightmap을 사용했다.
- 같은 클래스를 가지는 인접한 셀을 분리하기 위해 해당 경계부분에 가중치를 제공했다.
한계점
- UNet은 기본적으로 깊이가 4로 고정이된다.
- 데이터셋마다 최고의 성능을 보장하지 못한다.
- 단순하게 SkipConnection을 했다.
- 동일한 깊이를 가지는 Encoder와 Decoder만 연결되는 제한적인 구조를 가진다.
U-Net++
U-Net++ Intro
Unet의 한계점을 극복하기 위해서 나왔다.
- Encoder를 공유하는 다양한 깊이의 U-Net을 생성했다.
Skip Connection을 동일한 깊이에서의 FeatrueMaps가 모두 결합되도록 유연한 FeatureMap을 생성했다.

DenseSkipConnection/Ensemble/DeepSupervision
Dense Skip Connection
- Skip Connection을 기존에는 같은 레벨에만 사용했지만 UNet++에서는 모든 부분에서 활용한다.

Ensemble
- 기존 UNet의 앙상블 된 모델과 비교했을 때 성능이 더 좋다.
Hybrid Loss

Deep Supervision
x0.0,x0.1,x0.2,x0.3,x0.4에 대한 loss를 위의 hybrid loss로 각각 구하고 결과값인 4개의 loss를 평균내어 사용한다.

한계점
- 복잡한 Connection으로 인해 Parameter 수가 많다.
- 많은 Connection으로 인해 메모리를 많이 먹는다.
- Encoder-Decoder 사이에서의 Connection이 동일한 크기를 갖는 FeatureMap에서만 진행된다.
- Full Scale에서 충분한 정보를 탐색하지 못해 위치와 경계를 명시적으로 학습하지 못한다.
U-Net3+
U-Net, U-Net++의 한계점
- U-Net에서의 Decoder를 구성하는 방법은 같은 level의 encoder로부터 featuremap을 받는 simple Skipconnection을 사용했다.
- U-Net++에서는 nested and dense skip cononection을 사용하여 encoder,decoder 사이의 semantic gap을 줄였다. 그러나 위에 적은 대로 3가지 단점이 존재한다.
U-Net3+에 적용된 기술들
Full-Scale Skip Connections
- Decoder의 featuremap 구성 방법
- Conventional : encoder layer로부터 같은 크기의 feature map을 받는다.
- inter: Encoder layer로부터 작은 크기의 low-level feature maps를 받는다.
- intra: decoder layer로부터 큰 크기의 high-level feature maps를 받는다.
Conventional

Inter

Intra

Classification GuidedModule(CGM)

- Low-level layer에 남아있는 background의 noise가 발생하여, 많은 false-positive 문제가 발생했다.
- high-level feature maps인 xde5를 활용했다.
- Dropout,1x1Conv,AdaptiveMaxPool,Sigmoid통과한다.
- Argmax를 통해 Organ이 없으면 0,있으면 1으로 출력한다.
- 위 에서 얻은 결과와 각 low-layer마다 나온 결과를 곱한다.
Full-scaleDeepSupervision(lossfunction)
- 경계 부분을 잘 학습하기 위해서 Loss를 여러가지 결합시켰다.

- Focal Loss: 클래스의 불균형 해소를 위해 사용한다.
- Ms-ssimLoss: Boundary 인식을 강화하기 위해 사용한다.
- IoU: 픽셀 분류의 정확도를 상승시키기 위해 사용한다.
Another version of the U-Net
Residual U-Net

Mobile-UNet
MobileNet을 Backbone으로 사용하여 더 빠르고 가볍게 제작했다.

Eff-Unet
EfficientNet을 Backbone으로 사요하여 높은 성능을 얻었다.
