Boostcamp AI Tech (Day 017)
1. 강의듣기
Fully Convolutional Networks (FCN)
공간정보가 유지되어있는 featuremap
Fully Connected vs. Fully Convolutional
- 완전 연결층(Fully Connected Layer)은 고정된 차원의 벡터를 출력하며 공간 좌표를 버림
- 완전 합성곱층(Fully Convolutional Layer)은 공간 좌표를 포함하는 분류 맵을 출력
위치에 feature를 가지고 개별적으로 flatting하는 대신에 1by1으로 출력만 바꿔서 생각할 수 있음
1x1 합성곱으로 Fully Connected Layer 해석
- 완전 연결층은 단일 특징 벡터를 분류
- 1x1 합성곱층은 합성곱 특징 맵의 모든 특징 벡터를 분류
- 이 과정에서 고유한 특징 맵을 평평하게 만듦
아쉬운 점은 해상도이다. 1x1 합성곱층은 합성곱 특징 맵의 모든 특징 벡터를 분류하는 데 사용되지만, 이로 인해 예측된 점수 맵의 해상도가 매우 낮아지는 문제가 있음 최종 feature map 자체가 demension이 커지고 low-resolution을 갖는다. 이 부분을 만회하기 위해 upsampling을 사용한다.
해상도의 한계와 Upsampling
- FCN의 구조에서 중요한 점은, 입력 이미지가 여러 단계의 다운샘플링(Downsampling)을 거치면서 최종적으로 매우 낮은 해상도의 특징 맵이 생성된다는 점. 이로 인해 예측된 세그멘테이션 맵도 낮은 해상도를 가지게 됨
-
이 문제를 해결하기 위해 Upsampling 기법이 사용되며, 이는 주로 이미지의 해상도를 원래 크기로 복원하기 위한 단계다. Upsampling은 다양한 방법으로 구현될 수 있으며, 대표적으로 Unpooling, Transposed Convolution, Upsample and Convolution 방법이 있다.
- Transposed Convolution: 원래의 합성곱 연산을 역으로 적용하여 작은 크기의 특징 맵을 큰 크기로 변환하는 방법. 이 과정에서 픽셀 간의 관계를 유지하면서 해상도를 복원할 수 있다.
- Upsample and Convolution: 먼저 간단한 업샘플링으로 해상도를 높인 후, 합성곱 연산을 통해 세밀한 세그멘테이션 맵을 얻는 방법이다.
고해상도 정보의 손실과 보완
- FCN에서 높은 레이어로 갈수록 공간 정보가 손상되기 쉬워, 이로 인해 특징 맵이 더 거칠고(Coarse) 부정확해지는 문제가 있습니다. 반면, 낮은 레이어들은 고수준의 의미(Semantic) 정보는 부족하지만, 저수준의 세부 정보(Fine Details)를 잘 보존한다.
- 이러한 특성을 보완하기 위해, 최종 segmentation 맵을 얻기 전에 낮은 레이어의 세부 정보를 적절히 결합하는 방법이 활용된다.
낮은 layer들은 semantic정보가 부족하지만 low-level정보들과 fine detail정보들이 잘 남아있다.
FCN의 특징
- Faster: FCN은 중간에 별도의 핸드크래프트된 구성 요소 없이 순수한 합성곱 연산만으로 결과를 출력하기 때문에 매우 빠르다.
- Accurate: 특징 표현과 분류기가 함께 최적화되기 때문에 높은 정확도를 보장한다. 높은 레이어로 갔을 때, 공간 정보가 많은 손상을 입게 된다. 그래서 rough하고 coarse한 정보가 남게된다.
U-Net
U-Net의 주요 특징은 Fully Convolutional Networks(FCN) 기반
- U-Net은 FCN의 구조와 동일한 특성을 공유하며, 전적으로 합성곱 연산에 기반한 모델
Feature Map의 Concatenation
- U-Net의 핵심 아이디어 중 하나는 Contracting Path에서 추출된 특징 맵들을 결합하여 Dense Map을 생성하는 것이다.
- 이는 FCN에서의 Skip Connection과 유사한 개념으로, 낮은 레이어의 정보를 손실 없이 높은 레이어에 전달하여 더 정밀한 segmentation 결과를 얻을 수 있게 한다.
더 정밀한 segmentation
- U-Net은 기존 FCN보다 더 정확하고 정밀한 segmentation을 수행할 수 있다.
Overall architecture: Contracting Path와 Expanding Path로 구성되어 있다.
Contracting Path
Halve the size of the feature map
입력 이미지에서 특징을 추출하며, 이 과정에서 이미지의 공간 해상도는 점점 감소하지만, 채널(특징 맵)의 수는 증가한다.
- 3x3 합성곱을 반복적으로 적용하여 이미지의 공간 정보를 축소하면서 중요한 특징을 학습한다.
- 각 Conv layer뒤에 Max Pooling 레이어를 사용하여 특징 맵의 크기를 절반으로 줄이지만, 채널 수는 두 배로 증가시킨다.
- 이러한 방식으로 더 높은 수준의 holistic(추상적) 특징을 추출하며, 전체적인 맥락을 파악할 수 있다.
Expanding Path
Double the size of the feature map
Contracting Path에서 추출된 특징을 바탕으로 입력 이미지와 동일한 크기의 출력 segmentation map을 복원
- 2x2 업샘플링을 사용하여 특징 맵의 공간 해상도를 증가시키고, 채널 수는 절반으로 줄인다.
- 그 후, Contracting Path에서 넘어온 해당 레벨의 특징 맵과 Concatenation하여 보다 세밀한 정보를 활용한다.
이러한 과정을 통해 더 높은 해상도의 세그멘테이션 맵을 생성할 수 있다.
U-Net의 전체 구조
Concatenation of feature maps provides localized information
- Contracting Path에서 얻은 로컬 정보와 Expanding Path에서의 전역 정보가 결합됨으로써 U-Net은 더욱 정밀하고 정확한 세그멘테이션 결과를 제공한다.
- 입력 크기와 특성 맵 크기가 모두 짝수로 설정되어야 한다.