7 Commits

Author SHA1 Message Date
pikaliov
3b5778e303 Unify segmentation classes (17) across GTA-UAV and UAV_VisLoc
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>
2026-04-17 22:06:10 +03:00
pikaliov
5c4a3a1371 Lower segmentation threshold to 0.1 for UAV_VisLoc
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>
2026-04-17 21:12:43 +03:00
pikaliov
5ff4effddb Add muddy ground and embankment classes for UAV_VisLoc
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>
2026-04-17 21:08:45 +03:00
pikaliov
30252a53f8 Add 3 segmentation classes for UAV_VisLoc: bare soil, rooftop, sports field
Analysis of scene 01 showed 29% background pixels, mainly caused by:
- Plowed/bare fields (no crop match) → add "bare soil and plowed field"
- Dark/textured roofs missed by "building" → add "roof and rooftop"
- Sports fields/playgrounds → add "sports field and playground"

Total: 11 → 14 classes. Palette extended with 3 new colors.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 21:00:02 +03:00
pikaliov
c091bd89c0 Fix: use absolute weights_dir in UAV_VisLoc script
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>
2026-04-17 20:42:25 +03:00
pikaliov
3d5e9c880f Fix: pass explicit prompts to SegConfig in UAV_VisLoc script
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>
2026-04-17 17:21:01 +03:00
pikaliov
6f04856b6b Add UAV_VisLoc annotation script + support drone folder naming
- Add scripts/run_uav_visloc.py for UAV_VisLoc_processed dataset (81K images)
- Add gin config for UAV_VisLoc (pipeline_uav_visloc.gin)
- Fix source filter and is_query_record to recognize "drone" folder
  (UAV_VisLoc uses "drone" instead of "query")

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 17:18:38 +03:00