fuse_proj: Initial operational package for 3 researchers (Pavlenko/Blizno/Moroz)

Multimodal fusion research on StripNet+GTA-UAV proxy:
- 3 independent fusion tracks: condition-aware (A), token/bottleneck (B), role-aware (C)
- Shared interfaces, protocol, dataset audit, baseline benchmarks
- Canonical version-chain references to vault (SPEC, ANALYSIS, TRIAGE)
- Personalized task plans and decision tables for each researcher
- 3 generated DOCX task assignment files with milestones and DoD checklist
- Full modality dropout diagnostics and missing-modality robustness requirements
- Data contract, benchmark registry, experiment tracking infrastructure

Operational documents:
- docs/00_project/: MERIDIAN context, protocol, repository reuse guide, experiment specification
- docs/01_tasks/: Master assignment + 3 individual researcher tracks + joint integration
- docs/02_references/: Core literature, version-chain bases, code maps
- docs/03_codebase_guides/: Existing code snapshots from vault
- scripts/: gen_task_plans.js (DOCX generation), placeholder infrastructure
- vendor_reference/: Snapshots of caption_test, depth_edges_annotate, existing SOFIA/SegModel code
- reports/, results/, experiments/: Shared output structure for all 3 researchers

3 DOCX files generated from gen_task_plans.js (Times New Roman 14pt, GOST format):
- План_заданий_Павленко_БВ.docx (Condition-Aware track, fusion API owner)
- План_заданий_Близно_МВ.docx (Token/Bottleneck track, benchmark owner)
- План_заданий_Мороз_ЕС.docx (Role-Aware track, data contract owner)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
Pikaliov
2026-06-11 17:16:57 +03:00
commit 2c6a00a4ca
155 changed files with 39765 additions and 0 deletions

View File

@@ -0,0 +1,103 @@
# Контекст: место проекта в системе MERIDIAN
Этот документ объясняет, частью какой большой системы является fuse_proj, почему эксперимент поставлен именно на StripNet и GTA-UAV и что произойдёт с победившей архитектурой дальше. Понимание этого контекста обязательно для всех трёх сотрудников: оно определяет вторичные критерии выбора архитектуры.
## 1. Большая система: MERIDIAN
MERIDIAN — асимметричная TeacherStudent система кросс-видовой геолокализации БПЛА (UAV ↔ satellite) с привилегированными модальностями (LUPI/KD) и лёгким edge-инференсом.
- **Задача:** Cross-View Geo-Localization (CVGL) — поиск satellite tile, соответствующего UAV-снимку, без GPS.
- **Teacher (cloud, training-time):** frozen DINOv3-L + дополнительные модальности (depth, CHM, segmentation, text) от готовых foundation-моделей. Teacher видит всё, его задача — построить максимально информативный fused-эмбеддинг.
- **Student (edge, inference-time):** компактный RGB-only backbone (SOFIA), Jetson Orin NX, INT8 TensorRT, <50 мс. Student видит только RGB sat + RGB UAV и учится у Teacher через feature-KD.
```
═══ Training-time (cloud) ════════════════════════════════════════
Teacher (multimodal, frozen):
T_main DINOv3-L 🔵 готовый
T_depth Depth-Anything-V3 🔵 готовый
T_chm CHMv2 (canopy height map) 🔵 готовый
T_seg SegEarth / SegFormer 🔵 готовый
T_text DGTRS-CLIP / RemoteCLIP 🔵 готовый
Fusion ??? ← ПРЕДМЕТ ЭТОГО ПРОЕКТА 🟢 наш
↓ fused privileged embedding
KD bridge → Student (RGB-only, edge)
═══════════════════════════════════════════════════════════════════
```
**Граница «готовое / своё»:** foundation-модели используются как есть и не модифицируются. Наша зона проектирования — fusion-механизм, объединяющий их выходы.
## 2. Восемь входных потоков Teacher
| # | Поток | View | Источник | Природа сигнала |
|---|---|---|---|---|
| 1 | RGB satellite | sat | датасет | основной визуальный якорь |
| 2 | Text caption satellite | sat | VLM (Qwen3-VL) | глобальная семантика сцены |
| 3 | CHM satellite | sat | CHMv2 | высота растительности/структура |
| 4 | Segmentation satellite | sat | SegFormer, 17 классов | land-cover semantics |
| 5 | RGB UAV | uav | датасет | основной визуальный якорь |
| 6 | Text caption UAV | uav | VLM (Qwen3-VL) | глобальная семантика сцены |
| 7 | Relative depth UAV | uav | Depth Anything | геометрия/структура сцены |
| 8 | Segmentation UAV | uav | SegFormer, 17 классов | spatial semantics |
Геометрия асимметрична намеренно: CHM-модель обучена на nadir-снимках и работает только для satellite; metric depth на UAV ненадёжен, поэтому UAV получает relative depth. Это не дефект данных, а инвариант системы.
## 3. Зачем нужен этот проект (fuse_proj)
Прямой перебор fusion-архитектур на полном Teacher (DINOv3-L, ~300M+ params) слишком дорог: один полный прогон занимает часы и съедает всю VRAM. Поэтому архитектурный поиск выполняется на **быстром прокси**:
| Компонент | Полная система (цель) | Прокси (этот проект) |
|---|---|---|
| Visual backbone | DINOv3-L frozen + адаптеры | StripNet-small frozen + Conv-MONA |
| Датасет | World-UAV / реальные данные | GTA-UAV-LR (синтетика, полная разметка) |
| Модальности | те же 8 потоков | те же 8 потоков |
| Выход ветки | fused embedding | L2-нормированный descriptor [B, 1024] |
| Вопрос | — | какой КЛАСС fusion работает и почему |
Прокси сохраняет главное: frozen visual anchor + лёгкие обучаемые модули, те же модальности, тот же retrieval-протокол. Вывод «какой класс fusion-операторов выигрывает и за счёт чего» переносится; конкретные гиперпараметры — нет, и это нормально.
## 4. Что произойдёт с результатом
1. Победившее семейство (primary) + fallback фиксируются в decision record.
2. Primary-механизм переносится на Teacher DINOv3 (адаптация: CNN stage maps → ViT token maps) и входит в спецификацию fusion MERIDIAN.
3. Fused-эмбеддинг Teacher становится KD-таргетом для RGB-only Student.
4. Ваши diagnostics (вклад модальностей, gate statistics) станут инструментами анализа Teacher.
## 5. Вторичный критерий: устойчивость к отсутствию модальности
В production Teacher модальности могут отсутствовать или быть деградированными (нет caption у ~55% satellite tiles уже сейчас; depth/CHM могут быть зашумлены). Кроме того, на следующем этапе MERIDIAN планируется обучение с **modality dropout** (стохастическое отключение модальностей) — оно НЕ входит в ваше задание, но накладывает требование на архитектуру:
> **Fusion-оператор обязан оставаться well-posed, когда любая дополнительная модальность отсутствует (validity mask = 0): выход определён, конечен и осмыслен, RGB-путь не искажается.**
Сводка по классам операторов (из свежего аудита литературы, 2026-06):
| Класс | Поведение при отсутствии модальности | Вердикт |
|---|---|---|
| Cross-attention над пулом модальных токенов | softmax перенормируется на оставшиеся токены | безопасен by construction |
| FiLM / gating с zero-init (identity-at-init) | выпавшая модальность даёт identity | безопасен при корректной init |
| Gated additive residual | residual = 0 → чистый RGB-путь | безопасен при корректной init |
| Чисто multiplicative gating (выход = RGB × f(aux)) | near-zero aux уничтожает RGB-сигнал | опасен, требует additive-ветки |
| Differential conditioning (f(Xi Xj)) | теряет смысл при отсутствии одного из Xi | опасен |
| SSM/Mamba cross-state fusion | состояние дестабилизируется | research-arm, не primary |
Практическое следствие для всех трёх треков: тест «отключи модальность через validity mask и проверь, что descriptor конечен и близок к RGB-only» входит в обязательные unit-тесты, а поведение при missing modality — в decision table финального сравнения.
## 6. Каноническая терминология
| Термин | Значение в проекте |
|---|---|
| View | satellite или uav; кодируются независимо |
| Modality | rgb / text / segmentation / geometry (CHM или depth) |
| Anchor | RGB-путь StripNet, который нельзя терять |
| Validity mask | булева маска «модальность присутствует и валидна» |
| Identity-at-init | при инициализации fusion-модуль эквивалентен RGB-only |
| Modality collapse | descriptor фактически зависит от одной модальности |
| Shortcut | модальность выигрывает метрику нечестным путём (утечка, артефакт данных) |
| LUPI | learning using privileged information: модальности доступны при обучении, недоступны на inference Student |
| Primary / fallback / research-arm | роли вариантов в итоговом решении |
## 7. Чего в этом проекте сознательно нет
- Никакого modality dropout в training loop (это следующий этап MERIDIAN, отдельная задача).
- Никакой дистилляции в Student (KD-мост строится после выбора fusion).
- Никакой замены StripNet или обучения собственных моделей depth/seg/CHM/captions.
- Никакого использования GPS, координат, имён локаций и paired-view признаков.