How tj12323/geopurify works
GeoPurify is a training and inference framework for open-vocabulary 3D segmentation. Its workflow prepares RGB-D views and point clouds, trains a sparse 3D student to distill geometric affinities from a frozen 3D teacher, then uses those affinities to refine 2D VLM features lifted into 3D before evaluation. The README documents ScanNetV2, Matterport3D, and ScanNet200 support. Training, validation, loader, projection, and model excerpts support the shown runtime links; the README supplies the two-stage method and capability details where implementation excerpts are incomplete.
Main entry points: validation.py Segmentation inference · affinity_module.py Affinity trainer and purifier · data_loader_ablation.py ScanNet loader · data_loader_matterport.py Matterport loader
Components 16
Data preparation
- Dataset preprocessing
dataset/scripts/preprocess
Scene inputs
- ScanNet loader
dataset/data_loader_ablation.py - Matterport loader
dataset/data_loader_matterport.py - Camera and scene data
models/scene/scene.py - Point-image projection
models/utils/fusion_util.py
Geometric model
- Affinity trainer and purifier
models/affinity_module.py - Sparse affinity network
models/affinity_module.py
Train and evaluate
- Geometric distillation
run/train.py - Segmentation inference
run/validation.py - Segmentation metrics
util/util.py - Result visualization
models/utils/visualization.py
Other components
- Researcher
- RGB-D and point-cloud datasets
- Frozen 3D SSL teacher
- Frozen 2D VLM
- Segmentation results
Connections 20
- Researcher → Geometric distillation: starts training
- Researcher → Segmentation inference: runs inference
- RGB-D and point-cloud datasets → Dataset preprocessing: provides source data
- Dataset preprocessing → ScanNet loader: prepares scenes
- Dataset preprocessing → Matterport loader: prepares scenes
- ScanNet loader → Camera and scene data: loads cameras
- Matterport loader → Camera and scene data: loads cameras
- ScanNet loader → Point-image projection: maps points to views
- Matterport loader → Point-image projection: maps points to views
- Geometric distillation → ScanNet loader: constructs training data
- Geometric distillation → Affinity trainer and purifier: trains
- Affinity trainer and purifier → Sparse affinity network: learns affinities
- Frozen 3D SSL teacher → Affinity trainer and purifier: provides embeddings
- Segmentation inference → Matterport loader: constructs evaluation data
- Segmentation inference → Affinity trainer and purifier: runs inference
- Frozen 2D VLM → Affinity trainer and purifier: provides 2D semantics
- Affinity trainer and purifier → Segmentation results: produces predictions
- Segmentation inference → Segmentation metrics: computes scores
- Segmentation inference → Result visualization: renders results
- Segmentation inference → Segmentation results: reports evaluation