안녕하세요. 지난 포스팅의 [IS2D] Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs (ICLR2015)에서는 대표적인 영상 분할 모델인 DeepLabV1에 대해서 알아보았습니다. 오늘은 DeepLabV1의 발전된 모델인 DeepLabV2에 대해서 알아보도록 하겠습니다.
Background
기본적으로 DeepLabV2 역시 의미론적 영상 분할을 위해 제시된 모델이기 때문에 DeepLabV1과 동일한 challenge를 공유하고 있습니다: 1) 입력 영상에 대한 반복적인 풀링 연산으로 인한 영상 해상도의 감소, 2) 공간 변환에 대한 불변성 확보 필요, 3) 동일한 객체라고 하더라도 다양한 크기의 객체가 단일 장면에 존재 가능
오늘 소개할 DeepLabV2는 3)에 집중하고자합니다. 즉, 모델에 Multi-Scale 정보를 주입하고 싶다는 것이죠. 이를 위해, 기존 DeepLabV1에서 사용하던 Atrous Convolution 기반의 Feature Pyramid 구조인 ASPP (Atrous Spatial Pyramid Pooling)을 제안합니다. 실질적으로 V1과 V2의 가장 큰 차이점은 ASPP 모듈의 유무로 따질 수 있습니다.
Methods
그림 1은 DeepLab V2의 전체적인 구조를 보여주고 있습니다. V1과 동일해보이지만 가장 다른점이 바로 DCNN에 포함된 ASPP 모듈입니다. 또한, 완전 연결 계층 (Fully-Connected Layer)을 FCN과 동일하게 모두 합성곱 계층 (Convolution layer)로 바꾸어주었습니다.
이후 단계는 DeepLabV1과 마찬가지로 Bilinear interpolation을 통해 입력 영상만큼 크기로 복원한 뒤 Fully-Connected CRF를 적용하여 후처리를 적용하여 최종 결과를 얻게 됩니다.
위 그림에서 (a)와 (b)는 각각 일반적인 합성곱 연산과 Atrous 합성곱 연산을 1D로 보여주고 있습니다. 이를 통해, 동일한 개수의 파라미터만으로도 보다 넓은 receptive field를 확인할 수 있기 때문에 보다 높은 성능을 얻을 수 있습니다. 이를 수식으로 적으면 다음과 같죠.
$$\begin{align*} y[i] = \sum_{k = 1}^{K} x [i + r] w[k] \end{align*}$$
여기서 $x$와 $w$는 각각 입력 영상과 가중치를 의미합니다. 그리고 $r$은 rate parameter로써 $r = 1$이면 일반적인 합성곱 연산을 의미하죠. 위 그림의 (b)에서는 $r = 2$인 경우를 보여주고 있습니다.
이와 같은 Atrous convolution을 적용한 뒤 upsampling하는 것과 단순 upsampling을 비교했을 때 정보손실을 줄일 수 있기 때문에 객체의 위치 정보를 어느정도 담고 있는 것을 볼 수 있습니다. 따라서, Atrous convolution을 사용한다는 것은 파라미터의 개수를 증가시키지 않고 filter size를 늘릴 수 있기 때문에 연산량 보존이 가능할뿐만 아니라 receptive field도 넓힐 수 있다는 점에서 매우 큰 장점이 됩니다.
DeepLabV1에서도 Atrous Convolution을 사용했으나 V2부터는 그림 4와 같이 다양한 크기의 ratio를 가진 Atrous Convolution을 적용하여 하나의 특징 맵으로 합쳐주는 ASPP 모듈을 도입한 것이 큰 특징입니다. 이를 통해, 보다 다양한 크기를 가지는 객체를 인지할 수 있습니다.
그림 7은 DeepLabV2의 구조입니다. (a) 같은 경우에는 큰 ratio를 가지는 단일 Atrous convolution을 적용하였기 때문에 보는 시야가 넓어져 DeepLab-LargeFOV라는 이름이 붙었네요. 그리고 (b)는 병렬적으로 다양한 크기의 ratio를 가지는 다중 Atrous convolution을 적용한 뒤 더해주는 ASPP 모듈이 적용되었습니다.
마지막 단계는 DeepLabV1과 동일하게 Fully-Connected CRF를 적용하여 후처리를 적용합니다.
Experiment Results
- Dataset
- PASCAL VOC 2012 Segmentation benchmark
- PASCAL-Context
- PASCAL-Person-Part
- CityScapes
- Data Augmentation: Randomly scaling the input images (from 0.5 to 1.5)
- Optimization: Stochastic Gradient Descent
- momentum: 0.9
- weight decay: 0.0005
- learing rate: 0.001 (0.01 for the final classifier layer) & Multiply the learning rate by 0.1 every 2,000 iterations
- batch size: 20
- epochs: - (20K iterations)
- NVIDIA TITAN X