FCN

Taekyu Lee
6 min readMar 19, 2020

--

이 글은 Review: FCN — Fully Convolutional Network (Semantic Segmentation)을 번역한 것입니다.

이 글에서는 시맨틱 세그먼테이션을 위한 완전 컨볼루션 네트워크(FCN, Fully Convolutional Network)를 간단히 리뷰합니다. 분류(classification) 및 탐지(detection) 작업과 비교할 때, 세그먼테이션은 훨씬 어려운 작업입니다.

  • 이미지 분류(Image Classification): 이미지 내에서 객체를 분류합니다. (객체 클래스 인식)
  • 객체 감지(Object Detection): 경계 상자(들)로 객체(들)를 경계로 하여, 이미지 내 객체(들)를 분류하고 감지합니다. 즉, 각 객체의 클래스, 위치 및 크기를 알아야 한다는 의미입니다.
  • 시맨틱 세그먼테이션(Semantic Segmentation): 이미지 내에서 각 픽셀의 객체 클래스를 분류합니다. 즉, 각 픽셀마다 레이블이 있다는 의미입니다.

시맨틱 세그먼테이션의 예는 다음과 같습니다.

시맨틱 세그먼테이션의 예
원본 이미지 (왼쪽), Ground Truth 레이블 맵 (두 번째 왼쪽), 예측된 레이블 맵 (두 번째 오른쪽), 이미지 및 예측된 레이블을 겹침 (가장 오른쪽)

이는 2015 CVPR [1] 및 2017 TPAMI [2]에 퍼블리시 되었으며, 이 글을 쓰는 동안, 6000번 이상의 인용이 되었습니다. 따라서, FCN을 사용한 시맨틱 세그먼테이션에 대한 가장 기본적인 논문 중 하나이기도합니다. (Sik-Ho Tsang @ Medium)

목차

  1. 이미지 분류에서 시맨틱 세그먼테이션까지
  2. 디컨볼루션(Deconvolution)을 통한 업샘플링(Upsampling)
  3. 출력 융합
  4. 결과

1. 이미지 분류에서 시맨틱 세그먼테이션까지

통상적으로, 분류(classification)는 다음과 같이, 입력 이미지는 작아지고, 컨볼루션 레이어 및 완전 연결(FC, fully connected) 레이어를 거쳐, 입력 이미지에 대한 하나의 예측된 레이블을 출력합니다.

분류

FC 레이어를 1×1 컨볼루션 레이어로 바꾼다고 상상해보십시오.

모든 레이어는 컨볼루션 레이어입니다.

이미지가 축소되지 않은 경우, 출력은 단일 레이블이 되지 않을 것입니다. 대신, 출력은 입력 이미지보다 작은 크기를 갖습니다. (최대 풀링으로 인해)

모든 레이어는 컨볼루션 레이어입니다.

위의 출력을 업샘플링하면, 우리는 아래와 같이 픽셀 단위 출력(라벨 맵)을 계산할 수 있습니다.

마지막 단계에서 업 샘플링
레이어를 따라 특성 맵 / 필터 개수

2. 디컨볼루션(Deconvolution)을 통한 업샘플링(Upsampling)

컨볼루션은 출력 크기를 더 작게 만드는 프로세스입니다. 따라서, 출력 크기를 크게하기 위해, 업 샘플링을 원하게 되고, 이 때 디컨볼루션이라는 이름이 나옵니다. (그러나, 디컨볼루션이라는 이름 때문에, 컨볼루션의 역과정으로 잘못 해석되지만, 그렇지 않습니다.) 이는 또한 업 컨볼루션(up convolution), transposed convolution 이라고도 합니다. 그리고 fractional stride가 사용될 때, fractional stride 컨볼루션이라고도합니다.

디컨볼루션을 통한 업 샘플링 (파란색 : 입력, 녹색 : 출력)

3. 출력 융합

아래와 같이 conv7을 거친 후, 출력 크기가 작아집니다. 따라서, 출력이 동일한 입력 이미지 크기를 갖도록 32x 업샘플링이 수행됩니다. 그러나 이는 또한 출력 레이블 맵을 거칠게 만듭니다. 이를 FCN-32s라고 합니다.

FCN-32s

왜냐하면 이는 더 깊을수록(deeper) 깊은(deep) 특성들을 얻을 수 있고, 더 깊을수록 공간 위치 정보가 손실되기 때문입니다. 즉, 이는 더 얕은 레이어에의 출력은 더 많은 위치 정보를 갖는다는 의미입니다. 만약 두 가지를 결합하면, 결과를 향상시킬 수 있습니다.

결합하려면, 출력을 융합합니다. (요소 단위로 add)

FCN-16s과 FCN-8s의 융합

FCN-16s: pool5의 출력은 2배 업샘플링되고, pool4와 융합되며, 16배 업샘플링을 수행합니다. 위의 그림과 같이 FCN-8s에서도 유사한 동작이 수행됩니다.

다른 FCN과 비교

FCN-32s는 위치 정보가 손실되기 때문에 매우 거칠며, 반면에 FCN-8은 최상의 결과를 제공합니다.

이 융합 작업은 실제로 AlexNet, VGGNet 및 GoogLeNet에서 사용되는 부스팅(boosting)/앙상블(ensemble) 기법과 유사하며, 이 기법들은 예측을 보다 정확하게 하기 위해 여러 모델별로 결과를 추가(add)합니다. 그러나 이 경우, 각 픽셀에 대해 수행되며, 모델 내 다른 레이어의 결과에서 추가(add)됩니다.

4. 결과

Pascal VOC 2011 데이터셋 (Left), NYUDv2 데이터셋 (Middle), SIFT Flow 데이터셋 (Right)
  • FCN-8s은 Pascal VOC 2011에서 최고입니다.
  • FCN-16s은 NYUDv2에서 최고입니다.
  • FCN-16s은 SIFT Flow에서 최고입니다.
[Ref 15]와 비교한 시각화 결과

네 번째 줄은 실패 사례를 보여줍니다. 네트워크는 보트의 구명 조끼를 사람들로 간주합니다.

향후 시맨틱 세그먼테이션을 위한 딥 러닝 기술에 대해 더 많이 리뷰할 수 있기를 바랍니다.

--

--