deform op• Data kinds: points × points → pose
• Call: import fullseye as fs; fs.ledger.register_cpd_rigid(src, dst, iters=50, w=0.0, tol=1e-08) (implementation को सीधे call करना हो तो import deform3d; deform3d.register_cpd_rigid(src, dst, iters=50, w=0.0, tol=1e-08), registry से लेना हो तो ops3d.get("register_cpd_rigid"))
Coherent Point Drift (CPD) के rigid संस्करण से rotation + translation का EM estimate करता है।
src (moving Y, M points) को dst (fixed X, N points) से rigid transform द्वारा align करता है। CPD dst को, src पर centre वाले isotropic Gaussian mixture के centroid के रूप में देखता है; E step में soft correspondence (posterior) और M step में maximum-likelihood rigid transform और variance update होते हैं। ICP के विपरीत correspondence hard तरीके से तय नहीं होते, इसलिए शुरुआती misalignment और आंशिक outlier के प्रति robust है। scale 1 पर fixed (pure rigid)।
Reference: Myronenko & Song, "Point Set Registration: Coherent Point Drift", 2010।
Arguments:
src: (M,3) moving point cloud।
dst: (N,3) fixed point cloud।
iters: EM iteration की अधिकतम संख्या।
w: outlier (uniform distribution) mixing ratio 0≤w<1। 0 का अर्थ कोई outlier नहीं।
tol: variance σ² का relative change इस मान से कम हो तो converged मानकर रुकता है।
Returns:
R: (3,3) rotation (dst ≈ src @ R.T + t)।
t: (3,) translation।
info: dict। "sigma2" (अंतिम variance), "iters", "converged", "rmse"
(transform के बाद src का nearest neighbour RMSE)।
Exceptions:
ValueError: गलत shape, बहुत कम points, w range से बाहर, या N*M का
CPD_MAX_PAIRS (25M) से अधिक होना (क्योंकि हर iteration में dense (N,M) responsibility matrix बनती है।
दोनों point cloud को पहले decimate करके दें)।
• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।
• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।
• motion_scene — py -3.11 examples_3d/motion_scene.py
pose को input के रूप में लेते हैं)fuse_to_voxel · pose_error · bundle_adjust · mean_reprojection_error · optimize_pose_graph · relative_pose · mean_edge_error · rotation_translation_error
deform)tps_fit · tps_warp · register_nonrigid
*Provenance: deform3d.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.