본문 바로가기
Computer Vision

DeepLab v1(2016) 논문 리뷰

by 아르카눔 2025. 4. 6.

 

DeepLab의 논문 이름은 Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRF으로 Atrous Convolution (aka Dilated Convolution)으로 유명한 논문이다. (링크)

 

저자는 Liang-Chieh Chen, George Papandreou, Iasonas Kokkinos, Kevin Murphy, Alan L. Yuille다.

 

Abstract

픽셀 레벨 분류 (semantic image segmenation)의 문제를 푸는데 있어서 Deep CNN (DCNN)이 마지막 레이어에서 충분하게 localized되어 정확한 object segmentation을 하지 못함을 보인다. 이는 high level tasks에 좋은 성질인 invariance properties 때문이다. 본 논문에서는 final DCNN layer와 fully connected Conditional Random Field (CRF)를 결합함으로써 이 문제를 해결했다. PASCAL VOC-2012의 semantic image segmentation에서 SOTA 결과를 얻었다. 

 

 

1. Introduction

기존의 DCNN에서는 end-to-end 태스크에서 좋은 성능을 얻기 위해 조심스레 엔지니어링된 표현인 SIFT나 HOG features를 사용했다. 이는 local image transformation에 대해서 invarint한 성질을 지녔는데 이는 high-level vision 태스크에는 좋지만 low-level tasks;  pose estimation이나 semantic segmentation과 같은 경우 제대로 방해가 되었다. 이런 로우 레벨 태스크는 spatial details의 추상화가 아닌 보다 정확한 localization을 필요로 한다.

 

다음의 두 가지 기술적 장애물이 존재한다. 첫 번째는 signal down sampling으로 맥스 풀링과 다운 샘플링 (striding)을 통해서 얻어지는 성질이다. 저자들은 이를 해결하기 위해서 atrous (with holes) 알고리즘을 선택해서 문제를 해결했다.

 

두 번째는 insensitivity (invariance)로 object-centric 결정과 관련된 문제다. 보다 미세한 디테일을 잡는 모델의 능력을 키우기 위해서 fully connected CRF를 도입했다. CRF는 multi-way classifiers와 픽셀과 엣지의 local interaction을 통한 low-level 정보를 함께 사용한다. 

 

DeepLab이라고 부르는 본 논문의 알고리즘은 다음의 세 가지 장점을 지닌다. 속도, 정확성, 단순함이다. 

 

3. Convolutional Neural Networks for Dense Image Labeling

 

 

DeepLab의 전체적은 프로세스는 위 Fig 3과 같다. 

  1. Atrous Convolution으로 Coarse score map을 도출한다.  
  2. Bi-linear Interpolation을 수행한다.
  3. Fully-Connected CRF를 수행한다.
  4. 최종 pixel-wise output을 도출한다. 

 

 

Atrous Convolution

 

 

Atrous convolution인 input의 cell 간의 간격을 띄워서 컨볼루션을 수행한다.

 

출처 링크 에서 가져온 아래 그림을 보면 쉽게 이해할 수 있다.

 

 

위와 같은 atrous convolution의 장점은 파라미터의 수를 유지하면서도 receptive field의 크기를 늘릴 수 있다는 점이다.

 

여기에서 움직이는 그림의 시각화로 확인할 수도 있다.

 

Atrous Convolution은 Dilated Convolution이라고도 한다.

 

PyTorch에서 구현하는 방법은 간단하다.

nn의 Conv2d에서 dilation을 수정하면 된다. 

from torch.nn as nn
# dialation 조정 
nn.Conv2d(in_channels, out_channels, kernel_size, dilation=2)

 

 

 

Fully-Connected CRFs

 

 

 

CRF를 통해서 localization을 보완한다.

 

Energey function은 다음과 같다.  

 

$E(x)$ = $\sum_{i} \theta_{i} x_i$ +  $\sum_{ij} \theta_{ij} (x_i, x_j)$.  

 

이때 $x$는 각 픽셀에 할당된 라벨이다.  

Unary potential은 $ \theta_{i}(x_i) $ = - log $P (x_i) $로 정의되며 픽셀 $i$가 label $x$이 얼마나 가능성이 높은지를 나타낸다.

Unary potential의 값이 클수록 픽셀 $i$가 label $x$일 확률은 작다.  

사실상 Shannon information과 같은 식이다. 

 

 

Pairwise potential $ \theta_{ij} (x_i, x_j)$ = $ \mu (x_i, x_j)  \sum_{m=1}^{K} w_m \cdot k_m (f_i, f_j) $, where $ \mu (x_i, x_j) $ = 1  if $ x_i \neq x_j $ and zero otherwise. 

  

여기서의 $f$는 아래 Eq. 1의 Gaussian kernel로 정확히 거리를 측정하는 것은 아니라 유사도 측정 함수로서 역할을 한다.

(수학적으로 엄밀하게 정의하는 distance function이 아니라는 의미다. ) 

 

Eq. 1

 

즉 서로 비슷하면 그 값이 더 커진다. 분자가 0에 가까워 질수록 exp(0)에 가까워지고 이 값은 1에 가까워 진다. 

두 값의 차이가 커진다면 exp (-$\infty$)이 되고 0에 가까워진다.  

 

5. Experimental Evaluation

 

MSc는 Multi-scale features를, LargeFOV는 Field-of-View를 의미한다.

MS와 LargeFOV를 사용한 알고리즘이 가장 성능이 좋음을 알 수 있다.

 

Multi-scale

 

Multi-scale의 미적용은 첫 번째 행, 적용한 모델은 두 번째 행인데 두번째의 행의 성능이 더 나음을 알 수 있다.

 

Field-of-View

 

FOV가 클수록, 즉 input stride가 더 클수록 좋은 성능임을 확인할 수 있다.

 

 

 

 

 

References:

https://noru-jumping-in-the-mountains.tistory.com/15

 

 

 

 

'Computer Vision' 카테고리의 다른 글

YOLO v1 (2015) 논문 리뷰  (0) 2025.04.06
U-net (2015) 논문 리뷰  (0) 2025.04.06
FCN (2015) 논문 리뷰  (0) 2025.04.06
Faster R-CNN (2016) 논문 리뷰  (0) 2024.04.27
ResNet (2016) PyTorch Implementation  (0) 2024.04.24