1. 기본 구조 (Architecture)
• Backbone: RGB와 Thermal 이미지 모두 DINOv2를 사용하여 Feature Embedding을 추출.
• Adapter: DINOv2 뒤에 Downsample -> ReLU -> Upsample 구조의 Adapter
2. 학습 데이터셋 구성 (Triplet Mining) • 학습은 Contrastive Learning (Triplet Loss) 방식을 따름. • Anchor: 현재 학습할 Thermal 이미지 (Query). • Positive (정답): Anchor와 물리적 거리 10m 이내의 RGB 이미지 중, Feature Space 상에서 가장 유사한(L2 Distance가 작은) 1장. • Negative (오답): Anchor와 물리적 거리 10m 이상인 RGB 이미지들 중, Feature Space 상에서 가장 유사한(L2 Distance가 작은) 10장. ** 3. 학습 루프 (Training Loop) • Online Mining: 매 주기마다 모델이 생성한 최신 임베딩을 기준으로 Positive/Negative를 다시 선별하여 Loss를 계산함. • Loss: Triplet Loss를 사용하여 정답과는 가까워지고, 오답과는 멀어지도록 학습.
학습시에 thermal과 동일한 위치/시간에서 찍은 RGB image가 주어진다
따라서, thermal이 해당 rgb와 유사한 feature embedding을 뽑도록 유도하는 loss를 설계(clip과 유사)
RGB와 대응되는 Thermal만 positive, batch내 다른 CLS들은 negative로 설정
성능 비교 위 loss를 alignment loss라 지칭할 때, total loss = triplet loss + alignment loss * k
| | R@1 (SNU) | R@5 (SNU) | R@10 (SNU) | R@1 (Valley) | R@5 (Valley) | R@10 (Valley) | | --- | --- | --- | --- | --- | --- | --- | | baseline | 66.7 | 86.6 | 91.9 | 86.5 | 99.2 | 99.7 | | k = 0.5 (epoch 49) | 72.2 | 89.3 | 93.3 | 86.2 | 98.1 | 99.6 | | k = 1 (epoch 42) | 70.2 | 88.6 | 92.6 | 88.5 | 98.3 | 99.7 | | k = 1.5 (epoch 49) | 67.4 | 85.9 | 90.8 | 88.5 | 97.5 | 99.4 |
| | R@1 (SNU) | R@5 (SNU) | R@10 (SNU) | R@1 (Valley) | R@5 (Valley) | R@10 (Valley) | | --- | --- | --- | --- | --- | --- | --- | | baseline | 66.7 | 86.6 | 91.9 | 86.5 | 99.2 | 99.7 | | k = 0.5 (epoch 49) | 64.2 | 85.8 | 91.3 | 85.8 | 98.5 | 99.7 | | k = 1 (epoch 42) | 71.1 | 89.6 | 89.6 | 86.9 | 98.1 | 99.4 |