논문 리뷰(5) U-Net: Convolutional Networks for Biomedical Image Segmentation

­문재원·2025년 7월 7일

Paper

목록 보기
4/8

이번주 CV스터디 논문은 U-Net입니다. Segment의 기초 논문 중 하나이기에 꼼꼼하게 다뤄보도록 하겠습니다!

Abstract

  • 본 논문에서는 data augmentation에 기반한 네트워크와 training strategy를 제시함
  • 구조는 contracting path & symmetric expanding path로 구성됨.
    • contracting path: context를 캐치
    • symmetric expanding path: 정확한 localization 가능케 함
  • 해당 모델로 ISBI challenge 우승하는 등 좋은 성과
  • 해당 모델은 빠름

5. Conclusion

  • u-net 구조는 biomedical segmentation 분야에서 좋은 성과 얻음.
  • 유연한 분해(deformation) 로 data augmentation 한 덕분에 적은 이미지 & 적은 시간으로 training함.
  • u-net은 더 많은 태스크에도 쉽게 적용 가능.

1. Introduction

  • large network를 1M 크기의 ImageNet dataset에 학습시킨 Krizhevsky et al.부터 CNN이 인식 태스크에서 두각을 나타냄. 이때부터 크고 깊은 네트워크가 훈련됨.
  • 전형적으로 CNN은 분류 태스크에서 사용됐음. 특히 biomedical image의 경우는 localization을 포함해야 해서 pixel 단위의 label이 필요함.
    -> Ciresan et al. - < DNN > 등장:
    • 동작 매커니즘:
      • network를 sliding-window로 학습시킴.
      • input: pixel 근처 local region(patch)
      • output: each pixel의 class label
    • 단점:
      • 중복되는 patches 때문에 학습에 오랜 시간 소요
      • localization accuracy와 context 둘 중 하나는 포기해야 함.

U-Net

  • main idea:

    • contract network by successive layers
      = pooling operators -> upsampling operator로 교체

    ➡️ ouput의 해상도 높임

    • localize하기 위해, contracting path로부터의 고해상도 features들이 upsampled output과 결합됨.
      ➡️ successive convolution layer가 이 정보에 기반해 더 정확한 output 도출
  • U-Net에서의 주요한 변화: upsampling part에 있는 많은 feature channels 을 통해 context 정보가 고해상도 layer로 전달됨.
    ➡️ expansive path가 contracting path에 비대칭적이게 됨 & u-shaped 구조 만듦.

data augmentation

  • 태스크 특성 상 가용가능한 데이터가 적음 -> image를 유연하게 분해해 data augmentation

challenge와 application

  • challenge: 서로 겹쳐있는 세포들의 경계는 분류하기 어려움😢
    ➡️ 가중치를 둬서 세포 간 경계를 정확히 찾도록 학습
  • application: u-net을 다양한 biomedical segmentation 문제에 적용

2. Network Architecture

  • 왼쪽: contracting path, 오른쪽: expansive path
  • contracting path: 전형적인 CNN 구조.
    • 2개의 3x3 convolutions -> ReLU
    • 2x2 max pooling opeation with stride 2
    • downsampling할 때마다 feature channel 수는 2배가 됨.
  • expansive path: feature map의 upsampling으로 구성
    • 2x2 convolution
    • 2개의 3x3 convolution -> ReLU
    • 1x1 convolution: class에 대한 64개의 구성 feature vector

3. Training

  • overhead를 줄이고 GPU를 최대한 사용하기 위해 large input tiles over large batch size 사용 <- 이렇게 하면 이미지 한장 당 batch를 줄일 수 있음!

  • energy function: feature map 위에서 pixel 단위 softmax로 계산됨.

  • softmax:

    pk(x)=exp(ak(x))/Σk=1Kexp(ak(x))p_k(x) = exp(a_k(x))/\Sigma_{k'=1}^K exp(a_{k'} (x))
    • ak(x)a_k(x): activation in feature channel k at pixel position x
    • K: 클래스의 수
  • CE penalizes at each position

    E=Σxw(x)log(pl(x)(x))E = \Sigma_{x∈Ω}w(x) log(p_{l(x)}(x))
    • l: 각 픽셀 당 라벨
    • w: a weighted map
  • separation border에서 사용되는 weight map

    w(x)=wc(x)+w0exp ⁣((d1(x)+d2(x))22σ2)w(x) = w_c(x) + w_0 · \exp\!\left(-\frac{(d_{1}(\mathbf{x}) + d_{2}(\mathbf{x}))^{2}}{2\sigma^{2}}\right)
    • d1d_1: 가장 가까운 세포의 경계까지의 거리
    • d2d_2: 두번째로 가까운 세포의 경계까지의 거리
  • U-Net의 initialization: 가우시안 분포로부터 get

3.1 Data augmentation

  • 매우 작은 이미지의 경우: shift & rotation invariance 필요
  • random elastic deformation 이 augmentation의 핵심!
    • 3x3 그리드에 위치한 백터에 랜덤으로 smooth deformation 적용
profile
얼렁뚱땅 요리조리

0개의 댓글