[컴퓨터비전개론] How to find HTM - 3D Space Registration method(Paired-Point Registration, Iterative Closest Point)

 

3D 공간 좌표계 정렬: PPR과 ICP 핵심 원리 파헤치기

지난번 카메라 캘리브레이션에 이어, 오늘은 컴퓨터 비전 분야에서 3D 형상과 변환을 다룰 때 빼놓을 수 없는 동차 변환 행렬(Homogeneous Transformation Matrix, HTM)의 핵심을 빠르게 복습하고, 두 좌표계 간의 HTM을 찾아내는 중요한 과정, 즉 좌표계 정렬(Registration) 기법 중 대표적인 Paired-Point Registration (PPR)Iterative Closest Point (ICP)의 기본 원리에 대해 심도 있게 이야기 나눠보려 한다. 컴퓨터 비전을 공부하면서 이 주제들은 정말 기본 중의 기본이면서도 그 응용 분야가 로봇 공학, 증강 현실, 의료 영상 분석, 자율 주행 등 무궁무진하기에 중요한 분야다. 특히, 정밀함이 생명인 수술 네비게이션 같은 분야에서는 이 개념들의 정확한 이해와 적용이 필수적이다.




1. 동차 변환 행렬(HTM) 핵심 요약 짚고 가기 🚀

이미 우리는 HTM의 전체 개념에 대해 자세히 알아본 바 있다. 간단히 요약하자면, 동차 변환 행렬(HTM), 보통 T로 표기되는 4x4 행렬은 3차원 공간에 존재하는 강체(Rigid Body, 모양이 변하지 않는 물체)의 회전(Rotation)이동(Translation)을 하나의 행렬 연산으로 깔끔하게 표현하고 변환하는 매우 강력한 수학적 도구이다.

HTM은 기본적으로 다음과 같은 구조를 가진다.

T = [ R  t ]
      [ 0  1 ]

여기서 R은 3x3 회전 행렬, t는 3x1 이동 벡터를 나타내며, 마지막 행 [0 0 0 1] (0은 1x3 영벡터)은 동차 좌표계에서의 연산을 가능하게 한다. 이 덕분에 3차원 점 p를 동차 좌표(예: [px, py, pz, 1]^T)로 표현하면, 복잡한 회전 후 이동 변환을 단 한 번의 행렬 곱셈으로 수행할 수 있다.

가령, 좌표계 {B}에 정의된 점 pB를 좌표계 {A} 기준으로 표현한 pA로 변환하고 싶다면, 두 좌표계 간의 변환을 나타내는 HTM \(T_B^A\)를 사용하여 다음과 같이 간단히 계산할 수 있다.

\[pA=T_B^A\cdot pB\]

HTM의 가장 큰 장점 중 하나는 여러 변환을 쉽게 연결할 수 있다는 점이다. 예를 들어, {A}→{B} 변환 \(T_A^B\)와 {B}→{C} 변환 \(T_B^C\)를 알고 있다면, {A}→{C} 변환 \(T_A^C\)는 두 행렬의 곱인 \(T_A^C=T_B^C\cdot T_A^B\)로 바로 계산된다. 또한, 역변환 \(T_B^A\)\(T_B^A=(T_A^B)^{-1}\)로 쉽게 구할 수 있다. 이처럼 HTM은 3D 공간 변환을 기술하는 기본 언어와 같다고 할 수 있다.

자, 그럼 이제 이 '언어'를, 즉 서로 다른 두 좌표계 간의 '변환 규칙(HTM)'을 어떻게 알아낼 수 있는지, 그 정렬(Registration)의 세계로 떠나보자!




2. 좌표계 정렬(Registration)이란 무엇인가? 🤔

좌표계 정렬(Registration)이란, 쉽게 말해 서로 다른 두 개 이상의 좌표계에서 얻어진 데이터를 하나의 공통된 좌표계로 정합하여, 이들 간의 공간적인 변환 관계(즉, HTM)를 찾는 과정을 의미한다.


이게 왜 중요할까? 예를 들어, 로봇 팔에 달린 카메라 좌표계와 로봇의 기준 좌표계, 또는 CT 의료 영상 속 좌표계와 실제 환자의 신체 좌표계처럼 서로 다른 기준을 가진 데이터들을 통합하고 분석하려면 이들 사이의 정확한 관계를 알아야 하기 때문이다. Registration을 통해 이 관계, 즉 HTM을 찾아내면, 마치 서로 다른 언어로 쓰인 정보를 하나의 공통된 언어로 번역하는 것과 같다.

오늘은 이 Registration을 수행하는 대표적인 두 가지 방법, Paired-Point Registration (PPR)과 Iterative Closest Point (ICP)에 대해 그 핵심 원리를 파헤쳐 볼 것이다.




3. Paired-Point Registration (PPR) - "점과 점을 잇는 정밀한 연결고리" 🔗

Paired-Point Registration (PPR)은 이름에서 알 수 있듯이, 두 개의 서로 다른 좌표계에 걸쳐 미리 알고 있는 대응점 쌍(paired points)들을 사용하여 두 좌표계 간의 변환 행렬 T를 찾는 방법이다. 여기서 '대응점'이란 두 좌표계에서 동일한 물리적 위치를 가리키는 점들을 의미한다.

  • High-level Concept:

    마치 밤하늘의 두 별자리 사진이 있다고 상상해보자. 두 사진에서 같은 별들을 각각 찾아 표시(이것이 대응점 쌍)한 후, 한 사진을 다른 사진 위에 올려놓고 표시된 별들이 정확히 일치하도록 회전하고 이동시켜 포개는 과정과 유사하다. PPR은 이 '포개는 작업'에 해당하는 최적의 변환 T (회전 R과 이동 t)를 찾아준다.

  • 핵심 아이디어:

    PPR의 목표는 주어진 대응점 쌍들 사이의 오차를 최소화하는 변환 T를 찾는 것이다. 이상적으로는 변환 T를 적용했을 때 한 좌표계의 점들이 다른 좌표계의 대응점에 정확히 겹쳐야 하지만, 실제 측정에는 항상 오차가 존재한다. 따라서 이 오차들의 합(보통 제곱합)을 가장 작게 만드는 T를 찾는 것이 관건이다.

    이때 기준으로 삼는 오차가 바로 Fiducial Registration Error (FRE)이다. Fiducial은 기준점을 의미하며, FRE는 찾은 변환 T를 사용하여 한쪽 점들을 다른 쪽 좌표계로 변환했을 때, 그 변환된 점과 원래 대응점 사이의 평균적인 거리 오차를 나타낸다.

    Fiducial Registration Error

    개념적으로 PPR은 다음을 최소화하는 T를 찾는다:

    Minimize T : Σ ||T * p_source_i - p_target_i||²

    여기서 p_source_i는 소스 좌표계의 i번째 점이고, p_target_i는 타겟 좌표계에서 p_source_i에 대응하는 점이다.

  • 어떻게 찾는가 (간략한 과정):

    FRE를 최소화하는 최적의 R과 t는 일반적으로 최소 제곱법(Least-Square Method)을 통해 수학적으로 유도된다. 세부 계산은 복잡할 수 있지만, 그 흐름은 다음과 같다.

    1. 무게 중심(Centroid) 계산: 각 점 집합(소스 점들과 타겟 점들)의 평균 위치, 즉 무게 중심을 각각 계산한다.
    2. 상대 위치(Displacement) 계산: 각 점들을 각자 소속된 점 집합의 무게 중심을 기준으로 얼마나 떨어져 있는지 상대적인 위치 벡터로 변환한다.
    3. 최적 회전(R) 찾기: 두 점 집합의 이 상대 위치 벡터들을 가장 잘 정렬시키는 최적의 회전 행렬 R을 계산한다. (내부적으로는 점들의 공분산 행렬을 만들고, 여기에 특이값 분해(SVD)와 같은 강력한 선형대수 기법을 적용하여 R을 추출한다. 마치 두 점 구름의 방향을 최적으로 맞추는 과정과 같다.)

    4. 최적 이동(t) 찾기: 앞에서 구한 최적 회전 R과 두 점 집합의 무게 중심을 이용하여 최적의 이동 벡터 t를 계산한다. 개념적으로 t = target_centroid - R * source_centroid 와 같은 형태로 계산된다. 즉, 소스 무게중심을 R만큼 회전시킨 후, 타겟 무게중심까지 얼마나 이동해야 하는지를 나타낸다.
    5. HTM 구성: 이렇게 얻은 R과 t를 결합하여 최종적인 4x4 동차 변환 행렬 T를 만든다.


  • 장점과 단점:

    PPR의 가장 큰 장점은 대응되는 점들의 정보만 정확하다면 비교적 계산이 빠르고 안정적으로 최적의 해를 찾을 수 있다는 것이다. 하지만 명확한 단점은 정확한 대응점 쌍을 미리 알고 있어야 한다는 점이다. 이는 수동으로 지정하거나, 특수한 마커(fiducial marker)와 추적 시스템을 통해 얻어야 하므로 번거로울 수 있다.




4. Iterative Closest Point (ICP) - "형태를 보고 스스로 찾아가는 여정" 🗺️

PPR이 미리 정해진 '약속 장소(대응점)'에서 만나는 방식이라면, Iterative Closest Point (ICP)는 두 점 구름(point cloud) 데이터의 형태(shape) 자체를 보고 서로를 알아가는 방식이다. 즉, 대응점을 미리 알지 못해도 두 데이터셋 간의 변환 T를 반복적인 과정을 통해 찾아낸다. 마커를 사용하지 않는(markerless) 대표적인 Registration 방법이다.

  • High-level Concept:

    투명한 종이에 복잡한 해안선 윤곽이 그려져 있고(소스 점 구름), 다른 종이에는 비슷한 실제 지도의 해안선(타겟 점 구름)이 있다고 상상해보자. ICP는 투명한 종이를 실제 지도 위에 올려놓고, 조금씩 돌리고 움직여가며 두 해안선 윤곽이 가장 잘 겹쳐지는 최적의 위치와 방향을 찾아가는 과정과 같다. 이 "조금씩 돌리고 움직여보는" 과정이 바로 반복(iterative)의 핵심이다.

  • 핵심 아이디어 (반복 과정):

    ICP는 다음과 같은 반복적인 단계를 통해 최적의 변환 T를 찾아간다.

    1. 초기 추정(Initial Guess): 먼저, 두 점 구름 간의 대략적인 초기 변환 T_initial에서 시작한다. 이 초기 추정값은 수동으로 어림잡아 주거나, 경우에 따라 PPR의 결과를 사용하기도 한다. (좋은 초기값은 ICP가 더 빠르고 정확하게 수렴하는 데 매우 중요하다!)
    2. 가장 가까운 점 찾기(Closest Point Search): 현재의 변환 T_current를 기준으로, 소스 점 구름의 각 점에 대해 타겟 점 구름에서 가장 가까운 점을 찾는다. 이렇게 찾아진 점들이 이번 반복 단계에서의 "임시적인" 대응점 쌍이 된다. (효율적인 최근접점 탐색을 위해 k-d tree 같은 자료구조가 활용된다.)
    3. 변환 업데이트(Registration): 이렇게 찾아진 임시 대응점 쌍들을 이용하여, 마치 PPR처럼 이들 간의 오차(예: 점-점 간 거리 제곱합)를 최소화하는 새로운 변환 T_new를 계산한다. (Point-to-Point ICP의 경우, 최소화 목표는 Minimize T : Σ ||T * source_point_i - closest_target_point_i||² 와 유사하다.)
    4. 적용 및 반복: 계산된 T_new를 새로운 현재 변환으로 삼고(즉, T_current = T_new * T_current), 두 점 구름 간의 오차가 충분히 작아지거나, 미리 정해둔 최대 반복 횟수에 도달할 때까지 2번과 3번 과정을 계속 반복한다.

      Overview of ICP


  • 장점과 단점:

    ICP의 가장 큰 장점은 마커나 사전에 정의된 대응점 없이도 자동으로 두 데이터셋을 정렬할 수 있다는 점이다. 하지만 몇 가지 단점도 존재한다.

    • 초기 정렬에 민감: 초기 추정 변환이 실제 정답과 너무 동떨어져 있으면, 엉뚱한 곳에서 최적화가 멈추는 지역 최솟값(local minimum)에 빠질 위험이 있다. 그래서 종종 PPR 등으로 대략적인 초기 정렬을 한 후 ICP를 적용하여 정확도를 높인다.
    • 계산 비용: 가장 가까운 점을 찾는 과정과 반복적인 계산 때문에 점의 개수가 많으면 계산 시간이 오래 걸릴 수 있다.
    • 데이터의 노이즈나 이상치(outliers)에 의해 정렬 결과가 나빠질 수 있다. (이를 보완하기 위한 다양한 ICP 변형 알고리즘들이 존재한다.)



5. PPR vs. ICP, 그리고 오차의 의미 🎯

그렇다면 언제 PPR을 쓰고, 언제 ICP를 써야 할까?

  • PPR적은 수의 명확한 대응점을 알고 있거나 쉽게 얻을 수 있을 때, 빠르고 직접적으로 변환을 구하는 데 효과적이다.
  • ICP대응점을 알 수 없거나, 촘촘한 점 구름 데이터의 전체적인 형태를 기반으로 정밀한 정합이 필요할 때 유용하다. 종종 PPR로 대략적인 정렬을 수행한 후, ICP로 세밀하게 다듬는 방식으로 함께 사용되기도 한다.

Registration의 정확도를 평가하는 지표로는 앞서 언급된 Fiducial Registration Error (FRE) 외에도, 실제 우리가 관심을 가지는 영역(Region of Interest, ROI)에서의 정렬 오차를 의미하는 Target Registration Error (TRE)가 있다. FRE는 계산 과정에서 쉽게 얻을 수 있지만, 실제 응용에서는 TRE가 더 중요한 의미를 지닌다. 흥미로운 점은, 기준점들(fiducials)에서의 오차인 FRE가 작다고 해서 반드시 타겟 영역에서의 오차인 TRE도 작은 것은 아니라는 점이다. 기준점들의 위치나 분포, 그리고 타겟 물체의 변형 가능성 등에 따라 FRE와 TRE는 다르게 나타날 수 있으므로, 이를 이해하고 Registration 전략을 세우는 것이 중요하다.

TRE can be large even when small FRE



결론

동차 변환 행렬(HTM)은 3D 공간 변환을 다루는 데 있어 기본 도구로서, 이 HTM을 찾아내는 Registration 과정, 특히 Paired-Point Registration (PPR)과 Iterative Closest Point (ICP)는 컴퓨터 비전, 로봇 공학, 의료 영상 등의 분야에서 주요한 역할을 한다.

각 방법의 기본 원리를 이해하고, 주어진 상황과 데이터의 특성에 맞춰 적절한 방법을 선택하거나 조합하여 사용하는 것이 중요하다. 오늘 함께 살펴본 이 개념들이 앞으로 마주할 더 복잡하고 흥미로운 3D 인식 문제들을 해결해 나가는 데 든든한 밑거름이 되기를 바란다. 다음 시간에 간략히 다뤄볼 증강현실(AR)을 끝으로, 컴퓨터비전개론도 마무리다!



추천글:

[컴퓨터비전개론] Convolutional Neural Network (CNN)

[컴퓨터비전개론] Overview of 3D Computer Vision - Homogeneous Transformation Matrix (HTM)

[컴퓨터비전개론] Camera Calibration - Intrinsic & Extrinsic Parameters, Homography

hyeon_B

안녕하세요! AI 기술을 이용해 더 나은 세상을 만들어 나가고 싶은 과기원생 Hyeon이라고 합니다. 저는 앞으로 인공지능 시대에는 지식을 '활용'하는 능력이 중요해질 것이라고 생각합니다. 대부분의 일들은 인공지능이 뛰어난 모습을 보이지만, 인공지능은 데이터로 부터 연관관계를 학습하기 때문에 지식들을 새로 통합해서 활용하는 능력이 부족합니다. 인공지능이 뉴턴 전에 만들어졌다면 사과가 떨어지는 이유에 대답하지 못했을 것이고, 아인슈타인 전에 만들어졌다면 중력이 어떻게 생기는지 설명하지 못했을 것입니다. 따라서 앞으로 우리는 '본질'을 탐구하고 그 본질로부터 다른 곳에 적용하며 인공지능을 현명하게 활용해야 할 것입니다. 함께 인공지능 시대를 준비합시다!

댓글 쓰기

다음 이전

POST ADS1

POST ADS 2