1. FCN
FCN은 Fully Convolutional Network로, 기존 CNN 구조의 모델들은 Spatial이 작아진 feature map들을 fully connected layer을 이용하여 결과를 출력했다. 그러나 fully connected layer을 통과시킨 것을 다시 원래대로 돌릴 수 없기 때문에 다른 형태의 convolutional 구조로 만들어 픽셀 단위의 예측을 할 수 있게 만들었다.
2. convolution
FCN의 backbone(encoder)은 기존 구조와 동일하게 Convolution layers를 이용하여 Feature을 추출한다.
3. Deconvolution
이렇게 추출된 feature map을 확장하여 입력 이미지와 동일한 크기의 segmentation map을 생성한다.
이를 `Deconvolution`, `Upsampling`, `Transposed Convolution`이라고 부른
아래의 파란색이 convolution을 거친 feature map이라고 할 때, 이 feature map 사이에 zero padding을 추가한 뒤 convolution을 수행하여 초록색= 원본 이미지와 동일한 사이즈를 생성한다.
3-1. Skip architecture
이 때 upsampling을 최종 feature map에만 적용하는 것이 아닌 convolution layer들을 각각 거친 feature map에 적용하게 되는데 이를 skip architecture라고 부른다.
4. Patchwise training
논문에서 각 패치별로 학습하는 방식과 전체 이미지를 사용하여 학습하는 방식을 사용하여 비교해 봤으나 실험 결과 전체 이미지를 한 번에 사용하는 것이 효율적이고 효과적이라는 결론을 얻었다.
5. Convolutionalization
또한 Fc layer을 모두 1x1 convolution layer로 바꿨다.
Fc layer을 통과하면 이미지의 위치 정보가 사라지며, 고정된 크기의 input image만 받을 수 있고 파라미터의 수 또한 매우 많이 필요하다는 단점이 있다.
이를 VGG Net의 마지막 fc layer을 1x1 사이즈의 convolution layer로 변환하였다.
이렇게 1x1 conv의 결과물을 거쳐 featuremap 상에서 classfication이 이뤄지는데 이 결과는 너무 모호하기 때문에 이후에 upsamplig을 진행하는 것이다.
참고
'ML & DL > Computer vision' 카테고리의 다른 글
Transformer (0) | 2024.02.24 |
---|---|
Computer vision Metric (0) | 2024.02.23 |
Semantic segmentation 방식 (0) | 2024.02.02 |
EfficientNet (0) | 2024.01.30 |
VGGNet (0) | 2024.01.30 |