논문 링크입니다.
https://paperswithcode.com/paper/hierarchical-multi-scale-attention-for
0. Title
HIERARCHICAL MULTI-SCALE ATTENTION FOR SEMANTIC SEGMENTATION
-> semantic segmentation을 위한 계층적 multi-scale 어텐션
즉 이 논문의 핵심은, 계층적이고 + multi-scale이고 + attention을 활용한 것이지 않을까 싶다.
1. ABSTRACT
multi scale 추론은 semantic segmentation의 성능을 올리기 위해 자주 사용되는 기법이다.
다중 이미지 scale들이 네트워크를 통과하고, 그 결과물은 average pooling이나 max pooling으로 결합된다.
이 논문에서는 multi-scale 예측결과에 attention-based 접근법을 적용하였다.
우리의 attention mechanism은 계층적이다. 다른 최근의 접근법들보다 약 4배의 메모리 효율을 향상시킬 수 있다.
게다가 더 큰 crop-size를 이용해서 학습시킬 수 있게 한다. 이는 곧 더 높은 모델 정확도를 가질 수 있다는 의미이다.
우리는 두 가지의 데이터셋에 적용해 보았다.
1) Cityscapes -> generalization을 위해 leverage auto-labeling 기법 사용
2) Mapillary Vistas
-> 두 가지의 데이터셋에서 모두 state-of-the-art한 결과를 낼 수 있었다.
2. Conclusion
우리는 semantic segmentation에 계층적 multi-scale attention 기법을 적용하였다.
우리는 segmentation accuracy을 향상시켰다. 메모리와 계산을 효율적으로 처리함과 동시에,
3. Result (Data 훑기)
1) implementation protocol
우리의 implementation protocol을 자세하게 설명할 것이다.
- Training Detail
Pytorch와 Nvidia DGX 서버(8 GPU) with *mixed precision
*mixed precision은 모델 학습시 FP16, FP32 부동 소수점 유형을 상황에 따라 유연하게 사용하여 학습을 더 빠르게 실행하고 메모리를 적게 사용하는 방법이다
왼쪽 사진은 디테일한 문제 -> 2x scale에서 가장 잘 예측, attention도 2x에서 가장 잘 attend함
오른쪽 사진은 큰 영역 세그먼테이션 문제 -> 0.5 scale에서 가장 잘 예측, attention도 가장 성공적으로 집중한 것이 0.5였을 때임
white color for attention이 높은 값을 가졌음(거의 1.0)
모든 scale의 attention 합은 1.0임
Auto-generated coarse labels은 GT(Original coarse label)보다 더 디테일하게 레이블링되었음
더 정교한 레이블링은 레이블들의 분포를 향상시켰다. 작고 큰 아이템들이 모두 표시되었기 때문이다. 기존에 큰 오브젝트만 있던 것과는 다르게
베이스라인은 HRNet-OCR을 뼈대로 썼다.
MS attention이 우리가 제안한 multi-scale attention method이다.
Auto-labeling은 학습시에, 자동적으로 생성된 coarse label을 사용하였는지, 아니면 ground truth coarse label을 사용하였는지를 나타낸다.
두가지의 조합이 가장 좋은 성능을 나타내었다.
- 학습 세팅
optimizer로는 SGD, GPU당 1 batch size, momentum = 0.9, *weight decay = 5e(-4)
*Weight decay는 모델의 weight의 제곱합을 패널티 텀으로 주어 (=제약을 걸어) loss를 최소화 하는 것을 말한다. overfittin을 줄이기 위해 사용
“polynomial” learning rate policy 사용
첫번째 loss function으로 RMI 사용
auxiliary loss function으로 cross-entropy 사용
Cityscapes 데이터셋에 2.0 poly exponent
초기 learning rate = 0.02
200 에포크 for 4 DGX nodes
class uniform sampling in data loader -> 클래스별로 비슷하게 뽑기 위해서 -> 클래스별 데이터 분포가 불균형할 때 좋음
- Data augmentation
gaussian blur, color augmentation, random horizontal flip and random scaling (0.5x - 2.0x) on the input images
crop size of 2048x1024 for Cityscapes and 1856x1024 for Mapillary
2) Results on Cityscape
뼈대로써 HRNet-OCR을 사용하였고, multi-scale attention method를 주로 사용하였다.
RMI을 main segmentation head로 사용.
auxiliary segmentation head에는 cross entropy 사용. 왜냐하면 RMI가 학습이 깊어질수록 학습 정확도를 떨어트리는 것을 확인했기 때문이다.
더 큰 Mapillary dataset을 먼저 학습시키고, pre-trained model을 Cityscapes에 다시 학습시켰다.
Mapillary dataset에는 attention을 학습시키지 않았다.
우리의 Cityscapes의 SOTA 레시피는 train + val images / auto-labelled coarse images로 달성하였다.
50%는 train + val images 에서 샘플을 뽑았고, 나머지는 auto-labelled coarse images에서 뽑았다.
inference time에서 {0.5, 1.0, 2.0} 의 scale과 image flipping을 사용하였다.
MS Attention은 0.5% IoU +
Auto-labeling은 1.1% IoU +
Both 1.4% IoU +
Cityscapes test set score에서 best score로 85.1을 달성하였다. 3가지 클래스를 빼고 모든 클래스에서 가장 우수하였음.
3) Results on Mapillary Vistas
Mapillary Vistas은 굉장히 큰 데이터셋으로, 25,000개의 높은 해상도 이미지와 66개의 object categories로 구성됨.
HRNet-OCR을 줄기로 썼고, multi-scale attention method를 사용하였다.
Mapillary images에는 다양한 해상도가 있기 떄문에 long edge를 2177로 하여 resize 했다.
ImageNet classification에서 미리 학습한 HRNet weight를 사용하였다.
Mapillary에는 더 큰 메모리가 필요했기 때문에, crop size를 1856 x 1024로 줄였다.
두번째로 높은 IOU를 가진 Panoptic Deeplab보다 2.4 더 높은 성능 달성.
Introduction
semantic segmentation은 모든 픽셀을 N개의 클래스 중 하나로 label하는 태스크이다.
이 태스크에는 trade-off 관계가 있는데,
특정 유형의 예측은 lower inference resolution에서 가장 잘 처리되지만,
어떤 예측은 higher inference resolution에서 잘 처리된다는 것이다.
디테일한 부분은 확대된 이미지 사이즈에서 더 잘 예측됩니다.
global context가 필요한 큰 구조는 축소된 이미지 사이즈에서 더 좋다.
왜냐하면, network의 receptive field가 더 필요한 부분을 볼 수 있게 하기 때문이다.
이를 "class confusion"이라고 부른다.
첫번째 행에서 2.0x scale (high resolution)일 때 디테일한 사람의 형상을 더 잘 잡아내는 것을 볼 수 있다.
두번째 행에서는 커다란 도로와 나눠진 영역을 0.5x scale (low resolution)일 때 더 잘 segment되는 것을 볼 수 있다.
multi-scale inference를 사용하는 것은 이 trade-off를 다루기 위해 자주 사용되는 방식이다.
예측은 다양한 규모로 이루어지고, 결과는 averaging or max pooling으로 합쳐진다.
averaging을 사용하는 것은 일반적으로 성능을 향상시키지만, 가장 좋은 결과를 가장 나쁜 결과와 결합한다는 단점이 있다.
반대로, max pooling은 픽셀당 가장 좋은 하나의 scale 결과를 선택할 수 있다. (weighted combination으로)
이러한 문제를 해결하기 위해 attention method를 채택하였다. 픽셀 레벨에서 multi-scale predictions을 어떻게 조합할지 예측하기 위해.
네트워크가 인접 척도간의 상대적 가중치를 예측하는 계층적 attention method를 제안한다.
계층적이라는 성질 때문에, training pipeline에서만 하나의 추가 scale로 augment할 수 있었다.
예를 들어, 타겟 inference scale이 {0.5, 1.0, 2.0}이면, 다른 어텐션 방식들은 모든 스케일로 학습시키길 요구한다. 4.25x (0.5^2 + 2.0^2 )의 학습 비용을 발생시키면서
우리의 방식은 학습시 , 오직 추가 0.5x 스케일만 추가하였다. 0.25x (0.5^2 ) 의 학습 비용 발생시키면서
게다가, 우리의 계층적 매커니즘은 inference time에서 유연성을 부여할 수 있다.이전의 방식보다(only use training scales during inference)
Cityscapes에서 SOTA를 달성하기 위해 auto-labelling을 시행하였다. 데이터셋의 다양성을 부여하기 위해
이로인해 일반화 효과가 있었다.
요약
- hierarchical multi-scale attention mechanism으로 class confusion와 fine detail 문제를 개선하였다. 다수의 scale을 사용함으로써
- hard-threshold based auto-labelling strategy로 unlabelled image를 활용하고, IOU를 높였다.
- Cityscapes (85.1 IOU)와 Mapillary Vistas (61.1 IOU)에서 SOTA를 달성하였다.
Related Work
1) Multi-scale context methods
우리의 SOTA는 low output stride를 사용하였다. (input image size와 output size의 비율로, 높을수록 축소)
이것은 fine detail 문제를 더 잘 해결할 수 있게 하였고, receptive field가 줄어드는 효과가 있었다.
다만, 이렇게 줄어든 receptive field는 이미지에서 커다란 물체를 인식하기에 어려움이 있다.
Pyramid pooling은 multi-scale context를 합침으로써 줄어든 receptive field 문제를 보완할 수 있다.
PSPNet은 spatial pyramid pooling을 사용함으로써 multiple scale로부터 feature들을 병합하였다. (pooling의 순서와 convolution operation을 이용해)
DeepLab은 다양한 레벨의 dilation을 적용한 astrous convolutions를 사용하는 Astrous Spatial Pyramid Pooling을 이용하였다. 이로인해, PSPNet보다 더 밀집한 feature를 생성해 낼 수 있었다.
2) Relational context methods
일반적으로, pyramid pooling은 고정적이고 사각형의 영역을 가지고 수행한다. pooling과 dilation이 일반적으로 대칭적인 패션을 이루고 있기 때문이다.
게다가 그러한 기법은 정적이고 학습되지 않는 경향이 있다.
그러나, relational context method는 픽셀간의 관계로 문맥을 파악하고, 사각형 영역에 국한되지 않는다.
relational context method는 이미지 구성을 기반으로 형성된다.
따라서 non-square한 semantic regions에 적절하다. OCRNet, DANET, CFNet, OCNet도 Relational context methods를 사용한다.
3) Multi-scale inference
relation과 multi-scale 모두 multi-scale evaluation을 쓴다.
multi-scale에서 prediction을 조합하는 데에 두가지 접근법이 있다.
average pooling과 max pooliing이다. (average pooling이 더 일반적이다)
하지만, average pooling은 모든 결과를 동일한 가중치로 합치기 때문에 최적이 아닐 수 있다.
우리의 hierarchical based attention mechanism는 추론 시간이 scale 개수에 구애받지 않는다.
게다가, 우리의 모델은 average-pooling보다 더 좋은 성능을 냄과 동시에, 클래스별/장면별 다양한 스케일의 중요성을 시각화하였다.
또한, 하나의 스케일을 사용하는 다른 모델들보다 뛰어나고, 고해상도 예측을 생성하는데에 multi-level feature를 사용하여 더 좋은 attention을 실현시킴
4) Auto-labelling
Hierarchical multi-scale attention
우리의 attention 매커니즘은 [1] Liang-Chieh Chen, Yi Yang, Jiang Wang, Wei Xu, and Alan L. Yuille. Attention to scale: Scale-aware semantic image segmentation, 2015.과 매우 닮아있다. dense mask가 각각의 스케일마다 학습되어지는것과 multi-scalse prediction들이 pixel-wise summation으로 mask들 사이에서 결합된다는 것이다. Chen의 모델을 Explicit method, 우리 모델을 Hierarchical mothod라고 하자.
우리는 모든 attention mask를 학습시키는 것 대신에, 인접한 스케일 사이의 상대적인 attention mask를 학습하였다.
장점 1) 유연하게 스케일을 선택할 수 있다. 추론에서 0.25x나 2.0x scale을 0.5x와 1.0x로 학습된 모델에 계층적으로 추가하는 것이 가능하다. 이전의 모델들은 학습시와 동일한 스케일만 사용할 수 있었다.
장점 2) training efficiency를 향상시킬 수 있다. explicit model에서는 0.5, 1.0, 2.0 스케일을 사용하면, the training cost is 0.5^2 + 1.0^2 + 2.0^2 = 5.25 였다. 하지만 계층적 모델은 0.5^2 + 1.0^2 = 1.25 이면 된다.
Architecture
Backbone : HRNet-OCR
Semantic Head : (3x3 conv) → (BN) → (ReLU) → (3x3 conv) → (BN) → (ReLU) → (1x1 conv)
Attention Head : semantic head와 구조적으로 동일, 마지막 convolutional output만 single channel
semantic and attention heads는 OCR block에서 가져온 feature들을 먹였다.
auxiliary semantic head : OCR하기 전에 HRNet trunk로부터 직접 feature를 가져오는 부분, (1x1 conv) → (BN) → (ReLU) → (1x1 conv)
attention이 semantic logits에 모두 적용되고 나서, 예측 결과는 target image size로 upsampling 된다.(bilinear upsampling)
Analysis
baseline averaging approach (49.4) or the explicit approach (51.4)보다 더 좋은 성능(51.6) 을 내었다.
Unlike the explicit method 0.25x scale 을 추가하였다. 0.25x scale을 추가하니 re-training을 할 필요가 없어졌다.
flexibility at inference time가 우리의 최대 장점이다. 학습은 한번 할 수 있지만, inference는 다양한 스케일을 선택하여 유연하게 할 수 있다.
한 가지 더, average pooling 방식에 0.25x 스케일을 추가하면 해로운 영향(-0.7 IOU)이 있는 것으로 나왔다.
반면, 우리의 계층적 모델은 0.6 IOU가 향상되었다.
baseline averaging method에서는 0.25x 스케일 데이터가 다른 스케일들과 합쳐질 때 너무 거친 나머지 여러 클래스들에서 1.5 IOU의 감소가 이루어 졌다.
예측의 거친 정도는 엣지와 fine detail에 해롭다.
하지만, 우리의 모델에서는 0.25x 스케일을 가장 적절한 방식으로 적용하였기 때문에 0.25x scale 결과는 가장자리에는 적용하지 않았음
Question
- RMI
'AI > 논문리뷰' 카테고리의 다른 글
[Segmentation] Deep High-Resolution Representation Learning 논문 리뷰 (0) | 2022.05.17 |
---|---|
[Segmentation] Attention 논문 리뷰 (0) | 2022.05.16 |
[Segmentation] FCN 논문 리뷰 (0) | 2022.05.10 |
[Detection] R-CNN 논문 리뷰 (0) | 2022.05.04 |
[Classification] AlexNet 논문리뷰 (0) | 2022.05.02 |