두 점군의 좌표를 같은 기준에서 비교한다
정합(registration)은 서로 다른 관측을 같은 좌표 기준에서 비교하도록 변환을 찾는 일이다. 이동시킬 점군을 source, 비교 기준으로 둘 점군을 target이라고 부른다. 같은 장면의 두 관측도 센서 위치·시각·가림 때문에 점의 개수와 위치가 다를 수 있다. 배열의 같은 번호가 같은 표면이라는 보장은 없다. 정합은 모든 점을 억지로 같은 번호에 맞추는 작업이 아니다.
M13.01처럼 먼저 프레임·길이 단위·유한값·전처리를 확인한다. 한쪽만 mm이거나 바닥/움직이는 물체를 다르게 처리하면 가까움 자체가 잘못 정의될 수 있다. 여기서는 정적인 합성 장면, 길이m, 같은 공간 축 방향의 관측을 가정한다. 시간에 따라 움직인 물체나 스캔 중 센서 운동은 하나의 강체변환으로 모두 설명되지 않을 수 있다.
source점 p를 target 좌표로 나타내는 예측을 p'=Rp+t로 적는다. R은 길이와 각도를 보존하는 회전, t는 target축으로 표현한 이동이다. 축별로 늘이는 변형은 포함하지 않는다. R=I는 회전하지 않는다는 뜻이다. source→target이라는 방향을 행렬 크기만 보고 추측하지 말고 입력/출력 프레임 이름과 함께 기록한다.
예를 들어 z축으로90도 회전해(1,0,0)을(0,1,0)으로 보내고 t=(1,0,0)m를 더하면 결과는(1,1,0)m다. 역으로 돌아갈 때는 먼저 t를 빼고 반대 회전을 적용해(1,0,0)을 얻는다. 일반적인 역이동은 단순히−t가 아니라 −R의전치×t다. 여기서 전치는 행/열을 바꾸는 연산이며 올바른 회전행렬의 전치는 역회전이다. 프레임 이름만 교체하거나 회전은 그대로 두고 이동 부호만 바꾸면 역변환이 되지 않는다.
가까운 점은 대응 후보이지 실제 표면의 신분증이 아니다
대응점(correspondence)은 source의 한 점과 비교하기로 택한 target점을 말한다. 최근접 대응은 현재 변환한 source점에서 가장 가까운 target점을 후보로 택한다. 계산을 빠르게 하는 검색 구조와, 후보가 실제로 같은 표면인지의 판단은 다른 문제다. 모양이 반복되거나 겹침이 작으면 가까운 후보도 틀릴 수 있다.
잔차(residual)는 이 단위에서 예측점 p'에서 대응 target점 q를 뺀 벡터 r=p'−q다. 부호는 방향을, 거리 ||r||는 차이의 크기를 나타낸다. 예를 들어 예측x=0m·targetx=1m라면 잔차는−1m, 거리는1m다. 고정된 대응들의 거리 제곱합을 줄이는 것이 point-to-point 목적이다. ||r||²는 x/y/z 잔차 제곱을 더한 값이다.
C는 이번에 유지한 대응 번호들의 집합이다. E단위는m²이며 제곱합 자체는 점 수가 바뀌면 직접 비교하기 어렵다. 이 교재에서는 대응이 N개일 때 MSE=E/N, RMSE=sqrt(E/N)로 정의한다. RMSE단위는m다. N=0이면 이 평균을 계산할 수 없다. “대응이 없어서 합이0이니 완벽하다”는 결론은 틀리다.
ICP는 대응 선택과 변환 갱신을 번갈아 한다
ICP는 Iterative Closest Point다. PCL의 ICP 소개는 source/target과 변환의 관계를 보여 준다. Open3D ICP 설명은 현재 변환으로 대응을 찾고 그 대응의 목적을 줄이는 변환을 갱신하는 반복을 설명한다. 처음부터 올바른 대응을 알고 푸는 문제와 구분한다.
그림 M13.02-1. 반복의 마지막 결과로 원본 점을 다시 변환하여 대응을 새로 찾는다. 도식의 되돌림은 새 센서 취득이 아니라 같은 입력 점군에 대한 계산 반복이다. 낮은 잔차만으로 올바른 정합을 보장하지 않는다. 직접 제작.
흐름은 초기 변환 지정→변환점에서 대응 후보 탐색→거리/유효성 규칙으로 대응 유지→그 대응에 대한 변환 갱신→대응 재탐색이다. 변화가 작거나 반복 한도에 도달하면 멈출 수 있지만, 멈춤은 정답 증명이 아니다. 초기값·중첩·잡음·필터와 모델이 결과에 영향을 준다. 어떤 구현의 성공 플래그도 실제 장소 대응을 대신 확인해 주지는 않는다.
일반3D에서는 회전도 함께 추정한다. 다음 손계산은 과정을 보이기 위해 R=I로 고정하고 x이동 t만 찾는다. 모든 y/z는0m다. 이미 적용한 점을 다시 원본으로 착각하지 않도록 t는 항상 원래 source에 적용하는 누적 이동으로 적는다. 증분 이동으로 푸는 경우에는 현재 변환과 합성하는 규약을 따로 관리해야 한다.
그림 M13.02-2. 동일한 모양을 평행 이동한 별도 2D 개념 점군이다. 현재 대응으로 변환을 갱신한 뒤 다시 대응을 찾는다. 점 번호의 일치·대응의 정확성이나 전역 수렴을 그림만으로 보장하지 않는다. 직접 제작.
한 회차를 실제 숫자로 따라간다
source의 x는 p1=0,p2=2,p3=5,p4=9m이고 target은 q1=1,q2=3,q3=6m다. 초기 누적 t0=0m, 유지 조건은 최근접 거리≤1.2m다. 같은 거리 후보가 둘이면 번호가 작은 q를 택하는 합성 규칙을 사용한다. 이 조건은 특정 라이브러리의 기본값이 아니다.
| source | 현재 예측x | 최근접 target | 거리 | 대응 유지 |
|---|---|---|---|---|
| p1 | 0 | q1=1 | 1 | 예 |
| p2 | 2 | q1=1과 q2=3 중 q1 | 1 | 예 |
| p3 | 5 | q3=6 | 1 | 예 |
| p4 | 9 | q3=6 | 3 | 아니오 |
여기서 p2는 동거리 규칙 때문에 q1에 대응한다. 최근접이라는 말만으로 p2↔q2를 미리 정답으로 지정할 수 없다. 이 초기값의 고정 대응에서 필요한 이동 q−p는1,−1,1m다. 그 평균인 t1=1/3m가 제곱합을 최소화한다. t0에서 유지 대응 E=3m², t1에서 E=8/3m²로 줄지만 우리가 기대한 이동1m와는 다르다.
이제 t1에서 대응을 다시 찾으면 예측은1/3,7/3,16/3,28/3m다. 최근접은 각각 q1,q2,q3,q3이고 거리2/3,2/3,2/3,10/3m여서 앞3개만 유지한다. 새 대응의 q−p는1,1,1m가 된다. 이를 고정하고 원래 source에 적용할 누적 이동을 구하면 t2=1m다. 변환점1/3/6/10m 중 앞3개가 정확히 맞고 p4는 거리4m라 제외된다. 같은 대응을 다시 찾으면 t=1로 유지된다.
최종 대응N=3, E=0, RMSE=0m다. 원래 source4개 중 유지된 비율을 이 과제의 대응비율3/4로 보고한다. 이는 물체 존재 확률이나 전체 표면의 일치율이 아니다. 라이브러리의 fitness는 이름이 같아도 분모·거리 문턱·오차 정의를 확인한다. 다른 실행의 점 수·전처리·문턱이 바뀌면 숫자 하나만 비교하지 않는다.
대응이 고정되어도 잔차가 남을 수 있다
이동만 추정하는 고정 대응에서는 t의 최적값이 q_i−p_i의 평균이다. 각 잔차 p_i+t−q_i를 제곱해 더하고 t로 미분하면, 잔차들의 합이0이라는 조건이 나와 이 평균식을 얻는다. 이는 M02.05의 최소제곱을 이동 추정에 적용한 것이다. 일반 회전 문제를 성분별 평균만으로 풀 수 있다는 뜻은 아니다.
별도 변형으로 source0/2/5와 target1/3.2/6의 대응을 번호대로 이미 고정했다고 하자. 이동 요구값1/1.2/1의 평균은16/15≈1.0667m다. 잔차는1/15,−2/15,1/15m이며 E=2/75m², MSE=2/225m², RMSE≈0.09428m다. 하나의 이동으로 세 요구를 정확히 만족할 수 없어 잔차가 남는다. 대응 재탐색이 없는 이 계산을 ICP 전체 실행 결과라고 부르지 않는다.
낮은 오차가 판정을 그르치는 경우
문턱이 너무 작을 때: 처음 예제의 t0=0에서 거리 문턱을0.5m로 낮추면 네 점 모두 대응이 없다. 이동 갱신에 필요한 근거가 없으며 RMSE는 정의할 수 없다. 실패를 감추려고 문턱을 무작정 키우기보다 초기값·단위·실제 중첩과 제외 이유를 살핀다. 문턱을 키우면 다른 표면과의 잘못된 대응도 늘 수 있다.
무늬가 반복될 때: source0/2/4m, target1/3/5/7m에서는 누적 이동t=1m도 t=3m도 세 점 모두 정확히 대응해 RMSE=0m다. 실제 장면의 어느 구간인지 알려 주는 정보가 없으면 둘을 오차만으로 구분할 수 없다. 반복 무늬의 작은 잔차는 유일한 정답 증명이 아니다. 다른 시야의 구조·신뢰할 수 있는 초기 위치·독립 관측처럼 모호성을 줄이는 근거가 필요하다.
기하가 특정 이동을 못 볼 때: point-to-plane은 대응점 차이 전체 대신 target표면의 법선 방향 성분을 제곱한다. 법선은 표면에 수직인 단위 벡터다. x=0 벽의 법선(1,0,0)에 대해 차이(0,0.4,0)m의 법선 성분은0이지만 점간 거리는0.4m다. 벽을 따라 미끄러진 이동을 이 성분만으로는 판정하기 어렵다. 법선이 잘못 추정되거나 표면이 단조로우면 결과도 영향을 받는다. 이 예는 고정 대응의 목적 성분을 비교한 것이며 모든 ICP가 항상 실패한다는 뜻은 아니다.
전처리로 얇은 물체를 지우거나 동적 물체를 많이 남기면 정합에 쓰는 증거 자체가 변한다. 보고에는 source/target과 방향·시각/단위·전처리·초기값·대응/제외 규칙·개수/분모·오차 정의·변화/정지 이유와 반복 무늬/기하 한계를 함께 남긴다. 정합은 두 관측의 좌표 관계 문제다. 이를 로봇 궤적으로 누적하고 지도/루프와 묶는 일은 M15의 SLAM에서 이어 다룬다. 다음 M13.05에서는 여러 시점의 영상으로 깊이를 추정하는 별도 기하 문제를 배운다.