match_pca — 3D match_pose op

• 데이터 종류: points × points → pose

• 호출: import fullseye as fs; fs.ledger.match_pca(pts_scene, pts_model)(구현을 직접 호출하려면 import match3d; match3d.match_pca(pts_scene, pts_model), 원장에서 가져오려면 ops3d.get("match_pca"))

사용법

PCA 자세 매칭(구조=point cloud × 기법=주축 정렬).

두 점군의 주축을 맞추는 대략적인 강체 변환(회전 R + 평행 이동 t)을 반환한다. NCC/위상 상관이 다루지 못하는 회전을 여기서 담당한다(부호의 4가지 모호성은 최소제곱으로 해소. 이 잔차는 두 점군의 점이같은 순서로 대응한다고 전제한 대략적 기준 — 대응이 없는 실측 점군은 ICP 등으로 후단에서 정밀화를). 반환값 (R(3,3), t(3,)).

반환값의 의미: pts_scene ≈ (R @ pts_model.T).T + t(t = c_scene − R·c_model). R은항상 det=+1인 회전(반사는 내지 않음). 잔차는 점을 index 순서로 대응시켜 재므로, 대응이 없는점군에서는 4개 후보의 선택을 믿을 수 없다(그 경우 icp_point2point_3d에 init_R/init_t 로 넘겨 정밀화한다). 주축이 축퇴된(구, 원기둥 등 고윳값이 같은) 점군에서는 축이 정해지지 않아결과가 안정되지 않는다. 점 수는 두 점군에서 달라도 된다. 입력은 (N,3)(검증은 moment_axes에 맡기며 자체 검증은 없음).

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

• shape_desc_pose — py -3.11 examples_3d/shape_desc_pose.py

타입이 이어지는 다음 연산자(pose 를 입력으로 받는 것)

fuse_to_voxel · pose_error · bundle_adjust · mean_reprojection_error · optimize_pose_graph · relative_pose · mean_edge_error · rotation_translation_error

같은 카테고리(match_pose)

match_phase_3d · moment_axes · match_logpolar_z


*Provenance: match3d.py — 3D 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.