본문 바로가기
논문 리뷰/CV

[X:AI] U-Net 논문 리뷰

by hyeon827 2024. 3. 27.

U-Net: Convolutional Networks for Biomedical Image Segmentation

 

U-Net: Convolutional Networks for Biomedical Image Segmentation

There is large consent that successful training of deep networks requires many thousand annotated training samples. In this paper, we present a network and training strategy that relies on the strong use of data augmentation to use the available annotated

arxiv.org

 

 

2024_5기_Base_Session_UNet_조현식.pdf
0.42MB

 

 

 

 

Abstract

  • 심층 네트워크를 성공적으로 훈련시키기 위해 수많은 training set 필요
  • 본 논문에서는 training set을 보다 효과적으로 학습시키기 위해 data augmentation 제시
  • U-Net은 특징 추출은 위한 'contracting path' 와 정확한 localization을 위한 'expanding path'로 이루어짐
  • 해당 path로 인해 적은 수의 이미지로부터 end-to-end 학습 가능
  • 기존 Sliding Window Convolutional Network보다 성능이 뛰어남

 

1. Introduction

  • convolutional network은 주 task는 이미지 속 하나의 이미지가 어떤 객체인지 분류(Classification)하는 것
  • 하지만 Biomedical image에는 한 이미지 안에 여러개의 세포가 들어있어 더욱 세밀한 작업이 필요
  • 즉, Localization이 포함된 Classification 수행 필요(각 픽셀당 클래스 label 할당)

출처: (왼쪽) https://m.blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=droneaje&logNo=222002679692&proxyReferer=

  • 하지만 Biomedical 분야에서는 대량의 training set를 확보하기 어렵
  • 이를 위해 Sliding Window 방식 도입
  • 사진을 윈도우 사이즈에 맞춰 나눈 다음 매 윈도우로 잘린 이미지를 입력 값으로 모델을 통과해서 결과를 얻음 
  • 학습 데이터가 이미지 단위가 아닌 이미지 속 일부(patch)가 한 단위가 되기 때문에 훨씬 풍부한 데이터셋 구현

출처: https://www.youtube.com/watch?v=O_7mR4H9WLk&t=467s

 

  • U-Net은 기존 sliding window 방식 채택 X
  • 기존 sliding window 방식을 사용하면 이전 window에서 검증이 끝난 patch 구역을 다음 sliding window에서 다시 검증
  • 이는 시간과 연산 측면에서 많은 낭비
  • U-net은 이미 검증이 끝난 부분은 건너뛰고 다음 patch부분부터 검증 -> 속도면에서 우위

출처 : https://www.youtube.com/watch?v=O_7mR4H9WLk&t=467s

 

2. Architecture

 

U-Net : Contraction Path + Expansive Path

  • Contraction Path(축소 경로) : receptive field 키우면서 입력 이미지로부터 중요한 특징 추출
  • Expansive Path(확장 경로) : Localization을 위해 feature map의 해상도를 키움
  • 두 Path가 어느 정도 대칭되기 때문에 U자형 아키텍처를 가짐

Contraction Path

  • 우리가 아는 전형적인 CNN (다만, fully connected layer X->위치 정보 유지)
  • 두 번의 3x3 convolution(unpadded) 수행 후 ReLU 활성화 함수 적용
  • 한 번의 2x2 max-pooling(stirde 2)
  • downsampling을 할 때 마다 채널의 수가 2배로 늘어남(정보 손실 최소화, 복잡한 특징 학습 강화)

Expansive Path

  • 너비와 높이를 2배로 늘리는 upsampling 수행
  • 반대쪽 contracting path에서 같은 층에 있는 feature map을 가져와 부착(테두리 cropping-> 가장자리 픽셀 손실 방지)
  • 두 번의 3x3 convolution(unpadded) 수행 후 ReLU 활성화 함수 적용
  • 채널의 수를 반을 줄임(정보 결합으로 인해 더욱 정제된 형태의 feature map 생성)
  • 마지막 단에는 1x1 convolution을 사용해 channel의 개수를 2개로 줄임(판단할 클래스 2개: 세포, 세포막)

 

 

[입력 이미지에 적용한 기법들]

 

Mirroring the input image

  • input image 사이즈가 572x572인 반면 output image 사이즈는 388x388
  • convolution layers에서 padding을 사용하지 않아 feature map 크기가 입력 데이터 크기보다 작아진 결과
  • 입력 이미지의 가장자리 정보 점차 소실
  • "Mirroring extrapolation" 기법 사용하여 입력 이미지의 가장자리를 거울 반사된 형태로 확장
  • 네트워크가 segementation map을 생성할 때 missing data를 최대한 줄이고자 함 

 

Data Augmentation

  • 현미경 등으로 촬영하는 이미지들은 색깔이 다양하지 않고, 회색빛으로 이루어짐
  • U-Net은 shift(이동), rotation(회전), random-elastic deformation(탄성 변형)을 통해 풍부한 데이터 셋을 만듦
  • 본 논문에서 random-elastic deformation이 작은 데이터 셋을 가지고 segmentation network를 학습시킬 때 key concept이라고 주장
  • random-elastic deformation은 pixel이 랜덤하게 다른 방향으로 뒤틀리도록 변형하는 방식

출처: https://wikidocs.net/148870

 

 

3. Training

  • SGD(Stochastic Gradient Descent, 확률적 경사 하강법) 사용하여 모델 최적화
  • GPU Memory 사용 극대화를 위해 이미지를 타일로 분할(Tiling)하여 mini-batch로 구성한 뒤 모델에 입력
  • Momentum 0.99 설정하여 이전 Training Sample에서 본 것들이 현재 Optimization Step에 영항을 많이 주도록 함

 

Loss function

  • w(x) : 각 픽셀마다의 weight
  • l(x) : 픽셀 x의 실제 라벨
  •  :모델이 픽셀 x가 실제 라벨 l(x)에 속한다고 예측한 확률(Softmax 함수를 통해 계산)

  • w(x) : 각 픽셀마다의 weight
  • w_c(x) : 클래스 빈도의 불균형을 해결하기 위해 도입(드물게 나타나는 클래스의 픽셀에 대해 더 높은 가중치)
  • d1(x)  : 픽셀 x의 위치로부터 가장 가까운 경계와 거리
  • d2(x) : 픽셀 x의 위치로부터 두 번째로 가까운 경계와 거리
  • 세포 경계 부분에서의 분류 오류에 대해 모델이 더 큰 손실 값 부과함으로써, 세포 경계를 더 정확하게 분류

 

 

4. Experiments

 

EM segmentation challenge

  • 전자현미경으로 찍은 세포 구조를 segmentation하는 대회
  • Wrapping Error : 객체의 경계가 잘못 감싸졌거나 포장되었을 때 발생하는 오류
  • Rand Error : 임의의 두 픽셀이 같은 객체에 속해야 하는지 혹은 다른 객체에 속해야 하는지를 정확하게 예측 못한 비율
  • Pixel Error: 모델이 픽셀의 클래스를 잘못 분류한 비율
  • U-Net이 Rank 1위

 

 ISBI cell tracking challenge

  • 광학 현미경에서 얻은 이미지로도 segmentation 수행
  • 성능을 IOU로 측정
  • IOU : 세포라고 구분한 영역과 실제 세포의 영역이 겹치는 정도
  • 92%와 77%로 가장 좋은 성능

 

5. Conclusion

  • U-Net은 다양한 biomedical segmentation applications에서 "아주" 좋은 성능을 보여줌
  • elastic deformation이 포함된 Data augmentation 덕분에 적은 수 데이터셋만으로도 훈련 가능
  • 또한, NVidia Titan GPU(6GB)에서 단 10시간 만에 훈련시켜 합리적인 학습 시간을 가짐

 

Reference

https://m.blog.naver.com/PostView.nhn?blogId=worb1605&logNo=221333597235&proxyReferer=https:%2F%2Fwww.google.com%2F%20%EC%B6%9C%EC%B2%98:%20https:%2F%2Fmylifemystudy.tistory.com%2F87%20%5BENCAPSULATION%5D

https://velog.io/@minkyu4506/%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-U-Net-%EB%A6%AC%EB%B7%B0

https://velog.io/@lee9843/U-Net-Convolutional-Networks-for-Biomedical-Image-Segmentation-%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0

https://wikidocs.net/148870

https://www.youtube.com/watch?v=O_7mR4H9WLk

'논문 리뷰 > CV' 카테고리의 다른 글

[X:AI] Mask R-CNN 논문 리뷰  (0) 2024.05.06
[X:AI] SegNet 논문 리뷰  (0) 2024.04.09
[X:AI] EfficientNet 논문 리뷰  (0) 2024.04.03
[X:AI] InceptionV2/3 논문 리뷰  (0) 2024.03.14
[X:AI] SPPNet 논문 리뷰  (0) 2024.03.10