오늘은 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 부분에서 더 자세하게 설명 드릴 예정입니다.
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를 진행하게 됩니다.
위 모델 그림과 함께 설명하자면,
미리 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인 E_{rgb}와 유사한 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 관련 논문인데 생각보다 잘 읽혔던 거 같습니다.
올해 말에 미래국방 과제 보고서를 작성해야 하는데, 그때까지 성능 5%를 개선해낼 수 있을까요,,?
라는 걱정을 하면서 리뷰를 마치겠습니다. 감사합니다.
좋은 리뷰 감사합니다.
RGB-to-RGB 모델 결과에 성능이 의존적일 수 없다고 생각이 들었는데요. 특히 RGB-to-RGB: Pseudo-Label Generation 을 학습할 때, 정보량이 부족한 밤 이미지는 제외하고 낮 이미지에 대하여만 학습을 진행했다고 해서. 더욱이 밤 이미지에 성능 저하가 발생하지 않을까 싶었는데, 결과를 보니 그렇지 않네요. 그런데 왜 낮 이미지의 결과는 없죠? 생략하신건지, 논문에 없다면 왜 없다고 (리포팅 하지 않는 이유) 생각하시나요?
낮에 대한 정성적인 결과, 그리고 낮 dataset만을 가지고 평가한 성능도 논문에서는 따로 리포팅 하지 않고 있습니다.
.
다른 방법론에 비해 본 논문의 장점은 Fake Night 생성을 통한 night 성능의 향상이라고 봅니다. 그래서 day에서만 평가 했을때는 성능 차이가 존재를 해서 저자가 제외하지 않았을까 생각이 듭니다
좋은 리뷰 감사합니다.
밤 환경에서의 Thermal 대신 낮 thermal image로 생성한 fake night image를 활용하여 성능이 향상되었다는 점이 흥미로웠습니다. 학습에 사용되는 데이터가 낮 rgb-thermal 로만 진행되고 평가에는 낮, 밤의 image가 모두 사용된 것으로 이해하였는데 실제 사용되지 않은 영역의 예측값이 잘 들어맞는 것도 신기한 부분이네요.
제가 unsupervised learning에 관해 잘 몰라서 질문드리는 건데 pseudo label이 학습 시 이미지의 gt 역할을 한다고 이해하면 될까요?
넵 맞습니다.
이미 pretrained된 무거운 모델을 통해 예측한 결과값을
본 모델의 pseudo(가짜 생성) label 로 설정해서 GT 역할을 하도록 하는 것입니다.
먼저 좋은 리뷰 감사합니다.
Thermal에서의 GT dataset이 부족하기 때문에 RGB 이미지에서 domain adaptaion을 적용하고 3단계로 Transfer하여 Thermal를 학습하고자 한 마치 semi-supervised? 와 같은 모습이 재밌게 다가왔습니다. 다만 논문에 쓰여진대로라면 밤에서는 noise 등의 이유로 RGB에서의 segmentation 성능이 낮다고 하는데, 그렇다면 RGB night의 이미지를 학습하지 않은 채 낮의 이미지 만으로 학습한 Encoder를 Thermal에 적용하게 된다면 Thermal에서의 낮과 밤의 격차가 더 커지지 않나요? 그 격차가 어떻게 되는지 궁금합니다
결론적으로 prediction 단계에서 사용이 되는 것은 모델 제일 하단 stream인 Thermal network 부분입니다. 해당 부분을 잘 학습하기 위해서는 RGB network가 예측하여 제공하는 pseudo label(y^_th) 의 성능이 중요하겠구요.
그런 관점에서 RGB image가 낮인지 밤인지는 중요한 사항이 아닙니다. 어쨌든 낮의 성능이 좋으므로 낮에대한 경우에서만 pseudo label을 잘 전달해 주면 되고, Thermal쪽에서는 낮 RGB image와 frame이 맞는 이미지를 사용하기 때문이지요.
다만 고민해봐야 할 부분은 thermal에서의 fake night image가 실제와 얼마나 유사할지가 될 거 같네요. 어쨋든 예측 단계에서는 낮,밤 thermal image가 들어올테니, CycleGAN을 통해 실제와 정말 유사한 fake night image를 만들어야 할 거 같습니다.
++ 낮,밤의 성능 비교는 저도 리포팅이 필요하다고 생각이 들긴 하지만 딱히 진행하고 있지 않네요..