본문 바로가기
DeepLearning/논문 리뷰

[논문 리뷰]DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution

by Wanda 2022. 2. 24.

0. Abstract
- 생략

 

1. INTRODUCTION


- 기존의 DCNNs(Deep Convolutional Neural Networks)은 CNN의 특성인 invariance(maxpooling, softmax 등을 거치면 위치에 대한 정확한 정보가 사라짐) 덕분에 abstract data 에 대해 배울 수 있게 되어 classification task의 성능이 좋게 됨.

-그러나 이러한 invariance의 특성은 spatial information을 abstract하게 만들고, dense prediction tasks- 정확한 예측을 위한 일들(e.g. semantic segmentation)에는 악영향(hamper)를 끼치게 됨.

* Three challenges in application of DCNNs to semantic image segmentation
- 본 논문에서는 DCNNs를 image semantic image segmentation에 적용하기 위해는 3가지 문제점이 있고, 이를 해결하기 위해서 다음과 같은 기법을 제안함

1) Reduced feature resolution
- 반복된 max-pooling과 downsampling의 combination때문에 일어나는 현상임. 이러한 작업은 feature map이 현저하게 줄어든 spatial resolution을 초래함.

* Solution
- 마지막 몇 개의 레이어에 있는 downsampling operator중 하나인 max pooling layers들을 제거하 고, 대신 연속적인 convolution layers들을 이용하여 filters을 upsample함. 이러한 방식을 통해 feature maps이 higher sapling rate에서 계산을 하게됨.


- 이러한 Filter upsampling 방법은 zero가 아닌 filter taps 사이에 'hole'를 넣는 것이고 이 'hole'를 프 랑스어로 'trous'라고 불림.

- 이러한 technique은 신호처리에서 긴 역사를 가지고 있는데, 원래 undecimated(미소거) wavelet transform에서 효율적으로 계산하기 위해 나온 기법으로 "algorithme atrous"라고 불리고 있음.

- 이러한 기법과 이름에서 착안하여, 구멍이 있는 upsampled filters과 convolution하는 것의 약칭을 "atrous convolution" 라는 용어를 이용함.

- atrous convolution과의 조합과 마지막이 단일한 bilinear interpolation을 통해 full resolution feature maps을 더 densely하게 recover할 수 있음.


- 보편적인 방법인 larger filters들과의 convolution을 비교해 보면, atrous convolution은 효과적으로 filter의 field of view를 parameters나 amount of computation의 증가 없이 확대할 수 있음.





2) Existence of objects at multiple scale
- 실제 물체는 다양한 scale로 있기 때문에 발생

- 기존의 DCNN에서는, 직접 같은 이미지를 rescale하여 dcnn을 통해 나온 feature이나 score maps들 을 결합하는 방법을 이용함.

- 이러한 방법은 정말로 성능을 높여주지만, input image의 많은 scale된 버전들을 위해 생긴 모든 DCNN layers에서 나온 feature들을 계산하는데 비용이 발생하게 된다.

* SOLUTION

- SPP(spatial pyramid pooling)에서 나온 기법의 동기를 받고 위에서 제안된 atrous convolution 을 이용하여 ASPP(atrous spatial pyramid pooling)기법을 제안함.


3) Reduced locatlization accuracy due to DCNN invariance
- 이는 앞에서 말한 cnn의 특성인 invariance때문에 spatial accuracy를 제한하게 되기 때문에 발생

* SOLUTION - ONE WAY
- 이러한 문제를 경감시키기 위해 'skip-layers'를 이용하여 multiple network layers에서 'hyper- column' features를 추출하여 마지막 segmentation result를 계산할 때 이용하게 됨.

* SOLUTION - OURS
- 우리의 모델의 fine details을 capture하는 능력을 boost하기 위해서 Conditional Random Field(CRF)기법을 이용하였다.

- CRFs는 semantic segmentation에서 다중 분류(muilti-way classifiers)에서 나오는 class scoreslow level information( captuered by the local interactions of pixels and edges, or superpixels)를 결합하기 위해서 널리 이용되는 기법임.

- 우리는 그중 'fully connected pairwise CRF'를 이용
-> 이것의 효율적인 계산과, fine edge details를 capture하는 동시에 long range dependencies 를 catering 할 수 있음 ( Q. 여기서 말하는 long range dependencies라는게 뭘까?)




* main advantages
1) Speed : our dense DCNN operates at 8 FPS on an NVidia Titan X GPU, while Mean Field Inference for the fully-connected CRF requires 0.5 secs on a CPU
2) Accuracy : PASCAL VOC 2012 semantic segmentation benchmark, PASCAL-Context, PASCAL- Person_Part
3) Simplicity : DCNNs + CRFs

 

 

 

 

 

 

 

 

 

 

*Model illustration

1) DCNN영역에서는 VGG-16 혹은 ResNet-101모델이 atrous convolution을 이용하여 32x 에서 8x까지 downsampling을 함
2) bilinear interpolation을 통해서 feature maps을 original image로 확대함
3) 그 이후 fully connected CRF를 이용하여 segmentation result를 정교화 하고, object boundaries을 더 잘 포작 할 수 있게 됨

 

2. RELATED WORK

- 생략

3. METHODS

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

-위에서 말했듯이, 기존의 DCNNs를 이용하게 되면 반복되는 max-pooling과 striding의 조합을 통해 현저하게 feature maps의 spatial resolution을 감소하게 된다.(보통, 32배 정도 감소된다.) 부분적으로 감소된 spatial resolution을 해결하기 위해 'deconvolutional' layers을 이용하기도 하는데, 이는 추가 적인 memory와 time이 소요된다.

- 이 모델에서는 대신 'atrous convolution'을 이용한다. 이 알고리즘은 어떠한 layer에서든 어떠한 desirable resolution을 뽑아 낼 수 있다.

x[i] : signal, w[k]: filter of length K, r: rate parameter corresponds to the stride with which we sample the input signal
Fig2은 (a)의 경우 standard convolution을 나타낸 것  (b)의 경우 rate를 2로 atrous convolution을 한 모습을 나타낸 것이다. 기존의 방법은 sparse한 feature input을 이용하게 되지만(receptive field를 키우기 위해 input feature를 줄이는 것) atrous convolution을 통해 high resolution input feature map을 이용할 수 있게 된다. Fig3에서  위의 행은 기존 convolution을 통해 sparse한 feature를 extract하는 모습을 나타내는 것이다. 아래 행은 atrous convolution을 통해 high resolution input featuremap을 이용하여 dense feature extract을 할 수 있게 된다.



- non zero filter 사이에 값들을 0으로 대체 --> 3*3의 filter가 7*7로 증가하게 되고, 이를 통해 receptive field가 넓어지게 된다. backpropagation할 때 filter의 0의 값들은 backpropagation을 할 때 update를 하지 않아도 되므로, parameter는 3*3으로 동일하지만 receptive field의 영역이 넓어질 수 있게 된다.

- DCNNs에서, layers의 연속에서 atrous convolution을 이용하여 final DCNN network 가 high resolution에 대응할 수 있게 하였다.

- 예를 들어, VGG-16이나 ResNet-101 네트워크에서 spatial density를 2배로 늘리기 위해 마지막 pooling이나 convolutional layer ('pool5' 혹은 'conv5_1')를 atrous convolution (rate 를 2)로 대체하였다.

- 이러한 접근으로 network 전체에 atrous convolution을 적용하면 cost가 많이 나오게 되어서, good efficiency/accuracy의 trade off를 위해 atrous convolution을 통해 feature map의 사이즈를 4배 까지 복구를 하고 마지막에 bilinear interpolation을 통해 8배 증가시커 원본 image의 resolution으로 복구하게 되었다.

- 이 모델의 결과인 class score maps은 꽤 smooth하기 때문에 bilinear interpolation을 통해서 충분히 복구 가능하게 된다. (Fig 5 참조)



3.2 Multiscale Image Representations using Atrous Spatial Pyramid Pooling

- multiscale Image 문제를 해결하기 위해 기존에 DCNN은 object의 다양한 size를 가지고 있는 dataset으로 train을 시킨다.

- 이 논문에서는 multiscale 문제를 해결하기 위해 두 가지 실험을 진행한다.
- 첫번째는 original image의 다수의 rescaled된 이미지를 같은 파라미터를 공유하는 평행한 DCNN branch를 이용하여 나온 DCNN score maps을 추출하고, 각각 평행한 DCNN branch를 통해 나온 featuremap들을 bilinear interpolation을 통해 원래의 image resolution으로 복구하고 결합시킨다.
--> 이러한 방식은 모든 DCNN layer에 대한 값을 계산해야 하므로 비용이 들게 된다

- 두번째 방법은 R-CNN의 spatial pyramid pooling 방법에서 영감을 받아서, convolution 대신 atrous convolution을 이용하는 방법인 'Atrous Spatial Pyramid Pooling' 방법을 이용한다.

- 각각의 atrous convolution은 다양한 sampling rate(r)을 이용하게 된다. 이러한 모델을 "DeepLab-LargeFOV"라고 부른다.

 

 

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

-DCNN 모델에서는 localization accuracy와 classification performance사이의 trade-off가 존재하게 된다. 이를 해결하기 위해 후처리로 Fully-Connected Conditional Random Fields(CRF)기법을 이용한다.

- 기존의 방법은 이러한 localization challenge를 다루기 위해 두가지 방향을 추구해 왔다.

- 첫 번째 접근 방법은 convolutional network에 있는 다수의 layer들로부터 나온 정보를 통해 object boundaries를 더 좋게 추정하는 방법을 이용한다.
- 두 번째 접근 방법은 super-pixel representation을 이용하여 localization task를 본질적인 method인 low-level segmentation method로 뽑아 낸다.

- 우리는 alternative direction을 추구하는데, 이는 DCNNs의 recognition 능력과 fully connected CRFs의 fine-grained( 더 세밀하게 분류하는 작업) localization accuracy를 기반으로 한다.

- 전통적으로, conditional random fields(CRFs)는 noisy segmentation maps을 smooth하기 위해 이용되어 왔다. 일반적으로 이러한 models은 주변의 nodes과 연결하는데, 공간적으로 근접한 pixel들을 same-label로 만들어주는 과정을 추구한다.

-이 모델에서 이용하는 DCNN architecture에서 제공하는 score maps은 smooth하고 semantic label predictions은 동일한 classification results를 제공한다. 이러한 모델에서, short-range-CRFs는 해롭다고 볼 수 있다.

-이와 대조하여 local-range CRFs는 localization을 가능성 있게 증가할 수 있지만 여전히 thin-structures을 놓치고, 그리고 보편적으로 expensive한 discrete optimization problem이 필요로 한다.

- 이러한 Short-range CRFs의 문제를 해결하기 위해, 우리는 fully connected CRF model를 통합하였다.

 

 

* pairwise potential
-μ(xi,yj) = 1 이고 xi 와 xj가 같지 않고 0이 아니라면 오직 distinct labels이 penalized되는 것을 의미한다.
- 'bilateral'kernel(첫번쨰 kernel)은 픽셀 포지션과 RGB color를 모두 의존한다.
- 두번째 kernel은 오직 pixel position만 의존한다.
- 각각의 분모는 scale의 크기를 조절한다.
-첫번째 kernel은 비슷한 색깔과 위치에 있는 것들을 같은 라벨로 부여하도록 하고, 두번쨰 kernel은 smoothness를 적용할 때 오직 공간적 근접성을 강조한다.

 

* CRF 적용 결과 

4. EXPERIMENTAL RESULTS

-- ing...