|
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
41.7 kB
| # ๋ก๋๋งต | |
| ๊ฐ ๋จ๊ณ๋ **๊ฒ์ฆ ๊ฐ๋ฅํ ์ฐ์ถ๋ฌผ** ๋ก ๋๋๋ค. "๋๋ค" ๋ฅผ ๋์ผ๋ก ํ์ธํ ์ ์์ผ๋ฉด | |
| ๊ทธ ๋จ๊ณ๋ ๋๋ ๊ฒ ์๋๋ค. | |
| --- | |
| ## 0๋จ๊ณ โ ๊ฐ๋ฐ ํ๊ฒฝ ยท ๋ฐ์ดํฐ ๊ณ์ธต โ ์๋ฃ | |
| | | | | |
| |---|---| | |
| | ์ฐ์ถ๋ฌผ | `vkgs-doctor` ๊ฐ ์ ๋ถ ์ด๋ก, `nusim scene show` ๊ฐ ์ฌ์ ์ถ๋ ฅ | | |
| | ์ํ | **์๋ฃ.** Docker ๋์ ๋ก์ปฌ micromamba ํ๊ฒฝ (`scripts/local_setup.sh`) | | |
| - [x] ์ฌ ์ธ๋ฑ์ค โ 383 ์ฑ๊ฐํฌ๋ฅด ์ฌ / 532,157 ์ฅ / ํผํฌ 0.5 GB | |
| - [x] ์ธ๋ฑ์ค v2 โ LIDAR_TOP ํคํ๋ ์ ์ถ๊ฐ (์ฌ๋น ์ฝ 40์ฅ) | |
| - [x] ์คํธ๋ฆฌ๋ฐ JSON ํ์ โ 1.35 GB ๋ฅผ ํผํฌ 30 MB ๋ก ์ํ | |
| - [x] ์นด๋ฉ๋ผ ๋ฆฌ๊ทธ ์ํ โ 6์บ ๋ฐฐ์น๋ฅผ ์ค์ธก์ผ๋ก ํ์ธ. Vulkan ํฌ์ํ๋ ฌ y/์ฃผ์ ๋ถํธ ๋ฒ๊ทธ ์์ | |
| - [x] ๋ก์ปฌ ํ๊ฒฝ (CUDA 12.1 + PyTorch 2.4.1 + gsplat 1.4.0 + Vulkan 1.4 ๋ก๋, sudo ๋ถํ์) | |
| - [x] `vkgs-doctor` ์ ํญ๋ชฉ ํต๊ณผ | |
| - [x] `vkgs_probe` ๋ฅผ ์ค์ GPU ์์ ์คํ โ ์ปดํจํธ ๋์คํจ์น ๊ฒ์ฆ ํต๊ณผ | |
| --- | |
| ## 1๋จ๊ณ โ 3DGS ์ฌ๊ตฌ์ฑ ๐ง ์งํ ์ค | |
| | | | | |
| |---|---| | |
| | ์ฐ์ถ๋ฌผ | ์ฌ ํ๋์ `.ply` + ์๋ณธ ๋๋น PSNR/SSIM ๋ฆฌํฌํธ | | |
| | ๊ธฐ์ค์ | ์ ์ ์ฌ(์ฃผ์ฐจ์ฅ ๋ฑ)์์ hold-out ๋ทฐ PSNR โฅ 25 dB | | |
| - [x] `recon/init.py` โ LIDAR_TOP ๋์ โ ์ด๊ธฐ ๊ฐ์ฐ์์. ์์ฐจ ์ /๋ฐ์ฌ ํ์ ์ ๊ฑฐ, | |
| ์ฌ ์์ ์ด๋(float32 ์ ๋ฐ๋), ํ๋ ๊ตฌ, ์นด๋ฉ๋ผ ํฌ์์ผ๋ก ์ ์ด๊ธฐํ. **COLMAP ์์.** | |
| - [x] `recon/dataset.py` โ 800ร450, ์ฌ ์ ์ฒด RAM ์ ์ฌ(1.4 GB, 5์ด), ์นด๋ฉ๋ผ๋ณ hold-out 1/8. | |
| - [x] `recon/train.py` โ gsplat + DefaultStrategy, ๊ฐ์ฐ์์ ์ํ, ์นด๋ฉ๋ผ๋ณ ์ํ + ํ๋ ์๋ณ ๊ฒ์ธ ์ ๋ณด์ . | |
| - [x] `io/ply.py` โ ํ์ค 3DGS ply (์์ ์ ํค๋ comment ์ float64). | |
| - [x] ์ธ๋ฑ์ค v3 โ 3D ๋ฐ์ค ์ด๋ ธํ ์ด์ (์ฑ๊ฐํฌ๋ฅด 364,833๊ฐ) | |
| - [x] `recon/dynamic.py` โ ์์ง์ด๋ ๊ฐ์ฒด ํ์ (์ฌ๋ ์ ๋ถ + ๋์ ๋ณ์ > 2 m + moving ์์ฑ ๊ณผ๋ฐ), | |
| ํคํ๋ ์ ๊ฐ ๋ฐ์ค ๋ณด๊ฐ, ๊ทผํ๋ฉด ํด๋ฆฌํ ํฌ์ ๋ง์คํฌ. ๋ผ์ด๋ค ์ด๊ธฐํ์ ํ์ต ์์ค์์ ์ ์ธ. | |
| - [x] ์ ๊ตฝ๊ธฐ โ ํ๊ท ์นด๋ฉ๋ผ ์ ๋ณํ์ SH ์ ๊ตฌ์ ply ๋ง์ผ๋ก nuScenes ์์ด ๋์ค๊ฒ. | |
| - [x] ์ ์ PSNR 25 dB ๋ฌ์ฑ โ 60k ์คํ 25.26 dB | |
| - [x] ์นด๋ฉ๋ผ๋ณ ์ธ๋ถ ํ๋ผ๋ฏธํฐ ๋ณด์ (camera_adjust.json) | |
| - [x] ์ ๋ณด์ ์ค์ฌํ (SH ๊ตฝ๊ธฐ ๋์ฒด) + ์ธ๋ถ ํ๋ผ๋ฏธํฐ ๋ณด์ L2 ์ฌ์ ๋ถํฌ | |
| - [x] ์ฌ 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~0.44ยฐ / 2~8 cm ๋ณด์ ๋จ | | |
| | 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) | |
| - [x] `.ply` ๋ก๋, ๊ฐ์ฐ์์ SSBO ์ ๋ก๋ (3D ๊ณต๋ถ์ฐ์ CPU ์์ ๋ฏธ๋ฆฌ, 240 B/๊ฐ์ฐ์์) | |
| - [x] ๊น์ด ์ ๋ ฌ (GPU bitonic โ 2026-10-05 ๋ณด์ด๋ ๊ฒ๋ง GPU radix, ์์ง ๊ฒฝ๋ํ ์ฐธ๊ณ ) | |
| - [x] ํ๋ฉด์ ๋ ฌ ์ฟผ๋ + ์ํ ๋ธ๋ ๋ฉ (RGBA32F ๋์ , gsplat ๊ณผ ๊ฐ์ ์์ยท์์) | |
| - [x] GLFW ์ฐฝ, ์์ ์นด๋ฉ๋ผ / 6์บ ์ถ์ข / ๊ถค์ ์ฌ์ / BEV(๋์ด ํด๋ฆฝ) โ **ํ๋ฉด์ ๋ฌ๋ค** | |
| - [x] nuScenes map expansion ์ค๋ฒ๋ ์ด (์ฃผํ๊ฐ๋ฅ์์ญ, ์ฐจ์ ์ค์ฌ์ , ๊ตฌ๋ถ์ , ์ ์ง์ , ๋ณด๋, ์์ฐจ ๊ถค์ ยท๋ฐ์ค) | |
| - [x] `nusim render compare` โ **Vulkan vs gsplat PSNR 55.95 dB, ํ๊ท ์ฐจ์ด 0.10%** (๊ธฐ์ค < 2%, ํฉ๊ฒฉ) | |
| - [x] `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) | |
| - [x] 6์บ ํ๋ ธ๋ผ๋ง (์ ๋ณด์ ์ญ์ ์ฉ, 3DGS ์ํ ํฉ์ฑ + ์ธ์ฝ ์ฑ์) | |
| - [x] HDR ๊ทผ์ฌ โ ํ๋ธ๋งต โ prefiltered specular (GGX) / irradiance (SH9) / BRDF LUT | |
| - [x] BC6H ์์ถ + KTX2 (Khronos `ktx validate` ํต๊ณผ) | |
| - [x] Vulkan: KTX2 ๋ก๋, ํ๊ฒฝ ๋ฐฐ๊ฒฝ, PBR ๊ตฌ ๊ฒ์ฆ, ๋ฉ์โ์คํ๋ซ ๊น์ด ํฉ์ฑ | |
| - [x] glTF ์ฐจ๋ ๋ก๋ + PBR (IBL ์กฐ๋ช , clearcoat, ์ ๋ฆฌ ๊ทผ์ฌ, texture_transform) โ nuScenes ์ ์์ง์ด๋ ์น์ฉ์ฐจ ๋ฐ์ค | |
| ๊ถค์ ๋ง๋ค CarConcept(CC-BY 4.0)๋ฅผ ๋๋๋ค. ์ฌ์ยท์ด์ ยท6์บ ๊ด์ธก ๋ชจ๋์ ๋์จ๋ค (์ด์ ์ค์ ๋ก๊ทธ ์๊ณ๋ก, ์์ง ๋ฐ์ ์์) | |
| - [x] ์ฐจ๋ ์ ์ง ๊ทธ๋ฆผ์ โ ์ฐจ์ฒด ํญ(๋ชจ๋ธ ํญ ร0.85)ยท๊ธธ์ด์ ๋ถ๋๋ฌ์ด ๋ฅ๊ทผ ์ฌ๊ฐํ, ์ฐจ์ฒด ๊น์ด์ ๊ฐ๋ ค์ง๋ค | |
| - [x] ์์ฐจ๋ glTF ๋ฉ์ (`assets/gltf/ego_car.glb` โ ์ง๊ธ์ CarConcept, Renault Zoe ๊ธธ์ด 4.1 m ๋ก). | |
| nuScenes ์ฃผ์ฐจ ์ฐจ๋ 3DGS ์์ ์ ๋ท๋ฉด์ด ํ๋ ค ๋์ฒด. ์์ฐจ ์นด๋ฉ๋ผ ์์ ยท๊ด์ธก์์๋ ์จ๊ธด๋ค | |
| - [ ] ์์ง์ด๋ ์ฐจ๊ฐ ์ง์์ง ์๋ฆฌ์ 3DGS ํ์ง (ํ์ต ๋ ๊ฐ๋ ค์ ธ ํฐ ์๊ฐ์ฒ๋ผ ๋จ๋๋ค) | |
| - [ ] ์์ฐจ ์์น์ ๋ฐ๋ฅธ ํ๊ฒฝ๋งต ๊ฐฑ์ (์ฌ๋ฌ ์ง์ ๊ตฝ๊ธฐ, ๋ณด๊ฐ) | |
| ### 2b. ์ปดํจํธ ํ์ผ ๊ฒฝ๋ก | |
| - [x] 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) | |
| 1. MCMCStrategy + opacity/scale ์ ๊ทํ 2. ํ๋ ๋ถ๋ฆฌ (ํ๋ธ๋งต + ํ๋ ๋ง์คํฌ) 3. antialiased ๋ชจ๋ | |
| 4. ๋ฐ๋ ์ต์ ์ ๊ทํ + ๋จ์ ๋ฒ์ 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`: | |
| 1. `recon batch` โ ์ด๋ ๊ฑฐ๋ฆฌ 60 m ๋๋ ์ฌ์ ๊ฐ์ ๊ธธ์ด ๊ตฌ๊ฐ(๊ฒน์นจ 10 m)์ผ๋ก ๋๋ `--time-window` ํ์ต | |
| (`plan_segments`, ๊ฒฐ๊ณผ `outputs/gs_day/<scene>/seg<k>/` + `segment.json`). 284์ฌ โ 696 ํ์ต ๋จ์. init.ply ๋ ํ์ต ๋ค ์ง์ด๋ค. | |
| 2. ์ฌ์ ๊ตฌ๊ฐ์ด ๋ค ๋๋๋ฉด `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_day` 333 GB ยท `outputs/aug` 132 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.cpp `SegmentStreamer`)๋ ์์ฐจ ์์น์์ | |
| ๊ฐ์ฅ ๊ฐ๊น์ด ๊ตฌ๊ฐ ํ๋๋ฅผ ๊ทธ๋ฆฌ๊ณ (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.json` `weather.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.json` `sensors`: 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) | |
| ์ฌ์ฉ์ ๋ณด๊ณ : ๋ทฐ์ด์์ ๋๋กยท๊ฑด๋ฌผ์ด ๊ฐ์ฐ์์ ๋ ธ์ด์ฆ์ฒ๋ผ ๋ณด์ธ๋ค. ์์ธ ์ . | |
| 1. **nuScenes ego_pose ์ z ๋ ํญ์ 0** (ํผ์นยท๋กค์ ์๋ค). ์ค๋ฅด๋ง์์ ์ฐจ๊ฐ ๊ธฐ์ด ์ฑ ๊ฐ์ ๋์ด์ ๋จธ๋ฌด๋ ์ ์ด๋ผ ํ๋ ์๋ผ๋ฆฌ | |
| ๊ธฐํ๊ฐ ์ด๊ธ๋๋ค. `SceneIndex.with_ego_heights` (`nusim/data/rig.py ego_heights` โ ์ ๋ฐฉํฅ ๊ธฐ์ธ๊ธฐ dz/ds ๋ฅผ ์ํ ์ด๋์ผ๋ก | |
| ์ ๋ถ, ์นด๋ฉ๋ผยท๋ผ์ด๋คยท๋ฐ์ค๋ฅผ ๊ฐ์ ์๊ฐ ๋์ด๋งํผ ์ฌ๋ฆผ). ํ์ต ์ต์ `--ego-z pitch` (report `ego_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, | |
| ์์ฐจ ๋์ดยทํผ์น ๋ฐ๋ผ๊ฐ๊ธฐ, ์ฌ ์ฌ์ด ๋์ด ๋ง์ถค์ด ํ์ํ๋ค (์์ง). | |
| 2. **3์ธ์นญ ์นด๋ฉ๋ผ๊ฐ ํ์ต ์์ ๋ฐ** (์ฐจ ๋ค 6.5 m ยท ๋์ด 1.9 m). sim.json chase_camera 5.5 m ยท 1.7 m ๋ก, ์ถ๋ฐ์ ๊ธฐ๋ก ๊ถค์ ์ | |
| `drive.start_offset_m` (8 m) ๋ค์ด๊ฐ ํ๋ ์์์ (0 ๋ฒ ํ๋ ์์ด๋ฉด ์นด๋ฉ๋ผ๊ฐ ์๋ฌด ์นด๋ฉ๋ผ๋ ์ง๋๊ฐ์ง ์์ ๊ณณ์ ์๋ค). | |
| 3. **ํ์ต ์์ ๋ฐ ํ์ง** โ `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` โ ์์ ๊ฑฐ ๋ชจ๋ธ (์กฐํฅ๊ฐยท๊ฐ์ โ ๋ค์ ์ํ) | |
| - [x] ์ถฉ๋ (2026-10-02) โ ์ ์ ๋ผ์ด๋ค ์ฅ์ ๋ฌผ ์ง๋(`nusim/sim/obstacles.py`, ์ง๋ฉด +0.25~2.5 m, 0.2 m ์นธ)์ | |
| ์ฃผํ๊ฐ๋ฅ์์ญ ๊ฒฝ๊ณ(์ฐ์)์ ์ฐจ์ฒด๊ฐ ๋ฟ์ผ๋ฉด ์ง์ ์์ธ๋ก ๋๋๋ฆฌ๊ณ ์ ์ง, ์ถฉ๋ ํ์ยท์ข ๋ฅ๋ฅผ `drive_log.csv` ์ ๊ธฐ๋ก. | |
| ๋ ธ๋ฉด(์ฃผํ๊ฐ๋ฅ์์ญ ์์ชฝ 0.3 m ๋ถํฐ)๊ณผ ์๋ ์ฐจ์ฒด๊ฐ ์ง๋๊ฐ ์๋ฆฌ๋ ๋น์ด๋ค โ ๋ ธ๋ฉด ์ ๋ฌผ์ฒด(์ฐจ๋จ๊ธฐ ๋ง๋ยท์ฝ ๋ฑ)๋ | |
| ๋๋ถ๋ถ ์ ๊น ์๋ ๊ฒ์ด๊ณ ๋์ค์ ์๋ฎฌ๋ ์ดํฐ ๊ฐ์ฒด๋ก ๋ฃ๋๋ค. scene-0003 ์ฐจ๋จ๊ธฐ ๋ง๋ ๋ ๊ฐ๊ฐ ๋ฒฝ์ผ๋ก ๋จ์ ์ฐจ์ ์ | |
| ๋ง์์๋ค. ์ถฉ๋ ํ์ ์ ์ฐจ์ฒด ๋๋ ๋ฅผ 0.1 m ์ค์ฌ์ ๋ณธ๋ค (์นธ ์์ํยทํฌ์ฆ ์ก์์ผ๋ก ๋ฌผ์ฒด๊ฐ ๋ถํ์ด ๋ณด์). | |
| ํ์ง๋ ๊ณ ์ณค๋ค (์์ ์ 5์ด ๋๋ฌ 0.35 m). | |
| **2026-10-09 (OBSTACLES_VERSION 4):** ๊ธด ์ฌ(scene-0402)์์ ์๋ ๊ฒฝ๋ก 0.2~0.4 m ์ ๋ ธ๋ฉด์์ '๊ฑด๋ฌผยท๊ตฌ์กฐ๋ฌผ' ์ถฉ๋๋ก ๋ฉ์ท๋ค. | |
| โ ์ง๋ฉด = ๋ฎ์ 5 ๋ฐฑ๋ถ์์๋๋ฐ ๋จผ sweep ์ ๋ ธ๋ฉด ์ ์ด ์๋๋ก 0.1~0.45 m ๋ฒ์ ธ ์ง๋ฉด์ด 0.3 m ๋ฎ๊ฒ ์กํ ๋ ธ๋ฉด ์์ฒด๊ฐ ์ฅ์ ๋ฌผ์ด ๋๋ค โ | |
| ์ง๋ฉด = ์๋์์ ์ฒ์ ๋์ค๋ ๋นฝ๋นฝํ 10 cm ์ธต(๊ทธ ์นธ ์ต๋ ์ธต์ ์ ๋ฐ ์ด์). โก ๋ ธ๋ฉด ์์์ ๋จ๊ธฐ๋ '์์ ๊ตฌ์กฐ๋ฌผ' ์ ์นธ์ ์ต๊ณ ์ > 3 m ๋ก | |
| ๋ดค๋๋ ๊ฐ๋ก์ ์๊ด(5~18 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 ์ ๋ฐฑ์๋๋ก ์ด๋ค. | |
| ๋์คํฐ๋ผ์ด์ ๋ฅผ ๋ค์ ์ฐ๋ ๋ฐ ์๊ฐ์ ์ธ ์ด์ ๊ฐ ์๋ค. | |