metrics op• Datenarten: points × points → measurement
• Aufruf: import fullseye as fs; fs.ledger.fscore(a, b, tau) (die Implementierung direkt: import metrics3d; metrics3d.fscore(a, b, tau); aus dem Register: ops3d.get("fscore"))
• Rückgabewert über das Register: fullseye.ledger.fscore(...) liefert nur den Wert des deklarierten Out-Typs measurement (die zugrunde liegende Funktion gibt zusätzlich Hilfsinformationen zurück). Wird das Verworfene gebraucht, nutze fullseye.ledger.fscore.raw(...) oder rufe metrics3d.fscore direkt auf.
• Rückgabe der Funktion: (f, precision, recall) → F 値
F-Score @ tau = das harmonische Mittel aus Precision und Recall. → (f, precision, recall). Die Standardmetrik der Rekonstruktion.
Raises ValueError: wenn einer der beiden leer oder nicht (N,3) ist (über accuracy/completeness).
Berechnung (Konvention: a = Rekonstruktion/Schätzung, b = Referenz/GT):
• precision = Anteil der Punkte von a, deren Nächster-Nachbar-Distanz zu b kleiner als tau ist (< tau, Gleichheit nicht eingeschlossen).
• recall = Anteil der Punkte von b, deren Nächster-Nachbar-Distanz zu a kleiner als tau ist.
• f = 2 p r / (p + r); bei p + r == 0 0.0 (keine Division durch 0).
Argumente: a, b sind Punktwolken (N, 3) / (M, 3) (keine Korrespondenz nötig, Punktzahlen dürfen abweichen). tau ist der Distanz-Schwellwert (gleiche Einheit wie die Koordinaten, ein positiver Wert wird angenommen. Bei tau <= 0 erfüllen selbst Punkte mit Distanz 0 < tau nicht, und precision = recall = 0. Dies wird nicht geprüft).
Rückgabewert: 3 float-Werte (f, precision, recall), jeweils in [0, 1]. 1 ist perfekte Übereinstimmung.
Hinweis: Die Wahl von tau bestimmt das Ergebnis (das 1-2-fache der Voxelgröße bzw. Scanauflösung ist ein Richtwert). Ist nur eine Wolke dicht, laufen precision und recall auseinander — diese Asymmetrie zu sehen, ist der Wert dieser Metrik; genügt 1 Zahl, chamfer_distance verwenden.
• blender_interop — Zusammen mit Blender — Form bauen, mit fullseye messen (Fallstricke: Achsen, Einheiten, Referenzdaten)
• measurement_uncertainty — Messunsicherheit und Kalibrierung — was nötig ist, um zu behaupten, dass man misst
• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).
• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.
• metrics_eval — py -3.11 examples_3d/metrics_eval.py
measurement als Eingabe)vol_gaussian_psf · fuse_to_voxel · fresnel_reflectance · snell_angle
metrics)chamfer_distance · hausdorff_distance · m3c2_distance · rmse_correspondence · normal_consistency · voxel_iou · pose_error
*Provenance: metrics3d.py — 3D Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.