개요
지난 글의 전통적인 Semantic segmentatio 방법론에 이어서 딥러닝을 통한 Semantic segmentation을 살펴보기 위해 2015년 CVPR에 퍼블리시된 FCN(Fully Convolutional Networks for Semantic Segmentation)을 정리해보겠습니다.
FCN 설명
간단하게 FCN을 설명하자면 기존의 분류모델인 VGG, Google Net 등의 모델을 Semantic Segmentation으로 사용하기 위헤 목적성에 맞게 Classifer를 FCL(fully connected layer)에서 Conv layer로 교체(Convolutionalization)하여 Encode 부분을 구성하고 Upsampling(Bilinear Interporation, Deconvolution)을 통해 Decode를 구성한다. 또한, Segmentation의 성능을 높여주기 위해 Skip Architecture를 사용하여 보다 정교한 Segmentation 성능을 보여준다.
Fully Convolutional Architecture
본 논문은 이미지 분할문제에 기존의 딥러닝 모델을 적용할 때의 한계점 및 해결 방법 등을 제안하고 있습니다.
대체로 기존의 딥러닝 모델들은 회귀나 분류를 위한 모델로 설계되어 마지막단에 Fully Connected Layer(FCL)로 구성되어 있어 1)공간정보를 상실하는데 이는 이미지 분할 문제에서는 효과적인 방법이 아닙니다. 따라서, 이를 위해 Fully Connected Layer를 Convolution Layer로 대체하는 방법론을 제안합니다.
또한, FCL은 가중치가 고정이 되기 때문에 2)입력 이미지 크기가 고정된다는 점에서 제약이 될 수 있기에 FCN을 사용하며 이는 다양한 이미지 크기와 비율을 처리가 가능하며, 공간정보도 포함할 수 있기 때문에 이미지 분할에 적절하다는 것을 제시하고 있습니다.
Shift-and-stitch is filter rarefaction
Convolutionalization을 통해 FCL의 한계점인 공간정보를 상실하는 문제를 해결하였고, 따라서 최종적으로 FCN의 Encode 부분을 구성하고 Coarse output를 얻는 과정이었습니다.
본 논문에서는 결과적으로 Shift-and-stitch보다 Skip architecture 방식이 더 좋아서 해당 방식은 사용하지 않았다고 합니다.
Upsampling
최종적으로 Pixel wise prediction을 위해 FCN의 Encode 부분에서 출력된 Feature map는 Coarse하기 때문에 Dense map으로 전환이 필요합니다.
Coarse map을 통해 Dense map으로 전환하는 방법에 대해서 설명하겠습니다.
- interporlation
- interpolation는 두점(P, Q)의 사이에 R값을 유추하기 위해 선형적인 관계를 가진다는 가정을 두고, 두 점 P, Q의 값과 거리비를 이용하여 R의 값을 구합니다. (P와 Q사이의 거리는 1로 가정)
- 이미지에서는 bilinear interpolation을 사용가능한데 이는 x축, y축 방향으로 각각 진행하는 것을 의미합니다.
- Deconvolution
- 이는 설명하기에 너무 장황하기도 하고, Deconvolution과 Transposed convolution과의 차이도 헷갈리기 때문에 링크로 대체하고자 합니다(반드시 추후에 정리 ….).
Skip Architecture
Upsampling하는 과정에서 많은 정보가 손실 되어 좀더 정확하고 상세한 분할을 위해 Skip Architecture를 사용합니다.
얕은 층에선 local 정보를 깊은 층에선 global 정보를 추출한다고 합니다. 따라서 FCN 에서는 Skip Architecture를 통해 얕은 층의 정보를 합치는 방식으로 정확도를 개선하고자 하였습니다.
FCN 8을 예로 들었을 때 각 pool layer에서 1x1 conv(가중치 0으로 초기화)를 통해 각각의 feature를 구성하고, Trainable Backwards convolution은 Bilinear interpolation으로 초기화한 후 학습을 진행하였고 합니다.
정리
- FCN 모델은 기존의 딥러닝 분류 모델을 Semantic Segmentation task에 맞게 수정하기 위해 Conv Layer을 사용하여 공간정보를 유지하였다.
- FCN의 encode 부분에서 출력된 Coarse map을 원본 이미지와 같이 Dense map을 만들기 위해 Upsampling를 진행하였다.
- Upsampling을 통한 정보 손실 해결 및 보다 정확한 결과를 위해 얕은 층의 appearance한 정보와 깊은 층의 Sematic한 정보를 결합한 Skip architecture를 사용하였다.
- 저자들의 주장으로는 FCN은 최초의 End to End방식의 segmentation모델이며, 현재를 기점으로 보자면 Semantic Segmentation의 기초적인 논문으로 많은 연구에 영향을 주고있다.
→ 추후에 Backbone을 resnet 50으로 사용하고 FCN을 구성하는 코드에 대해 다루어 보겠습니다.
출처
'Review > Paper' 카테고리의 다른 글
Sementic Segmentation(1) - Traditional method (0) | 2023.02.26 |
---|---|
[Paper Review]Threshold segmentation algorithm (0) | 2022.06.26 |