Chamfer Distance

Chamfer distance(챔퍼 거리)는 두 개의 포인트 집합(point cloud)이 얼마나 유사한지를 측정하는 지표입니다.

쉽게 말해, 두 개의 점 그룹(A, B)이 있다고 상상해 보세요. Chamfer distance는 다음과 같이 계산됩니다.

  1. 그룹 A의 모든 점에 대해, 그룹 B에서 가장 가까운 점을 찾아서 그 거리를 모두 더합니다.
  2. 그룹 B의 모든 점에 대해, 그룹 A에서 가장 가까운 점을 찾아서 그 거리를 모두 더합니다.
  3. 위에서 구한 두 값의 합이 바로 Chamfer distance입니다.

이 거리가 작을수록 두 점 그룹은 더 비슷하다고 할 수 있습니다.

주요 특징과 활용 분야는 다음과 같습니다.

  • 포인트 클라우드 정렬: 두 개 이상의 포인트 클라우드를 정렬할 때 Chamfer distance를 최소화하여 최적의 정렬을 찾을 수 있습니다]
  • 딥러닝 손실 함수: 딥러닝에서 생성된 포인트 클라우드가 목표 포인트 클라우드와 최대한 유사해지도록 Chamfer distance를 손실 함수로 사용합니다
  • 포인트 클라우드 완성: 불완전한 포인트 클라우드를 완성하는 작업의 평가 지표로 사용되며, 전체적인 구조와 국소적인 기하학적 디테일을 모두 고려하여 신뢰도 높은 평가를 제공합니다.

하지만 Chamfer distance는 점의 밀도 차이에 둔감하고, 특이점(outlier)의 영향을 많이 받는 단점이 있어, 이를 보완한 Density-aware Chamfer Distance (DCD)와 같은 새로운 측정 방식도 제안되었습니다.

구체적인 예시를 통해 Chamfer distance를 쉽게 이해해 보겠습니다.

B) 간단한 1차원 예시

두 개의 1차원 점 그룹 A와 B가 있다고 가정해 보겠습니다.

  • 그룹 A: {1, 2, 3}
  • 그룹 B: {2, 4}

이제 Chamfer distance를 계산해 보겠습니다.

1단계: 그룹 A의 각 점에서 그룹 B까지의 가장 짧은 거리를 계산합니다.

  • A의 점 1에서 B까지 가장 가까운 점은 2입니다. 거리: |1 - 2| = 1
  • A의 점 2에서 B까지 가장 가까운 점은 2입니다. 거리: |2 - 2| = 0
  • A의 점 3에서 B까지 가장 가까운 점은 2 또는 4입니다. 2까지의 거리는 |3-2|=1이고, 4까지의 거리는 |3-4|=1입니다. 둘 다 같으므로 거리는 1입니다.

그룹 A -> 그룹 B 거리의 합: 1 + 0 + 1 = 2

2단계: 그룹 B의 각 점에서 그룹 A까지의 가장 짧은 거리를 계산합니다.

  • B의 점 2에서 A까지 가장 가까운 점은 2입니다. 거리: |2 - 2| = 0
  • B의 점 4에서 A까지 가장 가까운 점은 3입니다. 거리: |4 - 3| = 1

그룹 B -> 그룹 A 거리의 합: 0 + 1 = 1

3단계: 두 거리의 합을 구합니다.

  • Chamfer Distance = (그룹 A -> B 거리의 합) + (그룹 B -> A 거리의 합) = 2 + 1 = 3

B.1.1) 시각적인 2차원 예시

이번에는 2차원 평면에 있는 두 개의 모양(파란색 별과 주황색 오각형)을 비교한다고 상상해 보세요.

  1. 파란색 별 → 주황색 오각형: 파란색 별의 각 점에서 주황색 오각형의 가장 가까운 점까지의 거리(초록색 선)를 모두 계산하여 더합니다.
  2. 주황색 오각형 → 파란색 별: 반대로, 주황색 오각형의 각 점에서 파란색 별의 가장 가까운 점까지의 거리(보라색 선)를 모두 계산하여 더합니다.

이 두 값의 합이 두 도형의 Chamfer distance가 됩니다. 이 거리가 0에 가까울수록 두 도형의 모양과 위치가 거의 일치한다는 의미입니다. 만약 두 도형이 완전히 똑같고 같은 위치에 있다면 Chamfer distance는 0이 됩니다.