fuse — 3D tsdf_fusion op

• Data kinds: depth → sdf

• Call: import fullseye as fs; fs.ledger.fuse(depths: 'Sequence[np.ndarray]', Ks: 'Sequence', Rs: 'Sequence', ts: 'Sequence', bounds: 'Bounds', res: 'int', trunc: 'float') -> 'Tuple[np.ndarray, np.ndarray]' (implementation को सीधे call करना हो तो import tsdf_fusion; tsdf_fusion.fuse(depths: 'Sequence[np.ndarray]', Ks: 'Sequence', Rs: 'Sequence', ts: 'Sequence', bounds: 'Bounds', res: 'int', trunc: 'float') -> 'Tuple[np.ndarray, np.ndarray]', registry से लेना हो तो ops3d.get("fuse"))

उपयोग

depth series को new_volume + integrate से 1 TSDF volume में fuse करता है। return value (tsdf, weight)।

हर frame का (K,R,t) world→camera है। कई viewpoint से एक ही surface देखने पर weight जुड़ते जाते हैं, और एक frame में न दिखने वाली (self-occluded) सतहें दूसरे viewpoint से भर जाती हैं।

• depths: (H,W) depth image की list (camera Z depth। 0 या उससे कम और non-finite pixel को unobserved माना जाता है)। size हर frame में अलग हो सकता है।

• Ks / Rs / ts: हर frame का (3,3) intrinsic matrix, (3,3) rotation, (3,) translation (X_cam = R X + t)।

• bounds: ((xmin,xmax),(ymin,ymax),(zmin,zmax)) का world क्षेत्र (हर axis पर max > min)।

• res: एक भुजा पर voxel की संख्या (धनात्मक int)। volume res×res×res है, axis क्रम (x,y,z) indexing='ij' के साथ।

• trunc: truncation दूरी (world unit, धनात्मक finite मान)। voxel size का कुछ गुना एक अच्छा अनुमान है; बहुत छोटा हो तो surface के दोनों ओर observation नहीं पड़ते, बहुत बड़ा हो तो पतली structure के आगे-पीछे मिल जाते हैं।

return value: tsdf (res,res,res) float32 (unobserved +1.0, surface के सामने धनात्मक और पीछे ऋणात्मक, [-1,1]) और weight (res,res,res) float32 (observation की गिनती)। surface point extract_surface_points(tsdf, weight, bounds, res) से निकाले जाते हैं। fail-closed: 0 frame, list की लंबाई का बेमेल, degenerate bounds, गैर-धनात्मक res / trunc पर ValueError। integration के विवरण (occluded क्षेत्र को update न करने का नियम) के लिए integrate देखें।

पृष्ठभूमि guides (इस op के पीछे की physics और conventions)

• depth_sensors — Depth sensors — ranging के सिद्धांत, असली devices के आँकड़े, dropouts कैसे दिखते हैं

संदर्भ (sample data, साहित्य)

• 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 के स्रोत।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• tsdf_fusion_demo — py -3.11 examples_3d/tsdf_fusion_demo.py

वे अगले ops जिनसे type जुड़ता है (sdf को input के रूप में लेते हैं)

sdf_to_occupancy · fuse_to_voxel · integrate · extract_surface_points · query_distance · sdf_union · sdf_intersect · sdf_subtract

इसी category के (tsdf_fusion)

integrate · extract_surface_points


*Provenance: tsdf_fusion.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

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