scripts/run_folder.py annotates any folder or single image with the same
depth/edges/segmentation/chmv2 -> safetensors pipeline used by the dataset
scripts, without World-UAV-specific scene/dir filters. run_pipeline() gains
an optional records= parameter to bypass discovery for explicit inputs.
Resume now also recognizes modalities already present in a consolidated
.safetensors file, so a save_vis=False run can be resumed without redoing
GPU stages. --no-vis + --no-safetensors together is rejected instead of
silently running inference with no output.
psutil made optional in profiler.py (CPU-core fallback via os.cpu_count())
since it was missing from the local test venv, unblocking 7 pre-existing
tests unrelated to this change.
- config_loader: add base_gin_files() to exclude dataset-specific
pipeline_*.gin variants from default `python -m src.main` load
(pipeline_uav_visloc.gin was overriding pipeline.gin)
- main.py: use base_gin_files() in the --gin override branch too
- pipeline.gin: source None (both DB + query) — was 'query',
which silently dropped all DB satellite crops from discovery
- README/CLAUDE/docs: sync source default, tensor format spec
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
All modalities are stored as dense spatial tensor maps (not RGB renders):
- depth/edge/chm: [1,H,W] float16 continuous values
- segm: [1,H,W] uint8 dense class ID map (0-16)
Add training code examples: one-hot encoding, per-class embedding,
aux-encoder injection. Document why tensors over RGB renders (70% info
loss + OOD for DINOv3).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Verified on 128 satellite images after dark water fix (std threshold
0.08 → 0.18). Document calibrated thresholds and measured improvements.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- All datasets now use unified 17 classes (not 11/14/16 separately)
- Document seg post-processing (dark water fix, wetland reclassify)
- Update test count (149), time estimates (17 prompts), palette
- Add seg_classes.py to project structure
- Fix outdated references throughout
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Extract shared UNIFIED_PROMPTS (17 classes, ID 0-16) into
scripts/seg_classes.py for transfer learning compatibility.
Both run_gta_uav.py and run_uav_visloc.py now import from it.
Key change: swimming pool moved from ID 13 → ID 16, so sports field
(ID 13), muddy ground (14), embankment (15) have stable IDs across
both datasets. Missing classes in a dataset = 0 pixels = 0 loss.
Updated: README, CLAUDE.md, segmentation_class_analysis.md, palette.
Deleted old UAV_VisLoc segmentations (need regeneration with 17 classes).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add scripts/run_gta_uav.py for GTA-UAV-LR (48K images, GTA V synthetic)
- 14 segmentation classes: 11 base + bare soil, rooftop, swimming pool
- Fix source filter to recognize "satellite" folder (alongside "DB")
- Document GTA-UAV characteristics in segmentation_class_analysis.md
- Update README and CLAUDE.md with GTA-UAV support
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Bundle all per-image modalities (depth, edge, chm, segm) into a single
.safetensors file for fast training DataLoader reads (~0.1ms zero-copy mmap
vs ~5ms for 4x PNG). Adds consolidate stage after main pipeline stages,
save_safetensors/cleanup_npy config flags, resume support, and 10 new tests.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>