metrics op• Data kinds: voxel × voxel → measurement
• Call: import fullseye as fs; fs.ledger.voxel_iou(vol_a, vol_b, iso=0.5) (implementation को सीधे call करना हो तो import metrics3d; metrics3d.voxel_iou(vol_a, vol_b, iso=0.5), registry से लेना हो तो ops3d.get("voxel_iou"))
voxel occupancy का IoU (intersection over union)। → [0,1]। volume का मेल।
दोनों volume का shape एक जैसा होना ज़रूरी है। अलग shape numpy broadcasting से ऊपर से मेल खाते दिखते हैं और चुपचाप गलत IoU लौटाते हैं (उदाहरण: (10,1,10) vs (1,10,10) → 1.0), इसलिए fail-closed तरीके से shape मेल न खाने पर ValueError से अस्वीकार किया जाता है।
गणना: दोनों volume को >= iso से binary बनाया जाता है (iso default 0.5, बराबरी शामिल), फिर |A∩B| / |A∪B|। union खाली हो (दोनों में occupancy शून्य) तो 1.0 लौटाया जाता है ("दोनों खाली" को मेल माना जाता है; error नहीं)।
Arguments: vol_a, vol_b एक ही shape के array हैं (केवल 3-D तक सीमित नहीं; dimensions की संख्या जाँची नहीं जाती; bool / 0-1 / density grid कुछ भी चलेगा)। iso occupied मानने का threshold है; fuse_to_voxel या points_to_voxel के density grid (मान = points की संख्या) पर उपयोग करते समय iso=1 या उससे अधिक स्पष्ट रूप से दें। NaN >= में False (unoccupied) होता है।
Returns: Python float, [0, 1]। 1 = पूर्ण मेल, 0 = कोई overlap नहीं।
ध्यान दें: एक ही grid (bounds और size) पर न हों तो तुलना संभव नहीं — fuse_to_voxel / points_to_voxel को एक ही bounds दें। पतले shell आपस में सिर्फ़ 1 voxel खिसकने पर भी IoU बहुत गिर जाता है, इसलिए surface के मूल्यांकन के लिए chamfer_distance / fscore बेहतर हैं। छोटे volume वाले object के लिए परंपरागत रूप से Dice (voxel_dice, उसी module का function) उपयोग होता है।
• blender_interop — Blender के साथ उपयोग — shape बनाएँ, fullseye से मापें (सावधानियाँ: axes, units, ground truth)
• measurement_uncertainty — Measurement uncertainty और calibration — 'हम माप रहे हैं' कहने के लिए क्या चाहिए
• 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 के स्रोत।
• metrics_eval — py -3.11 examples_3d/metrics_eval.py
measurement को input के रूप में लेते हैं)vol_gaussian_psf · fuse_to_voxel · fresnel_reflectance · snell_angle
metrics)chamfer_distance · hausdorff_distance · m3c2_distance · fscore · rmse_correspondence · normal_consistency · pose_error
*Provenance: metrics3d.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.