부스트캠프 15주차 High Performance를 자랑하는 Unet 계열의 모델들 정리

kimkihoon·2022년 6월 19일
0

부스트캠프 AI

목록 보기
45/49

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에 적용된 기술들

  1. Data Augmentation
  • RandomElasticDeformations
  1. 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.4x^{0.0},x^{0.1},x^{0.2},x^{0.3},x^{0.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인 xde5x_de5를 활용했다.
    - 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으로 사요하여 높은 성능을 얻었다.

0개의 댓글