Ridgeline Synthetic
domain-gapWassersteindistribution-alignmentSim2Realsynthetic-data

Wasserstein 거리로 클래스별 domain gap 진단하기 | Ridgeline Synthetic

Sim2Real domain gap을 막연히 '크다/작다'로 말하는 대신, 클래스별로 정량 측정하는 방법. Wasserstein(W1) 거리, 픽셀 통계, JSD·MMD 비교와 실제 진단 사례를 정리합니다.

“합성 데이터와 실데이터의 차이가 크다”는 말은 그 자체로는 아무 행동도 만들지 못합니다. 어느 클래스의, 어떤 통계가, 얼마나 다른지를 수치로 잡아야 비로소 어디를 고칠지 결정할 수 있습니다. 이 글에서는 클래스별 domain gap을 정량 진단하는 실용적인 방법을 정리합니다.

왜 ‘클래스별’인가

전체 이미지 분포를 한 번에 비교하면, 정작 문제가 되는 소수 클래스의 갭이 다수 클래스의 평균 뒤에 숨습니다. semantic segmentation처럼 클래스별 마스크가 있는 과제에서는 각 클래스의 픽셀 집합을 따로 떼어 분포를 비교하는 것이 훨씬 진단력이 높습니다. 예를 들어 지면(Soil)과 흙더미(Dump)는 시각적으로 인접하지만, 둘의 domain gap 크기는 완전히 다를 수 있습니다.

1. 픽셀 통계 — 가장 싸고 직관적인 첫 진단

가장 먼저 보는 것은 클래스별 픽셀 표준편차입니다. 합성 텍스처가 실환경보다 균일하게 렌더링되는 경향이 흔하기 때문입니다.

항목SimReal
Soil 픽셀 Std (R,G,B avg)~20~34

이 표 하나만으로도 “합성 Soil이 너무 균일하다”는 가설을 세울 수 있습니다. 평균(mean)은 비슷해도 분산(variance)이 어긋나면 모델은 분산을 단서로 잘못된 결정 경계를 학습합니다.

2. Wasserstein(W1) 거리 — 분포 간 ‘이동 비용’

픽셀 통계는 1·2차 모멘트만 봅니다. 분포의 전체 형태 차이를 보려면 분포 간 거리를 직접 계산합니다. 자주 쓰는 세 가지는 다음과 같습니다.

  • Wasserstein W1 (Earth Mover’s Distance): 한 분포를 다른 분포로 바꾸는 데 드는 최소 ‘이동 비용’. 분포가 겹치지 않아도 의미 있는 값을 주고, 크기 해석이 직관적입니다.
  • JSD (Jensen-Shannon Divergence): 대칭화된 KL. 0~1로 bounded되어 비교가 쉽지만, 분포가 거의 겹치지 않으면 포화됩니다.
  • MMD (Maximum Mean Discrepancy): 커널 기반. 고차원 feature 분포 비교에 적합하고 미분 가능해 학습 손실로도 쓸 수 있습니다.

실무에서는 픽셀/저차원 통계에는 W1을, deep feature 분포에는 MMD를 함께 쓰는 조합이 안정적입니다.

위 굴착기 사례에서 클래스별 W1을 측정한 결과는 다음과 같았습니다.

비교W1해석
Sim Soil ↔ Real Soil0.0768
Sim Dump ↔ Real Dump0.1506매우 큼

이 수치는 “Soil과 Dump 둘 다 갭이 있지만 Dump가 더 심하다”는 우선순위를 분명히 보여줍니다.

3. 진단을 해소로 — 그리고 다시 측정

진단의 가치는 해소 후 같은 지표로 재측정할 때 완성됩니다. Soil에 한정한 style transfer(Soil-selective FDA)를 적용한 뒤 W1을 다시 쟀습니다.

클래스별 Wasserstein W1 거리 — Soil 갭 -58% 교정, Dump 갭 미해소

Soil 갭은 0.0768 → 0.0322로 −58% 줄었고, 픽셀 Std도 20 → 34로 실환경 수준에 맞춰졌습니다. 반면 Dump 갭은 거의 변하지 않았습니다(0.1506 → 0.1565). 이 “변하지 않음”도 중요한 진단 결과입니다 — Soil만 건드렸으니 Dump가 그대로인 것은 일관성 있는 결과이고, 동시에 Dump-selective 보강이 다음 과제임을 명확히 합니다.

진단이 모델 성능으로 이어졌는가

분포 거리를 줄이는 것 자체가 목적은 아닙니다. 최종 확인은 downstream 성능입니다. 위 교정 후 rare class Dump IoU가 +11.14pp, 안전 핵심 Human Recall이 +6.27pp 올랐고 전체 mIoU도 +3.96% 개선되어 Pareto PASS를 만족했습니다. 분포 진단 → 표적 해소 → 성능 개선이 한 줄로 연결된 셈입니다.

전체 측정 프로토콜(sequence-disjoint validation 포함)과 backbone-agnostic 검증은 굴착기 케이스 스터디에 정리돼 있습니다.

실무 체크리스트

  • 클래스별로 픽셀 마스크를 분리해 통계를 따로 본다
  • mean뿐 아니라 variance·분포 형태를 본다 (W1/JSD/MMD)
  • 가장 갭이 큰 클래스부터 표적 해소한다
  • 해소 후 같은 지표로 재측정하고, downstream 성능까지 확인한다
  • 해소되지 않은 갭은 숨기지 말고 후속 과제로 명시한다

domain gap을 측정 가능한 대상으로 다루면, 합성 데이터는 “느낌”이 아니라 “공학”이 됩니다. 의뢰자 도메인의 클래스별 갭 진단이 필요하면 문의로 연락 주세요.