Download docs/roadmap.md from kimjunhan/vkgs-sim: direct link, hf CLI and curl.
- Browser
- Download file 41.7 kB
-
https://huggingface.co/kimjunhan/vkgs-sim/resolve/main/docs/roadmap.md
- Command line
-
hf download hf://kimjunhan/vkgs-sim/docs/roadmap.md
-
curl -L -o roadmap.md https://huggingface.co/kimjunhan/vkgs-sim/resolve/main/docs/roadmap.md
๋ก๋๋งต
๊ฐ ๋จ๊ณ๋ ๊ฒ์ฆ ๊ฐ๋ฅํ ์ฐ์ถ๋ฌผ ๋ก ๋๋๋ค. "๋๋ค" ๋ฅผ ๋์ผ๋ก ํ์ธํ ์ ์์ผ๋ฉด ๊ทธ ๋จ๊ณ๋ ๋๋ ๊ฒ ์๋๋ค.
0๋จ๊ณ โ ๊ฐ๋ฐ ํ๊ฒฝ ยท ๋ฐ์ดํฐ ๊ณ์ธต โ ์๋ฃ
| ์ฐ์ถ๋ฌผ | vkgs-doctor ๊ฐ ์ ๋ถ ์ด๋ก, nusim scene show ๊ฐ ์ฌ์ ์ถ๋ ฅ |
| ์ํ | ์๋ฃ. Docker ๋์ ๋ก์ปฌ micromamba ํ๊ฒฝ (scripts/local_setup.sh) |
- ์ฌ ์ธ๋ฑ์ค โ 383 ์ฑ๊ฐํฌ๋ฅด ์ฌ / 532,157 ์ฅ / ํผํฌ 0.5 GB
- ์ธ๋ฑ์ค v2 โ LIDAR_TOP ํคํ๋ ์ ์ถ๊ฐ (์ฌ๋น ์ฝ 40์ฅ)
- ์คํธ๋ฆฌ๋ฐ JSON ํ์ โ 1.35 GB ๋ฅผ ํผํฌ 30 MB ๋ก ์ํ
- ์นด๋ฉ๋ผ ๋ฆฌ๊ทธ ์ํ โ 6์บ ๋ฐฐ์น๋ฅผ ์ค์ธก์ผ๋ก ํ์ธ. Vulkan ํฌ์ํ๋ ฌ y/์ฃผ์ ๋ถํธ ๋ฒ๊ทธ ์์
- ๋ก์ปฌ ํ๊ฒฝ (CUDA 12.1 + PyTorch 2.4.1 + gsplat 1.4.0 + Vulkan 1.4 ๋ก๋, sudo ๋ถํ์)
-
vkgs-doctor์ ํญ๋ชฉ ํต๊ณผ -
vkgs_probe๋ฅผ ์ค์ GPU ์์ ์คํ โ ์ปดํจํธ ๋์คํจ์น ๊ฒ์ฆ ํต๊ณผ
1๋จ๊ณ โ 3DGS ์ฌ๊ตฌ์ฑ ๐ง ์งํ ์ค
| ์ฐ์ถ๋ฌผ | ์ฌ ํ๋์ .ply + ์๋ณธ ๋๋น PSNR/SSIM ๋ฆฌํฌํธ |
| ๊ธฐ์ค์ | ์ ์ ์ฌ(์ฃผ์ฐจ์ฅ ๋ฑ)์์ hold-out ๋ทฐ PSNR โฅ 25 dB |
-
recon/init.pyโ LIDAR_TOP ๋์ โ ์ด๊ธฐ ๊ฐ์ฐ์์. ์์ฐจ ์ /๋ฐ์ฌ ํ์ ์ ๊ฑฐ, ์ฌ ์์ ์ด๋(float32 ์ ๋ฐ๋), ํ๋ ๊ตฌ, ์นด๋ฉ๋ผ ํฌ์์ผ๋ก ์ ์ด๊ธฐํ. COLMAP ์์. -
recon/dataset.pyโ 800ร450, ์ฌ ์ ์ฒด RAM ์ ์ฌ(1.4 GB, 5์ด), ์นด๋ฉ๋ผ๋ณ hold-out 1/8. -
recon/train.pyโ gsplat + DefaultStrategy, ๊ฐ์ฐ์์ ์ํ, ์นด๋ฉ๋ผ๋ณ ์ํ + ํ๋ ์๋ณ ๊ฒ์ธ ์ ๋ณด์ . -
io/ply.pyโ ํ์ค 3DGS ply (์์ ์ ํค๋ comment ์ float64). - ์ธ๋ฑ์ค v3 โ 3D ๋ฐ์ค ์ด๋ ธํ ์ด์ (์ฑ๊ฐํฌ๋ฅด 364,833๊ฐ)
-
recon/dynamic.pyโ ์์ง์ด๋ ๊ฐ์ฒด ํ์ (์ฌ๋ ์ ๋ถ + ๋์ ๋ณ์ > 2 m + moving ์์ฑ ๊ณผ๋ฐ), ํคํ๋ ์ ๊ฐ ๋ฐ์ค ๋ณด๊ฐ, ๊ทผํ๋ฉด ํด๋ฆฌํ ํฌ์ ๋ง์คํฌ. ๋ผ์ด๋ค ์ด๊ธฐํ์ ํ์ต ์์ค์์ ์ ์ธ. - ์ ๊ตฝ๊ธฐ โ ํ๊ท ์นด๋ฉ๋ผ ์ ๋ณํ์ SH ์ ๊ตฌ์ ply ๋ง์ผ๋ก nuScenes ์์ด ๋์ค๊ฒ.
- ์ ์ PSNR 25 dB ๋ฌ์ฑ โ 60k ์คํ 25.26 dB
- ์นด๋ฉ๋ผ๋ณ ์ธ๋ถ ํ๋ผ๋ฏธํฐ ๋ณด์ (camera_adjust.json)
- ์ ๋ณด์ ์ค์ฌํ (SH ๊ตฝ๊ธฐ ๋์ฒด) + ์ธ๋ถ ํ๋ผ๋ฏธํฐ ๋ณด์ L2 ์ฌ์ ๋ถํฌ
- ์ฌ 3๊ฐ๋ก ๊ฒ์ฆ โ ์๋ ํ. ์ฃผ๊ฐยทํฉํผ์ ํต๊ณผ, ์ผ๊ฐ+์ฐ์ฒ์ ์คํจ (์ฑ๊ฐํฌ๋ฅด ์ฐ์ฒ ์ฌ์ ์ ๋ถ ์ผ๊ฐ)
- ์ผ๊ฐ+์ฐ์ฒ ์ฌ๊ตฌ์ฑ โ ์ ์ 3DGS ๊ฐ์ ์ด ๊นจ์ง๋ ์กฐ๊ฑด์ด๋ผ ๋ณ๋ ์ ๊ทผ ํ์ (์๋ ์ฐธ๊ณ )
- ์ฐจ๋๋ณ ๊ณ ์ ์บ๋ฆฌ๋ธ โ ์ฃผ๊ฐ ์ฌ ์ฌ๋ฟ์ ์ธ๋ถ ํ๋ผ๋ฏธํฐ ๋ณด์ ์ ํ๊ท ๋ด n015 ๋ฑ ์ฐจ๋๋ณ๋ก ๊ณ ์
์ฌ 3๊ฐ ๊ฒ์ฆ (60k ์คํ , ์ต์ข ์ฝ๋, 2026-10-01):
| ์ฌ | ์กฐ๊ฑด | ํ๊ท ๋ฐ๊ธฐ | ์ ์ PSNR | SSIM | ply ๊ทธ๋๋ก | ๊ฐ์ฐ์์ | ์๊ฐ | ํ์ |
|---|---|---|---|---|---|---|---|---|
| scene-0003 | ์ฃผ๊ฐ ์ฃผ์ฐจ์ฅ | 0.41 | 25.62 | 0.804 | 19.5 | 200๋ง | 64๋ถ | ํต๊ณผ |
| scene-0992 | ํฉํผ ("Night") | 0.14 | 25.64 | 0.582 | 24.0 | 27๋ง | 20๋ถ | ํต๊ณผ (๋๋ฌด๊ฐ ํ๋ฆผ) |
| scene-1060 | ์ผ๊ฐ + ์ฐ์ฒ | 0.05 | 29.29 | 0.646 | 27.8 | 5.6๋ง | 15๋ถ | ์คํจ โ ์์น๋ง ๋๋ค |
์ด๋์ด ์ฌ์์ PSNR ์ ๋ฏฟ์ ์ ์๋ค. scene-1060 ์ ์ด๋ฏธ์ง๊ฐ ๊ฑฐ์ ๊ฒ์ด์(ํ๊ท 0.05) ๋ญ๊ฐ์ง ๋ ๋๋ 29 dB ๊ฐ ๋์จ๋ค. ์ค์ ๋ ๋๋ ๊ฐ๋ก๋ฑยท์ฐจ์ ยทํค๋๋ผ์ดํธ๋ง ํ๋ฆฟํ๊ฒ ๋จ๋๋ค. ์ผ๊ฐ ํ์ ์ SSIM ๊ณผ ์ก์์ผ๋ก ํ๋ค. (LPIPS ๋ฅผ ์งํ์ ๋ฃ๋ ๊ฒ๋ ๊ณ ๋ ค.)
์ผ๊ฐ+์ฐ์ฒ์ด ์ด๋ ค์ด ์ด์ : ์ผ์ ๋
ธ์ด์ฆ, ์ ์ ๋
ธ๋ฉด์ ์์ ์์กด ๋ฐ์ฌ, ํค๋๋ผ์ดํธ ๊ธ๋ ์ด,
๋ ์ฆ์ ๋น๋ฐฉ์ธ โ ์ ๋ถ '์ ์ ์ฅ๋ฉด + ์์ ๋ฌด๊ด ์' ๊ฐ์ ์ ๊นฌ๋ค. ์์ค์ ๋ฐ๊ธฐ๋ก ์ ๊ทํํด
densify ๋ฅผ ์ด๋ ค ๋ดค์ง๋ง(๊ฐ์ฐ์์ 5.6๋งโ48๋ง) ๋
ธ์ด์ฆ๋ฅผ ๋ฐ๋ผ๊ฐ๋ ์ค๋ฌด๋ฌ๋ง ๋์๋ค
(PSNR 24.9, SSIM 0.50). ๊ธฐ๋ณธ์ ๋๊ณ max_loss_scale ์ต์
์ผ๋ก๋ง ๋จ๊ฒผ๋ค.
scene-0003 (์ฃผ์ฐจ์ฅ ์ถ๊ตฌ) ์คํ ์ด๋ ฅ:
| ๋ฒ์ | ์คํ | ์ ์ PSNR | ์ ์ฒด PSNR | ply ๊ทธ๋๋ก | ๋น๊ณ |
|---|---|---|---|---|---|
| v1 ๊ธฐ๋ณธ | 30k | 24.54 | 23.98 | 18.05 | ์์ง์ด๋ ์ฐจ๊ฐ ํ๋ฆฐ ์์์ผ๋ก ๊ตฌ์์ง |
| v2 ๋์ ๋ง์คํน + ์ ๊ตฝ๊ธฐ | 30k | 24.63 | 22.84 | 19.07 | ์์ ์ ๊ฑฐ |
| v2 + ๊ฐ์ฐ์์ ์ํ 350๋ง | 30k | 24.64 | 22.86 | โ | ์ํ์ด ๋ณ๋ชฉ ์๋ (์์ฐ ์ฆ๊ฐ 213๋ง์์ ๋ฉ์ถค) |
| v2 + absgrad | 30k | 24.36 | 22.73 | โ | ์คํ๋ ค ๋์จ (๊ฐ์ฐ์์ 119๋ง) |
| v2 + ์นด๋ฉ๋ผ ์ธ๋ถ ํ๋ผ๋ฏธํฐ ๋ณด์ | 30k | 24.72 | 23.01 | โ | ์บ ๋ง๋ค 0.3 |
| v2 | 60k | 25.26 | 23.33 | โ | ๋ ํ์ต์ด ์ฃผ์์ธ. ๊ธฐ์ค์ ํต๊ณผ |
| ์ต์ข v2 + ์ธ๋ถ ํ๋ผ๋ฏธํฐ ๋ณด์ | 60k | 25.42 | 23.49 | โ | SSIM 0.803. ๋ณด์ ๊ฐ์ด ๋ฐ๋ณต ์คํ์์ ์ฌํ๋จ (0.29~0.44ยฐ) |
'์ ์ PSNR' ์ ๋์ ๋ง์คํฌ ๋ฐ ํฝ์ ๋ง (๋ฐฐ๊ฒฝ ๋ชจ๋ธ์ ํ์ง, 1๋จ๊ณ ๊ธฐ์ค์ ). '์ ์ฒด' ๊ฐ v2 ์์ ๋ด๋ ค๊ฐ ๊ฒ์ ์๋๋ ๊ฒ์ด๋ค โ ์์ง์ด๋ ์ฐจ ์๋ฆฌ์ ์ด์ ๋ฐฐ๊ฒฝ์ ๊ทธ๋ฆฐ๋ค.
์ง๋จ์์ ์๊ฒ ๋ ๊ฒ:
- ํ์ต ๋ทฐ PSNR ๋ 25.2 ์์ ๋ฉ์ถฐ ์์๋ค โ ๊ณผ์ ํฉ์ด ์๋๋ผ ๋ฏธ์ ํฉ. ์ฌ๋น ๋ทฐ 1,200์ฅ์ 3๋ง ์คํ ์ ๋ทฐ๋น 25ํ๋ฟ์ด๋ค (์๋ณธ 3DGS ๋ 200์ฅ ร 3๋ง = 150ํ).
- ํ๊ฐ ๋ทฐ ๋ ธ์ถ ๊ฒ์ธ์ ์ด์ ํ๋ ์์์ ๋น๋ฆฌ๋ ์์ค์ 0.13 dB ๋ฟ (oracle ๋น๊ต).
- ํ๋ ๊ตฌ๋ง ๋ณด์ด๋ ํฝ์ ์ ์ค์ฐจ์ 2%. ๋ฐ์ ํฝ์ (๋๋ญ์ ์ฌ์ด ํ๋)์ด ํฝ์ 9% ๋ก ์ค์ฐจ 29%.
- ์ธ๋ถ ํ๋ผ๋ฏธํฐ ๋ณด์ ์ view ํ๋ ฌ gradient ๋ gsplat ์ด 4x4 ํ๋๋ก atomic ํฉ์ฐํด ์คํ
์ด
2.2๋ฐฐ ๋๋ ค์ง๋ค. 4์คํ
์ ํ ๋ฒ, 3๋ง ์คํ
๊น์ง๋ง ์ผ ๋ค (
camera_every,camera_until). - ์ ๊ตฝ๊ธฐ๊ฐ ์ฝ 0.1 dB ์๋๋ค โ gsplat ์ด SH ์์
clamp_min(0)์ ๊ฑธ์ด ์์ ํ ์ ํ์ด ์๋๋ค.
์ฃผ์ํ ์ . ๋ ธ์ถ/ํ์ดํธ๋ฐธ๋ฐ์ค๊ฐ ์นด๋ฉ๋ผ๋ง๋ค ๋ค๋ฅด๋ค. ๋ณด์ ์์ด ํ์ตํ๋ฉด ์นด๋ฉ๋ผ ๊ฒฝ๊ณ์ ์ด์๋งค๊ฐ ์๊ธด๋ค. ์นด๋ฉ๋ผ๋ณ ์ ๋ณด์ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ฐ์ด ์ต์ ํํ๋ค.
1๋จ๊ณ ๋ณด๊ฐ โ ์ ์์ ํ์ง (์นด๋ฉ๋ผ-๋ผ์ด๋ค ์ตํฉ, Difix) ยท 2026-10-01
closed-loop ์์ ์ฐจ์ ์ ๋ฐ๊พธ๋ฉด(์๋ ๊ฒฝ๋ก์์ ์์ผ๋ก 1.5~3 m) ๋ ธ๋ฉด์ด ํํธ์ฒ๋ผ ๋ญ๊ฐ์ก๋ค. ์์ธ์ ์์ด ์๋๋ผ ๊ธฐํ โ ๊ธฐ๋ณธ ๋ชจ๋ธ์ ๋ ๋ ๊น์ด๊ฐ ๋ผ์ด๋ค์ 20% ์ด๊ธ๋ ์์๋ค.
| ๋ชจ๋ธ (scene-0003) | ์๋ ๊ถค์ ์ ์ PSNR | ๊น์ด ์ค์ฐจ (๋ผ์ด๋ค ๋๋น) | ์ฐจ์ ๋ณ๊ฒฝ ์์ |
|---|---|---|---|
| ๊ธฐ๋ณธ (๋ผ์ด๋ค๋ ์ด๊ธฐํ๋ง) | 25.62 | 22.0% | ๋ ธ๋ฉด ๋ญ๊ฐ์ง |
| + Difix ์์ฌ ์ ๋ต ๋ฏธ์ธ์กฐ์ | 24.80 | 23.8% | ๋งค๋ํ์ง๋ง ํ๋ฆผ |
+ ๋ผ์ด๋ค ๊น์ด ๊ฐ๋
(--depth-lambda 0.1) |
24.83 | 2.3% | ์ฐ์ยท์ฐจ์ ยท๋ ธ๋ฉด ํ์ ์ ์ง โ ์๋ฎฌ๋ ์ดํฐ ๊ธฐ๋ณธ |
| ๊น์ด ๊ฐ๋ + Difix | 24.18 | 2.4% | 3 m ์์ ์ฝ๊ฐ ๋ ๊นจ๋, ๋์ โ0.65 dB |
| ๊น์ด ๊ฐ๋ + sweep ์ตํฉ (20 Hz ๋ผ์ด๋ค 384์ฅ) | 24.69 | 2.0% | ๊น์ด ๊ฐ๋ ๊ณผ ๋น์ท, ํ๋์ ์ค๋ฌด๋ฌ |
- ๋ผ์ด๋ค ๊น์ด ๊ฐ๋
= ์ ์ ๋ผ์ด๋ค ๋์ ์ (๋์ ๊ฐ์ฒด ์ ๊ฑฐ)์ ๋ทฐ๋ง๋ค z-buffer ๊น์ด ์ง๋๋ก ๋ง๋ค์ด
๋ ๋ ๊ธฐ๋ ๊น์ด์ ์๋ L1 (
nusim/recon/depth.py). ๊ธฐํ ์ค์ฐจ๊ฐ 10๋ฐฐ ์ค๋ค. - sweep ์ ๊น์ด ์ง๋๋ฅผ ์ด์ดํ๊ฒ ํ์ง๋ง(1/2 ํด์๋ ์ฑ์ 51% โ 79%) ๊ฒฐ๊ณผ ์ฐจ์ด๋ ์์๋ค. ๋ผ์ด๋ค ์์ง ์์ผ ์(ํ๋)๋ ์ฌ์ ํ ๊ตฌ์์ด ์์ด floater ๊ฐ ๋จ๋๋ค.
- Difix(NVIDIA, SD-Turbo ๋จ์ผ ์คํ ํ์ฐ, ์ฐ๊ตฌ์ฉ ๋ผ์ด์ ์ค)๋ ๋ ๋ ํ์ฒ๋ฆฌ๋ก๋ ๊ฐ์ฅ ์ข์ง๋ง ์ฅ๋น 1์ด๋ผ closed-loop ์ ๋ชป ์ฐ๊ณ , ์ฐธ์กฐ ์ฌ์ง์ ์์ง์ด๋ ์ฐจ๋ฅผ ๋์ด๋ฆฌ๋ ํ๊ฐ์ด ์๋ค. OneFixer(arXiv 2609.32175) ๋ ์ฝ๋ ๋ฏธ๊ณต๊ฐ, NVIDIA Fixer ๋ cosmos ์ปจํ ์ด๋ ์คํ์ด ํ์ํด ๋ณด๋ฅ.
- ๋จ์ ํ๊ณ: ์๋ ์นด๋ฉ๋ผ๊ฐ ํ ๋ฒ๋ ๋ชป ๋ณธ ๋ฉด(์ฐจ๋จ๊ธฐยท์ฝ์ ์๋ฉด)์ 3 m ์ด๋์์ ์ฌ์ ํ ๊นจ์ง๋ค.
ํ๊ฒฝ ์ ์ฉ ์ฌ๊ตฌ์ฑ (2026-10-02 ๊ฒฐ์ )
๋ ๋๋ง์ ์ฃผํ ๋งต(ํ๊ฒฝ)๋ง ๊ตฌ์ฑํ๋ค. ์ฐจ๋ยท์ฌ๋ ๊ฐ์ ๊ตํต ์ฐธ๊ฐ์๋ 3๋จ๊ณ์์ ์๋ฎฌ๋ ์ดํฐ๊ฐ ๋ฐ๋ก ๋ฃ๋๋ค.
nusim recon train --objects agents: ์์ง์ด๋ ๊ฐ์ฒด๋ฟ ์๋๋ผ ์ฃผ์ฐจ ์ฐจ๋ยท์ ์๋ ์ฌ๋ยท์์ ๊ฑฐ๊น์ง ํ์ต ๋ง์คํฌ์ ๋ผ์ด๋ค ๋์ ์์ ๋บ๋ค (nusim.recon.dynamic.masked_instances). ์ฝยท๋ฐฉํธ๋ฒฝ(movable_object)์ ๋งต์ผ๋ก ๋จ๊ธด๋ค. scene-0003: ๊ธฐ๋ณธ 24๊ฐ โ 54๊ฐ (์น์ฉ์ฐจ 35, ๋ณดํ์ 15, ์์ ๊ฑฐ 4).- ์ฐจ๊ฐ ์ ์๋ ๋ ธ๋ฉด์ ๋ค๋ฅธ ์๊ฐยท๋ค๋ฅธ ์นด๋ฉ๋ผ์์ ๋ณธ ํฝ์ ๊ณผ ๋ผ์ด๋ค ๊น์ด ๊ฐ๋ ์ผ๋ก ์ฑ์ด๋ค.
- ๊ฒฐ๊ณผ๋
outputs/gs/<scene>_env.render view๋ ์ด ๋ชจ๋ธ์ด ์์ผ๋ฉด ๊ธฐ๋ณธ์ผ๋ก ์ด๋ค. ๋ค๋ฅธ ์ฐจ๋(glTF)์ ๊ธฐ๋ณธ์ผ๋ก ๊ทธ๋ฆฌ์ง ์๊ณ--agents๋ก๋ง ์ผ ๋ค. ์์ฐจ๋ ๊ณ์ ํ์ํ๋ค.
2๋จ๊ณ โ Vulkan ๋ ๋๋ฌ ๐ง 2a ์๋ฃ
| ์ฐ์ถ๋ฌผ | ๊ฐ์ ์นด๋ฉ๋ผ ์์ธ์์ ํ์ต๊ธฐ ๋ ๋์ Vulkan ๋ ๋์ ํฝ์ ์ฐจ์ด < 2% |
2a. ๋น๋ณด๋ ๊ฒฝ๋ก โ (2026-10-01)
-
.ply๋ก๋, ๊ฐ์ฐ์์ SSBO ์ ๋ก๋ (3D ๊ณต๋ถ์ฐ์ CPU ์์ ๋ฏธ๋ฆฌ, 240 B/๊ฐ์ฐ์์) - ๊น์ด ์ ๋ ฌ (GPU bitonic โ 2026-10-05 ๋ณด์ด๋ ๊ฒ๋ง GPU radix, ์์ง ๊ฒฝ๋ํ ์ฐธ๊ณ )
- ํ๋ฉด์ ๋ ฌ ์ฟผ๋ + ์ํ ๋ธ๋ ๋ฉ (RGBA32F ๋์ , gsplat ๊ณผ ๊ฐ์ ์์ยท์์)
- GLFW ์ฐฝ, ์์ ์นด๋ฉ๋ผ / 6์บ ์ถ์ข / ๊ถค์ ์ฌ์ / BEV(๋์ด ํด๋ฆฝ) โ ํ๋ฉด์ ๋ฌ๋ค
- nuScenes map expansion ์ค๋ฒ๋ ์ด (์ฃผํ๊ฐ๋ฅ์์ญ, ์ฐจ์ ์ค์ฌ์ , ๊ตฌ๋ถ์ , ์ ์ง์ , ๋ณด๋, ์์ฐจ ๊ถค์ ยท๋ฐ์ค)
-
nusim render compareโ Vulkan vs gsplat PSNR 55.95 dB, ํ๊ท ์ฐจ์ด 0.10% (๊ธฐ์ค < 2%, ํฉ๊ฒฉ) -
nusim render videoโ 6์บ + BEV ์ฌ์ ์์
์ฑ๋ฅ (scene-0003, ๊ฐ์ฐ์์ 200๋ง / ๋ณด์ด๋ 33๋ง, 800x450): ์ ์ฒ๋ฆฌ 0.5 + ์ ๋ ฌ 10.8 + ๋์คํฐ 5.0 = 16.3 ms/์ฅ. ์ ๋ ฌ์ด 2/3 โ bitonic 231 ํจ์ค. 6์บ ร 1600x900 ์ 100 ms ์์ ๋ฃ์ผ๋ ค๋ฉด 2b ์ radix ์ ๋ ฌยทํ์ผ ๋์คํฐ๊ฐ ํ์ํ๋ค.
BEV ์ ํ๊ณ: ํ์ต ์นด๋ฉ๋ผ๊ฐ 1.5 m ๋์ด์์ ์ํ์ผ๋ก๋ง ๋ด์, ์์์ ๋ณด๋ฉด ๋๋ฌด ์บ๋ ธํผ๊ฐ ์ง๋ฉด์ ๋ฎ๊ณ ์ง๋ฉด ๊ฐ์ฐ์์์ด ๋ฐ๋์ฒ๋ผ ๋ณด์ธ๋ค. ๋์ด ํด๋ฆฝ(๊ธฐ๋ณธ ์ง๋ฉด +2.5 m)์ผ๋ก ์บ๋ ธํผ๋ ๊ฑท์ด ๋ด์ง๋ง ๋ฐ๋์ ๋จ๋๋ค โ 3DGS ์ ๋ณธ์ง์ ํ๊ณ์ด๊ณ BEV ๋ ๋งตยท๊ถค์ ํ์ธ์ฉ์ผ๋ก ๋ณธ๋ค.
2a+. IBL ํ๊ฒฝ ์กฐ๋ช โ (2026-10-02)
- 6์บ ํ๋ ธ๋ผ๋ง (์ ๋ณด์ ์ญ์ ์ฉ, 3DGS ์ํ ํฉ์ฑ + ์ธ์ฝ ์ฑ์)
- HDR ๊ทผ์ฌ โ ํ๋ธ๋งต โ prefiltered specular (GGX) / irradiance (SH9) / BRDF LUT
- BC6H ์์ถ + KTX2 (Khronos
ktx validateํต๊ณผ) - Vulkan: KTX2 ๋ก๋, ํ๊ฒฝ ๋ฐฐ๊ฒฝ, PBR ๊ตฌ ๊ฒ์ฆ, ๋ฉ์โ์คํ๋ซ ๊น์ด ํฉ์ฑ
- glTF ์ฐจ๋ ๋ก๋ + PBR (IBL ์กฐ๋ช , clearcoat, ์ ๋ฆฌ ๊ทผ์ฌ, texture_transform) โ nuScenes ์ ์์ง์ด๋ ์น์ฉ์ฐจ ๋ฐ์ค ๊ถค์ ๋ง๋ค CarConcept(CC-BY 4.0)๋ฅผ ๋๋๋ค. ์ฌ์ยท์ด์ ยท6์บ ๊ด์ธก ๋ชจ๋์ ๋์จ๋ค (์ด์ ์ค์ ๋ก๊ทธ ์๊ณ๋ก, ์์ง ๋ฐ์ ์์)
- ์ฐจ๋ ์ ์ง ๊ทธ๋ฆผ์ โ ์ฐจ์ฒด ํญ(๋ชจ๋ธ ํญ ร0.85)ยท๊ธธ์ด์ ๋ถ๋๋ฌ์ด ๋ฅ๊ทผ ์ฌ๊ฐํ, ์ฐจ์ฒด ๊น์ด์ ๊ฐ๋ ค์ง๋ค
- ์์ฐจ๋ glTF ๋ฉ์ (
assets/gltf/ego_car.glbโ ์ง๊ธ์ CarConcept, Renault Zoe ๊ธธ์ด 4.1 m ๋ก). nuScenes ์ฃผ์ฐจ ์ฐจ๋ 3DGS ์์ ์ ๋ท๋ฉด์ด ํ๋ ค ๋์ฒด. ์์ฐจ ์นด๋ฉ๋ผ ์์ ยท๊ด์ธก์์๋ ์จ๊ธด๋ค - ์์ง์ด๋ ์ฐจ๊ฐ ์ง์์ง ์๋ฆฌ์ 3DGS ํ์ง (ํ์ต ๋ ๊ฐ๋ ค์ ธ ํฐ ์๊ฐ์ฒ๋ผ ๋จ๋๋ค)
- ์์ฐจ ์์น์ ๋ฐ๋ฅธ ํ๊ฒฝ๋งต ๊ฐฑ์ (์ฌ๋ฌ ์ง์ ๊ตฝ๊ธฐ, ๋ณด๊ฐ)
2b. ์ปดํจํธ ํ์ผ ๊ฒฝ๋ก
- GPU radix ์ ๋ ฌ (๋ณด์ด๋ ๊ฒ๋ง, 2026-10-05 โ ์์ง ๊ฒฝ๋ํ ์ฐธ๊ณ )
- ๊ฐ์ฐ์์ ํฌ์ + ํ๋ฉด๊ณต๊ฐ ๊ณต๋ถ์ฐ (์ปดํจํธ)
- 16ร16 ํ์ผ binning, ํ์ผ๋ณ ํค ์์ฑ
- ํ์ผ๋ณ ์ ๋ ฌ + ์ ํ ๋ธ๋ ๋ฉ
- ๋น๋ณด๋ ๊ฒฝ๋ก์ ์์น ๋น๊ต
2c. ๋ฉํฐ๋ทฐ
- 6๊ฐ ์นด๋ฉ๋ผ ๋์ ๋ ๋๋ง (๋ทฐ๋ณ ๋ทฐํฌํธ, ํ ์ค๋ฒ๋ฉ)
- ์คํ์คํฌ๋ฆฐ โ PNG/JPEG ๋คํ
-
nusim renderโ ego ๊ถค์ ์ ๋ ฅ โ nuScenes ๋๋ ํฐ๋ฆฌ ํฌ๋งท ์ถ๋ ฅ
์ฑ๋ฅ ๋ชฉํ. 6 ร 1600ร900 = 8.6 Mpixel/ํ๋ ์. closed-loop 10 Hz ๋ฅผ ์ํด ํ๋ ์๋น 100 ms ์์ ๋ค์ด์์ผ ํ๋ค.
ํ์ง ๊ฐ์ ๋ค์ ๋จ๊ณ โ ์กฐ์ฌ ๊ฒฐ๊ณผ (docs/research_gs_2026-10.md)
- MCMCStrategy + opacity/scale ์ ๊ทํ 2. ํ๋ ๋ถ๋ฆฌ (ํ๋ธ๋งต + ํ๋ ๋ง์คํฌ) 3. antialiased ๋ชจ๋
- ๋ฐ๋ ์ต์ ์ ๊ทํ + ๋จ์ ๋ฒ์ 5. gsplat ์ ๊ทธ๋ ์ด๋ 6. PPISP ์ ๋ณด์
์ ์ฒด ๋งต + ํฉ์ฑ ๋ ์จ (2026-10-02 ๊ฒฐ์ )
- ์ฑ๊ฐํฌ๋ฅด ์ฃผ๊ฐ ์ฌ๋ง(383์ฌ ์ค ์ผ๊ฐ ์ฝ 99ยท์ฐ์ฒ ์ฝ 16 ์ ์ธ)์ผ๋ก ์ ์ฒด ๋งต์ ์ฌ๊ตฌ์ฑํ๋ค. ์ผ๊ฐยท์ฐ์ฒ ์ฌ๊ตฌ์ฑ์ ํ์ง์ด ๋ฎ๋ค (scene-1060 ์คํจ).
- ๋ ์จยท์กฐ๋๋ ์๋ฎฌ๋ ์ดํฐ๊ฐ ํฉ์ฑํ๋ค: ํ๋ฆผ, ๋น(๋น์ค๊ธฐยท์ ์ ๋ ธ๋ฉดยท๋ ์ฆ ๋ฌผ๋ฐฉ์ธ), ์๊ฐ, ์ด๋์(์ ๋ ยท๋ฐค, ์ ์กฐ๋ฑ). ๋ทฐ์ด ์ ์ฌ๋ผ์ด๋ UI ๋ก ์ค์๊ฐ ์กฐ์ ํ๊ณ , ๊ฐ์ ๊ฐ์ ๋ช ๋ น์คยท์คํฌ๋ฆฝํธ๋ก๋ ์ค์ VLA ์ํ์ ์ฌํ ๊ฐ๋ฅํ๊ฒ ํ๋ค. 6์บ ๊ด์ธก์๋ ๊ฐ์ ๋ ์จ๊ฐ ๋ค์ด๊ฐ๋ค.
- ์์: ์ผ๊ด ํ์ต ์ ๋ฒ๊ทธ ์์ โ ์ฃผ๊ฐ ์ฌ ์ผ๊ด ํ์ต(GPU) โ ๊ทธ๋์ ๋ ์จ ๋ ๋๋งยทUI ๊ฐ๋ฐ โ ๋งต ๋จ์ ๋ก๋.
๊ตฌํ (2026-10-05)
- ์ผ๊ด ์ฌ๊ตฌ์ฑ
nusim recon batchโoutputs/gs_day/<scene>(์ฌ๋ง๋ค ๋ณ๋ ํ๋ก์ธ์ค,batch_status.json์ผ๋ก ์ด์ด ํ๊ธฐ). ์ฃผ๊ฐ ์ฌ 284๊ฐ(์ค๋ช ์ night/rain ๋ฑ๋ง์ด ์๋ ์ฌ โ ์ฑ๊ฐํฌ๋ฅด ์ฐ์ฒ ์ฌ์ ์ ๋ถ ์ผ๊ฐ), ์ง์ญ ์. ์ค์ : 15k ์คํ , MCMC, ๋ผ์ด๋ค ๊น์ด 0.1, ํ๊ฒฝ ์ ์ฉ, ํ๋ ๋ถ๋ฆฌ. ํ๋์ ๋ถ๋ฆฌํ์ง ์์ผ๋ฉด ํ๋ ์ผ๋ถ๊ฐ ๊ฐ๊น์ด ๋ถํฌ๋ช ๊ฐ์ฐ์์์ผ๋ก ๊ตฌ์์ ธ(scene-0003: 9 m ๊ฑฐ๋ฆฌ์ ๋ฐ์ ๋ฉ์ด๋ฆฌ) ํฉ์ฑ ๋ ์จ์์ ํ๋์ ๋ฐ๊ฟ ์ ์๋ค. - ํฉ์ฑ ๋ ์จ
shaders/weather.compโ ๋ ๋ ํจ์ค์ ๊ฑฐ๋ฆฌ ๋์ ์ฒจ๋ถ(์ง๊ธ์ RG32F (ฮฃzฮฑ, ฮฃฮฑ), docs/architecture.md)๋ฅผ ๋ํ๊ณ , ์ + ๊ฑฐ๋ฆฌ๋ก ํ์ฒ๋ฆฌ: ์๊ฐ๋(๋ ธ์ถยท์์จ๋ยท๋ฐคํ๋), ๊ตฌ๋ฆ(์ฑ๋ยท๋๋นยทํ์ ํ๋), ์ ์กฐ๋ฑ(์์ฐจ ์ ์๋ฟ, ๋ฐ์ฌ์จ = ๋ฎ ์), ๋น(์ ์ ๋ ธ๋ฉด ์ด๋ก๊ฒ + ํ๋ฉด ๊ณต๊ฐ ๋ฐ์ฌ + ๋น์ค๊ธฐ + ๋ฌผ์๊ฐ), ์๊ฐ(๊ฑฐ๋ฆฌ ์ง์ ๊ฐ์ ). ๋๋ฉด ์ ๋ ฅ์ ๊ทธ๋๋ก ๋ณต์ฌ โ ์ด์ ๋ ๋์ ๋นํธ ๋จ์๋ก ๊ฐ๋ค.--weather night๊ฐ์ ํ๋ฆฌ์ ๋๋daylight=,cloud=,rain=,fog=,wet=,headlights=. - ์ฌ๋ผ์ด๋ UI Dear ImGui 1.91.9 (MIT, third_party/imgui) โ ์ฐฝ ์ผ์ชฝ ์ ํจ๋(F1 ์จ๊ธฐ๊ธฐ), ํ๋ฆฌ์ 8๊ฐ, ์ฌ๋ผ์ด๋ 5๊ฐ, ์ ์กฐ๋ฑ ์๋/๋/์ผฌ. ํจ๋์ ํ๋ฉด์๋ง ๊ทธ๋ฆฌ๊ณ , 6์บ ๊ด์ธกยทPNG ์๋ ๋ ์จ๋ง ๋ค์ด๊ฐ๋ค.
- ํ๊ณ: 3DGS ์์ ๋ฎ์ ์กฐ๋ช ์ด ๊ตฌ์์ง ์์ด๋ผ ๋ฐคยท์ ์กฐ๋ฑ์ ๊ทธ ์์ ๋ฐ์ฌ์จ ๋์ ์ด๋ค. ๊ตฌ์์ง ๊ทธ๋ฆผ์๋ ํ๋ฆผ์์๋ ๋จ๋๋ค. ์ ์ ๋ ธ๋ฉด ๋ฐ์ฌ๋ ํ๋ฉด ๊ณต๊ฐ์ด๋ผ ํ๋ฉด ๋ฐยท๊ฐ๋ ค์ง ๊ฒ์ ๋น์น์ง ์๋๋ค. ๊ฐ๋ก๋ฑ ๊ฐ์ ๋ฐค ๊ด์์ ์์ง ์๋ค.
์๋ฒ ์ฌ ์คํจ ์์ธ: ๋น ๋ฅธ ์ฃผํ (2026-10-05)
| ์ฌ | ํ๊ท ์๋ | ๊ฒฝ๋ก | 15k PSNR |
|---|---|---|---|
| scene-0003 | 1.5 m/s | 29 m | 23.66 |
| scene-0184 | 5.6 m/s | 108 m | 17.54 |
| scene-0402 | 11.9 m/s | 235 m | 16.23 |
scene-0402 ๋ฅผ --time-window ๋ก ์๋ผ 2k ์คํ
ํ์ต: 2.5์ด 21.75 dB, 5์ด 20.88 dB (default ์ ๋ต 20.45), ์ ์ฒด 20์ด๋ 15.5~16.3 dB.
์ ๋ต(MCMC/default)ยท๊น์ด ๊ฐ๋
ยท์นด๋ฉ๋ผ ๋ณด์ ์ ์์ธ์ด ์๋๊ณ , ์ฅ๋ฉด ๊ธธ์ด๊ฐ ์์ธ์ด๋ค. ํ์ต ์์ค๋ถํฐ ๋์ผ๋(L1 0.135 vs 0.05)
์ผ๋ฐํ๊ฐ ์๋๋ผ ์ ํฉ ์คํจ๋ค. ๋์: ๋น ๋ฅธ ์ฌ์ ์๊ฐ ๊ตฌ๊ฐ(์ฝ 5์ด, 60 m)๋ณ๋ก ๋๋ ์ฌ๊ตฌ์ฑํ๋ค. ๋งต ๋จ์ ๋ก๋๊ฐ
๊ตฌ๊ฐ์ ์ด์ด ๋ถ์ธ๋ค. ์ผ๊ด ํ์ต(recon batch)์ ๊ตฌ๊ฐ ๋ถํ ์ ๋ฃ์ ๋ค ๋ณธ ๋ฐฐ์น๋ฅผ ๋๋ฆฐ๋ค.
์ฐจ๋ ๋์ ํ์ต + ์ฅ๋ฉด ๊ฐ์ฒด ์์ (2026-10-06)
๋ฐฉํฅ ์ ํ: ์ฐจ๋์ ์ง์ฐ์ง ์๊ณ ๊ฐ์ฒด ๊ฐ์ฐ์์์ผ๋ก ๋ฐฐ๊ฒฝ๊ณผ ํจ๊ป ํ์ตํ๋ค (nusim recon train --objects vehicles,
nusim/recon/objects.py). ์ฐจ๋ instance ๋ง๋ค ๋ฐ์ค ๋ก์ปฌ ๊ฐ์ฐ์์, ๋ทฐ ์๊ฐ์ ๋ฐ์ค ์์ธ(์ฃผ์ฐจ = ๋ํ ์์ธ, ์์ง์ = ํคํ๋ ์ ๋ณด๊ฐ)๋ก
์ฎ๊ฒจ ๋ฐฐ๊ฒฝ๊ณผ ํ ๋ฒ์ ๋์คํฐํ. ๊ฐ์ฐ์์์ ๊ฐ์ฒด ๋ฒํธ๋ ํ์ต๋ฅ 0 ํ๋ผ๋ฏธํฐ๋ผ gsplat ์ ๋ต(๋ณต์ ยท๋ถํ ยท์ฌ๋ฐฐ์น)์ด ๊ฐ์ด ์ฎ๊ธด๋ค.
์ฌ๋ยท์์ ๊ฑฐ๋ ์์ง ๊ฐ๋ฆฐ๋ค. ์ฐจ๋ ํฝ์
์ ๊น์ด ์์ค์์ ๋บ๋ค (์ ์ ๋ผ์ด๋ค ๊น์ด๋ ์ฐจ ๋ค ๋ฐฐ๊ฒฝ).
| scene-0003, 15k, MCMC + ๊น์ด | ์ ์ฒด ์์ PSNR | ์ ์ PSNR | SSIM |
|---|---|---|---|
| ํ๊ฒฝ ์ ์ฉ (์ฐจ๋ ์ง์) | 21.82 | 23.66 (์ฐจ๋ ๊ฐ๋ฆผ) | 0.764 |
| ์ฐจ๋ ๋์ ํ์ต | 23.51 | 23.62 (์ฐจ๋ ํฌํจ, ์ฌ๋๋ง ๊ฐ๋ฆผ) | 0.763 |
60k (_env ์ ๊ฐ์ ๋ ์ํผ, outputs/gs/scene-0003_veh60, 93๋ถ): ์ ์ฒด ์์ 24.78 / ์ ์ 24.97 / SSIM 0.789 โ _env 60k ๋ ์ ์ฒด
22.81 / ์ ์ (์ฐจ๋ ๊ฐ๋ฆผ) 25.03. ์ฐจ๋์ ๋ฃ๊ณ ๋ ๋ฐฐ๊ฒฝ ํ์ง์ ๊ฐ๊ณ ์ ์ฒด ์์์ +2.0 dB. (recon eval ์ด ๋ฐฐ๊ฒฝ ply ๋ง ๊ทธ๋ ค 21.99 ๋ก
๋์ค๋ ๋ฒ๊ทธ๋ฅผ ๊ณ ์นจ โ recon.objects.load_objects ๋ก ์์
์ ๋ค์ ๋ถ์ธ๋ค.)
๋จ, ์ด 60k ๋ชจ๋ธ์ ์ฐจ๋ 35๋ ์ค 17๋๋ง ๋จ์๋ค โ MCMC ์ฌ๋ฐฐ์น๊ฐ ๋ถํฌ๋ช
๋ โค 0.005 ์ธ ๊ฐ์ฐ์์์ ๋ค๋ฅธ ์๋ฆฌ๋ก ์ฎ๊ธฐ๋ฉฐ ๊ฐ์ฒด ๋ฒํธ๋
๊ฐ์ด ์ฎ๊ฒจ, ์ ๊น ๋ณด์ธ ์ฐจ๊ฐ ๊ฐ์ฐ์์์ ๋ค ์์๋ค. ๊ฐ์ฒด ๊ฐ์ฐ์์์ ์ ๋ถ ์งํค๋ฉด(v2, _veh60p) ๋ฐ๋๋ก ์ฐจ๋์ด 200๋ง ์ค 178๋ง ๊ฐ
(๋๋ถ๋ถ ฮฑ<0.01)๋ฅผ ๋นจ์๋ค์ด๊ณ ๋ฐฐ๊ฒฝ์ด 22๋ง ๊ฐ๋ก ์ค์๋ค โ ๋ฒ๋ฆฐ๋ค. ๊ทธ๋์ (1) ์ด์ ์๋ ์๊ฐ ์ต์์น(์ด๊ธฐ์ ์ ๋ฐ, ์ต์ 200) ์๋์ธ
์ฐจ๋๋ง ์ฌ๋ฐฐ์น์์ ์งํค๊ณ , (2) ๊ฐ์ฒด ๊ฐ์ฐ์์์ ๋ฐ์ค(+0.15 m) ์์ ๋ฌถ๋๋ค (MCMC ์ก์ยท์ฌ๋ฐฐ์น ๋ค). 3k ์ ๊ฒ: 35๋, ํฉ๊ณ 4.5๋ง,
๋ฐ์ค ๋ฐ ์ต๋ 0.15 m. ์ฌํ์ต nusim run veh_60k_v3 โ outputs/gs/scene-0003_veh60c.
์์ฐจ โ ์ฅ๋ฉด ๊ฐ์ฒด ์ถฉ๋: drive.hpp vehicle_contact(..., others) โ ๊ฐ์ฒด ๋ฐ์ค์ ๋ฐ๋ฅ ์ฌ๊ฐํ(Footprint)์ ์ฐจ์ฒด ์ํ๋ก ๋ณธ๋ค
(์ฅ์ ๋ฌผ ์ง๋๋ ์ฐจ๋์ ์ง์ด ๋ฐฐ๊ฒฝ์ด๋ผ ๋ฐ๋ก). ๊ธฐ๋ก ๊ถค์ ์ ์ฌ์ํ๋ ์ฐจ๋ ํ๋ ์๋ง๋ค ์๋ฆฌ๋ฅผ ๊ฐฑ์ . ์ง์ด ๊ฐ์ฒด๋ ๋น ์ง๋ค. ์์ง ์๋ ์ฐจ๋
๋ฐ์ํ์ง ์๋๋ค (์์ฐจ๊ฐ ๋ฉ์ถ ๋ฟ, ๋ฐ๊ฑฐ๋ ํผํ์ง ์์).
์ฐจ๋ ์์ญ๋ ๋ฐฐ๊ฒฝ๋งํผ ํ์ต๋๋ค (์ ์ PSNR ์ด ์ฐจ๋์ ํฌํจํด๋ ๊ฐ๋ค). ๊ฒฐ๊ณผ: ๋ฐฐ๊ฒฝ point_cloud.ply + objects/<instance>_<์ข
๋ฅ>.ply
(๋ฐ์ค ๋ก์ปฌ, ๋ฐ๋ฅ ์ค์ ์์ ) + objects/objects.json (๋ฒ์ฃผยทํฌ๊ธฐยท๊ถค์ ) โ 31๋.
๋ทฐ์ด --objects DIR: ๊ฐ์ฒด ๊ฐ์ฐ์์์ ๋ฐฐ๊ฒฝ๊ณผ ๋ค๋ฅธ ๋ฒํผ, ๊ฐ์ฒด ํ(SSBO)๋ก ํ๋ ์๋ง๋ค ์์ธ โ ์ถ๊ฐยท์ญ์ ๋ ๋ฐฐ๊ฒฝ์ ๋ค์ ์ฌ๋ฆฌ์ง ์๋๋ค
(src/vkgs/src/scene_objects.hpp). K ๊ฐ์ฒด ์ฐฝ โ ํธ์ง ๋ชจ๋: ํด๋ฆญ ์ ํ(๋
ธ๋ ๋ฐ์ค), ๋๋๊ทธ ์ด๋, ํ ํ์ , Delete ์ญ์ ,
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์
์ถ๊ฐ(ํด๋ฆญํ ์ง๋ฉด), ์ ์ฅ(objects.json, ์๋ณธ์ objects.orig.json). render viewยทaug rig ๋ ๋ชจ๋ธ์ objects/
๊ฐ ์์ผ๋ฉด ์๋์ผ๋ก ๋๊ธด๋ค. ์์ ์ฆ๊ฐ(outputs/aug/rig_veh)์ ์ฐจ๋์ด ์ ์๋ฆฌ์ ๋์จ๋ค.
๋จ์ ๊ฒ: ์์ฐจ์ ๊ฐ์ฒด ๋ฐ์ค ์ถฉ๋, ๊ฐ์ฒด๋ฅผ ์ฐจ์ ๋ฐ๋ผ ์์ง์ด๊ธฐ(์ง๊ธ์ ๊ธฐ๋ก ๊ถค์ ยท๊ณ ์ ), ์ฌ๋(๋น๊ฐ์ฒด), ๊ฐ์ฒด ํฌ์ฆ ๋ณด์ ํ์ต.
๋ฉํฐ ์ฃผํ ํ์ผ (2026-10-06)
๊ฐ์ ๊ณณ์ ์ฌ๋ฌ ๋ ์ฌ๋ฌ ์ฐจ์ ์ผ๋ก ์ง๋๊ฐ ์ฃผํ์ ํ ๋ชจ๋ธ๋ก ํ์ตํ๋ค (nusim recon train <anchor> --tile <์ด๋ฆ>,
nusim/recon/tile.py, ํ์ผ ์ ์ configs/tiles/*.json). ์์ฐจ๊ฐ 80 m ์ ์ฌ๊ฐํ ์์ ์๋ ์๊ฐ ๊ตฌ๊ฐ๋ง ์ฐ๊ณ , ์์ ์ anchor ์ฌ
๊ฒ์ด๋ผ ๋จ์ผ ์ฌ ๋ชจ๋ธ๊ณผ ๊ฐ์ ์ขํ๋ค. ๊ธฐํ๋ ๊ณต์ , ์ ๋ณด์ ยท์ธ๋ถ ํ๋ผ๋ฏธํฐ ๋ณด์ ์ ์ฃผํ๋ณ (cam_id = ์ฃผํ ร 6 + ์นด๋ฉ๋ผ;
camera_adjust.pt ๋ ๊ธฐ์ค ์ฃผํ 6๋๋ง โ ๋ทฐ์ด ํธํ, ์ ์ฒด๋ camera_adjust_tile.pt). ๋ค๋ฅธ ๋ ์ ์ฃผ์ฐจ ์ฐจ๋์ด ๋ฌ๋ผ --objects agents
๋ง ์ง์ํ๋ค.
ํ๊ฐ nusim recon tile-eval <ํ์ผ> --dir A --dir B: ํ์ต์์ ํต์งธ๋ก ๋บ ์ฃผํ์ ์ค์ ์ฌ์ง = ์ค์ ์ฐจ์ ๋ณ๊ฒฝ ์์ ์ ์ ๋ต.
์ธ๊ด(๋ ยท์๊ฐ)์ด ๋ค๋ฅด๋ฏ๋ก ์ด๋ฏธ์ง๋ง๋ค 3ร4 ์ ์ํ์ ๋ง์ถ ๋ค PSNRยทSSIM (์ฌ๋ยท์ฐจ๋ ๊ฐ๋ฆผ, 30% ๋ฏธ๋ง๋ง ๋จ์ ๋ทฐ๋ ์ ์ธ โ ์ 2~4 m ์
์ฃผ์ฐจ ์นํฉ์ฐจ๊ฐ ์ธก๋ฉด ์นด๋ฉ๋ผ๋ฅผ ๋ค ๊ฐ๋ฆฐ๋ค). ํ์ต ์นด๋ฉ๋ผ์์์ ๊ฑฐ๋ฆฌ๋ณ๋ก๋ ๋๋๋ค.
scene-0003 ํ์ผ (onenorth_0003): ๋ฎ ์ฃผํ 17๊ฐ๊ฐ ์ง๋๊ฐ๋ค. ํ์ต 6๊ฐ(0003ยท0120ยท0045ยท0134ยท0968ยท0133, 6,551๋ทฐ), ํ๊ฐ 2๊ฐ
(0127 3.9 m ์, 0969 4.1 m ์). ์ ๊ฒ(2์ฃผํ 300์คํ
, 0127): ํ์ผ 16.79 dB vs ๋จ์ผ ์ฌ _env 60k 15.95 dB โ ์ฝ๋ ์ ๊ฒ์ผ ๋ฟ.
๋ณธ ์คํ nusim run tile_0003 (150k).
๊ฒฐ๊ณผ (2026-10-07): ์คํจ, ์์ธ ๋ฏธํ์ โ ๋ณด๋ฅ. 150k ํ์ผ ๋ชจ๋ธ์ ์๊ธฐ ์ฃผํ ํ๊ฐ ๋ทฐ์์๋ 16.9 dB (์ ๋ณด์ ์์ด 6.9 dB โ
์ ๋ณด์ ์ด ๊ธฐํ ๋์ ๋ง์ถ๊ณ ์์๋ค), ์ฐจ์ ๋ณ๊ฒฝ ์์ 376๋ทฐ์์ 15.86 dB ๋ก ๋จ์ผ ์ฌ(_env 16.46, _veh60c 16.52)๋ณด๋ค ๋ฎ๋ค.
๋ ๋๋ ๋จ์ ๋ง์ด๋ ์ฌํ ๋ฒ์ง. ํ์ธํ ๊ฒ:
- ๊ธฐ์ค ์ฌ 0003 ์์ธ๊ฐ ๋ค๋ฅธ ์ฃผํ ๋๋น yaw 1.3ยฐยทroll 1ยฐ ์ด๊ธ๋จ โ ์ฃผํ๋ณ ๋ผ์ด๋ค ICP ์ ํฉ(
align.json, 17โ27 cm โ 9โ12 cm)์ผ๋ก ๊ณ ์นจ. ๊ฒฐ๊ณผ๋ ๊ทธ๋๋ก. - ์ฃผํ 1๊ฐ ํ์ผ = ์ผ๋ฐ ํ์ต (3k: 19.8 vs 19.6), ์ฃผํ 2๊ฐ ์ ์ (18.2/18.9). 6๊ฐ๋ฉด 3k ์คํ ์ดํ ๊ณ์ ๋ฌด๋์ง๋ค.
- 10 m ๋๋ ๊ฑฐ๋ ๊ฐ์ฐ์์์ด ํ๋์ ํก์ โ ํ๋ ๋ถ๋ฆฌ๋ฅผ ํ์ผ์ ์ฐ๊ฒฐ. ์ฌ์ ํ ๋ฌด๋์ง.
- ์ ๊ทํ ๋ฒ์ ์ ๋ชจ๋ ๊ฐ์ฐ์์์ ๊ฑธ๋ฉด ๋์ ํ์ผ์์ 63% ๊ฐ ์ฃฝ๋๋ค โ ๋ณด์ด๋ ๊ฒ๋ง ๋ฒ์ (2k 19.2 dB ๋ก ๊ฐ์ ). ๊ทธ๋๋ 3k ์ดํ ํ๋ฝ.
- ์ฅ๋ฉด ํฌ๊ธฐยทSH ์ฐจ์ยท์นด๋ฉ๋ผ ๋ณด์ ยท๊น์ด ์ฌํฌ์์ ์์ธ ์๋. ๋จ์ ์์ฌ: ์ ๋ณด์ ์ ๋ทฐ๋ณ ๋ฐ๊ธฐ ํญ, ๊น์ด ๊ฐ๋ .
๋งต ์ ์ฒด ์์ ๋ณํ ์ฆ๊ฐ (2026-10-08)
๋ฐฉํฅ: ํ์ผ์ ๋ณด๋ฅํ๊ณ ๋ฎ 284์ฌ ์ ์ฒด๋ฅผ ์์ ๋ณํ์ผ๋ก ์ฆ๊ฐํด ์ฑ๊ฐํฌ๋ฅด ๋ฎ ๋งต ์ ์ฒด๋ฅผ ๋ฎ๋๋ค. nusim run day_map:
recon batchโ ์ด๋ ๊ฑฐ๋ฆฌ 60 m ๋๋ ์ฌ์ ๊ฐ์ ๊ธธ์ด ๊ตฌ๊ฐ(๊ฒน์นจ 10 m)์ผ๋ก ๋๋--time-windowํ์ต (plan_segments, ๊ฒฐ๊ณผoutputs/gs_day/<scene>/seg<k>/+segment.json). 284์ฌ โ 696 ํ์ต ๋จ์. init.ply ๋ ํ์ต ๋ค ์ง์ด๋ค.- ์ฌ์ ๊ตฌ๊ฐ์ด ๋ค ๋๋๋ฉด
aug map <scene>โ CAM_FRONT ํ๋ ์๋ง๋ค ๊ทธ ์๊ฐ์ '๋งก๋' ๊ตฌ๊ฐ(๊ฒน์นจ ๊ฐ์ด๋ฐ์์ ์๋ฅธ, ๊ฒน์น์ง ์๋ ๊ตฌ๊ฐ)์ ๋ชจ๋ธ๋ก ๋ ๋. ๋ ์จ ์๋ ๋ณํ 9์ข , ํคํ๋ ์ 2 Hz, ์ง์ด ์ฐจ๋์ glTF ๋ก ๋ค์ (IBL ์์ผ๋ฉด ๊ตฝ๋๋ค) โoutputs/aug/map/<scene>/<variant>/. ๋ณํ 1๊ฐ = ์ฝ 6.8๋ง ์ฅ, 9์ข ์ฝ 135 GB. scene-0003 ๋ณํ ํ๋ 20์ด.
- ์๋ฒ scene-0402 (11.9 m/s, 235 m โ 5๊ตฌ๊ฐ): ์ ์ PSNR 23.78 / 22.76 / 23.04 / 23.02 / 22.70 dB (์ฌ ํต์งธ 16.23), ๊ตฌ๊ฐ๋น ์ฝ 20๋ถ. ์ฆ๊ฐ left_1m ์ ๊ตฌ๊ฐ ๊ฒฝ๊ณ ํ๋ ์ 4์์ ์ยท๊ธฐํ ์ด์๋งค๊ฐ ๋ณด์ด์ง ์๋๋ค. ๊ตฌ๊ฐ ๋ชจ๋ธ์ IBL ์ ๊ทธ ํ์ต ๊ตฌ๊ฐ์ผ๋ก ์๋ฅธ ์ฌ์ผ๋ก ๊ตฝ๋๋ค (์ ๋ณด์ ํฌ๊ธฐ๊ฐ ๊ตฌ๊ฐ ๋ทฐ ์).
- 2026-10-09 23:19 ์์๋ฅผ ๋๋ก ์ปค๋ฒ๋ฆฌ์ง ์ฐ์ ์ผ๋ก ๋ฐ๊ฟ ๋ค์ ์์ (
--order coverage,coverage_order): ๊ทธ๋๊น์ง ํ์ต ๋จ์ 83/696, ๋๋ก 10 m ์นธ 2,432๊ฐ ์ค 17%. ๋จ์ ์ฌ์ ์ ๋๋ก๋ฅผ ๋ง์ด ๋ฎ๋ ์์ผ๋ก ํ๋ฉด ํ์ต ๋จ์ ์ฝ 317๊ฐ(์ฝ 5์ผ)์ 90%, 470๊ฐ(์ฝ 7.5์ผ)์ 100%. ๋ผ์ด๋คยท๋ ์ด๋ ํฉ์ฑ์ ์ฌ์ฉ์ ๊ฒฐ์ ์ผ๋ก ๋ณด๋ฅ (์นด๋ฉ๋ผ๋ง ์ ์ง). - 2026-10-10 18:44 ๋ถํฐ ์ฝ 40๋ถ ๋ฐ์ดํฐ์
NAS ๊ฐ Input/output error โ ๋จ์๋ง๋ค 13์ด ๋ง์ ์คํจํ๊ณ ๋ค์์ผ๋ก ๋์ด๊ฐ 178 ๋จ์(์ฝ 55์ฌ)๊ฐ
์คํจ๋ก ๋จ์๋ค (scene-0378 seg0 ์ ํ์ต์ ๋๋๋ฐ ํ๊ฐ๊ฐ nan).
recon batch๋ฅผ ๊ณ ์ณค๋ค: ๋จ์ ์์ ์ ๋ฐ์ดํฐ์ ์ด ์ฝํ๋์ง ๋ณด๊ณ ์ ์ฝํ๋ฉด ๊ธฐ๋ค๋ฆฌ๊ณ , I/O ์ค๋ฅ๋ก ์คํจํ ๋จ์๋ ๊ธฐ๋ค๋ ธ๋ค ์ต๋ 3๋ฒ, ํ๊ฐ๊ฐ ๋น ๋จ์๋ ํ๊ฐ๋ง ๋ค์, ํ ๋ฐํด ๋ค ์คํจ๊ฐ ๋จ์ผ๋ฉด ๊ทธ๊ฒ๋ง ๋ค์ ๋๋ค. - ๋ณธ ๋ฐฐ์น ์์ 2026-10-08 15:12 (
setsid nohup nusim run day_map, ๋ก๊ทธoutputs/gs_day/batch.log). - ๋ณธ ๋ฐฐ์น ์๋ฃ 2026-10-27 02:44 (์ฌ๊ฐ๋ถ ํฌํจ 242์๊ฐ): ๋ฎ 284์ฌ ์ ๋ถ ยท ๊ตฌ๊ฐ 696๊ฐ ์คํจ 0 ยท ๋๋ก ์ปค๋ฒ๋ฆฌ์ง 100% (10 m ์นธ 2446/2446)
ยท ์ ์ PSNR ํ๊ท 25.0 dB, 22 dB ๋ฏธ๋ง 43๊ตฌ๊ฐ. ArtiFixer ์ฆ๊ฐ 284์ฌ (์ฐฝ ๋ทฐ์ด๊ฐ VRAM ์ ์ก์ ๋์ 13์ฌ์ด ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ โ ๋ฐฐ์น ๋ค ์ฌ์คํ).
์ฐ์ถ๋ฌผ
outputs/gs_day333 GB ยทoutputs/aug132 GB. ๊ทธ๋ฆผoutputs/coverage/map_coverage_20261029.png(scripts/map_coverage.py). - ๊ตฌ๊ฐ ์ด์ด ๋ฌ๋ฆฌ๊ธฐ (๋งต ๋ก๋ 1์ฐจ, 2026-10-09):
nusim render view <scene>์ด ๊ตฌ๊ฐ์ผ๋ก ๋๋ ์ฌ(outputs/gs_day/<scene>/seg*)์ ์์๋ณด๊ณ<scene>/์ ๊ณตํต ์์ (๊ตฌ๊ฐ 0) ๊ธฐ์ค ๋ฆฌ๊ทธยท๋งต ์ ยท์ฃผํ๊ฐ๋ฅ์์ญยท์ฅ์ ๋ฌผ ์ง๋์segments.txt(๊ตฌ๊ฐ๋ณ ์์ ์ฐจ์ดยท๋งก๋ ๊ถค์ ์ )๋ฅผ ์ด๋ค (nusim/render/segmap.py). ๋ทฐ์ด--segments(src/vkgs/src/segment_map.hpp, viewer.cppSegmentStreamer)๋ ์์ฐจ ์์น์์ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ตฌ๊ฐ ํ๋๋ฅผ ๊ทธ๋ฆฌ๊ณ (3 m ํ์คํ ๋ฆฌ์์ค), ์ด์ ๊ตฌ๊ฐ ply ๋ฅผ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ค๋ ๋๊ฐ ๋ฏธ๋ฆฌ ์ฝ์ด ๋์๋ค๊ฐ ๊ฒฝ๊ณ์์ GPU ๋ฒํผ ๋ด์ฉ๋ง ๋ฐ๊พผ๋ค (๋ฒํผ๋ ๊ฐ์ฅ ํฐ ๊ตฌ๊ฐ ํฌ๊ธฐ๋ก ํ ๋ฒ ์ก์). ๋ ๊ตฌ๊ฐ์ ๊ฐ์ด ๊ทธ๋ฆฌ์ง ์๋๋ค โ 10 m ๊ฒน์นจ์ด ๊ฒฝ๊ณ ์์ชฝ์ ๋ฎ๋๋ค. scene-0402 ์ ์ฒด 238ํ๋ ์ ์คํ์คํฌ๋ฆฐ: ๊ตฌ๊ฐ 4๋ฒ ๋ฐ๋, ๊ฒฝ๊ณ ์๋ค ํ๋ ์ ์ด์๋งค ์์. ๋ฐ๊ฟ ๋ 0.19์ด ๋ฉ์นซ (480 MB ์ ๋ก๋ + ์ฅ์น ๋๊ธฐ), ply ์ฝ๊ธฐ ์ฝ 2.7์ด (12 m/s ๋ก ํ ๊ตฌ๊ฐ ์ฝ 4์ด๋ผ ๋ฏธ๋ฆฌ ์ฝ๊ธฐ๊ฐ ๋ฐ๋ผ๊ฐ๋ค). ์คํ์คํฌ๋ฆฐ ๋ฆฌ๊ทธ ๋ ๋๋ ํ๋ ์๋ง๋ค ๊ทธ ๊ตฌ๊ฐ์ผ๋ก ๊ทธ๋ฆฐ๋ค. ๋ค์: ๋ ๋ฒํผ๋ก ๋ฉ์นซ ์์ ๊ธฐ, ์ฌ ์ฌ์ด(๋ค๋ฅธ ์ฃผํ) ์๊ธฐ โ ์ฌ๋ฌ ์ฌ์ ๊ฐ์ ๋ฐฉ์์ ๋ชฉ๋ก ํ๋๋ก. - ์ง์ญ ๋งต (๋งต ๋ก๋ 2์ฐจ, 2026-10-10):
nusim render map <location>(nusim/render/regionmap.py) โ ๊ทธ ์ง์ญ์์ ํ์ต๋ ๋ชจ๋ ์ฌ์ ๊ตฌ๊ฐ์ ๊ณตํต ์์ (์ถ๋ฐ ์ฌ ์ฒซ ๊ตฌ๊ฐ) ๊ธฐ์ค segments.txt ํ๋๋ก ์๋๋ค. ๋ทฐ์ด๋ ๊ฐ๊น์ด ๊ตฌ๊ฐ 3๊ฐ๋ฅผ ์์น๋ก ๋ฏธ๋ฆฌ ์ฝ๋๋ค (๋ชฉ๋ก ์์๊ฐ ๊ธธ ์์ ์ด์์ด ์๋๋ฏ๋ก). ๋งต ์ ์ ์ง์ญ ์ ์ฒด + ์ฌ๋ง๋ค ์์ฐจ ๊ถค์ (= ๋งต์ด ์๋ ๊ณณ). ์ฒซ ์คํ: one-north 38์ฌ ยท 99๊ตฌ๊ฐ. ์ฅ์ ๋ฌผ ์ง๋ ยท ๋ณต์ ์๋๋ ์์ง ์ง์ญ ๋จ์๊ฐ ์๋๋ผ ์ฐ์ ์ถฉ๋๋ง, ์ผ์ ์์. - ์ด์ ์๋ฒ ๋ชจ๋ธ(๊ตฌ๊ฐ ๋ถํ ์์, ํ๋ ๋ถ๋ฆฌ ์์)์
outputs/gs_day_pilot_2026-10-05/๋ก ์ฎ๊ฒผ๋ค. - ํ๊ณ: glTF ์ฐจ๋์ ๋ชจ๋ ๊ฐ์ ๋ชจ๋ธ(CarConcept). ์ 1 m ๋ณํ์ ๋ ธ๋ฉด ๋ฒ์ง์ด ์๋ค (์ฌ์ดํด ๋ฒค์น๋ก ํ์ง ํ์ ์์ ).
๋ฐ์ดํฐ์ ๋ค์์ฑ ์ฆ๊ฐ (2026-10-05)
B. 6์บ ์์ ๋ณ๊ฒฝ โ nusim aug rig <scene> [--only a,b] [--agents]. ๋ณํ์ configs/aug/rig_variants.json ์ ์๋ค
(์ ์ด๋ยท๋์ดยทํผ์นยท์, ๋ ์จ ์กฐํฉ). ์ฌ ์ธ๋ฑ์ค์ camโego ์บ๋ฆฌ๋ธ๋ง ๋ฐ๊พผ ์ฌ๋ณธ์ผ๋ก write_rig โ ์คํ์คํฌ๋ฆฐ ๋ ๋ โ
outputs/aug/rig/<scene>/<variant>/<CAM>/<์๋ณธ ํ์ผ๋ช
>.jpg + meta.json(๋ฐ๋ calibrated_sensor, ์ฅ๋ง๋ค ์๋ณธ ํ์ผยท์๊ฐยท์์ฐจ ํฌ์ฆ).
scene-0003: ๋ณํ๋น 1,356์ฅ, ์ฝ 75์ด. ์๋๋ก 3ยฐ ๋ ๊นจ๋ํ๋ค. ์ 1 mยท๋์ด +0.4 m ๋ ๋
ธ๋ฉด ๋ฒ์ง๊ณผ floater ๊ฐ ์๊ธด๋ค
(์ ์์ ํ์ง ํ๊ณ โ Difix ์ ์ง ์ฆ๋ฅ๋ก ๊ฐ์ ํ ๊ฒ). ํ๊ฒฝ ์ ์ฉ ๋ชจ๋ธ์ ์ฐจ๋์ด ์์ผ๋ --agents ๋ก glTF ์ฐจ๋์ ๋ฃ๋๋ค.
A. ๋ฐคยท๋น โ ๋ฎ ๋ณํ โ nusim aug translate (CycleGAN-Turbo, BDD100K ์ฌ์ ํ์ต night_to_dayยทrainy_to_clear,
cache/models/img2img-turbo/fetch.sh). 8 GB GPU ์์ ํ์ต๊ณผ ๊ฐ์ด ๋๊ฒ ๋ชจ๋ธ์ CPU ์์ ๋ง๋ค์ด fp16 ์ผ๋ก ์ฌ๋ฆฌ๊ณ , ํ ๋ฒ์ ํ๋๋ง ์ด๋ค.
768ร432 ์์ ์ฅ๋น 0.8์ด. scene-1060 ์์ ์คํจํ๋ค: nuScenes ์ฑ๊ฐํฌ๋ฅด ๋ฐค ์์์ BDD ๋ณด๋ค ํจ์ฌ ์ด๋์์, ๋ชจ๋ธ์ด ์ผ์
์ก์์ ์ฆํญํด ํ๋ ์ ๋ฐ์ด ์์์ ๋ง๋ ๋ค. ๋นโ๋ง์์ ๋ฐค ์์์ ๋ ์ด๋ก๊ฒ๋ง ํ๋ค. ์ฌ๊ตฌ์ฑ ์
๋ ฅ์ผ๋ก ์ธ ์ ์๋ค.
recon train --image-root ๋ ๋ณํ ์์์ผ๋ก ํ์ตํ๋ ๊ฒฝ๋ก๋ก ๋จ๊ฒจ ๋๋ค.
๋ฐค ๊ฒฝ๋ก๊ฐ ๋ฎ ๊ฒฝ๋ก์ ๊ฒน์น๋ ์ ๋ (15 m ์): ๋ฐค 99์ฌ ์ค 90% ์ด์ ๊ฒน์นจ 32, 50% ๋ฏธ๋ง 60. one-north ๋ ๋ฐค 0, queenstown 33, holland village 66 (๋ฎ์ 19๋ฟ). ๋ฐ๋ผ์ ๋ฎ ๋งต๋ง์ผ๋ก๋ ํ๋๋ ๋น๋ฆฌ์ง ๋๋ถ๋ถ์ด ๋น ์ง๋ค.
๋ ์จ v2 (2026-10-05)
- ์๋ ๊ณต๊ฐ ๊ฐ์ ์
์ (
shaders/precip.vert/frag, ๋ ๋ ๊ทธ๋ํprecipํจ์ค): ํ๋ฉด ๊ณต๊ฐ ๋ฌด๋ฌ๋ฅผ ๋์ ํ๋ค. ์ ์๋ ์ํ ์์ด (๋ฒํธ, ์๊ฐ) ํด์๋ก ์์น๊ฐ ์ ํด์ง๊ณ , ์ฌ ์ขํ์ ๊ณ ์ ๋ ์์๋ฅผ ์นด๋ฉ๋ผ ์ฃผ๋ณ์์ ๊ฐ์ ๋๋ฆฐ๋ค. ๊ทธ๋์ 6์บ ์ด ๊ฐ์ ๋น๋ฐฉ์ธ์ ๋ณด๊ณ , ์์ฐจ๊ฐ ์๊ธด๋ค. ๋น์ค๊ธฐ๋ ๋ ธ์ถ ๋์์ (๋ํ + ๋ฐ๋ โ ์์ฐจ ์๋) ์๋ ์ด๋์ด๋ผ ๋ฌ๋ฆฌ๋ฉด ๊ธฐ์ด๋ค. ๊ฐ๊น์ด ์ ์๋ ์ด์ ์ด ํ๋ฆฌ๋ค. ๊ฑฐ๋ฆฌ ๋ฒํผ๋ก ์ฅ๋ฉด์ ๊ฐ๋ ค์ง๊ณ , ์ ์กฐ๋ฑยทํ๋๋น์ ๋ฐ๊ณ , ์๊ฐ๋ก ๊ฐ์ ํ๋ค. ๋น 8๋งยท๋ 12๋ง ๊ฐ์ 0.05 ms. - ์ ์ ๋ ธ๋ฉด: ์ด๋์์ง๊ณผ ์ฑ๋ ์์น(LeknerโDorf ๊ทผ์ฌ), ๊ฐ ์ก์ ๋ฌผ์ ๋ฉ์ด(๊ฑฐ์ธ ๋ฐ์ฌ), ๋น๋ฐฉ์ธ ํ๋ฌธ(๋ฒ์ ๊ต๋), ์ ์กฐ๋ฑ ์ ๋ฐ์ฌ ๊ผฌ๋ฆฌ.
- ๋์ด ์๊ฐ(ํด์์ ๊ดํ ๊น์ด) + ํด ์ชฝ ์ ๋ฐฉ ์ฐ๋(HG) + ๋ณผ๋ฅ๋ฉํธ๋ฆญ ์ ์กฐ๋ฑ(์์ 12๊ฑธ์ ์ ๋ถ).
- ๋ ์ฆ ๋ฌผ๋ฐฉ์ธ: ๋ค์งํ ์์ ๊ตด์ ํด ๋ณด์ฌ ์ฃผ๊ณ , ๋ฐ๊ธฐ๋ ์ฃผ๋ณ์ ๋ง์ถ๋ค.
- ์กฐ์ ๊ฐ์
configs/sim.jsonweather.fx์ ์๋ค. ๋์กฐํ๋cache/weather_sheet.sh <๋ชจ๋ธ> <out.jpg>๋ก ๋ง๋ ๋ค. - ๋จ์ ๊ฒ: ํ๋์ ๋ถ๋ฆฌํ์ง ์์ ๋ชจ๋ธ(
_depth)์ ํ๋์ด 3DGS ํฐ ๋ฉ์ด๋ฆฌ๋ผ ๋ฐค์๋ ๋ฐ๋ค. ํ๋ ๋ถ๋ฆฌ ๋ชจ๋ธ (day_mapํ๋ฆฌ์ )์ด๋ฉด ์๋ฎฌ ํ๋๋ก ๋ฐ๋๋ค. ๋ ์์์ 3DGS ๊น์ด ์ก์ ๋๋ฌธ์ ๋ ธ๋ฉด์ ์ผ๋ฃฉ์ด ์๊ธด๋ค. ๊ฐ๋ก๋ฑ ๊ฐ์ ๋ฐค ๊ด์์ ์์ง ์๋ค.
์์ง ๊ฒฝ๋ํ (2026-10-05)
ํจ์ค๋ณ GPU ์๊ฐ(--offscreen ๋์ ์ถ๋ ฅ, F2 ์ฐฝ)์ ์ฌ ๋ณด๋ bitonic ์ ๋ ฌ์ด ํ๋ ์์ 58% ์๋ค.
| ์ | ํ | |
|---|---|---|
| ์ ๋ ฌ | bitonic, ๊ฐ์ฐ์์ ์ ์ฒด 2^21, 231 ๋์คํจ์น โ 31~35 ms | ๋ณด์ด๋ ๊ฒ๋ง ์์ถ + GPU radix (8๋นํธ ร 4ํจ์ค, subgroup ballot ์์ scatter) โ 2.7 ms |
| ๋์คํฐ | RGBA32F ๋ธ๋ ๋ฉ 21.6 ms | RGBA16F 15.9 ms (32๋นํธ ๋๋น PSNR 64 dB). ๊ฑฐ๋ฆฌ ๋์ ์ r32f ์ ์ง (r16f ๋ ์ ์ ๋ ธ๋ฉด ๋ฐ์ฌ์์ ์ต๋ 80/255 ์ฐจ์ด) |
| AA | ์์ | FXAA ์ปดํจํธ 0.08 ms + ๋ณต์ฌ 0.06 ms (๋ฉ์ยท์ ๊ฐ์ฅ์๋ฆฌ). MSAA ๋ ์คํ๋ซ ๋ธ๋ ๋ฉ์ ์ํ ์๋ฐฐ๋ก ๋๋ ค ์ฐ์ง ์๋๋ค |
(GPU ๋ฅผ ํ์ต๊ณผ ๋๋ ์ด ์ํ์ ์ธก์ ์ด๋ผ ์ ๋๊ฐ์ ํฌ๋ค.) Deferred shading ์ ๋์ ํ์ง ์์๋ค. ์กฐ๋ช ํจ์ค(๋ ์จ, ๊น์ด ๋ฒํผ ๊ธฐ๋ฐ ํ๋ฉด ๊ณต๊ฐ ์กฐ๋ช โ ์ฌ์ค์ deferred)๊ฐ 0.1~0.5 ms ๋ผ ์ฑ๋ฅ ์ด๋์ด ์๋ค. ๊ด์์ด ๋ง์์ง๋ฉด(๊ฐ๋ก๋ฑยท๋ค๋ฅธ ์ฐจ ์ ์กฐ๋ฑ) G-๋ฒํผ ๋ฒ์ (๋ฉ์)๊ณผ ํด๋ฌ์คํฐ ์กฐ๋ช ์ผ๋ก ํ์ฅํ๋ค.
์ฌ์ดํด ๋ ๋ ๋ฒค์น๋งํฌ (OneFixer ๋ถ๋ก A.1 ๋ฐฉ์)
nusim recon cycle <scene>: ๋ชจ๋ธ B ๋ฅผ ํ์ต ์์ ์์ ์์ผ๋ก 1 m ์ฎ๊ฒจ ๋ ๋ โ ๊ทธ ๋ ๋๋ก ๋ชจ๋ธ C ํ์ต โ C ๋ฅผ ์๋
๊ธฐ๋ก ์์ ์์ ๋ ๋ํ๋ฉด '1 m ๋ฒ์ด๋ ์ ์์ ' ์ด๊ณ ๊ทธ ์๋ฆฌ ์ค์ ์ฌ์ง์ด ์ ๋ต์ด๋ค. bench/ ์ ๋ ๋ยท์ ๋ตยท๋์
๋ถํฌ๋ช
๋ยท๊ฐ๋ฆฐ ๊ฐ์ฒด ๋ง์คํฌยท์ด์ ํ๋ ์ ์ฐธ์กฐ ์ฌ์ง. nusim recon bench ๋ก PSNRยทSSIMยทLPIPSยทDISTS (๊ฐ๋ฆฐ ๊ฐ์ฒด ์์ญ์
์ ๋ต์ผ๋ก ์ฑ์ด ๋ค). --run-difix ๋ Difix ์ ์ฒด ๋ณด์ ๊ณผ ์ ๋ขฐ๋ ๋ง์คํฌ(๋์ ๋ถํฌ๋ช
๋) ๋ธ๋ ๋ฉ์ ๋น๊ตํ๋ค.
์์ (2026-10-06 ๊ฒํ ): ์ฒซ ๋ฒค์น(scene-0003)์์ +Difix ๊ฐ LPIPS 0.391 โ 0.162 ๋ก ์ค์ ์ฌ์ง ํ์ต ๋ชจ๋ธ(0.338)๋ณด๋ค๋ ์ข๊ฒ ๋์๋ค. ์์ธ์ ์ฐธ์กฐ ์ฌ์ง์ด '๊ฐ์ ์นด๋ฉ๋ผ์์ ์๊ฐ์ด ๊ฐ์ฅ ๊ฐ๊น์ด ํ์ต ํ๋ ์' ์ด์๊ธฐ ๋๋ฌธ์ด๋ค. ๋๋ฆฐ ์ฌ์์๋ ์ ๋ต ์์น์์ 0.13 m ๋จ์ด์ง, ์ ๋ต๊ณผ ๊ฑฐ์ ๊ฐ์ ์ฌ์ง์ด๋ผ Difix ๊ฐ ์ ๋ต์ ๋ฒ ๊ผ๋ค โ ๊ทธ ์์น๋ ๋ฌดํจ. ์ด์ ์ฐธ์กฐ๋ ์ด๋ ๊ฑฐ๋ฆฌ(1 m) ์ด์ ๋จ์ด์ง ํ์ต ํ๋ ์ ๊ฐ์ด๋ฐ ์๊ฐ์ด ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฒ์ด๋ค (์ค์ ์ฌ์ฉ: ์ฐจ์ ์ ์ฎ๊ธด ์์ ์์ ์ฐธ์กฐ๋ 1 m ๋จ์ด์ง ๊ธฐ๋ก ์ฌ์ง). ๋ค์ ์ด ๊ฒ.
๋ ์ด์บ์คํธ ์ผ์ โ ๋ผ์ด๋คยท๋ ์ด๋ (2026-10-09)
์ฌ์ฉ์ ์์ฒญ: ์ผ์ ๋ฐ์ดํฐ๋ฅผ '๋ ๋๋ง' ํ๋ ๊ฒ ์๋๋ผ ์นด๋ฉ๋ผ์ฒ๋ผ ์๋ฎฌ๋ ์ดํฐ์ ์ผ์๋ฅผ ๋ถ์ธ๋ค (CARLA ray-cast ์ผ์ ๋ฐฉ์).
์ค์
configs/sim.jsonsensors: LIDAR_TOP (HDL-32E ๊ทผ์ฌ: 32์ฑ๋, โ30.67~10.67ยฐ, 0.33ยฐ, 70 m) + RADAR_* 5๋ (ARS 408 ๊ทผ์ฌ: 120ยฐร10ยฐ, 1ยฐ, 120 m, ์ต๋ 125์ , ๋ ธ๋ฉด ๋ฐ์ฌ ๋ฒ๋ฆผ, ๋ํ๋ฌ vrยท์์ฐจ ์ด๋ ๋ณด์ ์๋). ์ฅ์ฐฉ ์์น๋ nuScenes ๋ฐฐ์น ๊ทผ์ฌ.๊ธฐํ = ๋ณต์ ์๋
world.vox(nusim/sim/voxels.py): ์ ์ ๋ผ์ด๋ค ๋์ , ์ง๋ฉด์ 0.5 m ๋์ด ์ง๋(์ฒซ ๋นฝ๋นฝํ ์ธต, ์ด์ค ์ ํ ๊ต์ฐจ), ์ง๋ฉด ์ ๊ฒ์ 0.2 m ๋ณต์ . ๋น ๊ณต๊ฐ ๊น๊ธฐ(src/vkgs/src/voxcarve.cpp, ๋น์ด ์ง๋๊ฐ ํ์ ๋๋น ๋ถ๋ชํ ๋น์จ < 0.2 ์ธ ์นธ ์ ๊ฑฐ) โ ์ง์ด ์ฐจ๋์ ์ด๊ธ๋ ์กฐ๊ฐ์ด ์ฐจ์ ์ ๋ฐ๋ผ ์ง๋ฉด ์ 0.3~1 m ์ ์์ฌ ์์๋ค. + ์ฅ๋ฉด ๊ฐ์ฒด ์์ (์ฐจ๋, ์๋).์์ฐจ๋ฅผ ๋ ธ๋ฉด์ ์ํ(zยทpitchยทroll, ๋ค ๋ฐํด ์๋ฆฌ ์ง๋ฉด ๋์ด) ์๋ค.
์ค์ nuScenes ๋ผ์ด๋ค์ ๊ฐ์ ๋ฐฉํฅ(๊ณ ๋ 0.67ยฐยท๋ฐฉ์ 0.5ยฐ ์นธ)์ ๊ฑฐ๋ฆฌ ๋น๊ต (6 sweep):
์ค์ธก ์ผ์ ์์ธ ์๋ฎฌ ์์ธ (๋ ธ๋ฉด์ ์ํ) scene-0402, ์ฒ์ (๋ณต์ ์ง๋ฉด, ๊น๊ธฐ ์์) โ1.24 m, 24% โ scene-0402, ๋์ด ์ง๋ + ๊น๊ธฐ 0.2 โ0.12 m, 5.9% โ0.18 m, 5.9% scene-0003 โ0.07 m, 3.6% +0.02 m, 3.9% (๊ฑฐ๋ฆฌ ์ฐจ ์ค์๊ฐ, ์๋ ์ค์ฐจ ์ค์๊ฐ.) ๋จ์ ์ค์ฐจ: ๋๋ฌด ๊ฐ์ ์ฑ๊ธด ๋ฌผ์ฒด, 0.2 m ๋ณต์ ๋ฉด, ๋ผ์ด๋ค ์ธ๊ธฐ๋ ์๋ค(๊ฑฐ๋ฆฌ๋ก ๊ทผ์ฌ).
๋ทฐ์ด:
--voxels(render view ๊ฐ ์๋), ์ฐฝ์ '์ผ์' ํจ๋์์ ๋ผ์ด๋ค(๋์ด ์)ยท๋ ์ด๋(๋นจ๊ฐ ๋ค๊ฐ์ดยทํ๋ ๋ฉ์ด์งยท๋ ธ๋ ์ ์ง) ๋ณด๊ธฐ, O(6์บ ๊ด์ธก ์ ์ฅ)์LIDAR_TOP.bin(nuScenes .pcd.bin ํ์, ์ผ์ ์ขํ x ์ยทy ์ผ์ชฝยทz ์) +RADAR_*.txt. ๋ผ์ด๋ค ํ ๋ฐํด ์ฝ 4 ms.๋ค์: ์ฅ๋ฉด ๊ฐ์ฒด์ ์ค์ ๋์ดยท์๋ (์ง๊ธ 1.6 mยท์ ์ง), ์ฅ์ ๋ฌผ ์ง๋์๋ ๋น ๊ณต๊ฐ ๊น๊ธฐ ์ ์ฉ (๋ณด์ด์ง ์๋ ์ฅ์ ๋ฌผ์ ๊ฐ์ ์์ธ).
3์ธ์นญ ๋ ธ์ด์ฆ โ ์์ฐจ ๋์ด ๋ณต์ ยท ArtiFixer ๋๋จน์ ยท EMA (2026-11-05)
์ฌ์ฉ์ ๋ณด๊ณ : ๋ทฐ์ด์์ ๋๋กยท๊ฑด๋ฌผ์ด ๊ฐ์ฐ์์ ๋ ธ์ด์ฆ์ฒ๋ผ ๋ณด์ธ๋ค. ์์ธ ์ .
nuScenes ego_pose ์ z ๋ ํญ์ 0 (ํผ์นยท๋กค์ ์๋ค). ์ค๋ฅด๋ง์์ ์ฐจ๊ฐ ๊ธฐ์ด ์ฑ ๊ฐ์ ๋์ด์ ๋จธ๋ฌด๋ ์ ์ด๋ผ ํ๋ ์๋ผ๋ฆฌ ๊ธฐํ๊ฐ ์ด๊ธ๋๋ค.
SceneIndex.with_ego_heights(nusim/data/rig.py ego_heightsโ ์ ๋ฐฉํฅ ๊ธฐ์ธ๊ธฐ dz/ds ๋ฅผ ์ํ ์ด๋์ผ๋ก ์ ๋ถ, ์นด๋ฉ๋ผยท๋ผ์ด๋คยท๋ฐ์ค๋ฅผ ๊ฐ์ ์๊ฐ ๋์ด๋งํผ ์ฌ๋ฆผ). ํ์ต ์ต์ --ego-z pitch(reportego_z,_model_data๊ฐ ๋ฐ๋ฅธ๋ค).- ๋ฎ ๋งต 628๊ตฌ๊ฐ: ๊ตฌ๊ฐ ๋์ด ๋ณํ 0โ1 m ํ๊ท 25.40 dB, 2โ4 m 22.34 dB, 4 m+ 21.28 dB (์๊ด โ0.59). 22 dB ๋ฏธ๋ง 42๊ฐ ์ค 26๊ฐ๊ฐ 2 m+.
- ๋ผ์ด๋ค ์ง๋ฉด ์ผ๊ด์ฑ (1 m ์นธ ๋์ด์ ํ๋ ์ ๊ฐ ํ์คํธ์ฐจ ์ค์๊ฐ): scene-0416 0.446 โ 0.050 m, scene-0042 0.264 โ 0.046 m, scene-0049 0.230 โ 0.070 m โ ํํํด ๋ณด์ด๋ ๊ตฌ๊ฐ๋ ์ข์์ง๋ค.
- ์ฌํ์ต (day_map ํ๋ฆฌ์
15k ๊ทธ๋๋ก): scene-0042 seg1 21.52 โ 26.71 dB (SSIM 0.653 โ 0.821), scene-0416 seg1 17.96 โ 18.99 dB
(๋๋ฌด ํฐ๋ ์ข์ ๊ธธ โ ์ฌ์ ํ ์ด๋ ต๋ค).
outputs/gs_day_v2/. - ๋ทฐ์ด๋ ์ด์ ์ค ์์ฐจ z ๋ฅผ ์ถ๋ฐ ๋์ด๋ก ๊ณ ์ ํ๊ณ ํผ์น๊ฐ ์๋ค โ ๋์ด ๋ณต์ ๋ชจ๋ธ์ ์ง์ญ ๋งต์ ๋ฃ์ผ๋ ค๋ฉด segments.txt ๊ถค์ ์ ์ z, ์์ฐจ ๋์ดยทํผ์น ๋ฐ๋ผ๊ฐ๊ธฐ, ์ฌ ์ฌ์ด ๋์ด ๋ง์ถค์ด ํ์ํ๋ค (์์ง).
3์ธ์นญ ์นด๋ฉ๋ผ๊ฐ ํ์ต ์์ ๋ฐ (์ฐจ ๋ค 6.5 m ยท ๋์ด 1.9 m). sim.json chase_camera 5.5 m ยท 1.7 m ๋ก, ์ถ๋ฐ์ ๊ธฐ๋ก ๊ถค์ ์
drive.start_offset_m(8 m) ๋ค์ด๊ฐ ํ๋ ์์์ (0 ๋ฒ ํ๋ ์์ด๋ฉด ์นด๋ฉ๋ผ๊ฐ ์๋ฌด ์นด๋ฉ๋ผ๋ ์ง๋๊ฐ์ง ์์ ๊ณณ์ ์๋ค).ํ์ต ์์ ๋ฐ ํ์ง โ
nusim recon augfix <์ฌ> --seg <๊ตฌ๊ฐ>(nusim/recon/augfix.py,configs/train/augfix.json): ArtiFixer ์ฆ๊ฐ(๋ฆฌ๊ทธ ๋ณํ 9์ข , ์ด๋ฏธ 284์ฌ)์ ๊ทธ ๋ณํ ์์ธ์ ์์ฌ ์ ๋ต์ผ๋ก ๊ตฌ๊ฐ ๋ชจ๋ธ 6k ๋ฏธ์ธ์กฐ์ + ๊ฐ์ฐ์์ EMA 0.999 (TrainConfig.ema_decay). ์์ฌ ๋ทฐ์ ํ๋ ํฝ์ (์ ๋ชจ๋ธ ฮฑ < 0.5)์ ์์ค์์ ๋นผ๊ณ ํ๋ ํ๋ธ๋งต์ ์ค์ ์ฌ์ง์ผ๋ก๋ง โ ์ ๊ทธ๋ฌ๋ฉด ArtiFixer ์ ๋ฐ๋ ํ๋์ ๋ฐฐ์ ๊ตฌ๋ฆ์ด ์ฌ๋ผ์ก๋ค. scene-0042 seg0 (ํ๋ ์ ์ธ ํ๊ฐ):์๋ ๊ฒฝ๋ก PSNR / LPIPS ๋นผ ๋ ์ฆ๊ฐ 18์ฅ PSNR / LPIPS ์ ๋ชจ๋ธ 24.73 / 0.321 25.60 / 0.152 augfix + EMA 24.91 / 0.310 26.57 / 0.135 augfix, EMA ์์ด 24.66 / 0.310 26.35 / 0.139 EMA ๋ ์๋ ดํ ๋ชจ๋ธ์ ๋ฏธ์ธ์กฐ์ ์์ +0.2 dB. ์ฒ์๋ถํฐ ํ์ต(15k)์์๋ ๋ง์ง๋ง 3k ๋์ PSNR ์ด ๋น ๋ฅด๊ฒ ์ค๋ฅด๋ ์ค์ด๋ผ EMA ๊ฐ ๋ค์ฒ์ ธ โ0.5 dB (scene-0416) โ ์ฒ์๋ถํฐ ํ์ต์๋ ์ฐ์ง ์๋๋ค.
3๋จ๊ณ โ closed-loop ํ๊ฒฝ
| ์ฐ์ถ๋ฌผ | VLA ๋ชจ๋ธ์ด ์ฌ ํ๋๋ฅผ ์์ฃผํ๊ณ ๊ฒฝ๋ก ์ดํ/์ถฉ๋ ์งํ๊ฐ ๋์ด |
-
maps/graph.pyโ map expansion โ ์ฐจ์ ๋ฐฉํฅ๊ทธ๋ํ -
sim/ego.pyโ ์์ ๊ฑฐ ๋ชจ๋ธ (์กฐํฅ๊ฐยท๊ฐ์ โ ๋ค์ ์ํ) - ์ถฉ๋ (2026-10-02) โ ์ ์ ๋ผ์ด๋ค ์ฅ์ ๋ฌผ ์ง๋(
nusim/sim/obstacles.py, ์ง๋ฉด +0.252.5 m, 0.2 m ์นธ)์ ์ฃผํ๊ฐ๋ฅ์์ญ ๊ฒฝ๊ณ(์ฐ์)์ ์ฐจ์ฒด๊ฐ ๋ฟ์ผ๋ฉด ์ง์ ์์ธ๋ก ๋๋๋ฆฌ๊ณ ์ ์ง, ์ถฉ๋ ํ์ยท์ข ๋ฅ๋ฅผ0.4 m ์ ๋ ธ๋ฉด์์ '๊ฑด๋ฌผยท๊ตฌ์กฐ๋ฌผ' ์ถฉ๋๋ก ๋ฉ์ท๋ค. โ ์ง๋ฉด = ๋ฎ์ 5 ๋ฐฑ๋ถ์์๋๋ฐ ๋จผ sweep ์ ๋ ธ๋ฉด ์ ์ด ์๋๋ก 0.1drive_log.csv์ ๊ธฐ๋ก. ๋ ธ๋ฉด(์ฃผํ๊ฐ๋ฅ์์ญ ์์ชฝ 0.3 m ๋ถํฐ)๊ณผ ์๋ ์ฐจ์ฒด๊ฐ ์ง๋๊ฐ ์๋ฆฌ๋ ๋น์ด๋ค โ ๋ ธ๋ฉด ์ ๋ฌผ์ฒด(์ฐจ๋จ๊ธฐ ๋ง๋ยท์ฝ ๋ฑ)๋ ๋๋ถ๋ถ ์ ๊น ์๋ ๊ฒ์ด๊ณ ๋์ค์ ์๋ฎฌ๋ ์ดํฐ ๊ฐ์ฒด๋ก ๋ฃ๋๋ค. scene-0003 ์ฐจ๋จ๊ธฐ ๋ง๋ ๋ ๊ฐ๊ฐ ๋ฒฝ์ผ๋ก ๋จ์ ์ฐจ์ ์ ๋ง์์๋ค. ์ถฉ๋ ํ์ ์ ์ฐจ์ฒด ๋๋ ๋ฅผ 0.1 m ์ค์ฌ์ ๋ณธ๋ค (์นธ ์์ํยทํฌ์ฆ ์ก์์ผ๋ก ๋ฌผ์ฒด๊ฐ ๋ถํ์ด ๋ณด์). ํ์ง๋ ๊ณ ์ณค๋ค (์์ ์ 5์ด ๋๋ฌ 0.35 m). 2026-10-09 (OBSTACLES_VERSION 4): ๊ธด ์ฌ(scene-0402)์์ ์๋ ๊ฒฝ๋ก 0.20.45 m ๋ฒ์ ธ ์ง๋ฉด์ด 0.3 m ๋ฎ๊ฒ ์กํ ๋ ธ๋ฉด ์์ฒด๊ฐ ์ฅ์ ๋ฌผ์ด ๋๋ค โ ์ง๋ฉด = ์๋์์ ์ฒ์ ๋์ค๋ ๋นฝ๋นฝํ 10 cm ์ธต(๊ทธ ์นธ ์ต๋ ์ธต์ ์ ๋ฐ ์ด์). โก ๋ ธ๋ฉด ์์์ ๋จ๊ธฐ๋ '์์ ๊ตฌ์กฐ๋ฌผ' ์ ์นธ์ ์ต๊ณ ์ > 3 m ๋ก ๋ดค๋๋ ๊ฐ๋ก์ ์๊ด(518 m) ์๋ ๋ ธ๋ฉด ์นธ 11,091๊ฐ๊ฐ ๋จ์๋ค โ ์ง๋ฉด ์ 2~3 m ์ ์ ์ด 5๊ฐ ์ด์์ธ ์นธ๋ง (๊ธฐ๋ฅยท์ค๊ธฐยท๋ฒฝ). ๋ ธ๋ฉด์์ ๋จ๋ ์นธ 11,091 โ 83, ์ถฉ๋ ์ง์ 1 m ์ ์ฅ์ ๋ฌผ 0. scene-0003 ์ 21,808 โ 20,724์นธ. ๊ฐ์ ๋ ๋ ๋ฒ์งธ ์ํ: ์๋ ๊ฒฝ๋ก 1.6 m ์ผ์ชฝ์์ ํ๋จ ๊ฐ์ฅ์๋ฆฌ์ ํ ์นธ ๋์ถ(0.2 m)์ ์ฐจ์ฒด ์์ด ๊ฑธ๋ ค ์๋ค๋ก ๋ชป ์์ง์๋ค โ ๋ฟ์ ์ํ ์๊ฐ 1 ๋ง ๋์ด๋ ๋ง์๊ธฐ ๋๋ฌธ. ์ด์ collision.graze_samples(2) ์ดํ๋ ์ค์นจ์ผ๋ก ๋ณด๊ณ (ContactInfo::depth), ๊น์ด๊ฐ ๋์ด๋ ๊ฐ์ ๋ฐฉํฅ์ผ๋ก 0.3 m ๋ ๊ฐ ๋ณธ ์์ธ๊ฐ ์ง๊ธ๋ณด๋ค ๊น์ง ์์ผ๋ฉด ๋น ์ ธ๋๊ฐ๋ ์ค์ผ๋ก ํ์ฉ (escaping). ๋ฒฝยท๊ธฐ๋ฅ์ ์ฐจ์ฒด ํ ์ค(์ฝ 13์ )์ด ๋ฐ๋ก ๋ฟ์ ์ฌ์ ํ ๋งํ๋ค. ์ด์ ์ ์ ์ง ์ํ๋ก ์์ํ๋ค (์์ ์ ๋ก๊ทธ ์๋๋ก ์์ํด ์ ์ ๋ก ๋ฌ๋ ธ๋ค). ์์ง ์๋ ๊ฒ: ์ถฉ๊ฒฉยทํ๊น ๊ฐ์ ๋์ญํ, ๊ฒฝ์ฌยท์์ฒ , ๋ค๋ฅธ ์ฐจ๋๊ณผ์ ์ถฉ๋. -
sim/env.pyโ gym ์คํ์ผreset()/step(action) โ 6์ฅ ๊ด์ธก -
sim/metrics.pyโ ๊ฒฝ๋ก ์ดํ, ์ฃผํ๊ฐ๋ฅ์์ญ ์๋ฐ, ์ถฉ๋, ์์ฃผ์จ -
sim/bridge.pyโ gRPC (๊ทธ๋ฆฌ๊ณ ํ์ํ๋ฉด ROS2) ๋ก ์ธ๋ถ ๋ชจ๋ธ ์ฐ๋ - ๊ตํต ์ฐธ๊ฐ์ ์ฝ์ โ ํ๊ฒฝ ์ ์ฉ ๋งต ์์ ์ฐจ๋ยท์ฌ๋(glTF ๋๋ ๊ฐ์ฒด๋ณ 3DGS)์ ์๋ฎฌ๋ ์ดํฐ๊ฐ ๋ฐฐ์น
ํต์ฌ ๋์ . ego ๊ฐ ์๋ณธ ๊ถค์ ์ ๋ฒ์ด๋๋ฉด ๊ทธ ์์ ์์ ๋ณธ ์ ์๋ ๊ฐ๋๊ฐ ๋๋ค. 3DGS ๋ ์ธ์ฝ์ ์ฝํด์ ๊ฒฝ๋ก๋ฅผ ํฌ๊ฒ ๋ฒ์ด๋๋ฉด ํ์ง์ด ๊ธ๊ฒฉํ ๋ฌด๋์ง๋ค. ํ์ค์ ์ธ ์ํ์ฑ :
- ๋ฒ์ด๋จ ์ ๋๋ฅผ ์งํ๋ก ๊ธฐ๋กํด "์ ๋ขฐ ๊ตฌ๊ฐ" ์ ๋ช ์
- ์๋ณธ ๊ถค์ ์ฃผ๋ณ ยฑ2 m ์ ๋๋ฅผ ์ ํจ ๋ฒ์๋ก ๋๊ณ ํ๊ฐ
- ์ฌ๋ฌ ์ฌ์ ์ฌ๊ตฌ์ฑ์ ๋งต ์ขํ๊ณ์์ ํฉ์ณ ์ปค๋ฒ๋ฆฌ์ง๋ฅผ ๋ํ๋ ๊ฒ์ ๊ทธ ๋ค์ ๋ฌธ์
๋ค๋ฃจ์ง ์๊ธฐ๋ก ํ ๊ฒ
- boston-seaport (467 ์ฌ) โ ์ฑ๊ฐํฌ๋ฅด๋ก ํ์ ํ๋ค. ๋ฒ์๋ฅผ ์ขํ์ผ ๋์ด ๋๋ค.
LiDAR/RADAR ํฉ์ฑโ ์ฒ์์ ์นด๋ฉ๋ผ๋ง์ด์์ผ๋ 2026-10-09 ์ฌ์ฉ์ ์์ฒญ์ผ๋ก ์๋ฎฌ๋ ์ดํฐ ๋ ์ด์บ์คํธ ์ผ์๋ก ๋ฃ์๋ค ('๋ ์ด์บ์คํธ ์ผ์' ์ ). 3DGS ๋ก ์ผ์ ์์์ ๊ทธ๋ฆฌ๋ ๋ฐฉ์์ ํ์ง ์๋๋ค.๋ ์จ/์๊ฐ๋ ๋ณํโ ์ฒ์์ ๋ค๋ฃจ์ง ์๊ธฐ๋ก ํ์ผ๋ 2026-10-02 ๊ฒฐ์ ์ผ๋ก ์๋ฎฌ๋ ์ดํฐ๊ฐ ํฉ์ฑํ๋ค ('์ ์ฒด ๋งต + ํฉ์ฑ ๋ ์จ', '๋ ์จ v2'). ์์ ์์ฒด์ ๋ฐค โ ๋ฎ ๋ณํ์ '๋ฐ์ดํฐ์ ๋ค์์ฑ ์ฆ๊ฐ' ์ฐธ๊ณ .- ์ง์ ํ์ต๊ธฐ ์ฒ์๋ถํฐ ๊ตฌํ โ gsplat ์ ๋ฐฑ์๋๋ก ์ด๋ค. ๋์คํฐ๋ผ์ด์ ๋ฅผ ๋ค์ ์ฐ๋ ๋ฐ ์๊ฐ์ ์ธ ์ด์ ๊ฐ ์๋ค.