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>
Default 0.3 was too aggressive — dark water, muddy ground, and
uniform textures fell below confidence threshold. Lower to 0.1
to reduce false background pixels.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Background analysis on crop_0_0/0_1 showed wetland/embankment areas
(dark grey-green, avg RGB 101,103,97) between water bodies not covered
by any existing class. Add:
- "muddy ground and wetland" (ID 14)
- "embankment and levee" (ID 15)
Total: 14 → 16 classes for UAV_VisLoc.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Relative 'in/weights' path fails when script is run from outside the
project root. Use _PROJECT_ROOT / "in" / "weights" instead.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
SegConfig(prompts=None) crashes on len(None) when gin config is not
loaded. Pass the 11-class prompt list directly.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>