registration_metrics op• Data kinds: pose × pose → measurement
• Call: import fullseye as fs; fs.ledger.rotation_translation_error(gt, est) (implementation को सीधे call करना हो तो import registration_eval; registration_eval.rotation_translation_error(gt, est), registry से लेना हो तो ops3d.get("rotation_translation_error"))
2 4×4 transforms के बीच relative rotation error (geodesic angle [डिग्री], RRE) और relative translation error (RTE)।
RRE = कोण(gt_R^T · est_R) = atan2(|axial(dR − dRᵀ)|/2, (tr−1)/2), degrees में। किसी भी axis के चारों ओर कोण θ के rotation अंतर के लिए RRE=θ। RTE = ‖gt_t − est_t‖। → (rre_deg, rte)। 4×4 न हो तो ValueError (fail-closed)।
• gt / est: 4×4 homogeneous transform (ऊपर-बाएँ 3×3 rotation, दायाँ column translation)। non-finite हो तो ValueError।
• rre_deg [0, 180] degrees में है (skew-symmetric भाग से sin और trace से cos लेने वाला atan2; arccos में 1 के पास √ε का floor होता है और वह 1e-6° या उससे कम को 0 बताता था -- 2026-10-07 को ठीक किया)। rte translation columns के अंतर का norm है, coordinates की unit में। translation column rotation के origin पर निर्भर करता है, इसलिए समान pose error होने पर भी origin object से जितना दूर होगा RTE उतना बड़ा आएगा (तुलना समान frame convention वाले transforms के बीच ही करें)।
• rotation matrix orthogonal न हो तब भी जाँच नहीं होती, इसलिए gicp आदि के output (R,t) को उसी module के make_transform से जोड़कर बना सही transform दें। inlier_ratio / registration_recall point cloud पर residual से मापते हैं, जबकि यह transform parameters के अपने अंतर को मापता है।
• 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 के स्रोत।
• reg_eval — py -3.11 examples_3d/reg_eval.py
measurement को input के रूप में लेते हैं)vol_gaussian_psf · fuse_to_voxel · fresnel_reflectance · snell_angle
registration_metrics)inlier_ratio · rmse_inliers · registration_recall
*Provenance: registration_eval.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.