[부스트캠프 AI tech Segmentation] week16 (2022.05.03)

redgreen·2022년 5월 3일
0

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 sizelayer를 통과할 수록 줄어듦
  • 하나의 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 mapconcat
  • Skip-connection에서 feature map의 크기가 맞지 않는 경우 Crop하여 사용
  • 마지막에 segmentation map을 만들기 위해 1x1 conv를 수행

1.5 Contribution

  • Encoder가 확장함에 따라 채널의 수를 1024까지 증가시켜서 좀 더 고차원에서 정보를 매핑함
  • 각기 다른 계층의 encoder의 출력을 decoder와 결합시켜서 이전 레이어의 정보를 효율적으로 활용

1.6 Data Augmentation

  • Random Elastic deformations
    : 모델의 invariancerobustness를 학습할 수 있도록 하는 방법
  • Pixel-wise loss weight를 계산하기 위한 weight map을 생성
    • 같은 클래스를 가지는 셀이 인접할 수록 높은 가중치를 주어 경계를 잘 구분하도록 함

1.7 한계점

  • U-Net은 기본적으로 깊이가 4로 고정됨
    • dataset마다 최고의 성능을 보장하지 못함
    • 최적 깊이 탐색 비용 증가
  • 단순한 Skip Connection
    • 동일한 구조를 가지는 EncoderDecoder만 사용가능

2. U-Net++

2.1 Intro

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

2.2 Dense Skip Connection

  • 하나의 Skip Connection만을 사용했던 U-Net과 달리 모든 levelfeature mapconcat하는 Dense Skip Connection으로 바뀜

2.3 Ensemble

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

2.4 Hybrid Loss

  • pixel-wise crossentropy + soft Dice Coefficient

2.5 Deep Supervision

  • X0,1X^{0, 1}, X0,2X^{0, 2}, X0,3X^{0, 3}, X0,4X^{0, 4}를 모두 활용해 Loss를 구함

2.6 한계점

  • 많고, 복잡한 Connection으로 인한 parameter 수memory의 증가
  • EncoderDecoder 사이 Connection이 동일한 크기의 feature map에서만 진행되어 다양한 scale 학습이 어려움

3. U-Net 3+

3.1 Full-scale Skip Connection

3.1.1 Conventional(simple) Skip Connection

  • 기존 U-NetSkip Connection과 동일
  • 같은 levelEncoderfeauture mapdecoder로 전달
  • 다른 levelconnectionchannel의 크기를 맞추기 위해 3x3 conv(64 channel)을 적용

3.1.2 Inter Skip Connection

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

3.1.3 Intra Skip Connection

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

3.1.4 Parameter

  • Parameter를 줄이기 위해 모든 decoderChannel 수를 320으로 통일
  • 기존 512, 1024 까지 쓰던 channel을 320으로 줄여줌으로써 효율적인 연산이 가능해짐
  • 이전 모델들에 비해 훨씬 적은 parameter로 더 좋은 성능을 보여줌

3.2 Classification-Guided Module(CGM)

  • low-level featurenoise로 인해 발생하는 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

  • EfficientNetbackbone(Encoder)으로
  • DecoderU-Net구조를 이용
profile
인공지능 꿈나무

0개의 댓글