gs_from_world — DRIVE gsplat op

• 데이터 종류: table → table

• 호출: 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'(구현을 직접 호출하려면 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', 원장에서 가져오려면 opsdrive.get("gs_from_world"))

사용법

월드의 면에 가우시안을 붙인 3DGS를 반환합니다(world = driveworld의 월드 dict: V, F, face_color, objects).

물체마다 간격 s_o = max(spacing, √(물체의 면적 / max_per_object)), 개수 N_o = ⌈면적 / s_o²⌉. 면은 면적에 비례한 층화 추출(누적 면적의 (k + u)/N_o 점, u 는 물체마다의 균일 난수)로 고르고, 면 안은 R2 저불일치 수열(균일 난수면 틈 = 구멍이 생긴다). 공분산은 면을 따르는 납작한 원판; 국소 간격 s_f = max(s_o / 8, min(s_o, curv_ratio · R_f / sigma_ratio))(R_f = 면의 곡률 반경 추정, 각 ≥ 75° 는 세지 않는다):

납작한 원판이 곡면에서 튀어나오지 않는 크기로 억제하고, 가는 곳(실)은 그만큼 촘촘히 둔다(개수의 가중 = 면적 / s_f²). 모서리(이웃 면과 75° 이상)에접하는 면은 s_f ≤ edge_ratio · s_o(3DGS 가 가장자리에서 세밀하게 하는 것과 같다: 큰 원판이 가장자리 밖 —— 구슬 구멍의 입구 —— 으로 튀어나와 구멍을 막았다). Σ = R diag(σt², σt², σn²) Rᵀ, σt = sigma_ratio · s_f(기본 1.0 = 3DGS 의 초기값 "가장 가까운 3 점까지의 평균 거리"와 같다. 0.7 에서는판의 7 % 화소에서 α < 0.95 의 틈이 남았다), σn = normal_ratio · σt, R = [t1 t2 n] (면의 국소 좌표). 오차(1 개마다 고정, 프레임을 넘어 동일): 면의 국소 좌표에서의 위치 N(0, pos_noise²)(3 축)·색 N(0, color_noise²)(잘라냄).

반환 dict: face (N,)·bary (N,3)·offset_local (N,3)·color (N,3)·opacity (N,)·sigma_t (N,)·sigma_n (N,)· obj (N,)(세계 objects 의 색인)·label (N,)·spacing_obj (물체 수,), 더해서 gs_update 가 채우는 mu (N,3)· R (N,3,3)(열 = t1, t2, n)·normal (N,3).

fail-closed: spacing ≤ 0, max_per_object < 1, 잡음 < 0, sigma_ratio ≤ 0, normal_ratio ≤ 0, opacity ∉ (0, 1], 면이 없는 세계는 ValueError.

빈 입력(world 이(가) 빈 dict)은 ValueError 를 발생시킨다.

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL 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_update · gs_render · gs_render_fn · gs_read_file


*Provenance: gsplatnp.py — DRIVE 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

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