오늘은 Sementic Segmentation을 위해 등장한 모델인
Unet 계열의 모델에 대해서 알아보려고 한다
먼저 Unet을 살펴보고 이를 발전 시킨 Unet++, Unet3+ 모델에 대해서 자세히 알아보자
목차
1. Unet
2. Unet++
3. Unet3+
1. Unet
Paper : https://arxiv.org/abs/1505.04597
Unet은 2015년 Biomedical 분야에서 이미지 분할(Image Segmentation)을 목적으로 만들어진 모델이자
모델의 이름에서 알 수 있듯이 모델의 구조를 U자 형태로 구성하여서 좋은 성능의 모델을 만들어 냈다
Unet은 크게 3가지의 구성단계로 이루어져 있다
1. 수축 단계 Contracting Path
2. 팽창 단계 Expanding Path
3. Skip Connection
차근차근 살펴보자
우선 위 3단계를 이해하기 위해서는 FCN을 이해하고 있어야한다
Sementic Segmentation에서는 우선 Input의 이미지를 활용해서 이미지의 전체적인 Context을 추출하는 수축단계가 있다
또한 이렇게 수축된 Feature Map을 다시 Up sampling 하면서 Pixel의 위치 정보를 추출하는 Localization 단계인 팽창 단계가 있다
1. Contracting Path
수축단계는 각 단계 마다 3x3 conv를 수행하고
이때 padding을 사용하지 않기 때문에 feature map의 크기가 조금씩 줄어든다
그리고 각 conv 연산 마다 ReLU 활성화 함수를 사용하다
그리고 다음 수축 단계로 넘어 갈때에는 2x2 max pooling을 사용해서 - stride 2 feature map의 크기를 절반으로 줄여준다
또한 이 단계에서 feature map의 채널의 수가 2배씩 증가하게 된다
논문에서는 VGG 구조를 활용해서 해당 단계가 진행된다
2. Expanding Path
이렇게 만들어진 feature map을 이용해서 다시 원본 사진의 크기만큼 Up sampling 해주는 단계가
Expanding Path 단계가 있다
단계를 넘어갈때 Up conv를 활용해서 feature map의 크기를 늘려주고
채널을 2배씩 감소시켜 준다
그리고 각 단계에서는 3x3 conv를 2번씩 실행해주고 똑같이 ReLU 활성화 함수를 사용해준다
3. Skip connection
Contracting Path과 Expanding Path 사이에 Skip connection 구조가 추가되어 있다
즉, Contracting path의 정보와 Expanding path의 정보를 합쳐주는 역할을 한다
방법은 간단하다
Contracting에서 만들어진 단계별 feature map을 Expanding 각 단계의 첫 번째 feature map과 사이즈를 맞춰서 (padding)
Concat을 해준다 (add가 아니다)
추가적인 학습 방법
Unet에서는 뿐만 아니라 다양한 학습 방법을 활용해서 모델의 성능을 항샹시켰다
Overlap-Tite Input
Fully Convolutional Network 구조의 특성상 입력 이미지의 크기에 제약이 없다.
하지만 이러한 크기 제약의 부재는 오히려 학습을 어렵게 만든다
따라서 본 논문에서는 이를 Overlap-tite전략으로 보완하였다
쉽게 말해서 위의 사진의 파란영역을 입력으로 넣으면
노란 영역을 segmentation 결과가 나온다
다음 tile에 대한 Segmentation을 얻기 위해서는 이전 입력의 일부분이 포함되어야 한다.
이미지의 경계 부분 픽셀에 대한 세그멘테이션을 위해 0이나 임의의 패딩값을 사용하는 대신 이미지 경계 부분의 미러링을 이용한 Extrapolation 기법을 사용하였다.
Touching cells separation
또한 해당데이터의 경우 동일한 세포가 겹쳐져 있는 경우가 있는데 이런경우
경계가 매우 어려워진다
따라서 이를 구별하는 방법이 필요했다
즉, 각 세포 사이의 경계를 잘 파악해야한다
이를 위해 학습 데이터에서 각 픽셀마다 클래스 분포가 다른 점을 고려하여
사전에 Ground-Truth에 대한 Weight map을 구해 학습에 반영하였다
'네이버 부스트캠프 🔗 > ⭐주간 학습 정리' 카테고리의 다른 글
Unet 계열 - 2편 Unet ++, Unet3+ (0) | 2023.06.15 |
---|---|
EfficientDet (0) | 2023.05.10 |
1 Stage Detectors (0) | 2023.05.09 |
Neck (0) | 2023.05.08 |
2 Stage Detectors (0) | 2023.05.03 |