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.