JLOG

[Paper Review]DeepLabV2 논문 - DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution,and Fully Connected CRFs 본문

논문정리/Sementic Segmentation

[Paper Review]DeepLabV2 논문 - DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution,and Fully Connected CRFs

정정선선 2021. 3. 25. 16:31

PAPER

 

DeepLabV2


DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution,and Fully Connected CRFs

 

 

 

Abstract

일반적인 convolution model은 연산량을 줄이기 위해 작은 사이즈(3x3, 5x5)의 커널을 사용한다. 네트워크가 충분히 깊지 않으면 covered receptive field가 좁아 커다란 object를 다 cover하지 못할 수 있다.

 

DeepLabV2는 VGG16, ResNet101에 일반적인 convolution을 ASPP(Atrous spatial pyramid pooling)으로 대체해 연산량은 적지만 큰 범위의 receptive field를 커버하도록 하였으며, max pool, stride 2를 가진 conv를 atros conv로 대체하여 비교적 큰 feature map을 가졌다. CRP(Conditional Random Field)를 이용해 predicted sementic information을 더 자세하고 조밀하게 recovering 하였다. PASCAL VOC-2012에서 79.7%의 IOU 결과로 1등을 해 높은 성능을 증명했다.

 

Technical Summary

ASPP - 여러가지 rate를 가진 atrous convolution(=dilated convolution)을 합쳐 다양한 크기의 object와 image context 정보를 알 수 있다.

atrous convolution(=dilated convolution) - 적은 계산량으로 넓은 범위 receptive field를 cover하기 위해 사용

CRF - segmentation을 잘 조절해서 더 detail하게 만들어주는 기법(자세히는 이해가 안감)

 

 

 

Introduce

Classification에서 DCNN를 사용하면 물체의 방향, 위치가 변해도 그 물체를 인식할 수 있는 invariance가 중요하다. 즉, 추상데이터 중요 segmentation에서 별로 안중요

 

3 chanlledge

  1. reduce feature resolution기존 DCNN 모델에서는 receptive field가 더 많은 영역을 cover하도록 pooling과 stride를 사용해 down sampling을 진행했다. 하지만, feature map의 사이즈를 계속 줄이면서 feature resolution이 저하되는 문제점이 발생했다.또한, upsampling이 필요한 구간에서는 deconvolution보다 연산이 간단한 bilinear interpolation을 사용하였다.
  2. 그래서 본 논문에서 atrous convolution을 제안해 적은 연산량으로도 넓은 field를 cover할 수 있도록 하였다. atrous convolution을 통해 이미지 사이즈를 보존할 수 있게 되었고, 결과적으로 원래의 DCNN 보다 feature map의 사이즈가 더 크다.

 

2. existence of objects at multiple scale

이미지에는 다양한 크기의 물체들이 존재한다. 좁은 공간부터 넓은 공간을 적은 연산량을 가지고 cover하기 위해 다양한 rate의 atrous convolution을 사용하여 다양한 공간의 feature를 추출했다.

성능이 향상 되지만, 기존 atrous convolution보다 계산량이 증가한다는 단점이 있다.

 

 

3. reduced localization accuracy due to DCNN invariance

DCNN은 깊은 layer일 수록, 공간적 정보를 소실하고 물체의 추상적인 정보를 가지게 된다. model의 output에 공간적 정보를 더하기 위해 윗단의 convolution layer의 feature maps의 정보를 합해주는 skip layer를 사용할 수 있고, CRF(fully connected conditional random field)를 사용해 매우 자세하게 segmentated 정보를 얻을 수 있다. 본 논문에서는 CRF 방식을 사용해 소실된 위치 정보를 회복했다.

 

(invariance : 물체의 방향, 위치와 같은 상태가 변해도 그 물체를 인식할 수 있는 불변성)

 

 

 

DeepLab V2은 ResNet101을 기반으로 DCNN+CRF 구조를 생성했으며, VGG16을 사용한 DeepLab V1보다 더 높은 성능을 가졌다.

FCN를 CNN로 변경하여 spatial한 정보를 보존하였고, atrous conv를 사용해 feature resolution의 저하를 막았다(기존 8 pixels feature map → 32 pixels feature map). CRF로 결과를 refine하여 더 정확하고 detail한 semantic 결과를 얻을 수 있었다.

 

 

DeepLab의 장점

  • 속도가 빠르다. (DCNN operation 8 FPS on NVidia Titan X GPU, Mean Field Inference for the CRF requires 0.5 secs on a CPU)
  • 정확하다. (PSCAL VOC 2021 1st)
  • DCNN와 CRF로 구성되어 있어 간단하다.

 

 

 

Methods

DeepLab V2의 process 요약도

 

 

3.1 Atrous Convoltuion for Dense Feature Extraction and Field-of-View Enlargement

더 넓은 feature map을 cover하기 위해 기존 pooling, striding을 통해 공간 resolution이 감소했고, 작아진 feature map을 복원하면서 성능이 낮다는 문제가 있었다. 본 논문에서는 atrous convolution을 활용하여 down sampling을 하지 않고 큰 범위의 정보를 추출하는 방법을 제시했다.

 

atrous convolution

출처 : https://towardsdatascience.com/review-dilated-convolution-semantic-segmentation-9d5a5bd768f5

dilated convolution과 동일한 개념으로서, convolution에 rate만큼의 구멍(hole)을 두어 적은 연산량으로 넓은 범위를 cover할 수 있는 convolution이다.

왼쪽 사진은 rate가 2일 때 2D convolution을 진행하는 dilated convolution이고, 오른쪽은 rate에 따른 kernel의 모양이다. 빨간 점에 해당하는 부분이 input feature map과 곱해진다.

 

 

filter에 hole을 만듬으로서 dense feature map을 마치 sparse feature map처럼 보고 convolution을 진행하고 있다. 즉, 원본의 형태를 유지하며 화질이 작아진 이미지를 convolution한다고 생각할 수 있고, 큰 범위의 feature를 추출할 수 있다.

 

 

 

 

기존 down sampling - conv - upsampling을 진행한 방법보다 atrous conv를 진행한 방법이 더 높은 r성능을 가지는 것을 확인할 수 있다.

 

 

기존 model(VGG16, ResNet101)에서 resolution 저하를 발생시키는 layers(pooling, convolution with stride 2...)를 stride 1, rate 2를 갖는 atrous convolution으로 대체했다. 하지만 깊은 레이어까지 높은 resolutiond이 유지됨으로, 갈수록 계산량이 증가한다는 문제가 발생했다.

그래서 trade off 관계에 있는 efficiency와 accuracy를 적절한 값을 가지게 하기 위해 1/4 사이즈로만 이미지를 축소시켰으며, 이미지가 과도하게 축소되지 않아 bilinear interpolation을 사용해도 괜찮은 성능을 갖는다는 것을 실험을 통해 확인했다.

 

 

atrous convolution 적용방법

1) kernel에 hole을 추가해 feature map을 sampling

2) 입력 feature map을 rate만큼 sub sampling

→r^2만큼 감소된 해상도를 얻기 위해 deinterlacing

→중간 feature map에 표준 conv를 적용해 원래의 이미지 해상도로 reinterlacing

 

 

 

+추가) deinterlacing, reinterlacing이란?

deinterlacing

interlaced image를 deinterlacing으로 바꿔 화질을 개선한 것

 

interlaced image란 텔레비전과 같은 영상 장치에 아날로그 BW를 높이지 않고 표시할 영상 품질을 개선하기 위한 방식으로서 홀수줄 짝수줄을 번갈아서 출력한다는 개념

 

본 논문에서는 atrous convolution에 적용하기 위해 input feature map을 각 구역에 따라 sub sampling 했다는 뜻으로 deinterlacing이란 용어를 사용한 것 같다.

 

 

3.2 Multiscale Image Representations using Atrous Spatial Pyramid Pooling(ASPP)

DeepLabV2는 효과적으로 다양한 범위 공간의 특징을 얻기 위해 feature map의 한 픽셀 값을 얻기 위해 4개의 atrous filter를 사용했다. 각 convolution을 적용한 뒤에 얻은 값을 더해 마지막 결과를 생성한다. 1개의 atrous filter를 사용한 경우보다 성능이 증가하지만 계산량도 증가한다는 단점이있다.

 

+이때 더한다는 의미는 단순히 + 연산을 해 scalar 값을 가지는 것보다 벡터 형식을 가져 사용하는 것으로 추측할 수 있다. - code level에서 확인해 볼 것

 

(DeepLab V3에서 사용된 구조, ASPP 동작을 더 직관적으로 볼 수 있음)

 

 

3.3 Structured Prediction with Fully-Connected Conditional Random Fields for Accurate Boundary Recovery

fully connected CRF를 이용해서 semantic 정보를 recovering하여 더 자세한 semantic segmentation 결과를 얻는다.

 

원래 CRF 기법은 segmentation noise를 smoothing 하기 위하여 사용되었다. 인접한 픽셀의 segmentation label을 가진 것을 선택하여 잘못 예측한 값들을 날린다.

 

DeepLabV2는 더 상세하게 segmentation을 하기 위해 local-range CRF를 사용했고, localization에 성능을 개선 가능성이 있지만, thin layer만큼의 localization 정보를 가진 성능이 나오지 않을 수 있고, discrete optimization problem 때문에 연산량이 크다는 단점이 있다.

 

본 논문에서는 기존 CRF를 수정해 효과적으로 approximate probabilistic inference를 하도록 하였다.

 

 

 

최근에는 잘 사용되지 않는 기법이라고 한다.

CRF는 Markov random field의 조건부 기법(CMRF)와 유사하게 생각할 수 있다. 2^pixel의 경우의 수 중 best한 label을 찾기 위하여 확률 모델링을 이용하는데 경우의 수가 너무 많기 때문에 근사한 값들을 사용하게 된다. 하지만 CNN과 같은 딥러닝 모델을 사용하면 굳이 근사하지 않아도 확률적인 값을 얻을 수 있어 잘 사용하지 않는다고 한다.

아직 직관적으로는 이해가 잘 되지 않는데 추가로 보고 싶다면 graph cut에 관한 논문을 찾아보는 것이 좋다.

 

 

 

 

Experimental Results

4.1 PASCAL VOC 2012

VGG16의 fc6 layer를 atrous conv로 변경하며 아래와 같은 구조를 사용

pretrained VGG-16 for ImageNet를 사용했다.

 

parameter setting

batch size : 20

lr : 0.001 (multiplying the learning rate by 0.1 every 2000 iterations)

momentum : 0.9

weight decay : 0.0005

 

DCNN을 fine tuning 후에, CRF parameter를 setting

w2 = 3, σγ = 3

w1, σα, σβ은 cross-validation을 통해 값을 찾았다(on 100 image from val).

 

결과

PASCAL VOC 2012의 test set의 경우 70.3% mean IOU를 기록하고 1등 했다.

 

Batch Size와 성능의 관계에 대해서 더 궁금하다면 "A Practical Guide to Training Restricted Boltzmann Machines"을 읽어보고 공부하는 것을 추천한다.

 

Comments