야외 수영장을 아이폰 라이다로
방 스캔에서 쓴 방법을 넓은 야외(약 38.2 m × 49.6 m)에 그대로 적용한 시험 (2026-10-15)
- 영상 프레임 3,868장 (1920×1440) + 장마다 아이폰이 기록한 카메라 위치
- 고해상도 사진 90장 (2016×1512)
- 라이다 깊이 프레임 11,619장 (프레임마다 231×173 깊이), 라이다는 5 m 까지만 잰다
- 앱이 만든 메시 1,286,546 삼각형
처음부터 끝까지
flowchart LR A["아이폰 Modelar 스캔
야외 약 44분"] --> Z["보관 파일 해독
영상·사진·라이다 깊이 프레임"] Z --> M1["① 앱 메시"] Z --> M2["② 라이다 점"] Z --> D["라이다 깊이 프레임
11,589장"] --> T["TSDF 쌓기
격자 3 cm"] --> M3["③ 메시 + 사진 입히기
(가장 크게 찍힌 사진)"] Z --> P["사진 1,380장
(영상 3장마다 1장 + 고해상도 전부)"] --> M3 Z --> V["VGGT 깊이 추정
사진 1,290장 중 590장 통과"] --> M4["④ ③ + 구멍만 메우기"] M3 --> M4 M1 & M2 & M3 & M4 --> W["웹용 압축
GLB · PLY"] classDef m1 fill:#fef3c7,stroke:#f59e0b,color:#78350f classDef m2 fill:#d1fae5,stroke:#10b981,color:#064e3b classDef m3 fill:#ffe4e6,stroke:#e11d48,color:#881337 class M1 m1 class M2 m2 class M3 m3 classDef m4 fill:#ccfbf1,stroke:#0d9488,color:#134e4a class M4 m4 Z --> PH["고해상도 사진 90장
기준점 위 제자리 회전"] --> M5["⑤ 360° 파노라마
(아이폰 방향으로 기워 붙이기)"] classDef m5 fill:#ede9fe,stroke:#7c3aed,color:#4c1d95 class M5 m5
3D 로 비교하기
탭을 누르면 그 방법의 3D 를 불러온다. 끌기로 돌리기, 휠로 확대, 오른쪽 끌기로 이동. 휴대폰은 두 손가락. ③ 은 파일 4개(57 MB)라 불러오는 데 시간이 걸린다.
⑤ 기준점 위 360° 파노라마 (사진 기워 붙이기)
기준점 위에서 제자리로 돌며 찍은 고해상도 사진 90장을, 아이폰이 기록한 방향 그대로 한 장의 360° 사진(8192×2215 px)으로 기워 붙였다(특징점 맞추기 없이 2분). 3D 메시는 웹용으로 텍스처를 1024 로 줄였지만, 이건 원본 사진 해상도 그대로라 확대하면 사다리·벽의 수심 표시까지 읽힌다. 끌어서 둘러보고, 휠·두 손가락으로 확대. 위 41°~아래 56° 띠만 있다(하늘 꼭대기·발밑은 안 찍힘). 사진을 찍는 동안 폰이 최대 0.617 m 움직여 가까운 사다리가 살짝 겹쳐 보인다.
방법별 자세히
① 앱 메시
어떻게 만들었나: Modelar 앱이 촬영하면서 바로 만든 메시를 그대로 꺼냈다 (Mesh.scn 해독, 방과 같은 도구).
- 처리 시간 0
- 넓은 범위를 한 번에
- 점 색이라 흐리다
- 조각 2,526개로 나뉘어 있다
이 3D 에서 볼 것
- 수영장 바닥과 주변 높낮이
숫자: 1,286,546 triangles · web 5.6 MB
② 라이다 점
어떻게 만들었나: 라이다 점 30,000,000개 중 0.05 m 격자로 줄여 1,331,284개만 웹에 올렸다.
- 가장 믿을 만한 형태 (실제 m)
- 가까이 가면 점 사이가 빈다
- 라이다는 5 m 까지만 재서 먼 곳은 비어 있다
이 3D 에서 볼 것
- 걸어 다닌 길을 따라 점이 쌓인 모양
숫자: web 1,331,284 points · 20.0 MB
③ 라이다 깊이 메시 + 사진
어떻게 만들었나: 방 스캔에서 가장 좋았던 방법(방 ⑪)을 그대로 썼다. 라이다 깊이 프레임 11,589장을 TSDF 로 쌓아 메시를 만들고, 사진 1,380장(영상 3장마다 1장 + 고해상도 전부)을 아이폰이 기록한 위치 그대로 입혔다(texrecon, 삼각형마다 가장 크게 찍힌 사진). 야외라 넓어서 격자를 1 cm 가 아니라 3 cm 로 했다 (2 cm 는 블록 59,899개로 메시 뽑기 실패). 웹에는 텍스처 한 변 1024 로 줄여 파일 4개로 나눴다.
- 바닥(마른 풀·자갈)·벽은 사진 질감 그대로
- 형태와 치수는 라이다 그대로
- 걷기 모드로 걸어 다닐 수 있다
- 덤불·나뭇잎은 라이다가 면으로 못 잡아 구멍 (화면 덮음 84.4%, 방은 97.7%)
- 가까이 찍은 나무판 같은 곳은 3 cm 격자라 거칠고 엉뚱한 사진 조각이 섞인다
- 웹은 텍스처를 1024 로 줄였다
이 3D 에서 볼 것
- '촬영 자리' 에서 둘러보기 (기준점 위에서 찍은 곳)
- 수영장 가장자리와 바닥 질감
- 덤불 자리의 구멍
숫자: 3,816,078 triangles · texture atlases 366 · texturing 14 min · photo match PSNR 16.39 · coverage 84.4% · web 57.1 MB
④ ③ + 구멍 메우기 (VGGT)
어떻게 만들었나: 방 ⑫ 방법. VGGT(사진에서 깊이를 추정하는 AI)를 영상 3장마다 1장, 1,290장에 돌려 라이다로 크기를 맞추고, 라이다와 비율이 15% 넘게 흔들리는 사진은 버렸다 (590장 통과). ③ 메시를 그 시점에서 비춰 보아 메시가 없거나 8 cm 넘게 앞에 물체가 있는 픽셀만 같은 TSDF 에 더했다 (562장, 12,555,511 픽셀). 사진 입히기는 ③ 과 같다.
- 화면 덮음 84.4% → 86.5%
- 라이다가 잰 곳은 ③ 그대로
- 야외는 5 m 너머가 많아 VGGT 사진의 절반 넘게가 크기 맞추기에서 버려졌다 (방은 65% 통과)
- 메운 곳은 AI 추정이라 덜 정확
- 덤불은 여전히 듬성하다
이 3D 에서 볼 것
- ③ 과 번갈아 보며 덤불·울타리 자리
숫자: 3,906,695 triangles · photo match PSNR 16.29 · coverage 86.5% · texturing 18 min · web 59.7 MB
⑥ 가우시안 (라이다 깊이 + 위치 보정)
어떻게 만들었나: 방 ⑤ 와 같은 설정 (gsplat). 라이다 점 1,331,284개를 시작점으로, 사진 1,380장으로 30,000번 학습하며 라이다 깊이로 형태를 잡고 아이폰 카메라 위치도 함께 다듬었다 (59분). 결과 2,823,142개 중 1,500,000개를 웹에 올렸다.
- 덤불·나뭇잎처럼 면이 없는 것도 그려진다
- 찍은 자리 근처에서 보면 사진 같다
- 사진 일치도 PSNR 14.96 (방 18.33): 하늘·5 m 너머 먼 풍경은 라이다 깊이가 없어 흐릿한 얼룩이 된다 (추정)
- 찍은 길에서 멀어지면 깨진다
- 치수·도면에는 못 쓴다
이 3D 에서 볼 것
- '촬영 자리' 에서 둘러보기
- ③ 에서 구멍이던 덤불 자리
숫자: PSNR 14.96 · SSIM 0.48 · 2,823,142 splats · 59 min · web 48.0 MB
⑦ 3D 타일 (원본 해상도 텍스처)
어떻게 만들었나: ④ 와 같은 메시·텍스처를 지도처럼 '타일' 로 나눴다. 처음에는 구역 8개를 작은 텍스처(512 px)로 보여 주고, 가까이 가면 그 구역이 원본 해상도 텍스처(최대 4096 px) 조각 394개로 바뀐다. ODM 의 타일 도구(Obj2Tiles)는 이 크기에서 디스크(26 GB)와 메모리(45.8 GB) 부족으로 실패해, texrecon 이 이미 아틀라스마다 나눈 조각을 그대로 타일로 썼다 (tiles_from_pieces.py).
- 가까이 가면 ④ 보다 훨씬 또렷하다 (웹 GLB 는 텍스처 1024)
- 처음 불러오는 양이 작다 (보이는 곳만)
- 가까이 가는 순간 타일이 바뀌며 잠깐 깜빡인다
- 형태는 ④ 와 같다 (3 cm 격자, 덤불 구멍)
- 전체 파일은 크다
이 3D 에서 볼 것
- 수영장 벽의 수심 표시·사다리까지 확대
- ④ 와 같은 자리에서 번갈아 보기
숫자: regions 8 · pieces 394 · files 402 · total 235.6 MB
방 스캔과 비교
| 방 | 수영장 | |
|---|---|---|
| 범위 | 3.5 m × 3.65 m | 38.2 m × 49.6 m |
| 라이다 깊이 프레임 | 1,572 | 11,589 |
| TSDF 격자 | 1 cm | 3 cm |
| 사진 일치도 PSNR | 17.55 | 16.39 |
| 화면 덮음 | 97.7% | 84.4% |
| 구멍 메운 뒤 덮음 | 99.2% | 86.5% |
다음에 할 것
- 가우시안(라이다 깊이+위치 보정): 나뭇잎처럼 면이 없는 것에 강하다
- RealityScan·WebODM: 사진 대부분이 제자리 회전이라 약할 것으로 예상, 실제로 확인
- 기준점(측량 좌표)에 묶기: 고해상도 사진을 찍은 자리가 측량 기준점이므로 아이폰 좌표를 실제 측량 좌표에 맞춰 드론 정사영상과 겹쳐 보기