match_localize op• Data kinds: voxel × voxel → position
• Call: import fullseye as fs; fs.ledger.match_curvature_3d(scene, template, device='cpu', mc=0.000625, subvoxel=True) (implementation को सीधे call करना हो तो import match3d; match3d.match_curvature_3d(scene, template, device='cpu', mc=0.000625, subvoxel=True), registry से लेना हो तो ops3d.get("match_curvature_3d"))
• Ledger के ज़रिए return value: fullseye.ledger.match_curvature_3d(...) केवल घोषित out type position का value लौटाता है (मूल function सहायक जानकारी भी लौटाता है)। जो हिस्सा छोड़ दिया गया है उसकी ज़रूरत हो तो fullseye.ledger.match_curvature_3d.raw(...) का उपयोग करें, या match3d.match_curvature_3d को सीधे call करें।
• GPU: इस op का GPU path है (device="cuda")
curvature (shape index) matching। voxel × curvature column (line→surface lift का मुख्य हिस्सा)।
scene/template को curvedness से weighted shape-index field में बदलता है → मौजूदा 3D NCC से locate करता है। यह intensity के बजाय local surface shape से match मापता है, इसलिए समान intensity पर भी अलग आकार वाली वस्तुओं (sphere vs cylinder/saddle) को अलग पहचान सकता है। S rotation invariant है, इसलिए rotation के प्रति भी कुछ हद तक robust है। Return value [score, d, h, w]।
प्रक्रिया: दोनों volume पर curvature_maps → S × curvedness × mask वाला weighted shape-index field w बनाया जाता है; template की तरफ |w| > 0.1·max|w| का bbox काटकर accel_match.ncc_locate_3d को दिया जाता है। Return value [NCC, z, y, x] float64, NCC ∈ [−1, 1]।
• Position काटे गए bbox template का center है, scene में जहाँ वह पड़ता है। यह मूल template volume के center से
bbox offset जितना खिसका होता है (मूल template coordinates पर लौटने के लिए bbox का lo फिर से जोड़ें)।
• mc: curvature_maps का gradient mask threshold (असली gradient इकाई, प्रति voxel)। flat क्षेत्रों को हटाकर
curvature noise को दबाता है।
• अगर template का curvature field पूरा 0 है (flat, या mc बहुत ऊँचा), तो [0,0,0,0] लौटाता है।
• Curvature 2nd-order derivative है, इसलिए noise के प्रति संवेदनशील है। noisy volume को पहले points_to_voxel के
smooth आदि से smooth करें। subvoxel=True पर NCC peak के ±2 neighbourhood के centroid तक refine होता है।
• 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 के स्रोत।
• matching_localize — py -3.11 examples_3d/matching_localize.py
position को input के रूप में लेते हैं)refine_peak_newton · refine_translation_lk · refine_lm · fuse_to_voxel
match_localize)match_shape_3d · match_chamfer_3d · match_hough_3d · match_mip_2d · match_points_ncc
*Provenance: match3d.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.