공부/기계학습 및 인공지능

FCN 간단 리뷰

snn.il 2021. 9. 9. 20:58

FCN

(Fully Convolutional Networks)

FCN’s Overall Network Structure

  • Semantic Segmentation 문제를 위해 제안된 딥러닝 모델
  • 대부분의 Semantic Segmentation 방법론은 FCN을 기반으로 함
  • Semantic Segmentation 모델을 위해 기존에 이미지 분류에서 우수한 성능을 보인 CNN 기반 모델(AlexNet, VGG16, GoogLeNet)을 목적에 맞춰 변형시킨 것
  • 이러한 변형 과정에는 크게 Convolutionalization, Deconvolution (Upsampling), Skip architecture 이 있음

<Convolutionalization>

  • 위치 정보를 유지하기 위해 모든 FC-layer를 Conv-layer로 대체하는 방법
  • 하지만 convolutionalization 이후의 feature map은 너무 coarse하여 최종 목적인 픽셀 단위 예측과 비교하기엔 아직 정보들이 부족.

FCN's Convolutionalization Result

<Deconvolution>

  • Convolutionalization의 결과인 Coarse map을 원본 이미지 크기에 가까운 Dense map으로 변환해주는 방법
  • Interpolation, Deconvolution, Shift and stitch 등 의 방법을 거쳐 진행
  1. [Interpolation] → Coarse한 feature map의 빈 영역을 추정하여 채우며 Dense prediction을 구하는 과정
  • Bilinear interpolation: 1차원의 Linear interpolation을 2차원으로 확장한 것
  • Backwards convolution: Up-sampling도 학습이 가능하다는 것을 이용, Convolution 연산을 반대로 진행

Bilinear interpolation / Backwards convolution

 

  1. [Deconvolution] → 보다 정교한 Segmentation을 위해서 추가적인 Skip Architecture(Shift and stitch)작업 진행
  • 근본적으로 feature map의 크기가 너무 작기 때문에 예측된 dense map의 정보는 여전히 거칠 기에 실시
  • 보다 정교한 Segmentation을 위해서 추가적인 작업이 필요하기에 진행
  • Skip Architecture : 앞에서 구한 Dense map에 얕은 층의 정보를 결합하는 방식으로 Segmentation의 품질을 개선
  • FCN-32s > FCN-16s > FCN-8s 순으로 성능 향상

[Conclusion]

  • FCNs은 기존의 딥러닝 기반 이미지 분류를 위해 학습이 완료된 모델의 구조를 Semantic Segmentation 목적에 맞게 수정하여 Transfer learning 진행
  • Convolutionalized 모델을 통해 예측된 Coarse map을 원본 이미지 사이즈와 같이 세밀(Dense)하게 만들기 위해 Up-sampling을 수행
  • Deep Neural Network에서 얕은 층의 Local 정보와 깊은 층의 Semantic 정보를 결함하는 Skip architecture를 통해 보다 정교한 Segmantation 결과를 얻음
  • FCNs은 End-to-End 방식의 Fully-Convolution Model을 통한 Dense Prediction 혹은 Semantic Segmentation의 초석을 닦은 연구로써 이후 많은 관련 연구들에 영향을 주었음