Contents

[Paper Review]Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs(DeepLab V1)

개요

  1. Image Segmentation 문제를 해결하기 위해 제안된 대표적인 딥러닝 모델인 DeepLab V1에 대한 논문 리뷰를 해보려고 한다.

Abstract

  1. 기존 Deep Convolutional Neural Networks이하(DCNN)의 마지막 층에서 충분한 localized가 이루어지지 않았기 때문에 고수준 작업(이미지 분류)에서 좋은 성능을 발휘한다.

  1. 그러나 이런 불변성 특성 때문에 마지막 층의 응답은 특정 객체의 위치를 세밀하게 나타내지 못하여, 각 픽셀의 정확한 분류가 필요한 객체 분할(segementation)에는 단점이 될 수 있다.

    불변성이란 특정 객체의 위치나 회전 여부에 상관없이 객체의 가장 두드러지는 특징을 추출할 수 있다는 것이다.


  1. 따라서 이러한 단점을 극복하기 위해 CRF랑 DCNN 마지막 층과 결합 하고, GPU에서 초당 8 프레임의 계산이 가능하게 한 hole 알고리즘을 앞으로 설명할 것 이다.

Introduction

  1. 지난 2년 동안 DCNN은 이미지 분류, 객체 탐지 등 고수준 문제에서의 컴퓨터 비전 시스템의 성능을 향상시켰다. End-to-end 방식으로 학습된 DCNNSIFT, HOG과 같은 의존 시스템 보다 현저히 더 나은 결과를 제공한다.

  1. 이러한 이유는 불변성 덕분이었지만 지역적 정확도를 원하는 pose estimation, semantic segmentation등의 작업(low-level task)에서는 방해가 된다.

  1. signal down-samplingspatial insensitivity(invariance)이라는 두가지의 어려움이 있었다.
  • signal down-sampling은 반복되는 downsampling 작업과 max-pool작업 때문에 낮아지는 해상도가 문제였다.
    • 본 논문에서는 해당 문제를 atrous (with holes)알고리즘을 통해 해결을 하려고 한다.
  • invariance은 DCNN의 특징 때문에 공간적 정확성을 본질적으로 제한시키는 문제가 있다.
    • 본 논문에서는 해당 문제를 fully-connected Conditional Random Field(CRF)로 해걸하려고 한다.

  1. CRCKrahenbühl & Koltun이 제안한 fully connected pairwise를 사용한다. 이는 부스팅 기반의 픽셀 분류기의 성능을 크게 향상시킨다.

  1. 아래는 DeepLab system의 세가지 큰 장점들 이다.
    • speed
      • atrous algorithm
    • accuracy
      • PASCAL semantic segmentation challenge에서 SOTA달성
    • simplicity
      • DCNN & CRFs으로 구성되어 있다.

  1. Segmentation에 대한 여러 work들이 있었지만 DeepLabFCN과 비슷하게 픽셀 표현에 직접 작동한다.

  1. FCN, 다른 모델들과 DeepLab의 차이점은 CRFDCNN-based unary term의 결합이라고 볼 수 있다.

  1. 본 논문 이후 더 향상된 방법을 사용한 여러 DeepLab의 버전(V2,V3)들이 나와 있다.

CONVOLUTIONAL NEURAL NETWORKS FOR DENSE IMAGE LABELING

/images/paper/deeplab-v1/dcnn-deeplab-v1.png
[그림 1] DeepLabv1의 DCNN 구조
  1. VGG16으로 모델을 구성하였으며 더 효율적인 특징 추출기를 사용하였고 그것을 기반으로 finetunedre-purposed를 하였다.

EFFICIENT DENSE SLIDING WINDOW FEATURE EXTRACTION WITH THE HOLE ALGORITHM

  1. 본 논문에선 효과적인 CNN 특징 추출을 위한 방법에 대해서 설명을 한다.

  1. 먼저 그것을 구현하기 앞서 VGG16FCN과 같이 FC층Fully Convolutional층으로 변환을 하고 최종 이미지가 원본의 해상도를 얻게 변환을 한다.

  1. 이때 32 pixel 간격으로 매우 드물게 계산이 되기 때문에 이를 8 pixel로 변경이 필요하였다. 따라서 마지막 2개의 pooling층을 스킵하였다.
    • 32 pixel로 한다면 localization이 떨어지기 때문에 8 pixel로 변경이 필요했다.
    • 또한 VGG16의 네트워크는 5개의 pooling층이 존재하는 네트워크이다. 따라서 마지막 2개를 스킵한다면 원본 해상도의 1/8만큼의 해상도가 나오게 되는 것이다.

  1. 원본 이미지의 해상도를 복구 하기 위하여 즉, upsample을 하기 위하여 filter에 zero를 추가하여 sparse한 filter를 얻는 방식의 hole algorithm을 사용하였다.

  1. 따라서 마지막 3개의 convolutional은 2배가 되었고 first fully connected layer는 4배가 되었다.

  1. 이때 필터를 그대로 유지하면서 각각 입력 스트라이드 2 또는 4 픽셀을 사용하여 적용되는 특징 맵을 드문드문 샘플링함으로써 이 방법을 더 효율적으로 구현할 수 있게 된다.

/images/paper/deeplab-v1/atrous-conv.png
[그림 2] Atrous Convoltion
  1. 이때 나타나는 hole algorithm (atrous convolution)이란 필터 중간 중간에 0을 채워 넣어서 학습해야할 파라미터 수는 유지하면서 보다 넓은 영역(Receptive Field)을 참조하게끔 하는 방법이다.

    • Receptive Field(수용 영역): 특징 추출에 사용되는 한 개의 뉴런이 받아들일 수 있는 입력 데이터의 영역

    • 따라서 atrous convolution을 사용하면 Receptive Field가 넓어지며 localization이 완화되는 효과가 있다.

  1. 따라서 이런 atrous convolution을 사용하게 된다면 두가지의 이점이 발생한다. 첫번째는 공간 정보 손실을 줄여 segmentation을 용이하게 한다.

  1. pooling 층을 이용할 경우 해상도가 낮아지고, invariance 때문에 공간정보는 소실돼 결국에는 localization가 떨어지는 치명적인 단점이 있다. 하지만 atrous convolution을 이용할 경우 해상도와 공간 정보를 보존하면서도 rate를 조절해 field of view 크기를 키울 수 있다.

  1. 또한 위 그림을 보면 일반 pooling - upsample 의 방법보다 atrous convolution의 방법이 더 밀도있게 표현된 것을 확인이 가능하다.

  1. 두번째로는 계산 비용의 이점이 발생한다. 0을 이용하여 실제로 receptive field는 늘어나지만 계산 파라미터 수는 늘지 않는다. 따라서 실제로 논문에서는 atrous convolution을 사용하지 않는 FCN보다 훨씬 빠른 성능을 보인다고 나타난다.
    • sevaral days vs 10 hours

DETAILED BOUNDARY RECOVERY: FULLY-CONNECTED CONDITIONAL RANDOM FIELDS AND MULTI-SCALE PREDICTION

  1. classification accuracylocalization accuracy에는 trade off가 있다.

  1. Deeper model (max-pool)은 classification task에는 훌륭하지만 increased invariance와 큰 receptive fields는 위치 추론을 어렵게 한다.

DEEP CONVOLUTIONAL NETWORKS AND THE LOCALIZATION CHALLENGE

  1. 기존 연구에서 이런 localization 문제를 해결하기 위하여 아래의 두가지 방법이 있어왔다.
  • 여러 층으로 부터 information들을 모으는 방식 (객체의 경계 파악 용이)
  • super-pixel을 사용하여 localization task를 low-level segmentation으로 미루어 사용이 가능하게 하는 방식
    • Super pixel: 이미지를 비슷한 특성을 가진 작은 영역들로 그룹화하는 컴퓨터 비전 기술이다.


  1. 하지만 본 논문에서는 localization을 극복하기 위하여 CRF라는 방식을 사용하였고 이 다음에 설명할 것 이다.

FULLY-CONNECTED CONDITIONAL RANDOM FIELDS FOR ACCURATE LOCALIZATION

  1. CRFimage segmentation에 적용하면 한 픽셀의 클래스를 예측할 때 다른 모든 픽셀과 상호 작용하는 관계를 파악하여 각 픽셀에 대한 최적의 label을 할당한다.
    • CRF: 각 픽셀이 특정 클래스에 속할 확률을 계산하여 최종 Segmentaion 결과를 도출하는 것을 말한다.

/images/paper/deeplab-v1/score-map.png
[그림 3] DCNN layer score map
  1. 하지만 위 그림(DCNN output)에서 확인 할 수 있듯이 우리는 detail한 local 구조를 원하기 때문에 short-range CRF는 안좋을 수 있다.
  • 보통 CRF는 예측 과정간 발생하는 noise들을 없애기 위해 사용되었고 보통 중간 단계에서 후처리를 하는 Short range CRF가 대부분 이다.

  1. 따라서 본 논문에서는 객체의 테두리를 정확하게 예측하기 위한 방법으로 fully connected CRF를 사용하였다.
    • 위 그림은 CRF에 대해 더욱 명확히 이해할 수 있게 되는데 fully connected CRF를 사용하게 되면 테두리의 정보가 detail해지는 것을 확인 할 수 있다.

/images/paper/deeplab-v1/deeplab-model.png
[그림 4] Model Illustration
  1. 위 그림은 deeplab의 지금까지의 설명을 담은 deeplab model의 전체적인 흐름을 나타낸 그림이다.
    • 1/8크기의 coarse score-map을 구하고 bi-linear interpolation을 통해 upsample을 한다.
    • 이 결과는 CRFunary term에 해당하게 되어서 CRF 과정을 거치게 되면 최종 결과물이 나오게 된다.
      • unary term: 각 픽셀이 특정 클래스에 속할 확률

    • iteration이 반복이 될 수록 더 정확해지는 것을 확인할 수 있다.

MULTI-SCALE PREDICTION

  1. FCN처럼 본 논문은 경계 localization 정확도를 높이기 위해 Multi Scale prediction(여러 스케일의 특징맵을 이용해 위치 추론 성능을 높인 방법)을 사용한다.

  1. 따라서 이를 사용하기 위하여 원본 이미지처음 4개 max pooling의 특징맵을 이용해 final score map을 구했다.

  1. 첫번째 층은 3x3 필터를 128개 사용하고, 두번째 층은 1x1 필터를 128개 사용했다. 그렇게 해서 최종 128개의 채널을 같은 5개의 특징맵이 나오고, 이를 메인 네트워크 마지막 층의 특징맵과 채널 수준으로 결합해 채널 수가 640만큼 증가한다.

Reference