본문으로 건너뛰기

M13.02 · 정합·ICP·대응점·잔차

단위별 목표·권장 선수와 자료 준비 상태를 확인하고, 공개된 본문과 활동을 읽고 준비 상태를 확인할 수 있습니다.

전체 커리큘럼

학습 안내

본문을 읽고 장비 없는 기본 실습·세 확인 문제와 해설로 이해를 확인하세요.

예상 학습 시간: 미정. 이 페이지 방문이나 자료 열람으로 완료·숙달을 자동 부여하지 않습니다.

현재 경로·이전·다음 단위 확인 ↓

학습 목표

  • source에서 target으로의 변환 방향과 대응 가정을 구분하고 변환점·잔차를 계산한다.
  • 작은 이동 정합에서 대응 선택과 변환 갱신을 계산하고 거리 문턱·제외점의 영향을 설명한다.
  • 수렴·작은 잔차와 올바른 정합을 구분하고 반복 무늬·기하 제약·중첩을 함께 평가한다.

아래 설명·실습·문제로 각 학습 목표를 확인하세요.

권장 선수

M13.01의 프레임·단위·전처리와 그 선수 좌표/최소제곱을 사용한다. 회전 기호와 역변환은 본문에서 보충한다. 일반 코딩·문법, PCL/Open3D 설치나 실제 SLAM 실행은 요구하지 않으며 작은 합성 좌표를 계산한다. 이미 알고 있다면 직접 열어볼 수 있습니다.

설명 필수

세 목표에 대응하는 검수된 설명·예제를 읽습니다.

두 점군의 좌표를 같은 기준에서 비교한다

정합(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 잔차 제곱을 더한 값이다.

E=∑i∈C∥ri∥2.E=\sum_{i\in C}\|r_i\|^2.

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 설명은 현재 변환으로 대응을 찾고 그 대응의 목적을 줄이는 변환을 갱신하는 반복을 설명한다. 처음부터 올바른 대응을 알고 푸는 문제와 구분한다.

ICP의 두 가지 반복: 현재 변환으로 원본 정렬 → 대응 후보 선택 → 변환/잔차 갱신 → 다음 반복/판정.그림 원본 크기로 보기

그림 M13.02-1. 반복의 마지막 결과로 원본 점을 다시 변환하여 대응을 새로 찾는다. 도식의 되돌림은 새 센서 취득이 아니라 같은 입력 점군에 대한 계산 반복이다. 낮은 잔차만으로 올바른 정합을 보장하지 않는다. 직접 제작.

흐름은 초기 변환 지정→변환점에서 대응 후보 탐색→거리/유효성 규칙으로 대응 유지→그 대응에 대한 변환 갱신→대응 재탐색이다. 변화가 작거나 반복 한도에 도달하면 멈출 수 있지만, 멈춤은 정답 증명이 아니다. 초기값·중첩·잡음·필터와 모델이 결과에 영향을 준다. 어떤 구현의 성공 플래그도 실제 장소 대응을 대신 확인해 주지는 않는다.

일반3D에서는 회전도 함께 추정한다. 다음 손계산은 과정을 보이기 위해 R=I로 고정하고 x이동 t만 찾는다. 모든 y/z는0m다. 이미 적용한 점을 다시 원본으로 착각하지 않도록 t는 항상 원래 source에 적용하는 누적 이동으로 적는다. 증분 이동으로 푸는 경우에는 현재 변환과 합성하는 규약을 따로 관리해야 한다.

ICP의 대응점과 변환. 동일한 모양을 평행 이동한 별도 2D 개념 점군이다. 현재 대응으로 변환을 갱신한 뒤 다시 대응을 찾는다. 점 번호의 일치·대응의 정확성이나 전역 수렴을 그림만으로 보장하지 않는다.그림 원본 크기로 보기

그림 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거리대응 유지
p10q1=11예
p22q1=1과 q2=3 중 q11예
p35q3=61예
p49q3=63아니오

여기서 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에서는 여러 시점의 영상으로 깊이를 추정하는 별도 기하 문제를 배운다.

학습 범위와 한계

기본 설명·예제가 준비되었습니다. 기존 보충 자료의 범위와 구별하세요.

실습 필수

장비 없는 실습을 수행하고 관찰·계산 근거를 해설과 비교합니다.

장비 없이 source0/2/5/9m와 target1/3/6m를 사용한다. y=z=0, 회전고정, 초기 누적t0=0, 최근접 거리≤1.2m, 동거리 시 작은 q번호다.

  1. t0의 대응·거리·제외점과 고정 대응의 q−p를 적고 t1을 계산한다. p2의 동거리 규칙을 생략하지 않는다.
  2. t1에서 최근접 대응을 다시 찾아 원래 source에 적용하는 t2를 구한다. 최종 E/RMSE·대응 개수와 원본source분모의 비율을 적는다. 문턱0.5m로 처음부터 시작한 경우도 비교한다.
  3. 별도 source0/2/4와 target1/3/5/7에서 t=1과3을 비교하고, x=0벽의 법선 방향 잔차가 접선 이동0.4m를 볼 수 있는지 판단한다. “수렴했으므로 위치가 정확하다”라는 보고를 필요한 근거가 드러나게 고친다.

막히면 p,현재누적t,p+t,최근접q,거리,유지여부를 열로 나눈다. t1에서 찾은 대응으로 다시 푸는 누적t와 t1에 더할 증분을 혼동하지 않는다. 실제 PCL/Open3D 실행이 아닌 합성 계산임을 적는다.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

학습 범위와 한계

기본 실습은 장비 없이 수행합니다. 실제 장비·GPU 실증을 완료했다는 뜻은 아닙니다.

평가·해설 필수

목표별 세 서술문항에 답하고 해설·판정 기준으로 자기검토합니다.

확인 문제 Q1

source점(1,0,0)m에 z축90도 회전과 target축 이동(1,0,0)m를 적용한다. target좌표와 역으로 source에 돌아가는 순서를 구하라. 변환 방향을 뒤집으며 이동 부호만 바꾸면 되는가?

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

확인 문제 Q2

source0/2/5m와 target1/3.2/6m의 대응이 번호대로 고정되어 있다. x이동만 추정할 때 최적 누적t·세 잔차·MSE/RMSE를 구하고, 이를 최근접 대응 탐색까지 수행한 결과라고 불러도 되는지 설명하라.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

확인 문제 Q3

source0/2/4m, target1/3/5/7m에서 t=1과3의 정합오차를 비교하라. 다른 실험에서 대응0개·제곱합0이라는 로그가 나왔다면 완벽한 정합인가? 두 경우 각각 추가로 확인할 근거를 제안하라.

0 / 8,000자 · 확인하면 이 브라우저에 저장

답안을 작성하고 확인하기를 한 번 선택하면 해설·판정 기준을 열어볼 수 있습니다.

학습 범위와 한계

서술답안과 해설이 준비되었습니다. 자기검토와 학습 완료는 숙달 인증과 별개입니다.

참고 자료

학습 확인

실습과 세 문항의 답안을 해설과 비교한 뒤, 이 단위의 학습 완료를 직접 기록할 수 있습니다. 자기검토·학습 완료는 자동 채점이나 숙달 인증과 별개입니다.

실습1개·확인 문제3개의 답안을 저장하고 각각 자기검토를 기록하세요.

학습 이동

학습 단계 순서 · 공통 과정 이후 전문화 선택

전체 목차로 돌아가기 →

신규 활동의 답안은 이 브라우저의 통합 학습 기록에 저장합니다. 기존 화면의 답안·진도는 원래 키를 유지합니다. AI 강사는 현재 단위의 준비 상태·부족한 범위와 연결된 실제 자료를 참고합니다.