앎을 경계하기

Machine Learning/For CV

Hierarchical multi-scale attention for semantic segmentation

양갱맨 2020. 11. 20. 10:00

ABSTRACT

semantic segmentation의 성능을 개선시키기 위해 Multi-scale inference를 사용한다. 여러 스케일의 이미지가 네트워크를 통과하고 그 결과가 averaging 또는 max pooling 연산을 통해 결합된다.

이 논문에서는 multi-scale로 예측한 결과를 결합하기 위해 attention을 사용하는 접근법을 소개한다.

특정 스케일들로 예측하는 것은 특정 고장난 형태를 해결하는 데 더 효과적이다. 그리고 네트워크는 더 나은 예측을 하기 위해서 이러한 스케일들을 선호하는 것을 학습한다.

이 논문에서 사용되는 attention mechanism은 계층적이다. 이 방법은 다른 최근 접근법들보다 학습하는데 대략 4배 더 메모리 효율적이다. 게다가 학습할 때 더 크게 크롭하여 학습할 수 있어서 더 빠르게 학습이 가능하다.

이 방법에 대한 검증으로 Cityscapes와 Mapillary Vistas, 두 개의 데이터를 사용한다. 라벨링이 덜 된 이미지가 많은 Cityscapes에서 일반화를 개선하기 위해 라벨링 자동화를 사용한다.

결과적으로 이 방법을 사용해서 Mapillary(61.1 IOU val)와 Cityscapes(85.1 IOU test)에서 SOTA를 달성하였다.

Introduction

Semantic Segmentation은 모든 픽셀마다 classification하는 task이다. 여기엔 예측의 특정 타입에 대해 trade-off가 발생하는데, 해상도가 낮은 추론에서 잘되는 것과 고해상도에서 잘되는 것이 있다. 객체 엣지 검출같이 세부적인 Fine detial의 경우 이미지 사이즈를 키우는 것이 더 잘 예측된다. 큰 구조들을 예측하는 것은 더욱 global context를 요구하기 때문에 이미지의 사이즈를 작게하는 것이 더 좋다. 왜냐하면 네트워크의 receptive field가 필요한 컨텍스트를 더 많이 관찰할 수 있기 때문이다. 후자의 문제를 class confusion이라고 한다.

아래 그림에서 이 문제에 대한 예시를 볼 수 있다.

위 그림은 일반적으로 inference scale과 관련된 segmentation의 failures modes 그림이다.

첫 번째 줄에는 스케일을 축소했을때, 얇은 기둥에 대한 예측 성능이 떨어진다. 그러나 두 번째 줄에서 봤을 때 큰 길 영역의 경우 축소한 이미지가 더 잘 구분한 것을 확인할 수 있다.

일반적으로 이러한 trade-off를 해결하기 위해 사용하는 것이 multi-scale inference다. 예측은 scales 범위에 진행되고 결과는 averaging 또는 max pooling으로 결합된다. averaging pooling을 사용하면 일반적으로 결과가 개선되지만 best prediction과 그보다 못한 것과의 결합으로 인한 문제가 발생한다. best prediction과 worse prediction의 평균이 결과가 된다. Max pooling을 사용하면 주어진 픽셀에 대해 하나의 스케일을 선택한다. 예측마다 스케일이 다르기때문에 weighted combination을 적용한 것이 optimal answer가 된다.

pixel level에서 어떻게 이 multi-scale predictions을 결합할 것인지를 예측하기 위해서 attention mechanism을 차용한다.

Attention to Scale이라는 논문과 유사한 방법으로 어텐션을 적용한다.

Attention to Scale Model

이 논문에서는 hierarchical attention mechanism을 제안한다. 이 방법은 네트워크가 인접한 스케일들 사이에서 상대적인 가중치를 예측하는 것을 학습한다. 이 방법은 계층적이기 때문에 하나의 확장 스케일을 통한 학습 파이프라인을 만들면 된다. 다른 방법들은 학습 스케일이 늘어나는 만큼 각 추가적인 추론 스케일들이 요구된다. 예를 들어 inference sacles가 0.5, 1.0, 2.0 이면 결과적으로 0.52+2.02=4.250.5^2+2.0^2=4.25배의 추가 학습 비용이 필요하다. 그러나 이 논문에서 제안한 방법은 0.5 scale에 대한 추가 비용 0.25만 필요하다. 또한 이 계층적 메커니즘은 추론할 때 추가적인 스케일들을 선택하는 것에 유연성을 제공한다. 이전 방법들은 학습 때 썼던 스케일만 추론 때 사용할 수 있다.

Cityscapes 에서 SOTA 달성을 위해, 데이터에 분산을 높이기 위해서 coarse images에 auto-labelling을 적용한다. 일반화를 개선하기 때문이다.

soft-label대신 hard-label을 사용해서 라벨 저장 사이즈를 관리한다. 낮은 디스크 입출력으로 training throughput이 개선된다.

Hard Label = binary encoded e.g. [0, 0, 1, 0] Soft Label = probability encoded e.g. [0.1, 0.3, 0.5, 0.2]

What is the difference between soft and hard labels?
What does it mean to train a model against soft labels rather than hard labels?
https://www.reddit.com/r/learnmachinelearning/comments/7gi2l8/what_is_the_difference_between_soft_and_hard/

1.1 Contributions

  • hierarchical multi-scale attention mechanism은 multiple inference scales로부터 최고의 예측을 할 수 있는 결합 방법에 대해 네트워크가 학습하게 함으로써 class confusion과 fine detail에 도움이 된다.
  • hard-threshold 기반 auto-labelling 전략은 레이블링 되지 않은 이미지를 활용하고 IOU를 향상시킨다.
  • 결과적으로 Cityscapes와 Mapillary Vistas에서 SOTA 달성.

Related Work

  • Multi-sacle context methods
  • Relational context methods
  • multi-scale inference
  • Auto-labelling

Hierarchical multi-scale attention

이 논문의 어텐션 메커니즘은 개념적으로 아래 왼쪽 그림 [1]논문의 구조와 유사하다. 각 스케일에 대해서 dense mask를 학습한다. 그리고 multi-scale predictions는 마스크들 간 pixel-wise multiplication을 수행하고 최종 결과를 얻기위해 다른 크기의 스케일들 간 pixel-wise summation을 수행하여 결합한다.

Explicit Method라고 표현한 것이 [1] 논문의 multi-scale 구조이다. 고정된 스케일들의 각각 모든 어텐션 마스크를 학습하는 것 대신, 인접한 스케일들 간 relative한 어텐션 마스크를 학습하는 것을 hierarchical method라고 명명한다.

학습 네트워크에서는 단지 이웃 스케일 쌍만 사용한다. 한 장의 lower scale image로 부터 이미지의 feature set을 얻는다. 그리고 주어진 feature set으로 두 이미지 스케일 간 relative attention을 pixel-wise로 dense하게 예측한다.

실제로, 스케일 조정된 이미지들의 쌍을 얻기 위해 1장의 입력 이미지를 가지고 2개의 요소로 스케일링했다. 다운 스케일링 비율을 조정할 수 있지만 원래 이미지와 0.5배 이미지를 남긴다. 트레이닝 시에 image scale augmentation을 하기 때문에 네트워크 입력 크기 자체가 원래 트레이닝 이미지들의 재스케일링된 버전이라는 것이 중요하다. 이것은 네트워크가 이미지의 다양한 스케일에 대한 relative attention을 예측하는 법을 학습할 수 있게 한다.

인퍼런스를 할 때, 예측한 것들의 N개의 스케일을 결합하기위해서 계층적으로 학습된 어텐션을 적용한다. 상위에서 낮은 스케일을 얻고 스케일을 높이는 작업을 수행할 수 있다. 이것은 더 global context를 보면서 높은 스케일의 예측에 의해 수정될 필요가 있는 예측을 골라낸다.

더 일반적으로, 학습하는 동안 주어진 입력이미지는 factor r에 의해 스케일링 된다. r=0.5 이면 2배 downsampling 되고, r=2이면 2배 upsampling 된다. 학습 시, r=0.5, r=1.0을 사용한다. 두 이미지는 공유 네트워크 트렁크에 보내지고 각 스케일마다 semantic logits L과 attention mask alpha를 생성한다. 그리고 그것들은 스케일들 간 logit L을 결합하기 위해 사용된다.

따라서 두 개의 스케일 훈련과 추론 과정은 U가 upsampling, *, +가 각각 pixel-wise 곱, 합 연산으로 다음 방정식으로 표현될 수 있다.

L(r=1)=U(L(r=0.5)αr=0.5)+((1U(α(r=0.5)))L(r=1))L_{(r=1)} = U(L_{(r=0.5)}*\alpha_{r=0.5})+((1-U(\alpha_{(r=0.5)}))*L_{(r=1)})

제안된 전략을 사용하면 두 가지 이점을 얻을 수 있다.

  • 추론할 때, 유연하게 스케일을 선택할 수 있다. 모델을 트레이닝 할 때 0.5배, 1배 이미지로 사용해도 새로운 스케일 0.25배 또는 2배 등을 사용할 수 있다. 계층적인 방법으로 어텐션 메커니즘이 연결되어 있기 때문이다. 이것은 이전에 제안된 방법들로는 어려웠다. 왜냐하면 학습하는 동안 사용된 스케일과 같은 스케일의 이미지를 사용해야 했기 때문이다.
  • 이 계층적 구조는 explicit method에 비교해서 학습 효율이 더욱 개선되었다. 만약 explicit method에서 scale을 0.5, 1.0, 2.0을 사용한다고 하면, 학습 cost는 제곱합인 5.25가 나온다. 반면 이 논문에서 제안한 방법은 0.5, 1.0으로 1.25가 된다.

Architecture

  • Backbone
    • ResNet-50을 사용하였다. (output stride : 입력 이미지 해상도와 출력 이미지 해상도의 비율, 피쳐맵이 빽빽할 수록 값이 작다.) 여기선 8 사용. 이 네트워크를 trunk로 사용하였는데, sota를 위해, 더 강력한 trunk로 HRNet-OCR을 구현했다.
    • Semantic Head
      • semantic predictions는 (3x3 conv) → (BN) → (ReLU) → (3x3 conv) → (BN) → (ReLU) → (1x1 conv)로 구성된 fully convolutional head에 의해 수행된다. 최종 컨볼루션 출력은 클래스의 갯수 채널들로 나온다.
    • Attention Head
      • attention predictions는 단일 채널을 출력하는 최종 컨볼루션 출력을 제외하고는 semantic head와 구조적으로 같은 형태와 분리된 헤드를 사용한다. trunk로 ResNet-50을 사용하고 semantic과 attention head들은 ResNet-50의 최종 단계로부터 features를 받는다. HRNet-OCR을 사용할 때엔 OCR block의 features 출력을 받는다. HRNet-OCR에선 OCR 전에 HRNet trunk에서 직접 features를 가져오는 보조적인 semantic head가 존재한다. 이 헤드는 (1x1 conv) → (BN) → (ReLU) → (1x1 conv) 구성된다. semantic logit으로부터 어텐션이 적용되고난 후, predictions는 타겟 이미지 사이즈로 bilinear upsampling을 사용해서 업샘플링된다.

Analysis

multi-scale attention의 유효성을 검증하기 위해, DeepLab v3+ 구조를 사용했다.

계층적 어텐션을 적용하는 것이 더 좋은 정확도를 얻을 수 있었다.

추론 시간의 유연성이 이 방법의 핵심 이점이다. 한 번의 학습으로 유연하게 여러 스케일을 적용해서 평가할 수 있다.

어텐션 헤드에 single feature를 넣는 것과 dual-scale feature를 넣는 것에 대한 실험으로는 큰 이점이 없어서 single set으로 고정했다.

Auto Labelling on Cityscapes

auto-labelling을 적용해서 라벨링되지 않은 픽셀을 라벨링하여 라벨 퀄리티를 높였고 이것은 IOU 향상에 도움이 되었다. auto-labelling을 사용할 때 보통 soft label을 사용하는데 이것은 모든 이미지의 모든 픽셀에 클래스 별 확률을 표시하는 방법이다. 디스크 공간이나 학습 속도에서 이 접근법의 어려움이 발생한다. 20000 images * 2048 w * 1024 h * 19 classes * 4B = 3.2TB.

이 방법을 사용한다고 할 때, 학습 시 이 라벨을 읽는 것이 학습 속도를 상당히 느리게 한다. 그래서 이 방법 대신 hard labelling을 사용한다. 가장 높은 확률의 클래스를 선택하는 것이다. teacher network의 출력이 일정 threshold를 넘으면 그 값이 tru label이 된다. 미만 값들은 ignore class가 된다. 여기서 이 임계값을 0.9로 사용한다.

Result

Conclusion

이 논문에서는 semantic segmentation을 위한 Hierarchical multi-scale attention 접근법을 소개한다. 세그멘테이션 정확도를 개선하면서 메모리, 계산 효율성을 높였다.


정리 PDF



새 창에서 열기