fuse — 3D tsdf_fusion op

• Datenarten: depth → sdf

• Aufruf: 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]' (die Implementierung direkt: 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]'; aus dem Register: ops3d.get("fuse"))

Verwendung

Fusioniert eine Tiefenserie mit new_volume + integrate zu einem TSDF-Volumen. Liefert (tsdf, weight).

(K,R,t) jedes Frames ist world→camera. Beobachten mehrere Ansichten dieselbe Oberfläche, summieren sich die Gewichte, und Flächen, die in einem einzelnen Frame unsichtbar (selbstverdeckt) sind, werden von anderen Ansichten aufgefüllt.

• depths: Liste von (H,W) Tiefenbildern (Kamera-Z-Tiefe; Pixel ≤0 oder nicht endlich gelten als unbeobachtet). Die Größe darf von Frame zu Frame verschieden sein.

• Ks / Rs / ts: (3,3) intrinsische Matrix, (3,3) Rotation, (3,) Translation pro Frame (X_cam = R X + t).

• bounds: world-Bereich ((xmin,xmax),(ymin,ymax),(zmin,zmax)) (auf jeder Achse max > min).

• res: Anzahl der voxel pro Seitenlänge (positiver int). Das volume ist res×res×res, Achsenreihenfolge (x,y,z) mit indexing='ij'.

• trunc: Abschneidedistanz (world-Einheiten, positiver endlicher Wert). Richtwert ist ein Mehrfaches der voxel-Größe; zu klein, und die Beobachtungen landen nicht auf beiden Seiten der Oberfläche, zu groß, und Vorder- und Rückseite dünner Strukturen vermischen sich.

Rückgabewert: tsdf (res,res,res) float32 (unbeobachtet +1.0, vor der Oberfläche positiv, dahinter negativ, [-1,1]) und weight (res,res,res) float32 (Anzahl der Beobachtungen). Oberflächenpunkte werden mit extract_surface_points(tsdf, weight, bounds, res) extrahiert. fail-closed: 0 Frames, ungleiche Listenlängen, degenerierte bounds, nicht positives res / trunc lösen ValueError aus. Details der Integration (die Regel, verdeckte Bereiche nicht zu aktualisieren) siehe integrate.

Hintergrundwissen (Physik und Konventionen hinter diesem Operator)

• depth_sensors — Tiefensensoren — Messprinzipien, Werte realer Geräte, wie Messlücken entstehen

Referenzen (Beispieldaten, Literatur)

• 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.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• tsdf_fusion_demo — py -3.11 examples_3d/tsdf_fusion_demo.py

Typkompatible Folge-Operatoren (nehmen sdf als Eingabe)

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

Gleiche Kategorie (tsdf_fusion)

integrate · extract_surface_points


*Provenance: tsdf_fusion.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.