Contents

[Paper Review]DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution,and Fully Connected CRFs(DeepLab V2)

개요

  1. DeepLab V1에 이어서 DeepLab V2에 대한 논문 리뷰를 해보려고 한다.

  1. V1과 엄청나게 큰 차이는 없지만 방법론의 변화가 있었다.

Abstract

  1. 본 논문에서 해당 모델(DeepLab-V2)에서 사용하고 있는 세가지의 주된 방법을 설명하고 있다.

  1. 첫 번째로 Atrous convolutional이다. 이는 파라미터의 수 증가 없이 더 많은 context들을 포함하여 FOV(Field of View)를 증가 시킨다.

  1. 두 번째로 Atrous spatial pyramid pooling (ASPP)이다. 이는 multi scale로 image context를 다양한 context들을 효과적으로 포착이 가능하다.

  1. 따라서 ASPP를 사용하게 되면 더욱 robust하게 객체를 분할 할 수 있다고 설명한다.

  1. 세 번째로 Conditional Random Field (CRF)이다. 이는 max-pooling, downsampling의 결합이 배치되어 invariance가 있던 것들을 CRF를 사용하면서 질, 양적으로 localization 성능을 향상시킨다고 나온다.

Introduction

  1. hand-crafted feature보다 더 좋은 성능을 나타내기 때문에 Deep Convolutional Neural Networks (DCNN)이 classification, object detection에서 많이 사용된다.

  1. 이러한 성공을 이끈 것은 image 변형에 대한 추상적인 data representation을 학습하게 하는 built-in invariance(불변성)이다.

  1. 하지만 이런 invariance는 classification task에는 좋지만 spatial information이 undesired한 segmentation에는 좋지 않다.

  1. 따라서 본 논문에서는 이런 단점을 극복하기 위해 아래 세가지 사항을 고려 했다.
  • reduce feature resolution
  • existence of object at multiple scale
  • reduce localization accuracy

  1. 첫 번째 challenge는 max-pooling과 downsampling이 반복되어서 나타낸다. 이는 spatial resolution을 줄이기 때문에 안좋다.

  1. 이를 해결하기 위해서 우린 맨 마지막 단의 몇개의 maxpooling layer를 제거하고 높은 sampling 비율(더 높은 해상도)로 계산하기 위하여 대신에 upsample 하는 filter를 추가한다.

  1. 이때 filter는 hole algorithm을 사용한 atrous convolution을 추가한다.
  • 실제 atrous convolution과 hole algorithm을 사용하여 계산량을 증가시키지 않고 FOV를 증가시켰다.

  1. 두 번째 challenge는 기존의 방법은 동일한 이미지를 rescale 버전을 DCNN에 입력한 후 얻은 feature map을 aggregate한다.

  1. 이 방법은 performance는 증가하지만 computing overhead가 발생한다.

  1. 따라서 본 논문에서는 spatial pyramid pooling (SPP)을 사용하여 convolution 전에 주어진 feature layer를 resampling 하는 효율적인 구조를 제시한다.

  1. 이것은 원본 이미지를 여러(Multiple) 필터로 보는 것과 같아서 효율적인 FOV, useful한 multi scale의 관점에서 다양한 image context를 포착할 수 있다.

  1. 우린 병렬로 atrous convolutional layer를 사용한다. 이를 ‘atrous spatial pyramid pooling’ (ASPP)라고 불린다.

  1. 세 번째 challenge는 object-centric classifier는 공간적 변형에 대한 불변성이 필요하다.

  1. 이를 해결하기 위해선 마지막 segmentation결과를 계산하기 위한 hyper-column의 특징을 뽑는 skip layer를 사용하여 해결한다.

  1. 미세한 edge detail을 포착하기 위하여 fully connected pairwise CRF를 사용한다. 또한, CRF랑 DCNN이랑 연결했을 때 SOTA를 달성했다.

  1. 마지막으로 따라서 본 논문에서 DCNN 모델로 VGG-16, ResNet-101을 사용했고 Fully convolutional 한 층을 사용하였다.

Methods

  1. 앞에서 말한 세가지 방법에 대해 좀 더 자세히 설명하도록 하겠다.

Atrous Convolution for Dense Feature Extraction and Field-of-View Enlargement

  • x[i]: input
  • w[k]: filter (length: K)
  • r: rate,stride
  1. 1차원에서 atrous convolution의 기존 식은 위 그림과 같다.

  1. 하지만 atrous convolution을 사용 하기 위해 위 그림과 같이 r의 값을 조절하여 high resolution input feature map에도 사용할 수 있다.

  1. 또한 위 그림 처럼 2-D일때의 feature map의 특징을 보면 더욱 뚜렷한 것을 확인할 수 있다.

  1. 기존 방식대로 커널을 사용하게 된다면 1/4 의 이미지의 위치에 있는 데이터만 얻을 수 있게 된다. 하지만 atrous convolution을 사용하게 된다면 모든 이미지에 대한 정보를 얻을 수 있기에 spatial resolution이 증가한다.

  1. atorous convolutional layer를 모든 층에 사용하기엔 비용적 오버헤드가 발생하여 하이브리드 전략을 취한다.

  1. 따라서 본 논문에서는 마지막 풀링, convolution layer에 atrous convolution layer를 추가하여 (stride = 2) 4배로 늘리고, 이중 선형 보간법을 사용해 8배로 늘려 원래 이미지 해상도에서 특징 맵을 복원한다.

  1. 이런 atrous convolution은 어떤 레이어에서든 FOV(field of view)를 임의로 확대할 수 있게 된다.

  1. 이런 atrous convolution을 구현하기 위한 방법으로는 두가지 방법이 있다.

  1. 첫 번째 방법으로는 필터를 업샘플링하여 구멍(0)을 삽입하거나, 동등하게 입력 특징 맵을 희소하게 샘플링하는 것입니다. (input feature map에 0을 추가)

  1. 두 번째 방법으로는 입력 특성 맵을 atrous 합성곱 비율 r에 해당하는 비율로 샘플링(subsample)하는 것이다.
  • r×r 가능한 시프트 각각에 대해 해상도가 줄어든 r^2개의 맵을 생성
  • 중간 특성 맵에 표준 합성곱을 적용하고 이를 다시 원래 이미지 해상도로 재조립합니다(reinterlace)
  • atrous 합성곱을 일반 합성곱으로 변환함으로써 최적화된 합성곱 루틴을 사용할 수 있게 된다.

Multiscale Image Representations using Atrous Spatial Pyramid Pooling

  1. 다음으론 Atrous Spatial Pyramid Pooling (ASPP)에 관한 설명이다. DCNN다양한 size의 object를 포함하고 있다. 따라서 segmentation에서 사용하기 위하여 2가지 방법을 사용한다

  1. 첫번째 방법으로는 다음과 같다.
    • standard multiscale processing을 계산한다.
    • 같은 parameter를 공유하는 DCNN branch를 병렬로 3개의 version을 rescale한다.
    • 이를 이중선형 보간을 한다. 그리고 이를 융합(fuse)한다.
    • 이 방법을 training, testing 둘다 사용 한다.
    • 하지만 그만큼의 computing resource의 문제가 있다.

  1. 두번째 방법으로는 다음과 같다.

    • R-CNN의 방법에서 영감을 얻어 SPP(임의의 scale의 지역을 single scale의 conv 특징을 resampling 하면서 정확하고 효율적이게 분류하는 방법)의 방법을 사용한다.
    • 다른 sampling rate별로 병렬적으로 multiple 한 atrous conv layer를 사용하는 구조를 지닌 불변성을 구현했다.
    • 특징 추출은 각각의 sampling rate 별로 이루어지고 각각 다른 branch로 진행된다.
    • 최종 결과를 만들기 위해 융합(fuse)된다.
  2. 논문에는 없지만 아래에서 SPP에 대해서 좀 더 알아보겠다.

Spatial Pyramid Pooling (SPP)

  1. 기존 CNN에서는 고정된 크기의 이미지만 입력으로 받았다. 그 이유는 Fully-Connected layer(FC)때문이었다.

  1. 이는 필터가 슬라이딩 윈도우 방식으로 훑어가는 Object Detection에서 치명적인 단점이었다.

  1. 왜냐하면 필터로 탐지되는 객체의 크기는 다양할 수 있기 때문이다.

  1. 이를 해결하기 위하여 Spatial Pyramid Pooling (SPP)방법이 고안되었다.
  1. 위 그림처럼 arbitrary(임의의)한 input이 들어와도 피라미드 풀링을 하면 feature를 고정적인 사이즈로 압축이 가능 한 것을 확인 할 수 있게 된다.
  • 이렇게 다양한 사이즈로 풀링을 진행하면, 정보(context)가 더욱 다양해지는 효과가 있습니다. 다양한 사이즈의 객체를 검출하는 데에 유리한 장점이 있게된다.

  1. 따라서 위 그림처럼 DeepLab-V2에서는 이러한 SPP의 필터를 atrous convolution filter로 변경한 구조를 제안했다.

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

  1. 다음으론 Conditional Random Fields (CRF)에 대한 설명이다.

  1. Segmentation에서는 localization 문제를 해결했어야 했는데 이 문제를 해결하기 위해 이전 연구는 두 가지 방향을 추구했다.
  • 첫 번째는 객체 경계를 더 잘 추정하기 위해 컨볼루션 신경망의 여러 레이어에서 정보를 활용하는 것이다.

  • 두 번째는 사실상 localization 작업을 low-level 분할 방법에 위임하는 super-pixel representation을 사용하는 것이다.

    super-pixel: pixel들을 색 등의 저레벨 정보를 바탕으로 비슷한 것끼리 묶어서 커다란 pixel을 만드는 작업이다.

    • 따라서 super-pixel로 대상의 경계를 파악하여 localization이 강화가 된다.

  1. 본 논문에선 localization 문제를 해결하기 위하여 CRF방법을 사용했는데 이 방법은 DeepLab-V1에서도 사용을 한 방법이다. 이를 DeepLab-V2에서 더욱 발전을 시켰다.

  1. 기존 연구에서는 공간적으로 가까운 노드들에게 동일한 레이블을 할당하는 방식을 취했다. (short-range CRF)
  • 이를 통해 노이즈가 있는 분할 맵을 부드럽게 만드는 데 사용되었다.

  1. 하지만 현대의 DCNN은 일반적으로 매우 부드럽고 균일한 분류 결과를 생성하기 때문에 short-range CRF가 좋지 않았다.
  • 왜냐하면 목적 자체가 부드러워 지게 만드는 것이 아니라 localization을 해결하기 위함이기 때문이다.

  1. 따라서 short-range CRF대신 fully connected CRF을 고안하여 성능 향상이 기여하였다.

Reference