U-Net: Convolutional Networks for Biomedical Image Segmentation
- 논문 원본 https://arxiv.org/abs/1505.04597
- 발표 영상 https://www.youtube.com/watch?v=kX_qbaWNcEk&t=6s
- 발표 자료 (오타 ICLR 2015 -> CVPR 2015)
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 할당)
- 하지만 Biomedical 분야에서는 대량의 training set를 확보하기 어렵
- 이를 위해 Sliding Window 방식 도입
- 사진을 윈도우 사이즈에 맞춰 나눈 다음 매 윈도우로 잘린 이미지를 입력 값으로 모델을 통과해서 결과를 얻음
- 학습 데이터가 이미지 단위가 아닌 이미지 속 일부(patch)가 한 단위가 되기 때문에 훨씬 풍부한 데이터셋 구현
- U-Net은 기존 sliding window 방식 채택 X
- 기존 sliding window 방식을 사용하면 이전 window에서 검증이 끝난 patch 구역을 다음 sliding window에서 다시 검증
- 이는 시간과 연산 측면에서 많은 낭비
- U-net은 이미 검증이 끝난 부분은 건너뛰고 다음 patch부분부터 검증 -> 속도면에서 우위
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이 랜덤하게 다른 방향으로 뒤틀리도록 변형하는 방식
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://velog.io/@minkyu4506/%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-U-Net-%EB%A6%AC%EB%B7%B0
'논문 리뷰 > 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 |