Add SUM Parts reproduction and Seosan Myeongcheon application pipeline
Reproduces the SUM Parts (CVPR 2025) face-labeling benchmark on a single consumer GPU, then applies it to drone-photogrammetry road survey meshes. Verified on RTX 3060 12GB / WSL2 Ubuntu 22.04 / CUDA 11.8 / torch 2.0.1: - CUDA extensions build (pointnet2_batch, pointops, chamfer_dist, emd, subsampling) - PointNet 100 epochs reaches mIoU 17.19, matching the paper's reported 15.1 - OBJ -> PLY conversion round-trips through the model and yields per-point predictions Four upstream source patches, all idempotent, originals preserved: - numpy aliases removed in 1.24 (np.long etc.) and collections ABCs moved in python 3.10 - the blind test split ships label = -1, which crashed ConfusionMatrix - mode=val referenced `epoch` before assignment Documents the traps that cost the most time, including VRAM overflow silently falling back to host RAM on WSL2 (25-100x slowdown, no OOM) and the colour scale mismatch between r/g/b float32 and red/green/blue uint8. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
# sum-parts-test
|
||||
|
||||
드론 사진측량 메시를 **건물 / 수목 / 차량 / 지면**으로 분할하기 위한
|
||||
[SUM Parts](https://github.com/tudelft3d/SUM-Parts-Benchmarks) (CVPR 2025) 재현 및 적용 작업.
|
||||
|
||||
대상 데이터: 서산 명천 도로 프로젝트 — ContextCapture OBJ 6블록, EPSG:5186.
|
||||
|
||||
## 이 레포에 있는 것
|
||||
|
||||
| 경로 | 내용 |
|
||||
|---|---|
|
||||
| [SETUP.md](SETUP.md) | **새 머신에서 시작하는 절차** — 여기부터 |
|
||||
| [docs/pipeline.html](docs/pipeline.html) | 6단계 공정 정의 (브라우저로 열 것) |
|
||||
| [docs/SUM-Parts-검토노트.md](docs/SUM-Parts-검토노트.md) | 트러블슈팅 16건, 데이터 스키마 실측, 라이선스 |
|
||||
| [scripts/](scripts/) | 환경 구축 · 학습 · 평가 · 변환 스크립트 47개 |
|
||||
|
||||
데이터와 체크포인트는 커밋하지 않는다(`.gitignore`). 스크립트로 재생성한다.
|
||||
|
||||
## 요약
|
||||
|
||||
- **모델**: PointVector (논문 mIoU 70.0%, 번들 최고이자 최속)
|
||||
- **학습 자산**: SUM Parts face 트랙 13클래스 → 우리 4클래스로 통합
|
||||
- **제약**: 저자가 학습 가중치를 공개하지 않아 직접 학습이 유일한 경로
|
||||
- **VRAM**: 논문 설정 `voxel_max 64000`은 16.5GB 필요 → 12GB 카드 불가, 24GB 필요
|
||||
|
||||
## 빠른 시작
|
||||
|
||||
```bash
|
||||
bash scripts/setup_env.sh
|
||||
bash scripts/setup_pointnext.sh
|
||||
bash scripts/patch_numpy_aliases.sh
|
||||
bash scripts/patch_unlabeled_test.sh
|
||||
bash scripts/patch_val_mode.sh
|
||||
python scripts/verify_env.py # ALL OK 확인
|
||||
|
||||
bash scripts/download_data.sh all # HF 게이트 수동 수락 선행
|
||||
bash scripts/prepare_full_split.sh
|
||||
bash scripts/link_data.sh
|
||||
|
||||
bash scripts/launch_overnight.sh pointvector-xl
|
||||
```
|
||||
|
||||
자세한 것은 [SETUP.md](SETUP.md).
|
||||
|
||||
## 라이선스
|
||||
|
||||
스크립트와 문서는 자유롭게 쓰되, 참조하는 SUM Parts는
|
||||
**데이터 CC BY-NC 4.0 / 코드 GPL-3.0**이다. 상업 이용은 원저자 허락이 필요하다.
|
||||
Reference in New Issue
Block a user