SAR-Optical ID retrieval performance improvement through asymmetry-aware distance


Related posts


본 프로젝트는 Cross-modal Ship Re-Identification via Optical and SAR Imagery: A Novel Dataset and Method (ICCV 2025) 논문의 개선점을 모색 및 가설 실험하는 것을 목표로 합니다.

링크: https://arxiv.org/abs/2506.22027

[자세히보기]연구 목적 및 필요성

본 연구의 대상 논문은 ICCV 2025에 공개된 Cross-modal Ship Re-Identification via Optical and SAR Imagery: A Novel Dataset and Method이며, 문제 설정은 optical 위성 영상과 SAR 위성 영상 사이에서 같은 선박 ID를 다시 찾는 cross-modal ship ReID입니다. Optical 영상은 색상, 윤곽 정보가 비교적 직관적으로 보이는 반면, SAR 영상은 speckle noise, 낮은 시각적 세부 정보 때문에 optical과 매우 다른 형태의 관측값을 제공합니다. 따라서 같은 선박이라도 optical과 SAR feature가 자연스럽게 가까워지기 어렵고, 특히 SAR를 query로 사용하는 SAR to Optical 검색은 optical query보다 더 불확실한 문제가 됩니다. TransOSS는 이 문제를 해결하기 위해 optical과 SAR를 완전히 별도 모델로 처리하지 않고, 입력 초반에는 modality별 tokenizer를 분리하고 이후 transformer encoder는 공유하는 구조를 사용합니다. Cross-modal dual-head tokenizer는 optical patch와 SAR patch를 각각 다른 선형 층으로 embedding하여 저수준 modality 차이를 흡수하고, shared transformer encoder는 두 modality의 feature를 같은 embedding space로 정렬합니다. 또한 modality information embedding은 입력이 optical인지 SAR인지 모델에 알려주며, ship size embedding은 선박의 실제 크기와 비율 정보를 추가하여 resize 과정에서 사라질 수 있는 물리적 단서를 보완합니다. 학습은 optical-SAR pair 기반 contrastive pretraining 이후, HOSS train split에서 ID loss와 triplet loss를 이용해 supervised ReID fine-tuning을 수행하는 two-stage 방식입니다. 다만 논문이 최종 retrieval 평가에서 사용하는 거리는 query/gallery feature 사이의 Euclidean distance입니다. 하지만 방식은 optical query로 SAR gallery를 찾는 방향, SAR query로 optical gallery를 찾는 방향, 두 방향의 난도와 불확실성은 대칭적이지 않습니다. 본 실험의 목적은 TransOSS backbone 자체를 크게 바꾸기 전에, 최종 거리 계산 단계에서 query/gallery modality와 품질 정보를 반영한 asymmetry-aware distance(이하 aa distance)가 성능 개선 가능성을 보이는지 검증하는 것입니다.

alt text

입력 및 토큰화

Cross-modal Dual-head Tokenizer: 광학 이미지와 SAR 이미지는 물리적 특성이 매우 다르기 때문에, 각각 별도의 선형 층을 가진 Dual-head 구조를 사용하여 독립적으로 임베딩합니다.

임베딩 구성

  • Position Embedding: 패치의 위치 정보를 제공합니다.
  • Extra learnable [class] embedding: 전체 이미지의 글로벌 특징을 대표하는 학습 가능한 토큰입니다.
  • Modality Information Embedding: 현재 입력된 데이터가 광학인지 SAR인지에 대한 정보를 모델에 제공하여 모달리티 간의 차이를 줄입니다.
  • Ship Size Embedding: 원격 탐사 이미지에서 직접 측정할 수 있는 선박의 실제 크기와 비율 정보를 보조 정보로 입력하여, 이미지 리사이징으로 인한 크기 정보 손실을 방지합니다.

Two-Stage Training Approach

  1. 사전 학습용 데이터셋
  • 모델에게 일반적인 양식 불변 특징(Modality-invariant features)을 가르치는 것이 목적
  • 사용된 데이터: SEN1-2 및 DFC23
  • 동일한 지역을 찍은 Optical-SAR 이미지 쌍으로 구성 (광학 위성과 SAR 위성이 동일한 시간에 동일한 배를 정확히 촬영의 현실적 어려움)
  • 데이터 규모: 약 56,000개의 이미지 쌍

참고) HOSS ReID(Hybrid Optical and SAR Ship Re-Identification) 데이터셋

  • 위성을 활용한 선박 추적이라는 실제적인 문제를 해결하기 위해 구축된 세계 최초의 광학-SAR 하이브리드 선박 재식별 데이터셋
  • 광학 이미지는 Jilin-1 군집 위성(해상도 0.75m)을, SAR 이미지는 TY-MINISAR 군집 위성(해상도 1m)을 사용
  • 수동으로 고유 ID를 부여
  1. 파인튜닝용 데이터셋
  • 개별 선박의 고유한 정체성을 식별하는 구체적인 ReID 능력 향상이 목적
  • 사용된 데이터: 본 논문에서 직접 구축한 HOSS ReID dataset
  • 각 이미지마다 어떤 배인지(Ship ID)가 명확히 라벨링
  • 데이터 규모: 총 1,832개의 이미지 (학습용 1,063개 + 검증용 769개)
  1. 테스트 데이터 구성 (Query & Gallery)
    • HOSS ReID 데이터셋의 Validation Set
    • Query (질문 이미지): 176개, 광학 이미지 88개, SAR 이미지 88개로 공평하게 구성
    • Gallery (데이터베이스): 593개, 정답지: Query와 매칭되는 이미지 430개

Pretraining

alt text

alt text

$\mathcal{L}_{\text{pre}} = \frac{\text{ce} \left[ (O \cdot S^T) \times \sqrt{\tau} \right] + \text{ce} \left[ (S \cdot O^T) \times \sqrt{\tau} \right]}{2}$

Fine-tuning

alt text

$\mathcal{L}_{\text{triplet}} = \max (d(a, p) - d(a, n) + \text{margin}, 0)$

  • contrastive pre-training은 optical SAR 모달리티 정렬에 집중하기 때문에 동일한 선박 사진에 대한 두 이미지이며,
  • 이어지는 supervised fine-tuning은 ID 정렬에 초점을 두어 배의 종류만 맞춘 서로 다른 이미지를 활용합니다.

alt text

  • TransOSS*(사전 학습 없음)와 TransOSS(사전 학습 포함)를 비교하면, 대규모 광학-SAR 쌍 데이터로 사전 학습했을 때 mAP가 크게 향상됩니다.
  • Optical to SAR보다 SAR to Optical의 성능이 대체로 낮게 나타납니다. 이는 SAR 이미지의 특징 정보가 광학에 비해 제한적이기 때문입니다.

TransOSS 개선안: Asymmetry-aware distance

문제 의식

SAR 이미지는 광학 이미지에 비해 물체의 세부적인 질감이나 색상 정보를 포함하지 않으며, 이러한 내재적인 특징 부족은 SAR를 쿼리로 사용할 때 ReID 작업을 더 도전적으로 만듭니다.

개선안

$\mathcal{L}_{\text{pre}} = \frac{\text{ce} \left[ (O \cdot S^T) \times \sqrt{\tau} \right] + \text{ce} \left[ (S \cdot O^T) \times \sqrt{\tau} \right]}{2}$

기존 modality-shared transformer encoder가 사전 학습에 있어 SAR→optical, optical→SAR 방향으로 같은 가중치를 주어 단순 평균합니다. 이 부분에 착안해 pretrain-loss를 수정하는 방향을 고려했으나, shared encoder의 주 역할이 SAR, optical 두 모달리티 간 불변 특징 추출이기 때문에 다른 방법을 모색했습니다.

→ query-gallery feature 간 거리를 단순 유클리드 거리가 아닌 query 역할에 따른 보정항을 추가하는 방향을 선택했습니다.

공식 체크포인트 baseline

  • weights/HOSS_TransOSS.pth

공식 깃허브에서 제공한 모델로 추론을 진행했을 때 논문에 제시된 결과와 얼마나 유사한지 확인했습니다.

참고 사항:

O2S Optical query -> SAR gallery 검색
S2O SAR query -> Optical gallery 검색
mAP 전체 ranking을 보는 retrieval 지표
Rank-1 gallery의 1등 검색 결과가 정답인지 나타내는 지표
All optical/SAR query 전체를 쓰고, gallery도 전체를 사용

직접 추론한 결과와 논문에 나타난 결과가 크게 차이 나지 않았음을 확인했습니다.

평가 항목 논문 TransOSS 공식 체크포인트 평가 차이
All mAP 57.4 57.36 -0.04
All Rank-1 65.9 65.91 +0.01
All Rank-5 79.5 79.55 +0.05
All Rank-10 85.8 85.80 +0.00
O2S mAP 48.9 48.88 -0.02
O2S Rank-1 33.8 33.85 +0.05
S2O mAP 38.7 38.74 +0.04
S2O Rank-1 29.9 29.85 -0.05

재학습 TransOSS baseline

논문대로 결과가 직접 재현되는지 사전학습 전 체크포인트를 논문대로 훈련시킨 다음, 공식 최종 checkpoint weights/HOSS_TransOSS.pth를 평가한 값과 비교했습니다.

학습 설정:

항목
시작 weight weights/vit_b512_pre.pth
DDP MODEL.DIST_TRAIN True
epoch 200
batch size SOLVER.IMS_PER_BATCH=32
sampler softmax_triplet
optimizer SGD
base LR 0.0005
scheduler cosine scheduler
warmup epochs 5
checkpoint period 10
eval period 10
seed 1234

재학습 baseline의 마지막 checkpoint는 공식 checkpoint보다 약간 낮습니다.

모델/체크포인트 mAP Rank-1 Rank-5 Rank-10
논문 TransOSS 57.4 65.9 79.5 85.8
공식 체크포인트 baseline 재평가 57.36 65.91 79.55 85.80
재학습 TransOSS baseline epoch 200 56.5 63.6 78.4 86.4

asymmetry-aware distance 설계 및 실험

보정항이 반영된 거리

가설의 효과를 가볍게 테스트할 목적으로 단순한 aa_distance을 구성하였습니다.

final_distance = (1 - blend) * baseline_distance + blend * qcar_distance
  • baseline distance = Euclidean 기반 거리
  • aa_distance = 단순화된 보정 거리
  • final distance = baseline distance와 aa_distance를 보간한 거리

Probabilistic Embeddings for Cross-Modal Retrieval, CVPR 2021

  • cross-modal retrieval에서 deterministic embedding만으로는 ambiguity 표현이 부족하다는 점에서 출발
  • retrieval loss를 통해 특정 샘플의 feature distance를 얼마나 강하게 믿어야 하는지를 학습

query/gallery 역할별 uncertainty weight를 둡니다.

query_uncertainty_weight[optical, SAR]
gallery_uncertainty_weight[optical, SAR]

같은 SAR 이미지라도 query로 쓰일 때와 gallery 후보로 쓰일 때 retrieval 난도가 다를 수 있습니다. 특히 S2O에서는 SAR가 query가 되고 optical이 gallery가 되므로, modality, query라는 역할 자체가 중요합니다. 이 파라미터는 query modality와 gallery modality의 uncertainty 영향력을 분리합니다.

다음으로, direction bias를 둡니다.

direction_bias[query_modality, gallery_modality]

2 x 2 행렬이므로 네 방향에 별도 bias를 줄 수 있습니다.

optical -> optical
optical -> SAR
SAR -> optical
SAR -> SAR

실험 설계

  --epochs 30 \\\\
  --batch-size 128 \\\\
  --num-instances 4 \\\\
  --distance-blend 0.0 \\\\
  --o2s-blend 0.5 \\\\
  --s2o-blend 0.1 \\\\
실험 후보 설명
공식 체크포인트 baseline 공식 HOSS_TransOSS.pth를 원본 Euclidean distance로 평가
aa_distance only aa distance만 사용
aa_distance blend025 모든 query-gallery pair에 aa distance를 25%만 섞음
aa_distance cross050 cross-modal pair에만 aa distance를 50% 섞음
aa_distance O2S0.5/S2O0.0 O2S에만 50% aa 보정, S2O는 보정 없음
aa_distance O2S0.5/S2O0.1 O2S는 50%, S2O는 10% aa 보정

예. O2S0.5/S2O0.0

O2S0.5 = optical query -> SAR gallery pair에는 asymmetry-aware distance를 50% 섞음 S2O0.0 = SAR query -> optical gallery pair에는 asymmetry-aware distance를 안 섞고 baseline distance만 사용

실험 결과

test set split 구분

  • All: optical/SAR query 전체를 쓰고, gallery도 전체를 사용
  • O2S: optical query로 SAR gallery 안에서 같은 선박을 찾음
  • S2O: SAR query로 optical gallery 안에서 같은 선박을 찾음
Experiment Split mAP R1 R5 R10
공식 체크포인트 baseline All 57.36 65.91 79.55 85.80
공식 체크포인트 baseline O2S 48.88 33.85 67.69 80.00
공식 체크포인트 baseline S2O 38.74 29.85 59.70 71.64
aa_distance only All 44.15 40.34 70.45 80.11
aa_distance only O2S 46.37 35.38 61.54 81.54
aa_distance only S2O 35.42 28.36 56.72 70.15
aa_distance blend025 All 61.15 67.61 80.11 88.07
aa_distance blend025 O2S 49.34 33.85 67.69 81.54
aa_distance blend025 S2O 38.78 29.85 59.70 73.13
aa_distance cross050 All 61.12 63.64 80.11 85.80
aa_distance cross050 O2S 50.28 36.92 69.23 81.54
aa_distance cross050 S2O 38.02 26.87 59.70 73.13
aa_distance O2S0.5/S2O0.0 All 60.31 64.20 79.55 85.23
aa_distance O2S0.5/S2O0.0 O2S 49.57 36.92 69.23 83.08
aa_distance O2S0.5/S2O0.0 S2O 38.74 29.85 59.70 71.64
aa_distance O2S0.5/S2O0.1 All 61.58 65.34 80.11 86.93
aa_distance O2S0.5/S2O0.1 O2S 49.73 36.92 69.23 83.08
aa_distance O2S0.5/S2O0.1 S2O 38.66 29.85 58.21 73.13

결과 분석

  • aa_distance only의 성능이 비교적 낮습니다. 이는 aa 거리식 설계를 너무 단순화한 결과이기도 합니다.
  • baseline distance와 aa_distance를 약하게 blend하면 전체 mAP가 올라갑니다.
  • O2S 방향은 aa_distance 보정으로 Rank-1 지표가 조금 개선되었습니다.
distance_blend=0.0
o2s_blend=0.5
s2o_blend=0.1
Split Metric Baseline QCAR-A 변화
All mAP 57.36 61.58 +4.22
All R1 65.91 65.34 -0.57
O2S mAP 48.88 49.73 +0.85
O2S R1 33.85 36.92 +3.07
S2O mAP 38.74 38.66 -0.08
S2O R1 29.85 29.85 +0.00