Update docs with post-processing results: bg 57% → 5%
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>
This commit is contained in:
@@ -34,7 +34,7 @@ python -m pytest src/tests/ -v
|
||||
- **Структура директорий:** модальность = папка (`depth/`, `edge/`, `segm/`, `chm/`, `safetensors/`), не суффикс файла.
|
||||
- **Стадии последовательно** — одна модель в GPU за раз (экономия VRAM).
|
||||
- **Сегментация:** SegEarth-OV3 (SAM 3.1 + open-vocabulary prompts). **17 unified классов** для всех датасетов (единые ID для transfer learning).
|
||||
- **Post-processing:** два правила после SegEarth — dark water fix (background → water для тёмных изображений) и wetland reclassify (для GTA-UAV).
|
||||
- **Post-processing:** два правила после SegEarth — dark water fix (mean<0.24, std<0.18 → water; satellite bg 57%→5%) и wetland reclassify (GTA-UAV: ложный wetland 14%→0%).
|
||||
- **CHMv2 только FP32** — в FP16 NaN.
|
||||
|
||||
## Структура кода
|
||||
@@ -68,3 +68,4 @@ docs/ — документация
|
||||
- Не использовать `.pt` (torch.save) для хранения тензоров — pickle, медленно.
|
||||
- Не рендерить depth/seg в RGB colormap для обучения — OOD для DINOv3, потеря информации.
|
||||
- Не снижать threshold ниже 0.1 — увеличивает false positives без значимого улучшения recall.
|
||||
- Не менять `dark_water_std_thr` (0.18) — калибровано на GTA-UAV ocean (std 0.10-0.15). Ниже — не ловит, выше — false positives на normal images.
|
||||
|
||||
@@ -136,8 +136,8 @@ PipelineConfig.source = 'db' # 'db' = спутник, 'query' = Б
|
||||
\* GTA-UAV: `seg_reclassify_wetland=True` — wetland переклассифицируется в vegetation/bare soil (ложные срабатывания на холмах GTA V).
|
||||
|
||||
**Post-processing** (после SegEarth-OV3):
|
||||
- `seg_fix_dark_water=True` (все датасеты) — background на тёмных изображениях (mean_rgb < 0.24) → water
|
||||
- `seg_reclassify_wetland=True` (только GTA-UAV) — wetland → vegetation (зелёный) / bare soil (коричневый)
|
||||
- `seg_fix_dark_water=True` (все датасеты) — background на тёмных изображениях (mean < 0.24, std < 0.18) → water. Satellite GTA-UAV: bg 57% → 5%.
|
||||
- `seg_reclassify_wetland=True` (только GTA-UAV) — wetland → vegetation (зелёный) / bare soil (коричневый). Drone: ложный wetland 14% → 0%.
|
||||
|
||||
> Подробный анализ: [`docs/segmentation_class_analysis.md`](docs/segmentation_class_analysis.md)
|
||||
|
||||
|
||||
@@ -314,10 +314,23 @@ GTA-UAV-LR — синтетический датасет, сгенерирова
|
||||
```python
|
||||
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)
|
||||
# + seg_fix_dark_water=True, seg_reclassify_wetland=True
|
||||
```
|
||||
|
||||
### Результаты post-processing (проверено на 128 satellite + drone)
|
||||
|
||||
| Метрика | Без post-processing | С post-processing |
|
||||
|---|---|---|
|
||||
| Satellite background | 57.6% | **5.3%** |
|
||||
| Satellite >50% bg images | 56.7% | **1%** |
|
||||
| Satellite water | 3.7% | **58.5%** |
|
||||
| Drone wetland (ложный) | 14.3% | **0%** |
|
||||
| Drone background | 11.4% | ~8% |
|
||||
|
||||
Два правила:
|
||||
1. **Dark water fix** (`seg_fix_dark_water=True`): если background-пиксели имеют mean_rgb < 0.24 и std < 0.18, переклассифицировать в water (class 4). Пороги калиброваны на GTA-UAV ocean: mean ~0.12-0.18, std ~0.10-0.15.
|
||||
2. **Wetland reclassify** (`seg_reclassify_wetland=True`): промпт "muddy ground and wetland" ложно срабатывает на холмистой местности GTA V (трава + грунт). Переклассификация по цвету: зелёный → vegetation (3), коричневый → bare soil (11).
|
||||
|
||||
---
|
||||
|
||||
## Оценка влияния на производительность
|
||||
|
||||
Reference in New Issue
Block a user