Index
2026-04-17 — Analysis

HCPT Point Map Normalization 분포 분석

EgoX2_exp2 | --pt_max_abs=100 필터 기준 적절성 검증

TL;DR

3660
최종 clip 수
10.98m
중앙값 (max|xyz|)
93.9%
100m 이하 비율
101
100m 필터 탈락

1 배경/목적

scripts/build_hcpt_manifest.py는 VGGT/ViPE reconstruction 실패 클립을 제거하기 위해 --pt_max_abs=100 필터를 사용한다. 이 값은 "max(|min|, |max|) > 100m이면 reconstruction 폭발로 간주"하는 경험적 기준이다.

본 분석의 목적은 이 기준이 실제 데이터 분포에 비추어 얼마나 적절한지를 수치로 확인하고, 필터 강도를 조정할 여지가 있는지 파악하는 것이다. 특히 본 학습 시작 직전에 데이터 구성을 최종 확정해야 하므로 시급성이 있다.

2 작업 내용

build_hcpt_manifest.py의 필터링 파이프라인을 재현하여 단계별 탈락 수를 집계했다. PT가 존재하는 3761개 클립의 norm_params.json에서 max(|min|, |max|) 값을 추출하여 분포 통계를 계산했다.

분석 대상

3 결과

필터링 파이프라인 단계별 탈락

단계탈락 수남은 수잔존 비율
vipe 원본3899100%
RGB/prior 누락03899100%
PT 파일 누락138 (3.5%)376196.5%
100m 스케일 필터101 (2.7%)366093.9%

최종 split: train 3318 / val 342

max|xyz| 분포 통계 (PT 존재 3761개)

통계량
min1.74m
median (P50)10.98m
mean49.39m
max2600.63m
std239.58m

Percentile 분포

Percentile비고
P12.67m
P54.22m
P257.45m
P5010.98m중앙값 — 대부분 실내/단거리
P7524.84m
P9039.27m
P9559.90m50m 컷 시 추가 탈락 시작 구간
P991555.96m완전한 reconstruction 실패

구간별 분포

구간클립 수비율
0–2m30.1%
2–5m3348.9%
5–10m136436.3% (최다)
10–20m90324.0%
20–50m90724.1%
50–100m1494.0%
100–200m190.5%
200–500m130.3%
500–1000m60.2%
1000m+631.7% (명백한 폭발)
핵심 관찰: 전체의 ~93%가 50m 이내. 100m 컷 탈락 101개 중 63개(62%)는 1000m+로 완전한 reconstruction 실패.
P99 이상 과반수: 1000m+ 클립 63개는 mean(49m)·std(240m) 감안 시 명확한 이상치. 100m 기준이 이들을 올바르게 제거함.

4 Takeaway

100m 필터 기준은 합리적이다. 분포의 중앙값(11m)과 P90(39m)을 보면 정상 클립은 대부분 50m 이내이고, 탈락하는 101개는 P99 기준 1556m에 달하는 명확한 이상치들이다.

PT 파일 누락(138개, 3.5%)과 100m 컷(101개, 2.7%)을 합쳐도 원본의 6.1%만 탈락하여 최종 3660 clip을 확정했다. 본 학습 데이터셋으로 충분하다.

필터 하향 검토 여지

P95 = 60m이므로, 50m로 내리면 추가로 약 149개(4.0%)가 탈락하여 3511 clip으로 줄어든다. 50–100m 구간 클립의 시각적 품질을 확인한 후 결정하는 것이 바람직하다. 지금은 100m로 진행.

5 Next Steps