FCN

woonho·2023년 6월 22일
0

FCN 이란?

  • 최초의 딥러닝 기반 segmentation 모델 이전에도 딥러닝을 사용한 segmentation 모델이 있긴 했지만, 현재 대부분의 segmentation 모델들이 FCN을 베이스로 하기 때문에 FCN을 최초의 딥러닝 기반 segmentation 모델이라 간주한다.

Convolutionalization

  • 기존 Image Classification 모델들은 기본적으로 내부 구조와 관계없이 목적인 classificaiton을 수행하기 위해 출력층이 Fully-connected layer로 구성되어 있다.
  • 하지만 Semantic segmentation에서는 이러한 FC layer가 한계점을 가진다.
    1. 이미지 위치 정보가 사라진다.
    2. 입력 이미지 크기가 고정된다.
    • segmentation의 목적은 원본 이비지의 각 픽셀에 대해 클래스를 구분하고 인스턴스 및 배경을 분할하는 것이므로, 위치 정보가 매우 중요하다.
  • 이러한 FC-layer의 한계를 보완하기 위해 본 논문에서는 모든 FC-layer를 Conv-layer로 대체하는 방법을 택하였다.

  • Convolutionalization을 통해 Feature map이 원본 이미지의 위치 정보를 가질 수 있게 되었다. 하지만, segmentation의 최종 목적인 픽셀 단위 예측과 비교했을 때, Convoluionalization만을 활용한 FCN의 출력 Feature map은 너무 coarse 하다. ⇒ 따라서, 이러한 Feature map(Coarse map)을 원본 이미지에 가까운 Dense map으로 변환해줄 필요가 있다.

Deconvolution

  • Coarse map에서 Dense map을 얻는 방법에는 몇가지가 있다.
    • Interpolation
    • Deconvolution
    • Unpooling
    • Shift and Stitch
  • 물론 Pooling을 사용하지 않거나, Pooling stride를 줄여 Feature map의 크기가 작아지는 것을 처음부터 피할 수도 있지만, 이러한 경우 Receptive Field가 줄어들게 되어, 이미지의 컨텍스트를 놓치게 된다.
    • 또한 파라미터 수의 증가로 학습시간이 너무 커지게 된다.
  • Bilinear Interpolation
    • 이미지를 upsampling 하기 위한 방법으로 Linear interpolation 방법을 2차원으로 확장시킨 방법이다.

  • Backwards convolution
    • Convolution 연산을 반대로 하는 방법으로 학습 가능한 파라미터들로 이루어진 커널을 input에 convolution 함으로써, output을 도출하는 방법이다.

  • FCNs에서는 Bilinear interpolation과 Backwards convolution 두가지 방법을 사용하여 Coarse Feature map으로부터 Dense prediction을 구했다.
  • 하지만 Interpolation을 통해 Dense map을 도출하더라도 근본적으로 Featuer map의 크기가 너무 작기 때문에 dense map의 정보도 여전히 coarse할 수 밖에 없다.

Skip Architecture

  • 보다 정확한 Segmentation을 얻기 위해 Deep & Coarse layer의 semantic 정보와 Shallow & Fine layer의 appearance 정보를 결합한 Skip Architecture를 구성했다.

  • 깊은 층에서는 복잡하고 포괄적인 개체 정보, 즉, global feature를 감지하는 반면에, 얕은 층에서는 local feature를 감지한다는 것을 이용해서 Dense map의 얕은 층의 정보를 결합하는 방식으로 Segmentation의 품질을 향상시켰다.

0개의 댓글

관련 채용 정보