성장通

[Paper Review] Multi-Scale Context Aggregation by Dilated Convolutions (Yu et al., 2016) 본문

리뷰/논문 리뷰

[Paper Review] Multi-Scale Context Aggregation by Dilated Convolutions (Yu et al., 2016)

백악기작은펭귄 2022. 7. 23. 18:13

Multi-Scale Context Aggregation by Dilated Convolutions

Fisher Yu, Vladlen Koltun; Published as a conference paper at ICLR 2016

Abstract

이번 논문은 Dilated Convolution을 제안하여, 이미지의 resolution 손실을 최소화하며 receptive field를 확장할 수 있도록 한 논문이다. 이전에 리뷰했던 논문인 DeepLab과 풀고자 하는 문제도 비슷하고, Hole 알고리즘을 사용했다는 점도 비슷하지만, backbone 역할을 하는 Front-end module과 dilated convolution으로 이루어진 Context module로 나눠져 있다는 점이 독특한 점이다.

해당 논문은 리뷰 시점에 약 7,100회의 인용 수를 기록한 논문으로, Semantic Segmentation 분야의 기념비적인 논문인 FCN(첫 번째 리뷰 논문)을 분석하고, 약간의 구조 변경을 통해 성능을 끌어올렸다는 평가를 받는 논문이다.

Dilated Convolution이란?

Dilated Convolution에서 'Dilated'는 우리나라 말로 '확장되는'이라는 의미이다. 일반적으로 receptive field가 커지면 parameter의 개수가 많아져 연산량이 늘어나지만, dilated convolution을 이용하면 receptive field만 커지고 parameter 수는 늘어나지 않는다는 장점을 보인다. 이 설명만 보면 이전에 리뷰했던 DeepLab에서 사용한 Atrous Convolution과 다르지 않다 생각할 수 있지만, 약간 적용 방식이 다르다. Atrous convolution은 외곽 꼭짓점을 기준으로 Receptive field를 확장했다면, dilated convolution은 내부 꼭짓점을 기준으로 확장했다. 추후 다시 언급하겠지만, 그림 (b)와 같이 픽셀을 2배 늘린 것을 2-dilated convolution, 그림 (c)와 같이 4배 늘린 것을 4-dilated convolution이라고 한다.

위 그림에서 receptive field는 색이 칠해진 부분 전체이지만, 실제로 conv 연산되는 픽셀은 빨간색 점들의 값만 이용하며 나머지는 0으로 채워진다.

이와 같이 dilated convolution을 사용해서 receptive field의 크기를 늘리면 다양한 scale에서의 정보를 얻을 수 있고 기존 합성곱과 달리 풀링을 통해 크기를 줄이지 않아도 되어서 resolution 손실이 거의 없이 원본 크기를 복원할 수 있다.

해당 논문의 저자는 VGG-16의 구조를 변형시킨 Front-End module을 통해 입력 이미지로부터 high-resolution feature map을 출력했고, 이를 Context module에 입력값으로 주어 dilated convolution을 수행하여 dense prediction을 수행하였다.

Front-End 모듈

기존 FCN에서는 VGG-16 Classification 모델을 backbone으로 하여, 출력부의 밀집 층을 합성곱 층으로 수정하여 사용했다. 이때 풀링 층이 5번째까지 있었기 때문에 FCN에서는 feature map 크기가 $1\over 2^5$, 즉 $1\over 32$까지 줄어들었다. 이는 전체적인 위치 정보의 과도한 손실을 가져왔기 때문에, FCN 논문에서는 skip architecture를 이용해 문제를 해결하고자 하였다.

이와 달리, 해당 논문에서는 아예 4번째와 5번째 풀링 층을 제거하였고, 이에 따라 최종 feature map의 크기는 원본 이미지의 $1\over 8$ 수준으로만 작아지게 되었다. 덕분에 Upsampling을 통한 복원 과정에서 상당량의 detail 정보가 살아있게 되었고 전반적인 성능 향상을 가져올 수 있었다. 또한 전체적인 네트워크 구성이 단순해져 연산 측면에서도 상당한 이득을 가져왔다.

여기에 추가로, 마지막 합성곱 층 두 개(conv5, conv6)에는 일반적인 합성곱 대신 각각 2-dilated convolution과 4-dilated convolution을 적용하였다.

아래 그림을 보면 Front-End의 수정만으로도 기존 모델 대비 성능 향상이 크게 된 것을 확인할 수 있다.

Context 모듈

해당 논문의 저자들은 Front-End 모듈의 출력 값을 받아 다중 scale의 context를 잘 추출해내기 위한 context 모듈 또한 제안하였다. 이때 Context 모듈에는 Basic과 Large로 두 종류가 존재하는데, Basic Type의 경우 feature map의 개수가 C로 동일하지만 Large Type의 경우 feature map의 개수가 늘어났다가 최종 층에서 원래 개수로 돌아온다.

Context 모듈은 위 표에서처럼 모두 합성곱 층으로 이루어져 있다. Dilation이 1인 경우 일반적인 convolution과 유사하게 확장 없이 진행되는 것이고, 그 외의 경우 해당 수치만큼 확장이 이루어진다. 총 7개의 3x3 합성곱 층과 1개의 1x1 합성곱 층으로 이루어져 있고, dilation은 차례로 1, 1, 2, 4, 8, 16, 1이다. 마지막 층이 1x1인 이유는 입력 채널과 동일한 채널 수를 매핑하기 위함이다. 또한 합성곱만으로 이루어졌기 때문에 층을 거칠 수록 receptive filed 크기가 커지는 것을 확인할 수 있다.

저자들이 제시한 Context 모듈은 기본적으로 모든 망에 적용 가능하도록 설계되었으며, 해당 논문에서는 Front-End 모듈 뒤에 이를 배치하였다.

Results

해당 논문에서는 FCN에서도 backbone으로 사용되었던 VGG-16을 수정해서 사용하였다. VGG-16의 마지막 두 개의 풀링 층을 제거하여 Front-End 모듈을 만들었고, 이 뒤에 Dilated Convolution을 적용한 Context 모듈을 배치하였다. 중간 결과의 feature map의 패딩도 모두 제거하였으며, 오로지 입력 feature map에만 패딩을 적용하였다.

위에서, Front-End 모듈만으로도 평균 5%p 내외의 상당한 성능 향상을 보였다. 여기에 Context 모듈을 추가한 결과 추가로 2%p 내외의 성능 향상을 이루어 냈음을 확인할 수 있다. DeepLab 논문에서 봤던 fully-connected CRF 또한 post-processing 과정으로써 추가하였는데, 세 가지 경우 모두에서 전체적인 성능이 올라갔음을 확인할 수 있다. 마지막으로, RNN을 이용한 CRF를 추가하여 실험을 진행하였고, Front-End + Large Context + CRF-RNN을 이용한 구조에서 73.9%의 mIoU를 달성했다.

여기서 주목할 점은, Context 모듈의 적용은 모두 성능 향상을 이끌어냈고 이는 다른 post-processing 과정과 overlap 되지 않고 성공적으로 작동하였다는 점이다.

 

기존 모델들에 비해 더 높은 성능으로 Segmentation을 수행하였음을 확인할 수 있다.

Conclusion

VGG-16을 사용하여 feature extraction을 수행하는 단계에서, 풀링 층을 일부 제거함으로써 위치 정보와 detail 정보의 소실을 줄였으며, 이를 효과적으로 이용하기 위해 Dilated Convolution과 CRF-RNN을 추가하였다는 점이 이 논문의 핵심이다. Dilated Convolution 덕에 네트워크 구조의 복잡도 증가 없이 receptive filed 크기만을 높일 수 있었는데, 이러한 아이디어는 이후 많은 논문에서도 차용되었다.

전체적으로 CRF-RNN을 사용한 경우 성능이 향상되었지만, 이 경우는 RNN으로 인해 End-to-End 구조가 아니라는 점이 다소 아쉽다. 또한 다음과 같이 이미지 일부가 가려질 경우 성능이 급격히 낮아진다는 한계점을 보인다.

다음에는 여기서 제시된 Dilated Convolution 개념을, 유명 모델인 ResNet 아이디어와 함께 사용한 논문인 DRN에 대해서 리뷰해보도록 하겠다.

Reference

[1] Fisher Yu, Vladlen Koltun, Multi-Scale Context Aggregation by Dilated Convolutions, 2016, ICLR

https://arxiv.org/abs/1511.07122

 

[2] 'Multi-Scale Context Aggregation by Dilated Convolutions', Seongkyun Han's blog

https://seongkyun.github.io/papers/2019/07/09/dilated_conv/

 

[3] Chen & Papandreou et al., Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs, 2015, ICLR
https://arxiv.org/abs/1412.7062