- Add scripts/run_gta_uav.py for GTA-UAV-LR (48K images, GTA V synthetic) - 14 segmentation classes: 11 base + bare soil, rooftop, swimming pool - Fix source filter to recognize "satellite" folder (alongside "DB") - Document GTA-UAV characteristics in segmentation_class_analysis.md - Update README and CLAUDE.md with GTA-UAV support Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2.6 KiB
2.6 KiB
CLAUDE.md
Что это за проект
Пайплайн автоматической генерации 4 вспомогательных модальностей (depth, edges, segmentation, canopy height) из RGB-изображений аэрофотоснимков. Используется для подготовки обучающих данных для NADEZHDA — системы cross-view geolocalization (БПЛА ↔ спутник).
Быстрый старт
# World-UAV (973K images, основной датасет)
python -m src.main
# UAV_VisLoc (81K images)
python scripts/run_uav_visloc.py
# GTA-UAV-LR (48K images, synthetic GTA V)
python scripts/run_gta_uav.py
# Тесты (143 шт, без GPU)
python -m pytest src/tests/ -v
Ключевые решения
- Формат выхода: SafeTensors (zero-copy mmap, ~0.1ms чтение). Не NPY, не PNG, не
.pt. - Структура директорий: модальность = папка (
depth/,edge/,segm/,chm/,safetensors/), не суффикс файла. - Стадии последовательно — одна модель в GPU за раз (экономия VRAM).
- Сегментация: SegEarth-OV3 (SAM 3.1 + open-vocabulary prompts). 11 классов для World-UAV, 16 для UAV_VisLoc, 14 для GTA-UAV.
- CHMv2 только FP32 — в FP16 NaN.
Структура кода
src/main.py — точка входа, оркестрация стадий
src/augmentor/ — inference, I/O, dataset discovery
src/conf/ — gin-configurable dataclasses
src/nn/ — вендорированные DA3 + SegEarth-OV3
scripts/ — run_uav_visloc.py, migrate_layout.py
in/config_files/ — gin-конфиги
docs/ — документация
Конфигурация
Все параметры через gin. CLI override: --gin "PipelineConfig.source = 'db'".
Для нового датасета — создать скрипт в scripts/ (пример: run_uav_visloc.py), не новый gin-файл.
Что НЕ делать
- Не добавлять классы сегментации в
segmentation.ginдля конкретного датасета — классы специфичны для датасета, задавать в скрипте. - Не использовать
.pt(torch.save) для хранения тензоров — pickle, медленно. - Не рендерить depth/seg в RGB colormap для обучения — OOD для DINOv3, потеря информации.