fusion op• Data kinds: any × any → pose
• Call: import fullseye as fs; fs.ledger.register_cross(src, src_kind, dst, dst_kind, method='fpfh', samples=15000, **kw) (implementation को सीधे call करना हो तो import fuse3d; fuse3d.register_cross(src, src_kind, dst, dst_kind, method='fpfh', samples=15000, **kw), registry से लेना हो तो ops3d.get("register_cross"))
अलग-अलग प्रकार की structures के बीच rigid registration। दोनों को point cloud में बदलता है → registrar (fpfh=बड़ा rotation / icp=coarse init आवश्यक)।
उदाहरण: register_cross((verts,faces),"mesh", scan_pts,"points") से CAD↔scan alignment। लौटाता है (R, t)।
प्रक्रिया: to_points(src, src_kind, samples, **kw) और to_points(dst, dst_kind, samples, **kw) से दोनों को point cloud बनाया जाता है, और method से registration routine चुना जाता है।
• "fpfh" (default): feat_fpfh.register_fpfh(ps, pd) को default parameters से बुलाता है (FPFH descriptor + RANSAC, प्रारंभिक pose की ज़रूरत नहीं, बड़े rotation और आंशिक overlap को संभालता है)।
• "icp": match3d.icp_point2point_3d(ps, pd, iters=50) (nearest neighbour correspondence + Kabsch)। प्रारंभिक pose का argument नहीं दिया जाता, इसलिए यह मान्यता है कि src, dst के पास है (मोटे तौर पर aligned)।
• अन्य कोई मान ValueError देता है।
Returns: (R, t) — R (3, 3) और t (3,) का numpy array है (torch tensor को CPU के numpy में बदलकर लौटाया जाता है)। convention dst ≈ src @ R.T + t है।
ध्यान दें:
• **kw दोनों to_points को एक जैसा दिया जाता है ("depth" के fx, fy, cx, cy या "voxel" के iso को केवल एक ओर नहीं दिया जा सकता)।
• samples "mesh" के samples की संख्या है (default 15000)। point cloud की संख्या और आकार की जाँच नहीं होती।
• coordinate system के अंतर (to_points देखें: voxel (z, y, x) index है, depth camera का (x, y, z)) को समायोजित नहीं किया जाता।
• accuracy कसने के लिए fpfh के परिणाम को प्रारंभिक मान बनाकर icp_point2point_3d को सीधे बुलाएँ।
• depth_sensors — Depth sensors — ranging के सिद्धांत, असली devices के आँकड़े, dropouts कैसे दिखते हैं
• 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 के स्रोत।
• transforms_repr — py -3.11 examples_3d/transforms_repr.py
pose को input के रूप में लेते हैं)fuse_to_voxel · pose_error · bundle_adjust · mean_reprojection_error · optimize_pose_graph · relative_pose · mean_edge_error · rotation_translation_error
fusion)*Provenance: fuse3d.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.