논문 링크: 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은 다음처럼 쓸 수 있다.
Dilated convolution은 kernel index 사이에 dilation rate 을 넣는다.
2D에서도 같은 원리로 kernel point 사이를 띄운다. Dilation rate가 이면 일반 convolution이고, 이면 같은 parameter 수로 더 넓은 영역을 본다.
Effective receptive field는 kernel size 에 대해 대략 다음처럼 커진다.
Dilated convolution의 수식적 장점은 parameter 수와 feature map resolution을 유지하면서 receptive field만 키운다는 점이다.
Segmentation에서 중요한 trade-off는 다음이다.
Pooling은 context를 키우지만 resolution을 줄인다. Dilated convolution은 을 키워 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 에서 다음처럼 볼 수 있다.
이면 일반 convolution이고, 이 커질수록 같은 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를 병렬로 쓰는 방식은 이런 한계를 보완하려는 흐름이다.
읽을 포인트
- receptive field와 output resolution의 trade-off
- dilation rate가 커질 때 생기는 gridding pattern
- semantic segmentation에서 context module이 하는 역할
- DeepLab 계열 architecture와의 연결
정리
이 논문은 dense prediction에서 receptive field를 키우는 다른 방법을 제시했다. Pooling으로 해상도를 희생하는 대신, dilation으로 같은 해상도 위에서 더 넓은 문맥을 본다. Segmentation architecture를 볼 때 output stride, receptive field, dilation rate를 함께 봐야 하는 이유가 여기에 있다.