gs_from_world — DRIVE gsplat op

• Datenarten: table → table

• Aufruf: import fullseye as fs; fs.ledger.gs_from_world(world: 'dict', *, spacing: 'float' = 0.004, max_per_object: 'int' = 20000, pos_noise: 'float' = 0.0, color_noise: 'float' = 0.0, sigma_ratio: 'float' = 1.0, normal_ratio: 'float' = 0.1, opacity: 'float' = 0.99, curv_ratio: 'float' = 0.5, edge_ratio: 'float' = 0.25, seed: 'int' = 0) -> 'dict' (die Implementierung direkt: import gsplatnp; gsplatnp.gs_from_world(world: 'dict', *, spacing: 'float' = 0.004, max_per_object: 'int' = 20000, pos_noise: 'float' = 0.0, color_noise: 'float' = 0.0, sigma_ratio: 'float' = 1.0, normal_ratio: 'float' = 0.1, opacity: 'float' = 0.99, curv_ratio: 'float' = 0.5, edge_ratio: 'float' = 0.25, seed: 'int' = 0) -> 'dict'; aus dem Register: opsdrive.get("gs_from_world"))

Verwendung

Gibt ein 3DGS zurück, bei dem Gaußsche auf die Flächen der Welt gelegt sind (world = Welt-dict von driveworld: V, F, face_color, objects).

Pro Objekt Abstand s_o = max(spacing, √(Objektfläche / max_per_object)), Anzahl N_o = ⌈Fläche / s_o²⌉. Flächen werden per flächenproportionaler geschichteter Stichprobe gewählt (die (k + u)/N_o-Punkte der kumulierten Fläche, u eine gleichverteilte Zufallszahl pro Objekt), innerhalb einer Fläche eine R2-Folge geringer Diskrepanz (gleichverteilte Zufallszahlen lassen Lücken = Löcher). Die Kovarianz ist eine flache Scheibe entlang der Fläche; lokaler Abstand s_f = max(s_o / 8, min(s_o, curv_ratio · R_f / sigma_ratio)) (R_f = geschätzter Krümmungsradius der Fläche, Kanten ≥ 75° zählen nicht):

Die flache Scheibe wird so klein gehalten, dass sie nicht aus der gekrümmten Fläche ragt, und dünne Stellen (Fäden) werden entsprechend dichter belegt (Gewicht der Anzahl = Fläche / s_f²). Flächen an einer Kante (75° oder mehr zur Nachbarfläche) erhalten s_f ≤ edge_ratio · s_o (wie 3DGS an Kanten verfeinert: große Scheiben ragten über die Kante hinaus —— die Öffnung des Lochs einer Perle —— und verschlossen das Loch). Σ = R diag(σt², σt², σn²) Rᵀ, σt = sigma_ratio · s_f (Standard 1.0 = wie der 3DGS-Startwert „mittlerer Abstand zu den 3 nächsten Punkten“; bei 0.7 blieben in 7 % der Pixel der Platte Lücken mit α < 0.95), σn = normal_ratio · σt, R = [t1 t2 n] (lokales Koordinatensystem der Fläche). Fehler (pro Gaußfunktion fest, über Frames hinweg gleich): Position im lokalen System der Fläche N(0, pos_noise²) (3 Achsen), Farbe N(0, color_noise²) (abgeschnitten).

Rückgabe-dict: face (N,), bary (N,3), offset_local (N,3), color (N,3), opacity (N,), sigma_t (N,), sigma_n (N,), obj (N,) (Index in die objects der Welt), label (N,), spacing_obj (Anzahl Objekte,), dazu von gs_update gefüllt mu (N,3), R (N,3,3) (Spalten = t1, t2, n), normal (N,3).

fail-closed: spacing ≤ 0, max_per_object < 1, Rauschen < 0, sigma_ratio ≤ 0, normal_ratio ≤ 0, opacity ∉ (0, 1] oder eine Welt ohne Flächen lösen ValueError aus.

Leere Eingabe (world als leeres dict) löst ValueError aus.

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.

• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.

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

• poc_kendama — py -3.11 examples/poc_kendama.py

Typkompatible Folge-Operatoren (nehmen table als Eingabe)

course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same

Gleiche Kategorie (gsplat)

gs_update · gs_render · gs_render_fn · gs_read_file


*Provenance: gsplatnp.py — DRIVE 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.