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/`), не суффикс файла.
|
- **Структура директорий:** модальность = папка (`depth/`, `edge/`, `segm/`, `chm/`, `safetensors/`), не суффикс файла.
|
||||||
- **Стадии последовательно** — одна модель в GPU за раз (экономия VRAM).
|
- **Стадии последовательно** — одна модель в GPU за раз (экономия VRAM).
|
||||||
- **Сегментация:** SegEarth-OV3 (SAM 3.1 + open-vocabulary prompts). **17 unified классов** для всех датасетов (единые ID для transfer learning).
|
- **Сегментация:** 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.
|
- **CHMv2 только FP32** — в FP16 NaN.
|
||||||
|
|
||||||
## Структура кода
|
## Структура кода
|
||||||
@@ -68,3 +68,4 @@ docs/ — документация
|
|||||||
- Не использовать `.pt` (torch.save) для хранения тензоров — pickle, медленно.
|
- Не использовать `.pt` (torch.save) для хранения тензоров — pickle, медленно.
|
||||||
- Не рендерить depth/seg в RGB colormap для обучения — OOD для DINOv3, потеря информации.
|
- Не рендерить depth/seg в RGB colormap для обучения — OOD для DINOv3, потеря информации.
|
||||||
- Не снижать threshold ниже 0.1 — увеличивает false positives без значимого улучшения recall.
|
- Не снижать 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).
|
\* GTA-UAV: `seg_reclassify_wetland=True` — wetland переклассифицируется в vegetation/bare soil (ложные срабатывания на холмах GTA V).
|
||||||
|
|
||||||
**Post-processing** (после SegEarth-OV3):
|
**Post-processing** (после SegEarth-OV3):
|
||||||
- `seg_fix_dark_water=True` (все датасеты) — background на тёмных изображениях (mean_rgb < 0.24) → water
|
- `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 (коричневый)
|
- `seg_reclassify_wetland=True` (только GTA-UAV) — wetland → vegetation (зелёный) / bare soil (коричневый). Drone: ложный wetland 14% → 0%.
|
||||||
|
|
||||||
> Подробный анализ: [`docs/segmentation_class_analysis.md`](docs/segmentation_class_analysis.md)
|
> Подробный анализ: [`docs/segmentation_class_analysis.md`](docs/segmentation_class_analysis.md)
|
||||||
|
|
||||||
|
|||||||
@@ -314,10 +314,23 @@ GTA-UAV-LR — синтетический датасет, сгенерирова
|
|||||||
```python
|
```python
|
||||||
from scripts.seg_classes import UNIFIED_PROMPTS
|
from scripts.seg_classes import UNIFIED_PROMPTS
|
||||||
SegConfig(threshold=0.15, prompts=UNIFIED_PROMPTS)
|
SegConfig(threshold=0.15, prompts=UNIFIED_PROMPTS)
|
||||||
# UNIFIED_PROMPTS содержит 17 классов (ID 0-16)
|
# + seg_fix_dark_water=True, seg_reclassify_wetland=True
|
||||||
# GTA-UAV: активны все кроме 14, 15 (muddy/embankment — нет в GTA V)
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Результаты 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