논문 링크입니다.
https://arxiv.org/abs/1706.05587
2017년 발행
0. Title
Rethinking Atrous Convolution for Semantic Image Segmentation
-> Semantic Image Segmentation을 위한 Atrous Convolution을 다시 뭔가 변형해서 적용하였다는 것 같다...
1. Abstract
이 논문에서 우리는 atrous convolution를 다시 방문하였다.
1) atrous 컨볼루션은 필터의 field-of-view를 조정하고 DCNN으로부터 계산된 피쳐 응답의 해상도를 조절하는 강력한 도구이다.
다중 스케일에서의 물체 분할 문제를 다루기 위해서 우리는 atrous 컨볼루션을 연쇄적으로 혹은 병행하여 모듈에 적용하였다.
나아가, 우리는 이전에 소개된 Atrouse Spatial Pyramid Pooling 모듈을 증강시켜
2) 글로벌 컨텍스트를 주입한 이미지 레벨의 피쳐와 함께 다중 스케일에서 컨볼루션 피쳐들을 시험한다. 이는 성능을 상승시켰다.
DeepLabV3 시스템은 이전 DeepLab version을 DenseCRF없이 상당히 향상시켰고
PASCAL VOC 2012 semantic image segmentation benchmark에서 SOTA를 달성하였다.
2. Conclusion
우리의 “DeepLabv3” 모델은 dense feature map을 추출하고 더 긴 컨텍스트를 포착하기 위해 upsampled filters와 함께 atrous convolution을 적용하였다.
구체적으로, multi-scale information을 주입하기 위해서 우리의 연쇄적인 모듈이 점진적으로 atrous rate를 두배로 늘렸다.
이미지 레벨의 피쳐들과 함께 증강된 atrous spatial pyramid pooling 모듈이 다중 샘플링 비율과 효과적인 field-of-view에서의 필터와 함께 피쳐를 조사하는 와중에.
우리의 경험적 결과가 이전 DeepLab version보다 상당히 향상되었고 괄목할만한 성적을 내었다.
3. Introduction
semantic segmentation를 위해서 우리는 DCNN을 적용할 때 두 가지 문제점을 고려한다.
첫째, 연이은 pooling 연산과 컨볼루션 striding으로 인해 줄어든 피쳐 해상도이다. 이는 DCNN이 더욱 더 추상적인 피쳐 representation을 학습하도록 한다.
하지만, 이 지역 이미지 변환에 대한 불변은 디테일한 공간적 정보가 필요한 깊은 예측 과정을 방해한다.
이 문제를 극복하기 위해 semantic segmentation에 효과적인 atrous convolution의 사용을 지지한다.
dilated convolution이라고도 알려진 atrous convolution는
ImageNet pretrained model을 더 깊은 피쳐맵을 추출하는데 사용한다. 마지막 몇 개의 레이어에서 다운샘플링 연산을 제거하고, 대응되는 필터 커널을 업샘플링함으로써. 이것은 필터 웨이트 사이에 구멍(trous)를 넣는 것과 같다.
atrous 컨볼루션으로 추가적인 파라미터 없이 피쳐 응답들이 DCNN과 연산되어 해상도를 조절할 수 있다.
둘째, 다중 스케일의 물체의 존재로부터 오는 어려움이다.
몇가지 방법이 제시되었고, 우리는 주로 네개의 카테고리를 고려하였다
1) 각각의 스케일의 피쳐를 추출하기 위해 DCNN이 이미지 피라미드에 적용하였다. 다른 스케일의 물체가 다른 피쳐맵에서 두드러지는.
2) 인코더-디코더 구조로, 인코더 파트로부터 다중 스케일 피쳐를 이용하고 / 디코더 파트로부터 공간적 해상도를 회복시킨다.
3) 추가적인 모듈이 오리지널 네트워크의 위에 계단식으로 연결된다. 더 긴 범위의 정보를 포착하기 위해서.
특히, 픽셀 레벨의 유사성을 위해 DenseCFR가 사용되었다.
4) Spatial Pyramid Pooling이 필터나 풀링 연산과 함께 들어오는 피쳐맵을 조사한다. 다수의 비율의, 다수의 효과적인 field-of-view에 -> 따라서 다수의 스케일에서 물체를 잡아낼 수 있다.
이 논문을 통해 우리는 atrous 컨볼루션을 다시 연구하였고 다중 스케일 컨텍스트를 통합하기 위한 필터의 field of view 크기를 효과적으로 확대할 수 있었다. cascaded modules와 spatial pyramid pooling 두 곳 모두에서.
특히 우리의 모듈은 다양한 비율의 atrous 컨볼루션과 배치 normalization 레이어로 구성되어 있다.
우리는 ASPP(Atrous Spatial Pyramid Pooling) 방법을 이용하여 모듈을 연쇄적으로, 병행하여 실험하였다.
4. Methods
여기 섹션에서는 dense 피쳐들을 추출하기 위해 어떻게 atrous 컨볼루션이 적용되는지 설명한다.
그리고, atrous 컨볼루션과 함께 제안된 모듈들에 대해 소개할 것이다. (연쇄적으로 평행하여)
1) dense 피쳐 추출을 위한 Atrous 컨볼루션
풀 컨볼루션에서 사용된 DCNN은 semantic segmentation에서 높은 성능을 보여주었다.
하지만, 연이은 레이어에 반복된 맥스풀링과 스트라이드의 조합으로 인해
피쳐맵의 공간적 정보들이 상당히 줄어들었다.
Deconvolutional layers (or transposed convolution)가 공간적 정보를 회복시키는 데 많이 사용되어 왔지만,
우리는 atrous 컨볼루션을 이용하였다.
2차원 신호에서 각 i의 y가 결과물로서, w가 필터로 사용된다. atrous 컨볼루션은 인풋 피쳐맵인 x에 거쳐 적용된다.
각각의 레이어에서 atrous rate인 r이 다를 수 있다.
2) Atrous Spatial Pyramid Pooling
네 개의 다른 rate를 가진 parallel atrous convolutions을 피쳐맵의 위에 적용하였다.
ASPP는 다른 스케일을 가진 피쳐와 임의의 스케일의 영역을 분류하는 데 효과적인 spatial pyramid pooling의 성공에 감명을 받았다.
ASPP는 batch normalization을 추가한 것이 차이점이다.
ASPP는 다중 스케일 정보를 포착하는 데 효과적이다. 하지만, 샘플링 비율이 커질수록 유효한 필터 웨이트의 수가 더 줄어든다는 것을 발견하였다.
이 문제를 해결하고 글로벌 컨텍스트를 모델에 통합하기 위해
우리는 이미지 레벨의 피쳐를 채택하였다.
구체적으로, 모델의 마지막 피쳐맵에 글로벌 average pooling을 적용하였고, 이미지 레벨의 피쳐에 정보를 주입할 수 있었다.
글로벌 애버리지 풀링 -> 256개의 필터로 이루어진 1x1 컨볼루션, 배치 노말-> 바이리니얼 업샘플링
마지막에 우리의 향상된 ASPP는
(a) 한개의 1x1 컨볼루션과 세개의 3x3 컨볼루션 (rates=6,12,18)과
(b) 이미지 레벨의 피쳐들 로 구성하였다.
모든 가지로부터 나온 피쳐들이 concat되고, 1x1 convolution을 통과한다.
# 더 알아볼 것
- DenseCRF
- global average pooling