← Back to Blog

[Paper Review] Multi-Scale Context Aggregation by Dilated Convolutions

paper review > deep learning

2026-07-093 min read

#paper-review #deep-learning #computer-vision #segmentation #dilated-convolution

논문 링크: Multi-Scale Context Aggregation by Dilated Convolutions

논문 정보

항목내용
출판 시점2015년
저자Fisher Yu, Vladlen Koltun
주제Dense prediction, semantic segmentation, dilated convolution

핵심 아이디어

Dilated convolution은 kernel 사이에 간격을 넣어 receptive field를 키우는 convolution이다. resolution을 낮추지 않고도 넓은 context를 볼 수 있기 때문에 segmentation처럼 pixel-level prediction이 필요한 문제에 적합하다.

일반 convolution이 인접 pixel을 조밀하게 본다면, dilated convolution은 간격을 두고 더 넓은 영역을 본다.

Dilated convolution은 pooling이나 stride로 feature map을 줄이지 않고 receptive field를 넓히는 방법이다.

왜 중요한가

Classification CNN은 보통 downsampling을 반복해 spatial resolution을 줄인다. 하지만 segmentation에서는 위치 정보가 중요하므로 너무 많이 줄이면 복원이 어렵다. Dilated convolution은 resolution을 유지하면서 multi-scale context를 모을 수 있게 했다.

수식으로 보는 핵심

1D convolution은 다음처럼 쓸 수 있다.

y[i]=k=1Kx[i+k]w[k]y[i] = \sum_{k=1}^{K} x[i+k]w[k]

Dilated convolution은 kernel index 사이에 dilation rate rr을 넣는다.

y[i]=k=1Kx[i+rk]w[k]y[i] = \sum_{k=1}^{K} x[i+r\cdot k]w[k]

2D에서도 같은 원리로 kernel point 사이를 띄운다. Dilation rate가 r=1r=1이면 일반 convolution이고, r>1r>1이면 같은 parameter 수로 더 넓은 영역을 본다.

Effective receptive field는 kernel size KK에 대해 대략 다음처럼 커진다.

Keff=K+(K1)(r1)K_{\text{eff}} = K + (K-1)(r-1)

Dilated convolution의 수식적 장점은 parameter 수와 feature map resolution을 유지하면서 receptive field만 키운다는 점이다.

Segmentation에서 중요한 trade-off는 다음이다.

large contextvs.high spatial resolution\text{large context} \quad \text{vs.} \quad \text{high spatial resolution}

Pooling은 context를 키우지만 resolution을 줄인다. Dilated convolution은 rr을 키워 context를 넓히면서 output stride를 크게 늘리지 않는다.

문제 배경

Semantic segmentation은 이미지 전체 class 하나를 맞추는 문제가 아니라, 각 pixel의 class를 맞추는 dense prediction 문제다. Classification CNN처럼 pooling과 stride를 반복하면 receptive field는 넓어지지만 feature map 해상도가 낮아진다. 나중에 upsampling으로 복원하더라도 세밀한 boundary 정보는 이미 사라질 수 있다.

Dilated Convolution의 정의

Dilated convolution은 filter element 사이에 빈 공간을 둔다. 1D로 쓰면 dilation rate rr에서 다음처럼 볼 수 있다.

y[i]=sumkx[i+rcdotk]w[k]y[i] = sum_k x[i + r cdot k] w[k]

r=1r=1이면 일반 convolution이고, rr이 커질수록 같은 parameter 수로 더 넓은 입력 범위를 본다. 2D 이미지에서는 kernel의 grid 간격이 넓어져 receptive field가 커진다.

Context Aggregation

이 논문은 front-end CNN에서 resolution을 과도하게 낮추지 않고, 뒤쪽 context module에서 dilation rate를 조절해 multi-scale context를 모은다. 작은 dilation은 local detail을 보고, 큰 dilation은 넓은 주변 문맥을 본다.

Dilated convolution은 segmentation에서 context와 localization 사이의 trade-off를 완화하는 장치다.

왜 Segmentation에 잘 맞는가

Pixel label은 주변 object와 scene context에 크게 의존한다. 예를 들어 작은 회색 영역이 도로인지 벽인지는 주변 구조를 봐야 판단할 수 있다. Dilated convolution은 feature map 크기를 유지하면서 넓은 context를 주기 때문에 이런 판단에 유리하다.

한계

Dilation rate가 커지면 입력을 듬성듬성 보기 때문에 gridding artifact가 생길 수 있다. 또 여러 rate를 어떻게 조합할지에 따라 성능이 크게 달라진다. 이후 DeepLab의 ASPP처럼 여러 dilation rate를 병렬로 쓰는 방식은 이런 한계를 보완하려는 흐름이다.

읽을 포인트

정리

이 논문은 dense prediction에서 receptive field를 키우는 다른 방법을 제시했다. Pooling으로 해상도를 희생하는 대신, dilation으로 같은 해상도 위에서 더 넓은 문맥을 본다. Segmentation architecture를 볼 때 output stride, receptive field, dilation rate를 함께 봐야 하는 이유가 여기에 있다.