[Segmentation] Convolutional Networks for Biomedical Image Segmentation : U-Net 논문 리뷰

2

Tobigs1415 Image Semina

목록 보기
10/16
post-thumbnail

투빅스 15기 오주영

INDEX

Prior Work - FCN(Fully Convolutional Networks)
Contribution
Introduction
Network Architecture
Training
Conclusion
Unet-family

Prior Work - FCN(Fully Convolutional Networks)

  • fully convolutional network를 사용함으로서 임의의 크기의 이미지를 입력 받아 그에 상응하는 크기의 segmentation을 수행하고자 함

  • FCN은 Semantic Segmentation 모델을 위해 기존 이미지 분류에서 우수한 성능을 보인 AlexNet, VGG, GoogLeNet 등을 목적에 맞게 변형한 모델

    image-20210526051103229

  • Semantic Segmentation의 관점에서 기존의 Fully Connected Layer를 가진 모델의 한계
    1. 이미지의 위치 정보가 사라짐
    2. 입력 이미지의 크기가 고정되어야함

img

  • Architecture

    • Skip Architecture : FCN 논문에서 정확하고 상세한 Segmentation을 얻기 위해 deep, coarse, semantic 정보와 shallow, fine, appearance 정보를 결합하는 Skip Architecture를 정의함

      img

      image-20210526052636681

    • 전체 convolution이 진행된 후 deconv하여 upsampling을 진행한 경우 coarse한 위치 정보만 포함하고 있기 때문에 segmentation을 하기에는 부족함

    • 세부적인 정보를 추가하기 위해 이전 stage의 featuremap을 stride를 다르게 주어 더해주게됨

Contribution

  • 얕은 층의 fine location 정보와 깊은 층의 global semantic 정보를 결합하는 U 모양의 architecture를 제시
  • 서로 근접한 객체 경계를 잘 구분하도록 학습하기 위하여 Weighted Loss를 제시

Introduction

  • 기존 연구의 문제점

    1. sliding window 방식을 사용하면 patch별로 네트워크를 별도로 실행해야하고 patch의 중복으로 인한 중복성이 많기 때문에 속도가 느리다.
    2. localization accuracy와 context 사이의 trade-off가 존재 : patch가 크면 context 정보를 더 많이 활용할 수 있지만 localization accuracy는 감소, patch가 작으면 localization accuracy는 증가하지만 context를 거의 볼 수 없음
  • FCN을 기반으로 architecture를 수정하고 확장하여 극소수의 영상으로 훈련 가능하고 보다 정확한 segmentation을 산출

  • FCN과는 다르게 Upsampling 파트에서도 많은 수의 featuremap을 가지고 있어 네트워크가 context 정보를 더 높은 해상도를 가진 layer에 전파할 수 있음

    • Contracting path와 Expanding path의 대칭구조를 사용

img

Network Architecture

  • 네트워크는 Context 정보를 얻기 위한 Contracting path, 정확한 Localization을 위한 Expanding path로 이루어져 있음

    • Contracting path

      1. 3x3 Conv(unpadded, stride 1) + ReLU + BN
      2. 3x3 Conv(unpadded, stride 1) + ReLU + BN
      3. 2x2 Max-Pooling (stride 2)

      image-20210526064120995

    • Expanding path

      1. 2x2 Deconv(stride 2)
      2. Contracting path에서 동일한 level의 featuremap을 1.에서 생성된 featuremap과 concat
      3. 3x3 conv(unpadded, stride 1) + ReLU + BN
      4. 3x3 conv(unpadded, stride 1) + ReLU + BN

      image-20210526064322907

    • Unet에서는 Convolution layer에서 padding을 사용하지 않기 때문에 지속적으로 featuremap의 크기가 줄어들게되므로 Contracting path의 featuremap과 concat하기 전 같은 크기로 cropping해줌

    • 마지막 layer는 1x1 convolution 연산을 해주어 segmentation 수행

Training

  • Overlap-tile strategy & Mirroring Extrapolate
  • Weighted Loss
  • Data Augmentation
  • Overlap-tile strategy

    img

    • U-Net은 unpadded conv를 사용하여 output image의 크기가 input image의 크기보다 작기 때문에 위 그림처럼 왼쪽의 파란색을 Input으로 넣으면 오른쪽의 노란색이 output이 됨

    • input으로 사용하는 patch가 겹치는 부분이 존재하도록 이미지를 자르고 segmentation을 수행하는 Overlab-tile strategy를 취함

      img

    • output image의 크기가 작아지므로 실제로 segmentation을 수행하기 위해 image 경계에 위치한 image를 복사하고 상하 또는 좌우 반전을 통해 Mirroring image를 모델에 input으로 사용

  • Weighted Loss

    • biomedical 분야의 segmentation 작업에서 중요한 과제 중 하나는 맞닿아 있는 세포 사이의 경계를 분리하는 것

    • Loss=xΩw(x)log(pl(x)(x))Loss = \sum_{x\in\Omega}w(x)log(p_{l(x)}(x))

      • ll : the true label of each pixel
      • ww : a weight map that we introduced to give some pixels more importance in the training
    • pk(x)=exp(ak(x))/k=1Kexp(ak(x))p_k(x) = exp(a_k(x)) / \sum_{k'=1}^{K} exp(a_{k'}(x))

      • pk(x)p_k(x) : the probability that k class is in x pixel
      • K : number of classes
      • ak(x)a_k(x) : activation in feature channel k at the pixel position x
    • w(x)=wc(x)+w0exp((d1(x)+d2(x))22σ2)w(x) = w_c(x) + w_0 · exp(-\frac{(d_1(x) + d_2(x))^2}{2\sigma^2})

      • wc(x)w_c(x) : weight map to balance toe class frequencies
      • d1(x)d_1(x) : distance to the border of the nearest cell
      • d2(x)d_2(x) : distance to the border of the second nearest cell
      • pixel x와 경계의 거리가 가까우면 큰 값을 가지게 되어 해당 pixel의 weight가 커지게됨

img

  • Data Augementation

    • Biomedical domain의 특성 상 모델을 학습시키기에는 데이터가 충분하지 않음
    • Shift, Rotation 등의 기본적인 Data Augmentation
    • Elastic Distortion : 픽셀별로 이미지가 다른 방향으로 뒤틀리게 됨(세포 조직의 실질적인 형과 유사하다고 함)

    image-20210526141738763

Conclusion

  • Unet architecture는 biomedical segmentation application에서 매우 우수한 성능을 달성

  • FCN을 확장시켜 context 정보와 local 정보를 충분히 활용할 수 있는 U모양의 architecture를 제안

  • Elastic distortion으로 Data Augmentation을 했기 대문에 적은 dataset에서도 훈련 가능

Unet & Unet-family

  • 데이터셋에 맞는 모델의 최적 깊이를 알 수 없음

    • 비용을 들여 최적의 architecture를 찾아내거나 여러 깊이의 모델을 앙상블하는 비효율적인 작업이 필요함
    • 이는 인코더를 공유하지 않고 각각 돌아간다는 점에서 비효율적
  • Skip Connection이 동일한 깊이를 가지는 인코더와 디코더만 연결되는 제한적인 구조

    • 같은 크기의 featuremap만 concat할 수 있으므로 encoder와 decoder의 결합이 약함

    Unet++

unet-plus-plus-model

  • 인코더를 공유하는 다양한 깊이의 U-net을 만들어서 deep supervision을 이용해서 함께 학습하고 앙상블하는 형태를 제안

  • Skip connection을 동일한 깊이에서의 featuremap들이 모두 결합하도록 하여 유연한 featuremap을 만들어줌

    img

  • 이후 MultiResUNet, U2U^2Net, 등 많은 변형

Reference

profile
2021 투빅스 14, 15기 이미지 세미나입니다😀

4개의 댓글

comment-user-thumbnail
2021년 6월 2일

투빅스 14기 김상현
이번 강의는 U-Net 논문 리뷰로 오주영님께서 진행해주셨습니다.

  • 얕은 층의 fine location 정보와 깊은 층의 global semantic 정보를 결합하는 U 모양의 구조를 제시했다.
  • Context 정보를 얻기 위한 contracting path와 정확한 localization을 위한 expanding path로 이루어져 있다.
  • U-Net은 padding을 사용하지 않으므로 input과 output의 크기가 다른데 이를 overlap-tile strategy와 mirroring extrapolate를 사용해 segmentation을 수행한다.
  • 학습 이전 경계 사이의 거리를 통해 가중치를 계산하고 이 가중치를 이용해 weighted loss를 이용한다. 이를 통해 segmentation시 경계를 더 잘 구분한다.

U-Net에 대한 설명뿐 아니라 U-Net 이전의 FCN과 U-Net 이후의 연구들을 소개해주셔서 이해하는데 많은 도움이 되었습니다.
유익한 강의 감사합니다!

답글 달기

투빅스 14기 김민경

  • 기존의 segmentation 연구는 sliding window 방식의 사용으로 느린 속도(patch의 중복 연산 때문), patch 크기의 영향으로 인한 context와 localization의 trade-off때문에 낮은 성능을 보이는 한계가 존재했다.
  • U-Net은 Overlab-tile strategy(zero 패딩이 아닌 Mirroring padding 사용)를 취함으로써 Patch 검증의 중복을 없애 속도를 개선했고 U 모양의 구조를 제안함으로써 context와 localization 정보를 충분히 활용할 수 있었다.
  • U-Net의 구조는 context를 포착하기 위한 Contracting Path와, 정확한 localization를 가능하게 하는 Symmetric Expanding Path(Upsampling + Convolution)로 구성된다.
  • 그리고 U-Net의 구조에서 주목할 점은 FCN의 skip architecture를 활용해 encoder와 decoder 사이의 skip-connection을 추가함으로써 high, low-level 정보를 모두 반영할 수 있다는 것이다.
  • 또한 Rotation, Shift, Elastic distortion 등을 이용한 Data Augmentation을 통해 적은 데이터로 충분한 학습을 했다.

의료 데이터 기반의 논문인 U-Net은 의료 영상/이미지 segmentation에서 많이 쓰이는 모델 구조의 시초입니다. 그리고 많은 논문들에서 U-Net 구조를 차용하고 있기 때문에 U-Net의 기본적인 아이디어를 얻을 수 있는 시간이었습니다. 감사합니다:)

답글 달기

<투빅스 14기 서아라>
이번 주에는 Segmentation에 대한 논문 리뷰를 진행하였는데, 여러 논문들 중 U-Net 리뷰를 진행하였고, 오주영님께서 진행해주셨습니다.

U-Net의 기여

  • 얕은 층에서 얻을 수 있는 fine location 정보와 깊은 층에서 얻을 수 있는 global semantic 정보를 결합하는 U모양의 모델을 제시
  • 근접해있는 객체끼리의 경계를 잘 구별할 수 있도록 해주는 Weighted loss를 제시
  • biomedical segmentation application에서 우수한 성능을 보임
  • Elastic distorcion으로 data augmentation을 하였기 때문에 적은 dataset에서도 훈련 가능

U-Net의 Network Architecture

  • context 정보를 얻기 위한 contracting path와 정확한 localization을 위한 expanding path로 이루어져 있음
  • U-Net에서는 conv filter에서 padding을 사용하지 않기 때문에 지속적으로 feature map의 크기가 줄어들게 됨, 따라서 feature과 concat하기 전 같은 크기로 crop
  • 1x1 conv filter을 마지막 layer에 넣어 segmentation을 수행

U-Net++

  • U-Net은 데이터 셋에 맞는 모델의 최적 깊이를 알 수 없고 skip connecition이 동일한 깊이를 가지는 encoder와 decoder에만 연결되는 제한적인 구조
  • 여러 깊이의 U-net이 인코더를 공유하도록 만들어 deep supervision을 이용해 함께 train 및 ensemble하는 형태를 제안

U-Net과 U-Net의 단점을 보완한 U-Net++의 구조에 대해서 꼼꼼하게 설명해주신 덕분에 두 모델에 대해서 잘 알 수 있었습니다.
좋은 리뷰 감사합니다!:D

답글 달기
comment-user-thumbnail
2021년 6월 2일

투빅스 14기 장혜림

  • U-Net은 fine location과 global semantic information을 결합하였고, 근접한 객체 경계를 구분하기 위해 weighted loss를 제시하였다.
  • contracting path와 expanding path로 구성되어 있으며, contracting path는 down sampling을 통해 context 정보를 얻고, expanding path는 정확한 localization을 한다.
  • down-sampling할 때 padding을 사용하지 않기 때문에 input과 output의 크기가 다르게 되는데, 이를 overlap-tile strategy과 mirroring padding을 통해 input과 output의 크기를 맞춰준다.
  • 데이터셋에 맞는 모델의 최적 깊이를 알 수 없다는 한계점을 보완하기 위해 U-Net을 여러개 결합한 모델인 Unet++ 등 다양한 U-Net 변형 모델이 존재한다.

U-Net 구조에 대해 자세하게 배울 수 있는 시간이었습니다. 좋은 강의 감사합니다!

답글 달기