본문 바로가기

CV 논문리뷰/Domain (UDA, TTA, DG)

[RAL 2021] MS-UDA:Multi-Spectral Unsupervised Domain Adaptation for Thermal Image Semantic Segmentation

오늘은 Image Segmentation 관련 논문을 가져 왔습니다.

Segmentation 에 대한 논문은 처음 읽어보는데, 추천을 받은 논문이라 Baseline으로 선정 후 읽어보았습니다.


1. Introduction

본 논문은 Thermal Image에서의 Semantic Segmentation을 위한,
multi-spectral unsupervised domain adapation 을 수행하는 논문입니다.

열화상 image가 주어졌을 때, pixel 단위로 class를 예측하는 Semantic Segmentation을 진행하게 되는데,
이 과정에서 domain adaptation 이 함께 수행이 됩니다.

 

갑자기 왜 생뚱맞게 domain adaptation이 등장하는 것일까요?

thermal domain 에서의 dataset은 매우 부족합니다.
뿐만 아니라 thermal dataset이 존재한다고 하더라도 항상 segmentation을 위한 GT 정보가 존재하는 것은 아닙니다.

그리고 보통 segmentation은 RGB보다 Thermal domain 에서 성능이 낮습니다.
RGB에 비해 Thermal 에서는 엣지 등의 정보가 매우 부족하기 때문입니다.

 

이를 해결 하고자 전체 모델 구조에서 RGB 에서 Thermal로 knowledge transfer를 진행하게 됩니다.
이 과정에서는 RGB-to-RGB, RGB-to-Thermal, Thermal-to-Thermal 이렇게 3가지의 adaptation이 진행됩니다.
아래의 3가지가 이에 대한 간단한 설명인데, 뒤의 method 부분에서 더 자세하게 설명 드릴 예정입니다.

 

 

Overview

i) RGB-to-RGB transfer learning
large-scale RGB dataset에서 pretrained 된 모델이 예측한 것을
본 논문의 RGB stream 의 pseudo-label로 설정합니다.

 

ii) RGB-to-thermal domain adaptation
RGB와 Thermal 사이에서의 domain adaptation 입니다.
전체 모델이 RGB와 Thermal stream으로 구성되는데,
RGB에서의 예측과, Thermal에서의 예측 사이의 domain gap을 줄이는 부분입니다.

 

iii) thermal-to-thermal intra-domain adaptation
Thermal 에서는 낮과 밤 시간대 사이의 온도차 때문에 시각적인 결과가 매우 다릅니다.
따라서 본 논문에서 밤 시간대의 Thermal input의 경우, 낮 Thermal로 fake night 를 만들어서 사용합니다.
이를 통해 day와 night의 intra-domain gap을 줄인 것입니다.


2. Method

본 논문은 제목에서도 알 수 있다시피 본 방법론의 목적은
unsupervised 환경의 thermal image를 위한 semantic segmentation 모델을 training 시키는 것입니다.

 

thermal image에서의 GT가 없는 것을 극복하기 위해, large-scale label RGB dataset 으로부터
small-scale unlabeled thermal dataset 으로 knowledge transfer를 진행하게 됩니다.

 

RGB network와 Thermal network는 별개의 Encoder, 그리고 shared Decoder로 구성됨

 

위 모델 그림과 함께 설명하자면,
미리 pretrained된 Pseudo-Label Generation 모델을 통해 pseudo-label인 $\hat{y}_{rgb}$ 를 생성합니다.

그 후 $\hat{y}_{rgb}$를 pseudo-label 삼아
RGB-stream 에서 segmentation 결과인 $\hat{y}_{th}$ 를 예측합니다.

그리고 이는 또 제일 하단 Thermal-stream의 pseudo-label이 됩니다.
$\hat{y}_{th}$ 를 사용해서 최종 output을 예측하게 되는 것입니다.

 

Thermal sensor의 경우 촬영된 이미지에서 blurry edges와 불충분한 texture가 나타나는 특성이 있습니다.
이와 반대로, RGB 에서는 충분한 texture, color, sharp boundary 덕분에 좋은 segmentation 성능이 나옵니다.
이런 이유 때문에 RGB to Thermal 로 knowledge transfer를 진행하는 것이고,
이를 위해 domain adaptation network 도 설계 한 것입니다.

 

Thermal-stream 의 경우, 낮과 밤 사이의 intra-domain gap을 줄이기 위한,
pixel-level thermal image adaptation 이 사용됩니다.
이는 아래 fig.4 에서 보는것과 같이,
thermal 영상에서 낮과 밤 사이의 온도차 때문에 발생하는 여러 차이를 해결하고자 하는 것입니다.

 

 

각각의 모듈을 loss 식과 함께 설명 드리겠습니다.


2.1. RGB-to-RGB: Pseudo-Label Generation

최종적으로 해야하는 것은, GT가 존재하지 않는 RGB-Thermal pair image 를 사용하여
RGB network 에서 Thermal network로 segmentation 결과를 transfer 하고,
thermal network에서 segmentation 결과를 예측해야 합니다.

이를 위해 RGB network 또한 pseudo label을 제공받아야 하고,
이에 GT가 존재하는 large dataset인 cityspace dataset으로 학습 된 HRNet이라는 성능 좋은 모델이 사용됩니다.

 

pretrained 시킨 HRNet이 source RGB image를 통해 예측한 segmentation 결과가
RGB network의 pseudo label로 사용되는 것입니다.

RGB network 는 위 모델 그림에서 주황색 영역에 해당합니다.


pseudo label과 RGB network 예측 사이의 loss 식은 아래와 같습니다.
cross entropy loss 를 사용해서 RGB network 의 Encoder인 $E_{rgb}$를 학습시킵니다.

 

 

그런데 $E_{rgb}$와 pretrained model인 HRNet의 input 으로 들어가는 RGB 이미지에는
밤이 아닌 낮의 이미지만 사용이 됩니다.
illumination, noise 등의 요인 때문에 밤의 RGB image의 경우 segmentation 예측 성능이 매우 떨어지기 때문입니다.
아래 그림이 해당 예시입니다.

 


2.2. RGB-to-THR: Multi-Spectral Domain Adaptation

RGB network와 Thermal network는 input이 담고 있는 정보가 다르기 때문에
feature를 뽑아내는 Encoder는 개별적으로 구성되고,
pixel level로의 classification을 진행하는 Decoder는 공유합니다.

 

그리고 Thermal network의 Encoder인 $E_{th}$ 는 thermal image를 가지고,
RGB network의 Encoder인 [latex]E_{rgb}[/latex]와 유사한 embedding feature를 뽑아내야 합니다.

이를 위해 $E_{th}$를 학습시키는 아래와 같은 loss를 설계합니다.
GAN의 discriminator를 사용해 real, fake 개념을 도입시켜서 $E_{th}$ 를 학습 시키는 것입니다.

 

 

그리고 shared decoder인 $D_{shared}$를 학습시키는 loss는 아래와 같습니다.

 

 

그리고 모델의 그림에 파랑색으로 표시된 Dis라는 부분이 보이실겁니다.
GAN 모델의 discriminator 입니다.

해당 discriptor는 segmentation 예측결과인 P가 RGB domain에서 예측된 것인지 Thermal domain에서 예측된 것인지를 구별하는 역할을 합니다. 이를 통해 $P_{th}$ 는 $P_{rgb}$ 와 최대한 유사한 방향으로, discriminator를 속이기 위해 output을 도출 해 낼 것입니다. 관련 loss는 아래와 같습니다.

z=0인 경우가 RGB 이고, z=1인 경우가 Thermal 입니다.

 

 


2.3. THR-to-THR: Day-to-Night Thermal Image Translation

위쪽에 fig.4. 를 통해 Thermal domain에서 낮과 밤의 온도 변화에 따라 차이가 크게 존재하고,
이 때문에 Fake night를 사용한다고 설명을 했었습니다.

이를 생성하기 위해 CycleGAN을 사용합니다.
그리고 Training을 할 때 모델의 input의 경우 Real Day와 Fake Night 중 random한 확률로 한 장이 들어간다고 합니다.


Experiment

실험에서는 다른 supervised 방법론들, 그리고 다른 UDA 방식과 비교합니다.
다른 supervised 방법론은 모두 GT가 존재하는 MF dataset으로 학습이 되었습니다.

 

우선 MF day-night dataset에서의 성능 평가입니다.
평가 단계에서 낮,밤을 합쳐서 성능을 평가 한 것인데 본 논문의 방법론이 unsupervised 방법론임에도 불구하고 supervised 방법론과 성능차이가 크지 않은것을 볼 수 있습니다.

다음으로는 MF dataset에서 밤 이미지만을 가지고 성능을 평가 한 결과입니다.
아래 표에서 B는 single-modal data로만 학습 된 것을 의미하고,
M은 multi-modal data로 학습된 것을 의미합니다.
또한 $G_{PL}$은 앞서 설명드린 pseudo-label generator를 의미하고,
$T_{D2N}$은 thermal에서 낮과 밤의 intra-domain gap을 해결하기 위한 방식을 뜻합니다.

아래 표 같은 경우에 다른 supervised 방식보다 성능이 더 높은것을 볼 수 있는데,
이는 RGB image에서 밤에 발생하는 빛의 차이 (위 fig.2. 참고) 를 해결하고자 RGB stream에서 낮 이미지만을 사용했기 때문이라고 보시면 될 거 같습니다.

 

 

아래는 정성적인 결과입니다.
KP 데이터셋은 저희가 흔히 아는 KAIST 데이터셋을 의미합니다.

4가지 예시가 있는데,
왜 낮에 대한 결과를 리포팅 하지 않았는지는 잘 모르겠네요...
다음주에 코드를 한번 돌려 볼 예정인데, 제가 낮에대한 정성적 결과를 한번 살펴 보도록 하겠습니다.

 

 

아래는 Ablation 결과입니다.

 

 

RGB stream과 Thermal Stream 각각에서
Encoder와 decoder를 분리하는지 공유하는지에 따른 실험 결과입니다.

 

Encoder가 shared 된 경우엔 매우 낮은 성능을 보여주고 있습니다.
RGB와 Thermal의 경우 image의 특징이 매우 다른데, 이를 서로 다른 encoder로 학습 시켜서 공통된 embedding space로 feature를 표현해야 하는것의 중요성을 잘 보여주고 있습니다.

 

이와 반대로, decoder의 경우 share 하는것이 조금 더 높은 성능을 보여줍니다.
공통된 decoder를 사용함으로써 thermal가 RGB에게 guide를 받을 수 있다는 것을 보여줍니다.


decoder의 경우 앞선 encoder에서 추출된 공통 embedding feature를 가지고 공통 task인 pixel-level classification을 수행하는 것이기 때문에 shared 하는것이 조금 더 높은 성능을 나타낸다고 이해했습니다.


첫 segmentation 관련 논문인데 생각보다 잘 읽혔던 거 같습니다.
감사합니다.