이번에 알아볼 것은 Atrous Spatial Pyramid Pooling 입니다.
해당 개념을 이해하기 위해선 Atrous Convolution(Dilated Convolution)에 대한 개념이 선행되어야 하며 이를 위해선 아래 포스팅을 참조하시면 좋습니다.
[개념정리] Dilated Convolution과 Separable Convolution
1. Atrous Spatial Pyramid Pooling이란?
- Atrous Spatial Pyramid Pooling은 이미지의 다양한 크기와 해상도의 정보를 효과적으로 수집하고 활용하는데 도움을 주는 기법으로, 이름에서도 알 수 있듯 다양한 dilation rate을 가진 dilated kernel을 활용해 이를 pyramid의 형식처럼 stacking하여 활용하는 방식을 의미합니다.
- 이는, 이미지의 다양한 크기의 특징을 효율적으로 추출할 수 있어 특히 Segmentation 분야에서 많이 활용되는데요
- Atrous Spatial Pyramid Pooling의 작동방식은 아래와 같습니다.
a) 다양한 확장 비율(dilation rate)을 가진 atrous convolution 적용
* 이를 통해 multi scale의 피라미드 구조를 형성하고, 이미지의 다양한 크기 정보를 포착할 수 있습니다.
b) 각 확장 비율에서 추출된 feature map을 병합
* 다양한 크기의 특징 정보가 통합 되고, 전체적인 이미지 정보를 파악할 수 있습니다.
c) 최종 결과 생성을 위한 컨볼루션 적용
* 병합된 특징 맵을 바탕으로 최종 segmentation 결과를 도출합니다.
- Deeplab 논문에 제시된 Atrous Spatial Pyramid Pooling에 대한 그림은 아래와 같습니다.
* 즉, 동일한 크기의 필터라도 다양한 dilatation rate를 적용하고 그 추출된 결과물들을 종합한다는 것인데요.
* 기존에 특정한 단일 dilated convolution만을 적용했을 때는 Sparse 한 feature extraction이 되어 생략하고 고려하지 못하는 특징들과 고정된 필터의 크기로 인해 고려되지 못한는 특징들이 있었다면, pyramid 형식을 통해 다양한 크기로 입력 이미지의 특징을 추출해내어 Dense한 feature extraction이 가능하다는 장점이 있습니다.
- 앞서 설명했던 것처럼
a) 먼저 다양한 dilation rate을 가진 필터들을 활용해 feature map을 추출하고,
b) 추출된 feature map들을 병합하는데, 이때 element-wise summation이나 concatenation을 활용해 병합합니다.
c) 이후, 병합된 특징 맵을 활용해 원하는 task를 진행하면 됩니다. Segmentation task인 경우, 원하는 크기만큼으로 upscaling한 뒤 1x1 convolution을 적용해 각 채널별 feature map들을 통합하여 결과를 도출해줍니다.
- 이때, feature map들이 병합되기 전, 또는 병합되고나서 Global Average Pooling이 적용됩니다.
* 각 확장 비율별 특징 맵에 GAP가 적용되는 경우에는, 각기 다른 dilated rate으로 도출된 이미지들의 global한 context를 추출하기 위해 적용합니다. 이는 이미지 전체 정보와 세부적인 정보를 모두 고려할 수 있으며 더 정확한 segmentation 결과를 만들어 낼 수 있다는 점에서 좋지만, 계산량이 커지고 이로 인해 모델의 크기 또한 커지는 현상이 발생할 수 있습니다.
* ASPP 모듈의 마지막 단계에 GAP가 적용되는 경우, 즉 통합된 feauture map에 적용하는 경우, 각 크기 정보에 대한 이미지 전체 정보를 통합하는 것입니다.이는, 계산량이 적고 모델의 크기가 작다는 장점이 있지만, 이미지 전체 정보만 고려하여 세부적인 정보 손실의 가능성이 생긴다는 단점이 생깁니다.
'딥러닝 with Python' 카테고리의 다른 글
[개념정리] 인공지능에서 임베딩이란 / Embedding (1) | 2024.02.09 |
---|---|
[개념정리]Fully Connected CRFs란? (0) | 2024.02.07 |
[개념정리] Dilated Convolution과 Separable Convolution (1) | 2024.02.05 |
[개념 정리] CNN에서 수용영역이란? Receptive field란? (0) | 2024.02.04 |
Mean Teacher란? (0) | 2024.01.28 |
댓글