KimbgAI

[ML] FCN(2014.11); Fully Convolutional Networks for Semantic Segmentation 요약 및 pytorch 코드 구현(1) 본문

machine learning

[ML] FCN(2014.11); Fully Convolutional Networks for Semantic Segmentation 요약 및 pytorch 코드 구현(1)

KimbgAI 2022. 10. 5. 15:43
반응형

FCN(2014.11); Fully Convolutional Networks for Semantic Segmentation
원문: https://arxiv.org/abs/1411.4038


본 리뷰는 Semantic Segmentation의 기술 동향을 살펴보며,

핵심 아이디어와 Contributions을 정리하고, 간단한 코드 구을 통해 살펴보고자 한다. 

 

Semantic segmentation

주요 Contribution은 다음과 같다.

 

1. Fully convolutionalization

 - ILSVRC(Imagenet Large Scale Visual Recognition Challenge, 이하 이미지넷)에서 좋은 성적을 보였던 기존 CNN기반 모델(VGG)을 Backbone으로 구성하여 목적에 맞게 변형시켰다.

 - 이 과정에서 기존 FC(Fully Connected) layer의 단점을 보완하여 모든 layer를 convolution layer으로 변경하였다.

(위) VGG16 architecture (아래) FCN(Fully Convolution Network)

- FC layer의 단점1)input image size가 고정된다는 제약 2)위치정보의 손실


2. Upsmapling using deconvolution (transposed convolution)

 - 보통 Convolution Neural Network에서 feature map의 크기를 줄이는 이유는 receptive field를 넓혀 global한 정보를 얻고, parameter수를 줄여 computational benefit을 얻기 위함이다.
 - 하지만 feature map의 크기가 줄어들면 그만큼 위치정보도 사라지기 때문에 segmentation에서는 upsampling이 필수적이다.
 - 보통 upsampling method로는 bilinear interpolation이나 unpooling이 있지만, deconvoultion 사용하게 되면, upsampling 과정에서 학습할 수 있어 보다 정교한 feature map을 얻을 수 있다.


3. Skip architecture

 - 앞서 언급한바와 같이 깊은 layer에서 나온 feature map일 수록 global하고 abstract한 정보를 가지고 있지만, location 정보는 잃어버린다.
 - 따라서, 이전 layer들의 freature map들을 사용하여 위치정보를 활용하였다. feature map을 그대로 사용한 것이 아닌, convolution layer를 추가하여 결합하였다.

FCN-32s, FCN-16s, FCN-8s의 구성도
FCN-8s architecture

 - 아래 그림은 FCN-32s는 32배 축소된 feature map을 사용한 결과이며, FCN-8s는 8배 축소된 feature map도 함께 사용한
결과이다. FCN-8s의 결과가 보다 정교한 위치를 잡아내는 것을 볼 수 있다.

Loss function

논문에서 사용한 loss는 'per-pixel multinomial logistic loss' 라고 되어있다.

즉, 픽셀단위 crossentropy loss를 사용함.

 

 

결과

PASCAL VOC 2011 dataset으로 평가된 결과다.
생각만큼 좋은 결과는 아니지만, 그 당시 비교모델(SDS)과 비교해본다면 괄목할만하다

 

Code

코드는 아래의 포스팅에 있습니다~

https://kimbg.tistory.com/18?category=578326 

 

[ML] FCN(2014.11); Fully Convolutional Networks for Semantic Segmentation 요약 및 pytorch 코드 구현(2)

FCN 모델에 관련된 대략적인 내용은 아래 링크를 통해 확인하시면 되겠습니다. :) https://kimbg.tistory.com/15?category=578326 [ML] FCN(2014.11); Fully Convolutional Networks for Semantic Segmentation 요..

kimbg.tistory.com

 

반응형
Comments