gs_render — DRIVE gsplat op

• Data kinds: table × matrix → table

• Call: import fullseye as fs; fs.ledger.gs_render(gs: 'dict', pose, K, width: 'int', height: 'int', *, light=(0.3, -0.5, 0.8), ambient: 'float' = 0.35, sky=(0.62, 0.75, 0.92), max_radius: 'int' = 64, max_pairs: 'int' = 12000000, antialias: 'bool' = True) -> 'dict' (implementation को सीधे call करना हो तो import gsplatnp; gsplatnp.gs_render(gs: 'dict', pose, K, width: 'int', height: 'int', *, light=(0.3, -0.5, 0.8), ambient: 'float' = 0.35, sky=(0.62, 0.75, 0.92), max_radius: 'int' = 64, max_pairs: 'int' = 12000000, antialias: 'bool' = True) -> 'dict', registry से लेना हो तो opsdrive.get("gs_render"))

उपयोग

3DGS को camera (pose = world→camera 4×4, K 3×3; driveworld.world_camera जैसी ही convention: −Z की ओर देखता है, ऊपर की rows छोटी) से render करता है।

चरण: (1) केंद्रों को कैमरा तंत्र में, गहराई d = −z ≤ 1e-6 वाले हटाए जाते हैं, (2) 2-D सहप्रसरण Σ' = J W Σ Wᵀ Jᵀ + 0.3 I, J = [[fx/d, 0, fx·x/d²], [0, −fy/d, −fy·y/d²]], (3) त्रिज्या r = ⌈3 √λ_max(Σ')⌉ (≤ max_radius; अधिक वाले हटाए नहीं जाते, r काटा जाता है) की खिड़की में प्रति pixel α = min(0.99, o · exp(−½ Δᵀ Σ'⁻¹ Δ)) (α < 1/255 हटाया जाता है), (4) प्रति pixel गहराई के क्रम में आगे से C = Σ c_i α_i T_i, T_i = Π_{j<i}(1 − α_j), पृष्ठभूमि = (1 − Σ α_i T_i) · sky। रंग Lambert है (world_camera के समान ambient + (1 − ambient)|n·l|, प्रकाश कैमरा तंत्र में)। सब कुछ array संक्रियाएँ हैं (Gaussian × खिड़की pixel के जोड़े समतल रूप से रखे, pixel → गहराई से क्रमबद्ध, समूह-वार संचयी योग से T)।

लौटाता है: color (H,W,3), alpha (H,W) (= Σ α_i T_i), depth (H,W) (α से भारित गहराई / alpha, alpha < 0.5 पर NaN), label (H,W) (सबसे अधिक भार वाले Gaussian का label, alpha < 0.5 पर −1), n_pairs, n_visible।

fail-closed: छवि का आकार ≤ 0, max_radius < 1, या जोड़ों की संख्या max_pairs से अधिक (बहुत धीमा rendering चुपचाप नहीं चलाया जाता) ValueError उठाते हैं।

खाली इनपुट (gs खाली dict) पर ValueError उठता है।

संदर्भ (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 के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• poc_kendama — py -3.11 examples/poc_kendama.py

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

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

इसी category के (gsplat)

gs_from_world · gs_update · gs_render_fn · gs_read_file


*Provenance: gsplatnp.py — DRIVE operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.