fscore — 3D metrics op

• Data kinds: points × points → measurement

• Call: import fullseye as fs; fs.ledger.fscore(a, b, tau) (implementation को सीधे call करना हो तो import metrics3d; metrics3d.fscore(a, b, tau), registry से लेना हो तो ops3d.get("fscore"))

• Ledger के ज़रिए return value: fullseye.ledger.fscore(...) केवल घोषित out type measurement का value लौटाता है (मूल function सहायक जानकारी भी लौटाता है)। जो हिस्सा छोड़ दिया गया है उसकी ज़रूरत हो तो fullseye.ledger.fscore.raw(...) का उपयोग करें, या metrics3d.fscore को सीधे call करें।

• मूल function का return: (f, precision, recall) → F 値

उपयोग

F-score @ tau = precision और recall का harmonic mean। → (f, precision, recall)। reconstruction का मानक metric।

Raises ValueError: यदि दोनों में से कोई खाली हो या (N,3) न हो (accuracy/completeness के माध्यम से)।

गणना (परिपाटी: a = reconstruction/estimate, b = reference/GT):

• precision = a के points में से उनका अनुपात जिनकी b तक nearest neighbour दूरी tau से कम (< tau, बराबरी शामिल नहीं) है।

• recall = b के points में से उनका अनुपात जिनकी a तक nearest neighbour दूरी tau से कम है।

• f = 2 p r / (p + r), p + r == 0 हो तो 0.0 (0 से भाग नहीं)।

arguments: a, b (N, 3) / (M, 3) point cloud हैं (correspondence की ज़रूरत नहीं, points की संख्या अलग हो सकती है)। tau दूरी का threshold है (coordinates वाली ही इकाई, धनात्मक मान माना गया है। tau <= 0 हो तो दूरी 0 वाले points भी < tau नहीं होते और precision = recall = 0 हो जाता है। जाँच नहीं की जाती)।

return value: (f, precision, recall) के 3 float, हर एक [0, 1] में। 1 पूर्ण मेल है।

ध्यान दें: tau का चुनाव परिणाम तय करता है (voxel size या scan resolution का 1-2 गुना एक संकेत है)। केवल एक cloud घना हो तो precision और recall अलग हो जाते हैं — उसी असमानता को देखना इस metric का मूल्य है; 1 संख्या से काम चले तो chamfer_distance।

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

• blender_interop — Blender के साथ उपयोग — shape बनाएँ, fullseye से मापें (सावधानियाँ: axes, units, ground truth)

• measurement_uncertainty — Measurement uncertainty और calibration — 'हम माप रहे हैं' कहने के लिए क्या चाहिए

संदर्भ (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 करते हैं)

• metrics_eval — py -3.11 examples_3d/metrics_eval.py

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

vol_gaussian_psf · fuse_to_voxel · fresnel_reflectance · snell_angle

इसी category के (metrics)

chamfer_distance · hausdorff_distance · m3c2_distance · rmse_correspondence · normal_consistency · voxel_iou · 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.