[부스트캠프 AI tech Segmentation] week16 (2022.05.03)
1. U-Net
1.1 Intro
- 원래
Bio-Medical분야의 논문
biomedical의 특성상 data 수가 부족하고 labeling에 어려움이 있음
- 여러
biomedical분야의 한계를 극복한 논문
1.2 Architecture

1.3 Contracting Path(Encoder)
- 하나의
block에서 3x3 conv + BN + ReLU가 두번 반복되는 구조
padding을 사용하지 않아 patch size가 layer를 통과할 수록 줄어듦
- 하나의
block을 통과한 후 2x2 pooling(stride=2)을 통해 feature map을 절반의 크기로 줄임.
block의 첫 layer에서 channel을 두배로 키워줌
1.4 Expanding Path(Decoder)
2x2 Transposed conv 사용
feature map의 크기를 2배로 증가시킴
channel의 수를 절반으로 줄임
Contracting Path에서 얻은 feature map과 concat
Skip-connection에서 feature map의 크기가 맞지 않는 경우 Crop하여 사용
- 마지막에
segmentation map을 만들기 위해 1x1 conv를 수행
1.5 Contribution
Encoder가 확장함에 따라 채널의 수를 1024까지 증가시켜서 좀 더 고차원에서 정보를 매핑함
- 각기 다른 계층의
encoder의 출력을 decoder와 결합시켜서 이전 레이어의 정보를 효율적으로 활용
1.6 Data Augmentation
Random Elastic deformations
: 모델의 invariance와 robustness를 학습할 수 있도록 하는 방법
Pixel-wise loss weight를 계산하기 위한 weight map을 생성
- 같은 클래스를 가지는 셀이 인접할 수록 높은 가중치를 주어 경계를 잘 구분하도록 함

1.7 한계점
- U-Net은 기본적으로 깊이가 4로 고정됨
dataset마다 최고의 성능을 보장하지 못함
- 최적 깊이 탐색 비용 증가
- 단순한
Skip Connection
- 동일한 구조를 가지는
Encoder와 Decoder만 사용가능
2. U-Net++
2.1 Intro

U-Net의 한계를 극복하기 위한 새로운 형태의 구조 제시
Encoder를 공유하는 다양한 깊이의 U-Net 생성
2.2 Dense Skip Connection

- 하나의
Skip Connection만을 사용했던 U-Net과 달리 모든 level의 feature map을 concat하는 Dense Skip Connection으로 바뀜
2.3 Ensemble

- 여러 깊이의
U-Net구조를 연결하면서 Ensemble과 같은 효과를 냄
2.4 Hybrid Loss

pixel-wise crossentropy + soft Dice Coefficient
2.5 Deep Supervision

- X0,1, X0,2, X0,3, X0,4를 모두 활용해 Loss를 구함
2.6 한계점
- 많고, 복잡한
Connection으로 인한 parameter 수와 memory의 증가
Encoder와 Decoder 사이 Connection이 동일한 크기의 feature map에서만 진행되어 다양한 scale 학습이 어려움
3. U-Net 3+

3.1 Full-scale Skip Connection
3.1.1 Conventional(simple) Skip Connection

- 기존
U-Net의 Skip Connection과 동일
- 같은
level의 Encoder의 feauture map을 decoder로 전달
- 다른
level의 connection과 channel의 크기를 맞추기 위해 3x3 conv(64 channel)을 적용
3.1.2 Inter Skip Connection

Encoder의 상위 level의 feature map을 connection 해줌
feature map 사이즈를 동일하게 맞춰주기 위해 maxpooling을 사용함
3x3 conv(channel 64)를 적용해 똑같은 channel 수를 맞춰줌
3.1.3 Intra Skip Connection

Decoder의 하위 level의 feature map을 Connection 함
bilinear upsampling을 통해 feature map의 크기를 키워줌
3x3 conv(channel 64)를 적용해 똑같은 channel 수를 맞춰줌
3.1.4 Parameter

Parameter를 줄이기 위해 모든 decoder의 Channel 수를 320으로 통일함
- 기존
512, 1024 까지 쓰던 channel을 320으로 줄여줌으로써 효율적인 연산이 가능해짐

- 이전 모델들에 비해 훨씬 적은
parameter로 더 좋은 성능을 보여줌
3.2 Classification-Guided Module(CGM)

low-level feature의 noise로 인해 발생하는 false-positive 문제 해결을 위해 사용
high-level feature map을 활용해 Dropout - 1x1 conv - AdaptiveMaxPool - sigmoid의 과정을 통해 예측된 pixel값이 배경인지(0) object인지(1) 구분하고 pixel에 곱해주는 extra classification task
3.3 Full-scale Deep Supervision(Loss)

- 경계부분 학습을 위해 여러
Loss를 결합
Focal Loss: Class Imbalance 해소
ms-ssim Loss: Boundary 인식 강화
IoU: 픽셀의 분류 정확도를 상승
3.4 성능

4 Another version of U-Net
4.1 Residual U-Net

Encoder, Decoder 부분 blcok마다 Resiudal unit with identity mapping 적용
4.2 Mobile U-Net

4.3 Eff U-Net


EfficientNet을 backbone(Encoder)으로
Decoder는 U-Net구조를 이용