From 3143dc7bf2ac3c2dce1fa89a46fda64fc8812791 Mon Sep 17 00:00:00 2001 From: pikaliov Date: Sat, 18 Apr 2026 02:53:19 +0300 Subject: [PATCH] =?UTF-8?q?Update=20docs=20with=20post-processing=20result?= =?UTF-8?q?s:=20bg=2057%=20=E2=86=92=205%?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- CLAUDE.md | 3 ++- README.md | 4 ++-- docs/segmentation_class_analysis.md | 17 +++++++++++++++-- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 3377d1e..92a119c 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -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. diff --git a/README.md b/README.md index f0debfb..bfaf6f5 100644 --- a/README.md +++ b/README.md @@ -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) diff --git a/docs/segmentation_class_analysis.md b/docs/segmentation_class_analysis.md index b39f96e..30df4e3 100644 --- a/docs/segmentation_class_analysis.md +++ b/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). + --- ## Оценка влияния на производительность