gsplat op• 数据种类:table × matrix → table
• 调用: 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'(要直接调用实现,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';从台账取用则 opsdrive.get("gs_render"))
用相机渲染 3DGS(pose = world→camera 4×4,K 3×3,与 driveworld.world_camera 相同的约定:朝 −Z 看,行号上小下大)。
步骤:(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)的窗口内逐像素 α = min(0.99, o · exp(−½ Δᵀ Σ'⁻¹ Δ))(α < 1/255 丢弃),(4) 逐像素按深度从前往后 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|, 光在相机系)。全部为数组运算(高斯 × 窗口像素的对平铺,按像素 → 深度排序,用组内累积和求 T)。
返回值:color (H,W,3)·alpha (H,W)(= Σ α_i T_i)·depth (H,W)(以 α 加权的深度 / alpha,alpha < 0.5 为 NaN)· label (H,W)(权重最大的高斯的标签,alpha < 0.5 为 −1)·n_pairs·n_visible。
fail-closed:图像大小 ≤ 0、max_radius < 1、对数超过 max_pairs(不会默默运行过慢的渲染)会引发 ValueError。
空输入(gs 为空 dict)会引发 ValueError。
• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。
• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。
• 算法的正典(作者、年份)与用途见上面的族使用指南。
• poc_kendama — py -3.11 examples/poc_kendama.py
table 作为输入)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
gsplat)gs_from_world · gs_update · gs_render_fn · gs_read_file
*Provenance: gsplatnp.py — DRIVE 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.