본문 바로가기
AI/비전

[SEGMENTATION] deconvolution network | Learning Deconvolution Network for Semantic Segmentation | 2015

by 박서현 2021. 5. 26.

본 글은 Learning Deconvolution Network for Semantic Segmentation 논문[2]을 공부하면서 이해한 내용을 바탕으로 작성하였습니다. 디테일한 내용은 아래 목차의 순서대로 정리합니다. 목차는 논문과 동일하지 않습니다.

1. Introduction
  1.1. FCN 다시 보기
  1.2. FCN의 한계
  1.3. Contributions of Deconvolution Network

2. Deconvolution Network 구조
  2.1. Unpooling
  2.2. Deconvolution
  2.3. Layer Output으로 Deconvolution Network 이해하기

3. Further Details of the Algorithm

  3.1. Instance-wise training & Inference
  3.2. (Option) Conditional random field (CRF)

4. Training
  4.1.배치 정규화(Batch Normalization)
  4.2. Two-stage Training

  4.3. Datasets Construction
  4.4. Other Details


5. Inference
  5.1. Region Proposal(using Edge Box)
  5.2. Aggregating Instance-wise Segmentation Maps
  5.3. Ensemble with FCN

6. Performance

7. Summary

8. Reference

 


 

1. Introduction

1.1. FCN 다시보기

그림 1 Alexnet으로 transfer learning한 FCN 구조. 출처 : [1]

 앞서 2015년에 발표된 Fully convolutional network for semantic segmentation(FCN)[1] 논문을 살펴보았다. FCN은 이후 발표되는 Semantic Segmentation 관련 연구에 많은 영향을 끼친 논문으로 평가된다. 나는 FCN의 두 가지 주요 특징으로 Convolutionalization과 Upsampling을 꼽는다.

 [1]은 완전히 새로운 네트워크 구조를 제시하지 않고 기존의 Image Recognition Model을 활용해 Semantic Segmentation한다. Image Recognition Model은 분류기(classifier)로 FC layer(Fully Connected layer)를 이용하는데, FCN은 FC layer를 모두 Convolutional layer로 바꾼다. [1]에서는 이를 Convolutionalization이라고 한다. 이렇게 함으로써 모델 구조는 모두 Convolutional Network로 구성된다. (Fully Convolutional Network)

  Image Recognition Model은 Image를 다수의 Convnet에 통과시켜 Downsampling한다.  즉, 네트워크 마지막에 있는 분류기(classifier)에 입력되는 feature map은 Input Image보다 사이즈가 작아진다는 것이다. Semantic Segmentation 작업에서는 픽셀마다 분류(classify)해야 하기 때문에, 분류기(classifier)에 입력되는 feature map은 Input Image와 사이즈가 같아야 한다. FCN은 이 문제를 해결하기 위해 네트워크의 마지막 feature map을 Upsampling하여 Input image와 동일한 사이즈로 만들어 준다. Upsampling 방법으로는 bilinear interpolation(쌍선형 보간법)을 이용했다.

 

1.2. FCN의 한계

본 논문은 아래와 같이 FCN 기반 Semantic Segmentation의 두 가지 주요한 한계점을 지적하면서 시작한다.

First, the network can handle only a single scale semantics within image due to the fixed-size receptive field. ... Second, the detailed structures of an object are often lost or smoothed because the label map, input to the deconvolutional layer, is too coarse and deconvolution procedure is simple.

 첫번째 한계는 receptive filed 사이즈가 고정되어 있어서 single scale semantic만 다룬다는 것이다. 이에 대해 정확히 이해하기 image scale과 receptive field에 대해 알고 있어야 한다. image scale에 대한 설명은 다른 포스트로 대체한다. CNN에서 receptive field는 feature map의 한 뉴런을 표현하기 위해 사용된 이전 레이어의 입력 뉴런들을 말한다. receptive field 사이즈는 kernel 사이즈와 stride 간격, padding 수에 의해 결정된다. 이 블로그[4]의 Problem Setup 파트에서 반응형 이미지를 활용하면 이해가 쉬울 것이다. 그렇다면 deconvolution network는 multi scale semantic을 다룬다는 것인데, 개인적으로 이에 대한 이해와 정리가 더 필요하다.

 두번째 한계는 사이즈가 작아지고 정보가 많이 소실된 feature map을 가지고 단순한 deconvolution 과정을 거치기 때문에 object의 디테일한 부분들을 잡아내지 못하고, smooth하게 처리한다는 것이다. 그림1을 보면 Input image가 Convnet을 거치면서 21개의 채널을 가진 굉장히 작은 사이즈의 feature map이 된다. pixelwise prediction을 위해서 deconvolution을 통해 작은 feature map을 upsampling 해주지만, 이 feature map의 정보로만 기존 input image를 정확히 예측하기엔 무리가 있어 보인다. 게다가 deconvolution도 학습하지 않고 bilinear interpolation으로 고정했기 때문에 더 나은 성능을 기대하기 어렵다. 

 

그림 2 FCN 기반의 semantic sementation 한계 [1] 출처 : [2]

그림 2는 [1]을 기준으로 FCN 기반의 semantic segmenation의 한계를 직관적으로 보여준다. (a)의 object의 크기가 너무 커서 제대로 segmentation하지 못한 결과다. 이는 이미지의 전체적인 맥락(context)을 파악하기에는 receptive field 사이즈가 고정되어 있고, 그 사이즈 안의 맥락만을 반영해서 segmentation했기 때문으로 보인다. (b)는 너무 작은 object에 대해서는 무시하는 결과다. 

 

1.3 Contributions of Deconvolution Network

 본 논문에서는 1.1.2에서 살펴봤던 FCN기반의 semantic segmenation 한계를 극복하기 위해 완전히 새로운 전략으로 CNN 기반 semantic segmentation을 수행한다. 가장 주요한 특징은 다음과 같다.

  • multi-layer deconvolution network(deconvnet)를 학습한다. deconvnet은 deconvolution, unpooling, ReLU layer로 구성되어 있다.
  • 개별 객체별로 segmentation (instance-wise segmentation) 하기 위해서를 위해서 학습이 끝난 네트워크는 individual object proposals와 함께 사용한다. 객체별 segmentation을 합쳐서 최종 semantic segmentation 결과를 도출한다. 이렇게 함으로써 FCN 기반의 single scale 문제를 해결하고 객체의 detail한 부분도 segmentation할 수 있다.
  • PASCAL VOC 2012 데이터셋만을 이용해서 뛰어난 성능을 보여준다. 최고 성능은 [1]과 앙상블을 통해 얻을 수 있었다. 

 

 

2. Deconvolution Network 구조

그림 3 deconvolution network 구조. Convolution network는 VGG-16을 사용했다. 출처 : [2]

 본격적으로 Deconvolution Network의 구조를 살펴보자. Deconvolution network 구조는 그림 3처럼 Convolution network를 뒤집은 것처럼 보인다. Convolution network는 feature extractor(특징 추출기), Deconvolution network는 shape generator(형상 생성기) 역할을 한다. 최종 Output은 probability map이다. probability map은 H x W x C 형상을 가지고 있으며, 높이(H)와 너비(W)는 Input image와 동일하다. 채널(C)는 훈련 전에 정의된 모든 클래스 수다. 채널은 하나의 클래스에 대한 probability map이다. 이를 본 논문에서는 class conditional probability map이라고도 한다. 즉, class conditional probability map의 개별 픽셀은 condition class에 속할 확률값을 갖는다. 예를 들어 고양이를 구별하는 채널에서는 개별 픽셀 값이 고양이에 속할 확률이다.

 Convolution Network는 VGG16을 차용했다. 단, 마지막 분류기는 제거하고, 끝에 2개의 fully connected layer(FC layer)를 붙였다 (논문에서는 fully connected layer라고 하지만 실제로는 7x7 kernel, 1x1 kernel을 이용한 합성곱 output으로 보인다). FC layer를 붙인 이유는 class-specific projection하기 위해서다(class-specific projection에 대한 함의는 공부가 필요함).

 Deconvolution Network는 Convolution Network를 좌우로 뒤집은 모양으로, unpooling, deconvolution, ReLU layer로 구성된다. Convolution Network는 activations(혹은 feature map)의 사이즈를 줄이는 반면, Deconvolution Network는 unpooling과 deconvolution을 통해서 activations의 사이즈를 키운다. Deconvolution Network의 더 자세한 사항은 아래에서 다루도록 한다.

 

2.1. Unpooling

Semantic Segmentation에서 Pooling의 문제점

 Convolution Network에서 Pooling은 이전 layer의 noise를 거르는 역할을 한다. max pooling이던 average pooling이던 receptive field에서 하나의 값을 도출하는데, 이를 추상화(abstracting activations)한다고 표현하기도 한다. Pooling은 필요한 activation만 다음 layer로 전달하기 때문에 Image classification 혹은 recognition에 유용하다. 하지만 receptive field 내의 공간 정보(spatial information)을 잃어버리는데, 객체의 정확한 위치를 파악하는 localization이 중요한 semantic segmentation에는 치명적인 문제가 될 수 있다.

Pooling으로 소실된 공간 정보를 복원하는 Unpooling

그림 4 Unpooling, 출처 : [2]

 Convolution Network에서 Pooling을 이용하기 때문에 공간 정보 소실 문제가 발생하는 것을 알았다. 본 논문에서는 이 문제를 해결하기 위해 Deconvolutional Network에 Unpooling을 도입한다. Unpooling은 Pooling과 정반대의 작업을 하는데, Input activations가 Pooling을 거쳐 작아진다면, 작아진 activations는 unpooling을 거쳐 원래 크기로 돌아간다. 그림 4에 이러한 과정이 잘 나타난다.

 Pooling과 달리 Unpooling할 때는 Input을 receptive field 사이즈의 어느 위치에 두어야 할지 고민일 것이다. Unpooling의 목적은 원래의 모양으로 돌아가는 것이기 때문에 Pooling할 때 선택된 값의 위치(switch variables)를 기억해둔다. 위치를 기억해두었다가 Unpooling할 때 input을 Pooling되기 전의 위치로 두는 것이다. 이때 나머지 receptive field에 해당하는 영역은 0으로 채워주기 때문에, Unpooling의 결과는 꽤 sparse하다. Unpooling은 이미지 복구(Image reconstruction)에서 굉장히 유용하다고 한다.[3]

 

2.2. Deconvolution

Densify

 Unpooling을 통해 작아진 activations를 크게 만들 수 있다. 하지만 앞서 살펴본 것과 같이 Unpooling의 결과는 대부분의 값이 0으로 채워져 굉장히 sparse한 상태라고 할 수 있다. Deconvolution은 Unpooling의 결과를 Dense하게 만들어 주는 역할을 한다. 

그림 5 Deconvolution, 출처 : [2]

 그림 5를 보면 Convolution은 filter window(3x3)의 activations로 하나의 값을 도출하고, Deconvolution은 반대로 하나의 activation을 filter의 모든 값과 곱해 filter window 크기(3x3)의 activations를 생성한다. Deconvolution 결과는 Dense해질 뿐만 아니라 사이즈도 커진다. 본 논문에서는 이전 Unpooling 결과의 크기에 맞춰서 Deconvolution 결과의 가장자리를 자른다. 

Learning Filter

 Deconvolution layer의 filter는 Convolution layer와 마찬가지로 학습된다. Convolution Network와 마찬가지로 Deconvolution Network도 점진적인 구조(hierarchical structure)를 사용해 여러 수준에서 디테일을 발견할 수 있다. lower layer의 filter는 전체적인 형상을, higher layer의 filter는 특정 클래스(class-specific)의 세세한 디테일을 잡아낸다. 기존의 deeplab v1[5]과 FCN[1] 등 convolutional layers를 기반으로 한 semantic segmentation은 이러한 class-specific 디테일 정보를 고려하지 않았다.

 

2.3. Layer Output으로 Deconvolution Network 이해하기

그림 3 deconvolution network 구조. Convolution network는 VGG-16을 사용했다. 출처 : [2]
그림 6 Deconvolution Network의 Activations 시각화. 출처 : [2]

 그림 6를  Deconvolution Network의 개별 층이 어떤 결과를 내는지 보여준다.  (a)는 Input Image이고 (b)부터 (j)는 layer 순서대로 feature 특징이 가장 잘 나타나는 Deconvolution layer와 Unpooling layer의 Output을 번갈아 가면서 보여준다. (b)는 마지막 14x14 deconvolution layer의 결과, (c)는 28x28 unpooling layer의 결과, (d)는 마지막 28x28 deconvolution layer의 결과, (e)는 56x56 unpooling layer의 결과, (f)는 마지막 56x56 deconvolution layer의 결과, (g)는 112x112 unpooling layer의 결과, (h)는 마지막 112x112 deconvolution layer의 결과, (i)는 224x224 unpooling layer의 결과, (j)는 마지막 224x224 deconvolution layer의 결과다. 

  unpooling과 deconvolution layer의 output는 명확한 차이를 드러낸다. deconvolution output이 unpooling output보다 Dense하다는 것을 볼 수 있다.(0값을 가지는 픽셀이 거의 없다. 0값을 가질 수록 짙은 파란색) unpooling이 될 때마다 activation map의 크기가 커지면서, 이전 deconvolution output의 noise가 제거된다. 그리고 deconvolution이 진행될 수록 전체적인 형상이 바퀴부터 자전거의 디테일한 특징인 뼈대, 페달을 더 정확히 segmentation하는 것을 볼 수 있다. 

 

그림 7 FCN-8s와 비교. 출처 : [2]

 Deconvolution Network는 unpooling layer와 deconvolution layer를 겹겹이 쌓으면서, 미세한 디테일도 포착할 수 있었다. 그림 7은 똑같은 Input image (a)에 대해서 FCN-8s[1] 과 Deconvolution Network의 semantic segmentation 결과를 비교한다. FCN-8s의 경우 강아지와 자전거의 전체적인 형상은 잘 포착했지만, 세밀한 경계 혹은 사람과의 구분에서는 Deconvolution Network의 성능이 우수한 것을 볼 수 있다.

 

 

3. Further Details of the Algorithm

3.1. Instance-wise segmentation

 본 논문에서는 semantic segmentation 문제를 Instance-wise segmentation 문제(개별 객체에 대한 segmentation)로 풀어간다. 이미지에서 관심 있는 객체(Instance, Proposal)가 있는 부분만을 가지고 segmentation한 다음, 모든 Proposal에 대한 결과를 합쳐서 최종 semantic segmentation 결과를 얻는다.

그림 8 객체 수가 늘어날 수록 디테일한 segmentation이 가능하다. 출처 : [2]

 Instance-wise segmentation은 다양한 scale의 객체를 다루기 때문에, 디테일한 segmentation을 학습할 수 있다는 장점이 있다. 그림 8에서 semantic segmentation에 다양한 객체(Instance, Proposal)을 사용할 수록 디테일하게 segmentation하는 것을 볼 수 있다. 이와 반대로 그림2에서 scale을 고정한 FCN이 좋지 않은 semantic segmentation 결과를 냈었다. 또한  관심있는 객체를 미리 찾아서 Deconvolution Network에 통과시키기 때문에 학습을 더 단순하게 만든다. 이미 ground truth에 가까운 위치정보를 이미 갖고 있기 때문이라고 본다. 따라서 학습에 필요한 search space나 memory가 줄어든다는 것이다. (search space는 계산 복잡도 이론과 관련있는 내용으로 보인다. 추가 공부가 필요함.)

 

3.2. (Optional) Conditional Random Field

추가 작성 필요

 

4. Training

 그림3에서 살펴봤듯이 논문에서 구현하고자 하는 구조는 기존 VGG16의 거의 두배에 가까운 크기이다. 따라서 학습해야할 parameter들이 굉장히 많은데, 학습에 사용할 PASCAL 데이터셋은 상대적으로 데이터양이 적은 문제가 있다. 본 논문에서는 데이터양의 한계를 극복하기 위해 배치 정규화(Batch Normalization)과 Two-stage Training을 사용했다.

 

4.1. Batch Normalization

 Internal covariate-shift problem은 깊은 신경망을 최적화하는데 가장 큰 걸림돌 중 하나이다. Internal covariate-shift problem이란 학습하는 동안 이전 layer의 parameter들이 update되어서 그 다음 layer의 입력 데이터의 분포가 바뀌는 문제를 말한다. 한번 입력 데이터의 분포가 바뀌면 바뀐 입력 분포대로 propagate되어서 그 다음 모든 layer의 입력 데이터 분포에 영향을 주기 때문에   이를 해결하기 위한 방법으로 제시된 것이 바로 배치 정규화(Batch Normalization)이다.[6]

 본 논문에서는 모든 layer마다 배치 정규화를 적용시켜, 입력 데이터의 분포를 standard Gaussian distribution으로 정규화했다. 연구 결과 배치 정규화를 적용하지 않으면 local minimum에 빠져 좋지 않은 결과를 냈다고 한다.

 

4.1. Two-stage Training

 배치 정규화는 local minimum에 빠지지 않도록 도움을 주지만, segmentation을 하기에는 부족한 데이터를 채워줄 순 없다. 본 논문에서는 이를 해결하기 위해 두 단계로 나눠서 학습을 진행했다. 첫 번째 학습에서는 object가 가운데에 있는 쉬운 이미지를 이용하고, 두 번째 학습에서는 object가 잘리거나 가장자리에 걸쳐있는 등 어려운 이미지에 대한 학습을 진행했다.

 

4.2. Training Data Construction

 학습 데이터를 어떻게 구축하는지 알아보기 전에 Instance-wise segmentation을 학습한다는 것을 유념해야 한다. 그래서 PASCAL 데이터셋의 이미지를 그대로 사용하지 않고 관심 객체를 기준으로 원래의 이미지를 잘라내는 식으로 데이터를 만든다.

Two Datasets for two-stage training

 Two-stage training을 위해서 두 개 데이터셋을 준비해야 한다. 첫 번째는 쉬운 데이터, 두 번째는 어려운 데이터다. 쉬운 데이터는 객체가 정가운데에 있는 데이터를 말한다. 객체가 딱 들어맞도록 bounding box를 그리고 객체 주변의 context도 고려하기 위해 bounding box를 1.2배 늘려서 잘라낸다. label할 때는 가운데 객체의 클래스에 대해서만 label하고 나머지는 배경으로 label한다. 어려운 데이터는 객체의 전체 모습이 포착되지 않고, 일부만 있는 데이터 등을 말한다. 이런 데이터를 얻기 위해서 Region Proposal(Object Proposal) 방법 중 하나인 Edge Box[7]를 이용한다. 이렇게 얻은 bounding box 데이터에 대해서는 모든 클래스에 대해 label한다. 그리고나서 첫번째 데이터와 동일하게 1.2배 한 다음 잘라낸다.

Post processing and Data augmentation

 두 데이터셋 모두 클래스별 데이터 수 균형을 맞추기 위해서 데이터가 부족한 클래스에는 데이터를 복제(redundant examples)해서 수를 늘려주었다. Data augmentation 방법으로는 random cropping과 random horizontal flipping을 이용했다. 먼저 데이터의 크기를 모두 250x250으로 맞춘 다음, 224x224 사이즈로 랜덤하게 자른다. 그리고 선택적으로 horizontal flipping을 적용한다. 이렇게 만들어진 데이터셋의 규모는 첫번째 데이터셋이 20만개, 두번째 데이터셋이 270만개로, deconvolution network를 처음부터 학습하기에 충분한 규모의 데이터셋이 되었다.

 

4.3. Other Details

Optimization은 SGD를 이용한다. 초기 학습률은 0.01, momentum은 0.9, weight decay는 0.0005로 설정한다. Convolution Network는 VGG 16을 사용하고, ILSVRC 데이터셋에 학습된 파라미터를 초기값으로 사용한다.Deconvolution Network는 평균을 0으로하는 정규분포로 초기화한다. 배치 정규화를 이용하기 때문에 모든 drop out layer는 제거하고, 검증 정확도(validation accuracy)가 개선되지 않을 때마다 학습률을 낮춘다. 논문에서는 Deconvolution Network가 학습 데이터와 검증 데이터를 모두 이용해 학습하지만, 검증 정확도를 기준으로 학습률을 조정하는 것이 꽤 도움이 되는 것을 확인했다고 한다. 첫 번째 학습과 두 번째 학습을 완료하기 까지 미니 배치 사이즈를 64로 했을 때 각각 20000번, 40000번 학습을 반복했고, 일수로는 각각 2일, 4일 정도 걸렸다. 이때 GPU 사양은 12기가 Nvidia GTX Titan X GPU 하나였다.

 

 

5. Inference

그림 9 Inference Process

5.1 Instance-wise segmentation using Edge Box

 두번째 학습 데이터셋을 만들때와 마찬가지로 Edge Box를 이용해 이미지의 관심 객체(object proposal, candidate proposal)를 뽑아낸다. 2000개 정도의 관심 객체 중에 객체 점수(objectness score)가 높은 50개를 뽑는다. 그림 8에서 Proposal이 많을 수록 Segmentation 결과가 더 좋아지는 걸 볼 수 있었는데, 실제 신경망을 구현할 때 50개 정도면 충분히 좋은 결과를 보인다고 한다. 50개 proposal은 Deconvolution Network를 통과해 각각 학습된 클래스 수(Cn)만큼의 채널을 갖는 Score Map이 된다.

 

5.2. Aggregating Instance-wise Segmentation Maps

 50개의 proposal으로 얻은 Segmenation Map(혹은 Score map)은 제각기 다른 크기를 가진다. Instance-wise Segmentation Map들로 전체 이미지에 대한 Semantic Segmentation Map을 얻기 위해서 모든 Instance-wise Segmentation Map을 합쳐야 한다.

 먼저 Instance-wise Segmentation Map을 원래 이미지 크기로 만들기 위해서 zero-padding을 해준다. 이때 Instance가 원래 이미지에서 어디에 위치해 있는지 알 수 있어야 한다. 이에 대해서는 논문에서도 직접적인 언급이 없었지만, proposal이 원래 이미지에서 있던 위치를 기억하고 있다가 나머지 부분에 대해서만 0으로 채워주는 것으로 보인다. 이 과정을 마치면 모든 Instance-wise Segmentation Map의 형상이 H x W x Cn이 된다.

 형상이 같은 Instance-wise Segmentation Map들을 합칠 때는 같은 위치에 있는 원소 값끼리(Element-wise) 계산한다. 계산 방법은 최대값 혹은 평균값을 구하는 방법이 있다. 수식으로는 아래 식1과 식2처럼 표현한다. g¡ ∈ R(W x H x C) 는 i번째 proposal의 segmentation map이다. ; 본 논문의 수식에서는 W x H 순서로 표기한다. W와 H는 proposal의 너비와 높이이고 C는 모든 클래스의 수다. 이때 G¡는 g¡를 zero-padding한 후 원래 이미지와 같은 크기가 된 Instance-wise Segmentation Map이다. 식 2에서는 평균 계산과 합 계산의 의미가 다르지 않기 때문에 합 계산으로 표기한 것으로 보인다.

식 1 Element-wise maximum. 출처 : [2]

 

식 2 Element-wise average. 출처 : [2]

 

 Aggregated Segmentation Map에 Softmax를 적용해 원본 이미지에 대한 Class conditional probability map을 얻을 수 있다.  Class conditional probability map은 최종적으로 fully-connected CRF[8]를 적용해 fixel-wise labeling 한다.

5.3. Ensemble with FCN

그림 10 Ensemble with FCN

 그림 7에서 기존의 FCN 기반 Segmentation 모델은 객체의 전체적인 형상을 잡아내기엔 좋지만, 디테일한 부분을 잡아내는 성능이 안 좋다는 것을 확인했다. 반대로 본 논문의 알고리즘(이하 DeconvNet)은 디테일한 segmentation 성능이 좋지만, 너무 디테일한 부분까지 segmentation하다 보니 잘못 label되는 경우가 있다. 그림 11은 DeconvNet이 FCN보다 segmentation 결과가 더 좋은 모습을 보인다. 그림 12는 FCN이 DeconvNet보다 결과가 좋은 경우를 보여준다.

 FCN과 DeconvNet은 서로 보완할 수 있는 결과를 보여준다. 본 논문에서도 이러한 상호 보완적 특성을 이용하기 위해 두 모델의 결과를 합하는(Ensemble) 시도를 한다. 그림 10과 같이, 한 이미지를 두 모델에 넣어 각각 Segmentation map을 얻는다. 두 Segmentation map을 각 픽셀 별(element-wise, pixel-wise)로 평균을 내어 최종 Segmentatioin map을 얻게 된다. 그림 13은 FCN, DeconvNet 모두 Segmentation 결과가 좋지 않은 경우인데, 이때 앙상블(EDeconvNet)을 이용해 성능을 개선한 것을 볼 수 있다. 

 그림 11, 12, 13의 EDeconvNet+CRF는 앙상블 모델에 CRF를 추가 적용한 결과이다. 논문에서는 질적(qualitative)으로는 크게 개선되지는 않았지만(EDeconvNet 결과와 비교해 저 정확히 segmentation 되었다는 느낌으 크지 않다.), 양적(quantitative)으로는 개선되었다고 한다. (모델 성능 지표(mean IoU) 기준)

그림11 Examples that our method produces better results than FCN[1]. 출처 : [2]
그림12 Examples that FCN produces better results than our method. 출처 : [2]
그림13 Examples that inaccurate predictions from our method and FCN are improved by ensemble. 출처 : [2]

 

 

6. Performance

표 1  Evaluation results on PASCAL VOC 2012 test set. (Asterisk (∗) denotes the algorithms trained with additional data.) 출처 : [2]

 성능 평가는 PASCAL VOC 2012 benchmark 데이터셋을 대상으로 Intersection over Union (IoU) 지표를 이용했다. 본 논문에서 소개한 모델은 DeconvNet, DeconvNet+CRF, EDeconvNet, EDeconvNet+CRF다. 추가 데이터를 이용한 WSSL, BoxSup 모델을 제외한 기존 모델 중에서는 DeepLab-CRF(Deeplab v1) 모델이 가장 뛰어난 성능을 보인다. DeconvNet도 단독으로만 사용했을 때는 DeepLab-CRF 모델보다는 성능이 떨어지지만, FCN과 함께 사용하는 앙상블 모델이나 CRF를 추가한 모델에서는 더 좋은 성능을 보인다.

 

 

7. Summary

 작성 중

 

 

8. Reference

[1] J. Long, E. Shelhamer, and T. Darrel. Fully convolutional networks for semantic segmentation. In CVPR, 2015.

[2] Hyeonwoo NohSeunghoon HongBohyung Han. Learning Deconvolution Network for Semantic Segmentation. In 2015.

[3] M. D. Zeiler and R. Fergus. Visualizing and understanding convolutional networks. In ECCV, 2014

[4] Computing Receptive Fields of Convolutional Neural Networks. https://distill.pub/2019/computing-receptive-fields/

[4] Transposed Convolution Demystified. https://towardsdatascience.com/transposed-convolution-demystified-84ca81b4baba

[5] L.-C. Chen, G. Papandreou, I. Kokkinos, K. Murphy, and A. L. Yuille, Semantic image segmentation with deep convolutional nets and fully connected CRFs. IN ICLR, 2015

[6] S. Ioffe and C. Szegedy. Batch normalization: Accelerating dep network training by reducing internal covariate shift. arXiv preprint arXiv:1502.03167, 2015

[7] C. L. Zitnick and P. Dollar. Edge boxes: Locating object proposals from edges. In ECCV, 2014

[8] P.Krahenbuhl and V. Koltun. Efficient inference in fully connected crfs with gaussian edge potentials. In NIPS. 2011.