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>
This commit is contained in:
@@ -179,7 +179,15 @@ SegConfig.default_resolution = 1008
|
||||
|
||||
---
|
||||
|
||||
## Конфигурация для UAV_VisLoc: 16 классов
|
||||
## Unified 17 классов для transfer learning
|
||||
|
||||
UAV_VisLoc и GTA-UAV используют **единый набор 17 классов** (`scripts/seg_classes.py`). Это обеспечивает совместимость class IDs при transfer learning (pretrain GTA-UAV → fine-tune UAV_VisLoc). Не каждый датасет содержит пиксели каждого класса — класс с 0 пикселей просто не даёт вклад в loss.
|
||||
|
||||
Источник единой конфигурации: `scripts/seg_classes.py:UNIFIED_PROMPTS`.
|
||||
|
||||
---
|
||||
|
||||
## Конфигурация для UAV_VisLoc: 17 классов (unified)
|
||||
|
||||
UAV_VisLoc_processed — другой датасет (81K images, 11 сцен, DB + drone, 256x256). Анализ сегментации на scene 01 (2496 images) выявил 29% background — значительно больше, чем у World-UAV после настройки.
|
||||
|
||||
@@ -227,27 +235,13 @@ UAV_VisLoc содержит больше экстремальных сцен:
|
||||
- Однородные текстуры без семантических признаков
|
||||
- Это нормально — background здесь семантически корректен
|
||||
|
||||
### Полная конфигурация UAV_VisLoc (16 классов)
|
||||
### Конфигурация (unified 17 классов)
|
||||
|
||||
```python
|
||||
SegConfig(threshold=0.1, prompts=[
|
||||
"background", # 0
|
||||
"building", # 1
|
||||
"road", # 2
|
||||
"vegetation", # 3
|
||||
"water", # 4
|
||||
"sand and gravel ground", # 5
|
||||
"rocky terrain", # 6
|
||||
"farmland", # 7
|
||||
"railway", # 8
|
||||
"parking lot", # 9
|
||||
"sidewalk", # 10
|
||||
"bare soil and plowed field", # 11
|
||||
"roof and rooftop", # 12
|
||||
"sports field and playground", # 13
|
||||
"muddy ground and wetland", # 14
|
||||
"embankment and levee", # 15
|
||||
])
|
||||
from scripts.seg_classes import UNIFIED_PROMPTS
|
||||
SegConfig(threshold=0.1, prompts=UNIFIED_PROMPTS)
|
||||
# UNIFIED_PROMPTS содержит 17 классов (ID 0-16)
|
||||
# UAV_VisLoc: активны все кроме 16 (swimming pool — редко)
|
||||
```
|
||||
|
||||
### Расширенная палитра (16 классов)
|
||||
@@ -315,25 +309,13 @@ GTA-UAV-LR — синтетический датасет, сгенерирова
|
||||
| `sports field` | Есть в GTA V, но редко виден сверху (стадионы закрыты) |
|
||||
| `muddy ground` | Не актуален для GTA V (нет болот в Лос-Сантосе) |
|
||||
|
||||
### Конфигурация
|
||||
### Конфигурация (unified 17 классов)
|
||||
|
||||
```python
|
||||
SegConfig(threshold=0.15, prompts=[
|
||||
"background", # 0
|
||||
"building", # 1
|
||||
"road", # 2
|
||||
"vegetation", # 3
|
||||
"water", # 4
|
||||
"sand and gravel ground", # 5
|
||||
"rocky terrain", # 6
|
||||
"farmland", # 7
|
||||
"railway", # 8
|
||||
"parking lot", # 9
|
||||
"sidewalk", # 10
|
||||
"bare soil and plowed field", # 11
|
||||
"roof and rooftop", # 12
|
||||
"swimming pool", # 13
|
||||
])
|
||||
from scripts.seg_classes import UNIFIED_PROMPTS
|
||||
SegConfig(threshold=0.15, prompts=UNIFIED_PROMPTS)
|
||||
# UNIFIED_PROMPTS содержит 17 классов (ID 0-16)
|
||||
# GTA-UAV: активны все кроме 14, 15 (muddy/embankment — нет в GTA V)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user