[Basic] 3x3 Conv, 1x1 Conv 하는 이유(FCN vs. FC Layer vs. FPN)
AI, Deep Learning Basics/Computer Vision

[Basic] 3x3 Conv, 1x1 Conv 하는 이유(FCN vs. FC Layer vs. FPN)

  1. 3x3 Convolutional Layer: 3x3 공간이 지닌 특징을 하나의 값으로 추출하기 with stride = 1 (각 픽셀별 위치정보가 갈수록 줄어든다. ex. FC layer)
  2. 1x1 Convolution Layer: 1x1 공간이 지닌 특징을 하나의 값으로 추출하기 with stride = 0 = 각 픽셀별 위치정보를 해치지 않은 채 조합에 따른 정보 분석을 하는 것 = 각 픽셀별 분석 ex.Fully Convolutional Network

Fully Connected Layer

  • 일반적인 Convolution Layer에 쓰이는 현상 Feature map을 flatten -(FC Layer)-> 전체 이미지의 특징을 출력하기 = 각 픽셀별 이미지의 위치 정보가 사라진다.

Fully Convolutional Network

  1. 앞선 FC layer의 단점(각 픽셀별 이미지의 위치 정보가 사라진다)를 바탕으로 이를 피하기 위한 방면으로 Semantic Segmentation task에서 FC layer가 아닌 conv layer를 사용하여 heatmap을 예측하는 방법 -> 덕분에 위치 정보나 Class에 대한 정보를 잃어버리지 않는다.
  2. 기존의 Image classification 알고리즘: class는 알지만, 어디에 존재하는지 모른다 -> FC Layer를 1x1 Conv layer로 바꾸어 위치정보를 그대로 가져가기
  3. FCN Structure
    • Encoder
    • Decoder: Upsampling 방법으로 추출된 feature의 정보로부터 크기 키우는 역할 + Skip connection으로 정확도 높이기
  4. ResNet의 Skip connection 의미를 차용

Feature Pyramid Network(FPN)

  1. FPN Structure
    • Bottom-up pathway
    • Top-down pathway + Lateral connection

원본 이미지를 convolutional network에 입력하여 forward pass를 수행하고, 각 stage마다 서로 다른 scale을 가지는 4개의 feature map을 추출합니다. 이 과정을 Bottom-up pathway라고 합니다. 이후 Top-down pathway를 통해 각 feature map에 1x1 conv 연산을 적용하여 모두 256 channel을 가지도록 조정하고 upsampling을 수행합니다. 마지막으로 Lateral connections 과정을 통해 pyramid level 바로 아래 있는 feature map과 element-wise addition 연산을 수행합니다. 이를 통해 얻은 4개의 서로 다른 feature map에 3x3 conv 연산을 적용합니다.