Files
sum-parts-test/README.md
T
nbrightandClaude Opus 5 e529c449b5 Add the paper study material and set the bare-earth goal
Six papers converted to Markdown with the local doc2md tool, figures extracted
and annotated. The tool's venv had a CPU-only torch, so marker-pdf silently ran
on CPU and stalled; swapping in 2.5.1+cu121 dropped a paper from "hung after six
minutes" to three. Gemini then described all 86 figures in place, below each
original caption.

The PDFs themselves are gitignored - 88 MB of public arXiv downloads that
convert_papers.sh regenerates. The .md and figures are tracked, because the
annotations took a separate pass and do not reproduce byte-for-byte.

sum-parts-explained.html gains two tabs:

- PointVector. Why representing a scalar feature as a rotated 3D vector buys
  anisotropic aggregation without attention's cost, and why the paper predicts
  two independent angles rather than a rotation matrix whose nine elements are
  interdependent.
- Bare Earth. Reframes the task as ground vs not-ground, and separates the five
  boundaries by their nature. Four of them are cuts; the slope boundary is the
  one that must NOT be cut, which is why "horizontal means ground" destroys road
  cut and fill. Notes that SUM Parts is flat Helsinki and cannot teach slopes at
  all, so that part needs a geometric filter rather than more training.

NEXT.md carries the goal forward: separate bare earth from the rest as OBJ
meshes, then reclassify the remainder. Removing the ground first is sound -
it is 24-40% of the points, and without it the remaining objects fall apart
into separate connected components instead of being joined through the floor.

The gap that blocks step 4 is named: mesh_to_ply.py samples points without
recording which face each came from, so there is no way back to the mesh yet.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-24 12:53:50 +09:00

3.1 KiB

sum-parts-test

드론 사진측량 메시를 건물 / 수목 / 차량 / 지면으로 분할하기 위한 SUM Parts (CVPR 2025) 재현 및 적용 작업.

대상 데이터: 서산 명천 도로 프로젝트 — ContextCapture OBJ 6블록, EPSG:5186.

문서

경로 내용
NEXT.md 다음 세션 시작점 — 목표와 프롬프트
STATUS.md 현재 상태·결과·미해결 문제 — 이어받을 때 여기부터
SETUP.md 1단계 — 환경 구축 (GPU 불필요)
TRAIN.md 2단계 — 학습 (GPU 필요)
docs/sum-parts-explained.html 학습 정리 — 용어·모델 계보·PointVector 원리·bare earth 전략
docs/pipeline.html 전체 6단계 공정 정의 (브라우저로 열 것)
docs/SUM-Parts-검토노트.md 트러블슈팅 16건, 데이터 스키마 실측, 라이선스
scripts/ 환경 구축 · 학습 · 평가 · 변환 스크립트

데이터와 체크포인트는 커밋하지 않는다(.gitignore). 스크립트로 재생성한다.

왜 두 단계로 나눴나

CUDA 확장 빌드는 nvcc 컴파일이지 GPU 실행이 아니다. 데이터 다운로드도 마찬가지다. 오래 걸리는 작업(빌드 50분 + 데이터 30분)이 전부 GPU 없이 되므로, 카드가 남의 작업에 물려 있어도 1단계를 미리 끝낼 수 있다.

GPU 시간
1단계 · 환경 구축 불필요 ~80분
2단계 · 학습·평가 필요 3~6시간

2단계는 카드가 바쁘면 실패하지 않고 빌 때까지 기다린다.

빠른 시작 (무인)

# HF 토큰 — 유일한 수동 작업. 게이트는 계정 단위라 토큰만 옮기면 된다
mkdir -p ~/.cache/huggingface && echo hf_xxxxx > ~/.cache/huggingface/token

# 1단계 — GPU 불필요
bash scripts/selfcheck.sh                     # 스크립트 무결성
RUN_DRYRUN=1 bash scripts/run_setup.sh        # 전제조건 검사
setsid nohup bash scripts/keepalive.sh setup > ~/keepalive-setup.out 2>&1 &

# 2단계 — GPU 필요. 바쁘면 빌 때까지 대기
setsid nohup bash scripts/keepalive.sh train > ~/keepalive-train.out 2>&1 &

확인:

cat ~/sum-parts/runs/setup/STATUS
cat ~/sum-parts/runs/train/STATUS
cat ~/sum-parts/runs/coarse_eval/coarse.txt   # 4클래스 통합 성적 ← 핵심

멈춰도 이어간다 — 감시자가 재기동하고, 학습은 체크포인트에서 재개한다.

요약

  • 모델: PointVector (논문 mIoU 70.0 %, 번들 최고이자 최속)
  • 학습 자산: SUM Parts face 트랙 13클래스 → 우리 4클래스로 통합
  • 제약: 저자가 학습 가중치를 공개하지 않아 직접 학습이 유일한 경로
  • VRAM: 논문 설정 voxel_max 64000은 약 16.5 GB 필요 → 12 GB 카드 불가, 24 GB 필요

라이선스

스크립트와 문서는 자유롭게 쓰되, 참조하는 SUM Parts는 데이터 CC BY-NC 4.0 / 코드 GPL-3.0이다. 상업 이용은 원저자 허락이 필요하다.