학교 수업을 듣던 중 U-Net에 관한 내용을 알게 되었고, 관심이 생겼습니다.
Object Detection관련 공부를 진행하는 중, U-Net에 대해 깊게 알아보기 위해 이번 논문리뷰를 준비하였습니다.
Object Detection을 수행하는 과정 중 여러가지의 task가 있는데, 픽셀 기반의 이미지 분할을 수행하는 U-Net에 관해 리뷰를 진행하려고 합니다.
이 논문의 큰 특징으로는 2가지가 있습니다 .
- U-Net architecture
- Weighted Loss
U-net architecture
모델의 구조로는 크게 3가지로 나눌 수 있습니다.
- 수축 경로(Contracting Path): Feature Map의 크기를 감소하면서 입력 이미지의 Context 추출
- 확장 경로(Expanding Path): Context를 픽셀 위치정보와 결합(Localization)하여 각 픽셀마다 어떤 객체에 속하는지를 구분
- 전환 구간(Bottle Neck): 수축 경로에서 확장 경로로 전환
1. 수축 경로(Contracting Path)
수축 경로에서 아래와 같은 Downsampling 과정을 반복하여 Feature Map을 생성합니다.
- 3×3 Convolution Layer + ReLu + BatchNorm (No Padding, Stride 1)
- 3×3 Convolution Layer + ReLu + BatchNorm (No Padding, Stride 1)
- 2×2 Max-polling Layer (Stride 2)
수축 경로는 Feature Map의 크기를 감소하면서 입력 이미지의 Context 추출하는 역할을 합니다.
3×3 Convolution을 수행할 때 패딩을 하지 않으므로 Feature Map의 크기가 감소합니다.
Downsampling 할 때 마다 채널(Channel)의 수를 2배 증가시키면서 진행합니다.
Input Channel(1)을 64개로 증가시키는 부분을 제외하면 채널은
1−>64−>128−>256−>512−>1024 개로 Downsampling 진행할 때마다 증가합니다.
2. 확장 경로(Expanding Path)
확장 경로에서 아래와 같은 Upsampling 과정을 반복하여 Feature Map을 생성합니다.
- 2×2 Deconvolution layer (Stride 2)
- Concatenation
- 3×3 Convolution Layer + ReLu + BatchNorm (No Padding, Stride 1)
- 3×3 Convolution Layer + ReLu + BatchNorm (No Padding, Stride 1)
확장경로는 수축 경로에서 생성된 Context정보와 위치정보 결합하는 역할을 합니다.
동일한 Level에서 수축경로의 특징맵과 확장경로의 특징맵의 크기가 다른 이유는 여러번의 패딩이 없는 3×3 Convolution Layer를 지나면서 특징맵의 크기가 줄어들기 때문입니다.
3. 전환 구간(Bottle Neck)
수축 경로에서 확장 경로로 전환하는 구간입니다.
- 3×3 Convolution Layer + ReLu + BatchNorm (No Padding, Stride 1)
- 3×3 Convolution Layer + ReLu + BatchNorm (No Padding, Stride 1)
- Dropout Layer
마지막에 적용된 Dropout Layer는 모델을 견고하게 만드는 장치입니다.
Weighted Loss
본 논문은 다양한 학습 방법들을 통해 모델의 성능을 향상시켰습니다.
- Overlap-tile strategy : 이미지를 겹치는 부분이 있도록 일정크기로 나누고 Input으로 활용
- Mirroring Extrapolate : 이미지의 경계부분을 Mirror 이미지를 생성한 후 원본 이미지의 주변에 붙여 Input으로 사용
- Weight Loss : 작은 경계를 분리하여, 경계를 잘 학습
- Data Augmentation : 적은 데이터로 모델을 잘 학습할 수 있도록 데이터 증강 방법을 활용
Overlap-tile strategy
이미지의 크기가 큰 경우 이미지를 자른 후 각 이미지에 해당하는 Segmentation을 진행해야 합니다. U-Net은 Input과 Output의 이미지 크기가 다르기 때문에 위 그림에서 처럼 파란색 영역을 Input으로 넣으면 노란색 영역이 Output으로 추출됩니다.
Mirroring Extrapolate
본 논문에서는 이미지 경계에 위치한 이미지를 복사하고 좌우 반전을 통해 Mirror 이미지를 생성한 후 원본 이미지의 주변에 붙여 Input으로 사용합니다.
Weight Loss
모델은 위 그림처럼 작은 경계를 분리할 수 있도록 학습되어야 합니다. 학습한 내용을 따라 Weight-Map을 만들고 학습할 때 경계에 가까운 픽셀의 Loss를 Weight-Map에 비례하게 증가 시킴으로써 경계를 잘 학습하도록 설계하였습니다.
Data Augmentation
데이터의 양이 적기 때문에 데이터 증강을 통해 모델을 강건하게 학습시킵니다. 데이터 증강 방법으로 Rotation, Shift, Elastic distortion 등이 있습니다.
실험 및 결과
모델의 성능을 평가하기 위하여 EM Segmentation challenge의 Dataset을 활용합니다.
Warping Error : 객체 분할 및 병합이 잘 되었는지 세크멘테이션과 관련된 에러
Warping Error를 기준으로 U-Net 모델이 가장 좋은 성능을 보이고 있습니다.
U-Net 모델은
“PhC-U373” 데이터에서 92% IOU Score를 획득하였으며,
“DIC-HeLa” 데이터에서 77.5% IOU Score를 획득하였습니다.
두 데이터 셋에서 2등과의 격차가 큰 것을 알 수 있습니다.
결론
U-Net에 관해, 인코딩과 디코딩 과정을 거쳐 의미있는 특성을 추출하는 것으로 알고 있었습니다.
논문 리뷰를 진행하면서, U-Net에 관해 자세히 알게되었습니다.
인상적인 부분은 데이터 수가 적을 때의, 해결책으로 U-Net 구조를 통해 해결한 점에서 앞으로의 딥러닝 발전에 대해서도 많은 관심이 생겼습니다. 앞으로도 더욱 많은 논문을 리뷰를 진행하면서 더 간단하고 깔끔하게 설명하도록 노력해보겠습니다.
Reference
'논문 리뷰' 카테고리의 다른 글
BERT 논문 리뷰 (0) | 2024.07.23 |
---|---|
Transformer 논문 리뷰 (0) | 2024.07.22 |
Attention 논문 리뷰 (0) | 2024.07.16 |
Alex-Net 논문 리뷰 (0) | 2024.07.16 |
YOLO v3 논문리뷰 (0) | 2024.06.26 |