4 Commits

Author SHA1 Message Date
8faacf7cc7 Загрузить файлы в «reports» 2026-06-26 08:07:32 +00:00
fe4b80242c Загрузить файлы в «reports»
evidence matrix v2
2026-06-26 07:50:53 +00:00
ec7586b68d Загрузить файлы в «reports»
П. 1.1. Конспект по пункту 
П. 1.2. Разбор personal_package, заметки, Evidence matrix (≥8 источников)
2026-06-25 14:05:26 +00:00
71ebce3b6d Загрузить файлы в «reports» 2026-06-24 08:54:36 +00:00
5 changed files with 788 additions and 0 deletions

View File

@@ -0,0 +1,183 @@
[[02_fusion_core_общий]]
# CONDITION-AWARE
## Primary
### F39_FU_2025_CAFuser
| Поле | Вопрос |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Task | condition-aware семантическая сегментация в неблагоприятных условиях (погода/освещение), автономное вождение (MUSES). |
| Inputs | RGB + сенсорные модальности (lidar/event/radar), per-modality feature maps + env-descriptor (condition). |
| Fusion level | mid-network (per-modality адаптеры, модулируемые condition-токеном). |
| Operator | condition token → модуляция вклада адаптеров (условный гейтинг, FiLM-подобный над адаптерами). |
| Direction | симметрично |
| Identity path | Напрямую нет |
| Missing-modality | отключение адаптера соответствующей модальности |
| Compute | Число параметров при добавлении адаптера на новую модальность |
| Evidence | MUSES PQ baselines меньше, чем с применением метода;<br>Driving results:<br>Уменьшение числа параметров при использовании адаптеров в сравнении с baseline и 4 раздельными бэкбонами |
| Transfer | condition token = ваш контроллер `c_v`; <br>env-descriptor → замена на content-summary + quality + `e_view`; <br>shared backbone = StripNet `shared=True` |
| Risk | Что будет при неинформативном погодном сигнале? Нужно включить оценку его качества? |
| Decision | Использовать + адаптировать (вторичный механизм с адаптерами) |
### F37_FU_2024_AsymFormer
| Поле | Вопрос |
| ---------------- | ------------------------------------------------------------------------------- |
| Task | асимметричная RT RGB-D семантическая сегментация |
| Inputs | RGB (heavy backbone) + Depth (light backbone) |
| Fusion level | mid (cross-modal attention модули). |
| Operator | асимметричное cross-modal attention <br>(LAFS + CMA) |
| Direction | асимметричная |
| Identity path | До финального слияния |
| Missing-modality | - |
| Compute | - |
| Evidence | real-time RGB-D seg; FP16 |
| Transfer | Идея основного якорного RGB и более легких aux |
| Risk | cross-attention растёт с токенами; FP16-only, нет INT8; домен seg, не retrieval |
| Decision | адаптировать или отклонить |
### F43_FU_2024_Robust_PEFT_SSF
| Поле | Вопрос |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Task | робастное мультимодальное обучение при отсутствующих модальностях через PEFT |
| Inputs | мультимодальные фичи; per-channel `γ,β` |
| Fusion level | mid |
| Operator | FiLM, PEFT <1% params |
| Direction | Симметричная |
| Identity path | При `γ=1, β=0` |
| Missing-modality | Modulation учитывает absence → adapts other modalities to compensate |
| Compute | params overhead < 1% |
| Evidence | **NYUDv2 mIoU 44.77%** > TokenFusion 43.08% (+1.69pp); MFNet RGB+Thermal 53.06% > CRM SOTA 52.90%; **NTU RGB+D 92.91%** > UMDR 92.23%; **Food-101 avg 79.83%** > Input Prompts 78.54%; CMU-MOSEI F1 58.75% |
| Transfer | Missing modality handling pattern — modulation учитывает modality availability mask; |
| Risk | Без доп. адаптации чистый FiLM хуже Dynamic gate |
| Decision | адаптировать, якорь |
### F47_FU_2026_TacFiLM
| Поле | Вопрос |
| ---------------- | ----------------------------------------------------------------------------------- |
| Task | добавление тактильной модальности к pretrained мультимодальной VLA (post-training). |
| Inputs | visual feartures; tactile features |
| Fusion level | mid |
| Operator | FiLM с **zero-init β** |
| Direction | асимметричная |
| Identity path | **zero-init β = identity при init** |
| Missing-modality | zero-init β → отсутствующая модальность вносит ноль. |
| Compute | Число параметров на модальность |
| Evidence | Какой experimental result подтверждает механизм? |
| Transfer | Pretrained representations of tactile signals;<br>identity-path концепт; |
| Risk | **Низкая прямая релевантность** — robotic tactile sensing ≠ aerial CVGL retrieval |
| Decision | принять и адаптировать zero-init b |
### F40_M³amba (CLIP-driven Mamba RS)
| Поле | Вопрос |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| Task | мультимодальная классификация в remote sensing (hyperspectral + LiDAR/SAR), pixel-level. |
| Inputs | две RS-модальности `X1,X2 [h,w,c]` |
| Fusion level | mid |
| Operator | CLIP-driven per-modality адаптеры + **Cross-SS2D** (кросс-модальный скан: `As_f=(As1+As2)/2`, обмен `Bs1↔Bs2`). |
| Direction | симметрично |
| Identity path | - |
| Missing-modality | синтез прямо помечает ⚠ «assumes all modalities present»); усреднение `As` и обмен `B` требуют обеих. |
| Compute | линейная (Mamba) |
| Evidence | **+5.98%** в среднем над SOTA в мультимодальной HSI-классификации; RS-домен. |
| Transfer | **топология = ваш сетап** — frozen backbone (CLIP ↔ ваш frozen StripNet/DINOv3) + per-modality лёгкие адаптеры, минимальное обучение. |
| Risk | (п) SSM skip `D` есть, но Cross-SS2D усреднение перемешивает → нет чистого anchor; ломается при validity=0 |
| Decision | отклонить |
### F44_Fusion-Mamba (Cross-mod Detection)
| Поле | Вопрос |
| ---------------- | --------------------------------------------------------------------------------------------------------------------- |
| Task | cross-modality object detection (RGB+IR). |
| Inputs | RGB + IR feature maps; SSM-состояния. |
| Fusion level | multi-level |
| Operator | SSM cross-state + **mul+add** гейтинг (`y'_R = y_R·z_R + z_R·y_IR`). |
| Direction | симметрично |
| Identity path | - |
| Missing-modality | Отсутствие ЛОМАЕТ обработку в SSM-cross-gate |
| Compute | Стоимость SSM |
| Evidence | **+5.9% mAP M³FD, +4.9% FLIR** (TMM peer-review). |
| Transfer | - |
| Risk | При отсутствии модальности mul-компонент потеряет информацию;<br>При дропауте модальности ненадежно + mixed precision |
| Decision | адаптировать DSSF |
### F68 RemoteDet-Mamba
| Поле | Вопрос |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Task | мультимодальная детекция объектов на **БПЛА-снимках RS** (DroneVehicle, RGB+TIR детекция и подсчёт машин) |
| Inputs | RGB + TIR (инфракрасное) [840, 840, 3] |
| Fusion level | mid |
| Operator | **Cross-modal Fusion Mamba (CFM)** — однослойный four-directional SS2D-скан на patch-уровне над суммой `f^FUS = f^R + f^IR` |
| Direction | Симметричная |
| Identity path | **ДА, структурно**`F̂^i = F^i + Linear(...)`: при `Linear≈0` выход = вход |
| Missing-modality | При отсутствии текста неприменимо в силу архитектуры метода |
| Compute | Выч. стоимость внимания, тяжелая MLLM |
| Evidence | DroneVehicle mAP@0.5 **81.8%**, +1.2% над DMM. Но решающее — **ablation**: TIR-only **69.4 → простой Add 80.8 (+11.4 pp) → Bid-scan 81.1 → CFM 81.8 (всего +1.0 над Add)**. То есть **простое поэлементное сложение даёт +11.4 pp, а весь Mamba-оператор поверх — лишь +1.0 pp**. |
| Transfer | **ADD-first свидетельство** — сильнейшее во всём корпусе доказательство, что additive residual забирает почти весь выигрыш, а сложный оператор дает малый прирост |
| Risk | CFM = SSM cross-state над `f^R+f^IR` → хрупок под validity=0; |
| Decision | Адаптировать идею residual, но отклонить метод т.к. CFM лишь +1.0 над Add (факт); маржа не переживёт multi-seed; SSM хрупок при validity=0 |
### F4_FU_2025_EarthMind
| Поле | Вопрос |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Task | cross-sensor мультимодальная LLM для EO (QA/grounding). |
| Inputs | optical + SAR + text query |
| Fusion level | mid (hierarchical cross-modal attention) |
| Operator | Hierarchical Cross-modal Attention (HCA) |
| Direction | Симметричная на стадии1 и асимметричная на стадии 2 |
| Identity path | Нет |
| Missing-modality | При отсутствии текста неприменимо в силу архитектуры метода |
| Compute | Выч. стоимость внимания, тяжелая MLLM |
| Evidence | Earth observation benchmarks |
| Transfer | per-token adaptive weighting для баланса модальностей? |
| Risk | поведение при отсутствии text, т.к. в работе он является основным cond. signal;<br>преимущество экономии квадратичной стоимости проявляется для пары модальностей, а не при произв. их числе;<br>оценки только на собственном бенчмарке; |
| Decision | отклонить |
## Extra
### B14_StripNet
[[NOTES#^ead71b]]
### F14_WeatherPrompt
[[NOTES#^e9be0c]]
| Поле | Вопрос |
| :--------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Task | Cross-view geo-localization с адаптацией к условиям съёмки (день/ночь, погода, сезон). |
| Inputs | RGB (UAV / спутник) + text prompt (условия съёмки: освещение, погода). |
| Fusion level | Mid — FiLM встраивается в последние 1/3 блоков visual backbone (Feature Pyramid, Late Layers). |
| Operator | FiLM (Feature-wise Linear Modulation): $F_{out} = \gamma \odot F_{in} + \beta$; генераторы $f_\gamma, f_\beta$ — 2-Layer MLP из text_embed (768-d → 256 → C). |
| Direction | Однонаправленная: text → visual. Текст модулирует RGB-ветку, обратной связи нет. |
| Identity path | Да — zero-init последнего слоя $f_\gamma$ + $\exp(\cdot)$: на старте $\gamma=1.0$, $\beta=0.0$ (identity mapping, pre-trained веса не разрушаются). |
| Missing-modality | При отсутствии text prompt — graceful degradation к identity ($\gamma=1, \beta=0$). Архитектурно безопасно. |
| Compute | Лёгкая: два `MLP (768→256→C)` на inference. INT8-совместимо полностью. |
| Evidence | CVGL Night R@1 +13.37% vs baseline; FiLM > Cross-Attention > Concat на ночной кросс-видовой задаче. |
| Transfer | Расширение до 5 модальностей через Privileged Context Vector (PCV): <br>`PCV = [DepthEmb ⊕ EdgeEmb ⊕ TextEmb]`<br>`(768-d)` → единый $f_\gamma, f_\beta$. |
| Risk | SSF (**F43** TPAMI) генерирует статичные $\gamma, \beta$ per-task — уступает WeatherPrompt в data-driven адаптации; PCV-конкатенация может размыть вклад отдельных модальностей при несбалансированных эмбеддингах. Two-Speed LR обязателен (LR_FiLM × 100 vs LR_Backbone). |
| Decision | **Принять** **как архитектурный паттерн Multi-FiLM-Fusion для Teacher-ветки MERIDIAN. PCV-формула — canonical источник для TextFiLM в SOFIA UAVHead/SatHead.** |
### C5
| Поле | Вопрос |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Task | cross-sensor мультимодальная LLM для EO (QA/grounding). |
| Inputs | optical + SAR + text query |
| Fusion level | mid (hierarchical cross-modal attention) |
| Operator | Hierarchical Cross-modal Attention (HCA) |
| Direction | Симметричная на стадии1 и асимметричная на стадии 2 |
| Identity path | Нет |
| Missing-modality | При отсутствии текста неприменимо в силу архитектуры метода |
| Compute | Выч. стоимость внимания, тяжелая MLLM |
| Evidence | Earth observation benchmarks |
| Transfer | per-token adaptive weighting для баланса модальностей? |
| Risk | поведение при отсутствии text, т.к. в работе он является основным cond. signal;<br>преимущество экономии квадратичной стоимости проявляется для пары модальностей, а не при произв. их числе;<br>оценки только на собственном бенчмарке; |
| Decision | отклонить |
### Канонические опоры (проверенные выводы из vault, использовать в evidence matrix)
| Источник | Факт | Следствие для трека A |
| ----------------------------------------------- | -------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| **C5** WeatherPrompt (NeurIPS 2025), `05_text/` | Dynamic Gate 80.20 > Concat 78.90 > Static gate 78.45 | веса fusion должны быть instance-conditioned — прямой аргумент за controller |
| **F14** WeatherPrompt deep dive | FiLM 73.37% > CrossAttn 68.10% > Concat 62.50%; спецификация text→FiLM MLP: zero-init, two-speed LR, EMA | готовый рецепт text-пути и инициализации |
| Flamingo (NeurIPS 2022, см. **TRIAGE §1**) | zero-init tanh(α)-gated cross-attention: при α=0 модель ≡ frozen base | корень линии identity-at-init; цитировать как первоисточник |
| **F39** CAFuser (RA-L 2025) | condition token строится из RGB и управляет fusion остальных модальностей | каноничный шаблон трека |
| **TRIAGE §6a**, вывод 1 | gated additive residual — dropout-safe; чисто multiplicative gating ломается при near-zero aux | residual-форма обязательна для primary |

View File

@@ -0,0 +1,315 @@
---
tags:
- task
- CVGL
- ЛИСАД/ВЛМ
---
[[Base-Terms]], [[ЭТАПЫ]], [[01_required]],
[[Основной пакет]], [[02_fusion_core_общий]], [[02_fusion_core_персональный]],
**Изучение постановки и контекста проекта:**
- README.md;
- docs/00_project/06_MERIDIAN_CONTEXT.md (включая §5 — требование корректного поведения при отсутствии модальности);
- docs/01_tasks/00_MASTER_ASSIGNMENT.md;
- 01_INPUT_OUTPUT_CONTRACT.md;
- 02_TEAM_WORKFLOW.md;
- 03_EXPERIMENT_PROTOCOL_GTA_UAV.md
# MERIDIAN CONTEXT
## 1. MERIDIAN — асимметричная TeacherStudent система
MERIDIAN — асимметричная TeacherStudent система кросс-видовой геолокализации БПЛА (UAV ↔ satellite) с привилегированными модальностями (LUPI/KD) и лёгким edge-инференсом.
**Цель:** сравнение методов объединения и выбор по обозначенным критериям
## 2. Teacher
Имеет 8 входных потоков.
|#|Поток|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|
## 3. Цель
Прямой перебор fusion-архитектур на полном Teacher (DINOv3-L, ~300M+ params) слишком дорог: один полный прогон занимает часы и съедает всю VRAM. Поэтому архитектурный поиск выполняется на **быстром прокси**:
Прокси сохраняет главное: 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. Устойчивость к modality-dropout
В production Teacher модальности могут отсутствовать или быть деградированными (нет caption у ~55% satellite tiles уже сейчас; depth/CHM могут быть зашумлены). Кроме того, на следующем этапе MERIDIAN планируется обучение с **modality dropout** (стохастическое отключение модальностей) — ==оно НЕ входит в ваше задание==, но накладывает требование на архитектуру:
| Класс | Поведение при отсутствии модальности | Вердикт |
| -------------------------------------------------- | -------------------------------------------- | ------------------------------ |
| 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. В проекте отсутствует
- Никакого modality dropout в training loop (это следующий этап MERIDIAN, отдельная задача).
- Никакой дистилляции в Student (KD-мост строится после выбора fusion).
- Никакой замены StripNet или обучения собственных моделей depth/seg/CHM/captions.
- Никакого использования GPS, координат, имён локаций и paired-view признаков.
# MASTER ASSIGMENT
## 1. Исполнители
| Сотрудник | Архитектурный трек | Общая ответственность |
| -------------------------- | --------------------------------------- | ---------------------------------------------------- |
| **Павленко Богдан Викторович** | **Condition-Aware RGB-Anchored Fusion** | **общий fusion API и architecture consistency** |
| Близно Максим Витальевич | Token/Bottleneck Full-Modal Aggregation | benchmark, metrics, run registry и статистика |
| Мороз Егор Сергеевич | Role-Aware Hierarchical Fusion | dataset contract, preprocessing и quality validation |
## 2. Что требуется решить
Нужно разработать алгоритм объединения модальностей для cross-view geo-localization. Для каждой view-ветки доступен свой набор:
- img
- text
- geom
- segm
Один shared `StripNet-small` кодирует RGB.
### 2.1. Зачем это нужно
Для архитектурного отбора fusion-механизма для Teacher системы MERIDIAN на быстром прокси (StripNet + GTA-UAV вместо DINOv3 + production-данных).
Отсюда два следствия:
1. Нас интересует **класс механизма и причина его успеха**, а не выжатые гиперпараметрами проценты.
2. Вторичный критерий отбора — **корректное поведение при отсутствии модальности** (validity mask = 0): выход конечен, RGB-путь не искажён
### 2.2. Заметки о данных
|Факт|Значение|Следствие|
|---|---|---|
|Satellite RGB|14,640 PNG 256×256, **RGBA**|alpha-канал проверить и отбросить осознанно|
|UAV RGB|33,763 PNG 512×384, высоты 100600 м|resize к 256×256 фиксируется единообразно|
|Captions UAV|33,411 из 33,763 (~99%)|почти полное покрытие|
|Captions satellite|**6,546 из 14,640 (~44.7%)**|text_valid mask обязателен; пустой caption ≠ нулевой текст|
|Auxiliary maps|48,403 изображений: segm/depth/edge/chm (+SafeTensors)|edges в primary input не входят|
|Segmentation|17 unified classes|канон классов — `vendor_reference/depth_edges_annotate_worlduav/scripts/seg_classes.py`|
|Seg-filter|37,498 из 48,403 прошли фильтр (≥90% background+water исключены)|фильтр применяется одинаково ко всем вариантам|
|Расположение данных|Linux-сервер: `/home/servml/Документы/datasets/GTA-UAV-LR{,-captions,-aug}/`|фактические пути фиксируются в gin и ENVIRONMENT_AUDIT|
## 3. Входные и выходные данные
[[#IO CONTRACT]]
### 3.1. Satellite branch
```
RGB satellite [B, 3, 256, 256]
Caption satellite list[str] / tokenized text
CHM [B, 1, 256, 256]
Segmentation [B, 1, 256, 256] IDs или [B, 17, 256, 256]
Validity masks geometry + segmentation
```
### 3.2. Satellite branch
```
RGB UAV [B, 3, 256, 256]
Caption UAV list[str] / tokenized text
Relative depth [B, 1, 256, 256]
Segmentation [B, 1, 256, 256] IDs или [B, 17, 256, 256]
Validity masks geometry + segmentation
```
### 3.3. Выходные данные
```
descriptor [B, 1024], L2 normalized
rgb_descriptor [B, 1024]
modality_contributions
diagnostics
```
Далее вычисляется similarity matrix UAV-to-satellite. Fusion-модуль не получает features противоположной view.
## 4. Цель экспериментов
Проверить, может ли full-modal representation улучшить cross-area retrieval относительно StripNet RGB-only и какой класс fusion делает это наиболее надёжно.
Primary metric: cross-area UAV-to-satellite R@1.
Secondary:
- R@5, R@10, MRR, AP;
- satellite-to-UAV retrieval;
- mean и std по seed 42/123/456;
- peak VRAM, latency, trainable params;
- вклад text, segmentation и geometry;
- отсутствие modality collapse.
## 5. Архитектурный кандидат
RGB остаётся anchor. Auxiliary encoders строят residual corrections, а controller определяет их вклад в зависимости от content и качества входов.
# IO CONTRACT
Одна обучающая запись содержит UAV-снимок запрос (query) и один положительный satellite кандидат (1 к 1). На eval может быть 1 к * (несколько допустимых sat matches)
## 1. Sat view
|Поле|Форма|Dtype|Нормализация|Назначение|
|---|---|---|---|---|
|`rgb`|`[B, 3, 256, 256]`|`float32`|ImageNet mean/std|вход StripNet|
|`text`|`list[str]` или tokens|string/int|согласно text encoder|описание сцены без location leakage|
|`geometry`|`[B, 1, 256, 256]`|`float32`|robust per-frame CHM normalization|высотная структура|
|`segmentation`|`[B, 1, 256, 256]` class IDs или `[B, 17, 256, 256]` probabilities|`uint8`/`float32`|IDs `0..16` или probabilities|land-cover semantics|
|`geometry_valid`|`[B, 1, 256, 256]`|`bool`|нет|валидные CHM pixels|
|`segmentation_valid`|`[B, 1, 256, 256]`|`bool`|нет|валидные segmentation pixels|
|`sample_id`|`[B]`|string|нет|только логирование, не feature|
## 2. UAV view
|Поле|Форма|Dtype|Нормализация|Назначение|
|---|---|---|---|---|
|`rgb`|`[B, 3, 256, 256]`|`float32`|ImageNet mean/std|вход StripNet|
|`text`|`list[str]` или tokens|string/int|согласно text encoder|описание сцены без location leakage|
|`geometry`|`[B, 1, 256, 256]`|`float32`|relative depth normalization|структура и масштабные признаки|
|`segmentation`|`[B, 1, 256, 256]` class IDs или `[B, 17, 256, 256]` probabilities|`uint8`/`float32`|IDs `0..16` или probabilities|spatial semantics|
|`geometry_valid`|`[B, 1, 256, 256]`|`bool`|нет|валидные depth pixels|
|`segmentation_valid`|`[B, 1, 256, 256]`|`bool`|нет|валидные segmentation pixels|
|`sample_id`|`[B]`|string|нет|только логирование, не feature|
## 3. StripNet
|Stage|Tensor|Spatial stride|Разрешённое использование|
|--:|---|--:|---|
|1|`[B, 64, 64, 64]`|4|преимущественно RGB low-level; auxiliary fusion только после отдельного обоснования|
|2|`[B, 128, 32, 32]`|8|dense segmentation/geometry кандидаты|
|3|`[B, 320, 16, 16]`|16|основной mid-level fusion|
|4|`[B, 512, 8, 8]`|32|high-level fusion и readout|
|GAP|`[B, 512]`|global|RGB anchor descriptor|
|Projection|`[B, 1024]`|global|retrieval descriptor до L2 normalization|
## 4. Fusion output
Каждый `encode_view` возвращает:
|Поле|Форма|Требование|
|---|---|---|
|`descriptor`|`[B, 1024]`|finite, L2 norm `1 +/- 1e-4`|
|`rgb_descriptor`|`[B, 1024]`|RGB anchor для диагностики|
|`modality_contributions`|`[B, 3]` или dict|text, segmentation, geometry|
|`diagnostics`|dict tensors/scalars|gates, attention mass, norms, entropy|
Диагностика не должна менять descriptor в eval mode.
## 5. Парный forward
satellite batch -> encode_view(view="satellite") -> z_sat [B, 1024]
UAV batch -> encode_view(view="uav") -> z_uav [B, 1024]
similarity = z_uav @ z_sat.T / temperature
## 6. Text contrat
- Поддержать L1, L2, L3 или выбранную объединённую схему.
- Пустой satellite caption обрабатывается через explicit validity mask.
- Пустая строка не должна кодироваться как полноценный semantic signal.
- Caption не должен содержать координаты, названия районов, file names и прямые match identifiers.
- Text encoder и token budget фиксируются для честного сравнения fusion variants.
## 8. Geometry contract
- CHM и depth имеют общий ключ `geometry`, но разные preprocessing и projector parameters.
- Нельзя считать численные значения depth и CHM сопоставимыми до view-specific normalization.
- PNG допускается только для визуальной проверки. Для обучения использовать dense tensors/SafeTensors.
- Любая производная карта, например depth gradient, считается внутри documented preprocessing block.
## 9. Segmentation contract
- Канонический набор: 17 unified classes.
- Primary representation определяется командой на interface-freeze: class IDs + embedding или probabilities/logits.
- Hard RGB palette images не используются как model input.
- Редкие и отсутствующие классы не должны приводить к NaN при mask pooling.
## 10. Запрещённые признаки
- GPS и координаты.
- Название карты, района или локации.
- Индекс paired image как embedding.
- Features второй view-ветки внутри текущего encoder.
- Evaluation labels внутри preprocessing.
# Регламент совместной работы
У команды три архитектурных трека, но одна кодовая и экспериментальная система.
| Область | Driver | Обязательные reviewers |
| ---------------------------------- | ------------ | ---------------------- |
| **Fusion API и registry** | **Павленко** | Близно, Мороз |
| Dataset и modality validation | Мороз | **Павленко**, Близно |
| Training/eval benchmark | Близно | **Павленко**, Мороз |
| **Condition-aware module** | **Павленко** | Мороз |
| Token/bottleneck module | Близно | **Павленко** |
| Role-aware module | Мороз | Близно |
| Общая experiment matrix | Близно | все |
| **Финальная архитектурная оценка** | **все** | **все** |
## Этапы
### Gate 0. Environment audit
- Проверить локальные пути двух внешних проектов.
- Зафиксировать путь GTA-UAV RGB, captions, pair JSON и annotations.
- Проверить checkpoint StripNet.
- Выполнить чтение обязательного пакета.
- Создать `reports/joint/ENVIRONMENT_AUDIT.md`.
### Gate 1. Interface freeze
До реализации архитектур команда совместно утверждает:
1. Формат segmentation: IDs/embedding или probabilities.
2. Формат CHM/depth и normalization.
3. Text encoder, уровни captions и output dimension.
4. `FusionModelBase` API.
5. Common diagnostics keys.
6. Baseline config и output directory convention.
Результат: `reports/joint/INTERFACE_DECISION.md`. Изменения после freeze требуют записи причины и влияния на все три варианта.
### Gate 2. RGB-only baseline
- Один общий StripNet-only run.
- Один общий dataloader.
- Один общий evaluation script.
- Smoke run на малом subset.
- Полный baseline минимум на seed 42, затем финальный baseline на 42/123/456.
Без подтверждённого baseline реализация fusion не переходит к полным запускам.
### Gate 3. Independent implementation behind common API
Каждый сотрудник реализует свой модуль в отдельной feature branch. Разрешены разные внутренние операторы, но входы, выходы, loss и logging одинаковы.
### Gate 4. Pair review
Reviewer проверяет:
- shape contract;
- отсутствие cross-view leakage;
- корректность masks;
- identity/residual path;
- вычислительную сложность;
- диагностируемость вклада модальностей;
- тесты и gin config.
### Gate 5. Smoke comparison
Все три модуля запускаются:
- на одном subset;
- с одним seed;
- на одинаковом числе batches;
- с одинаковым optimizer/loss;
- с logging peak VRAM и latency.
Цель: найти ошибки интеграции, а не выбрать победителя.
### Gate 6. Full experiment matrix
После smoke comparison выполняются primary runs и выбранные ablations по общему protocol.
### Gate 7. Joint decision
Команда совместно заполняет decision table. Архитектура не выбирается по одному лучшему run. Учитываются mean, variance, compute, стабильность и интерпретируемость вклада модальностей.

View File

@@ -0,0 +1,27 @@
[[02_fusion_core_персональный]]
# EVIDENCE MATRIX
# Канонические опоры fusion — разбор по 9 источникам (для evidence matrix, Трек A)
| Source | Original task | Fusion operator | Conditioning signal | Identity path | Transfer to StripNet | Risk |
| -------------------------------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | --------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| **F39 CAFuser** (RA-L 2025) | condition-aware сегментация в неблагопр. условиях (MUSES, вождение) | condition token модулирует per-modality адаптеры (FiLM-подоб.); shared backbone + adapters | condition token из RGB/сцены (env-condition) | (п) → identity при zero-init адаптеров; в статье не RGB-residual | condition token = ваш `c_v`; env → content+quality+`e_view`; shared backbone = StripNet `shared=True` | в CVGL нет env-сигнала → при неинформативном condition гейты схлопываются в static |
| **F37 AsymFormer** (CVPR-WS 2024) | real-time асимметр. RGB-D сегментация | асимметр. cross-modal attention (LAFS + CMA) | нет (feature-driven); RGB-heavy / depth-light | RGB тяжёлый primary, aux лёгкий модулирует; (п) RGB сохраняется ёмкостной асимметрией, не явным residual | = ваш RGB-anchor + лёгкие aux-проекторы (3.3); подтверждает aux-light/RGB-heavy | cross-attention растёт с токенами; FP16-only, нет INT8; домен seg, не retrieval |
| **F43 SSF / Robust PEFT** (TPAMI 2024) | робастность к missing modalities через PEFT | FiLM `γ⊙x+β` per-channel, PEFT <1% params | per-channel scale/shift; learnable, **не** instance-conditioned | `γ=1,β=0` → identity; small-variance init | ядро A-C2; <1% overhead в бюджет лёгких адаптеров | статичен без ACF-обёртки; чистый FiLM < dynamic gate (73.37 < 80.20) |
| **F47 TacFiLM** (2026) | добавление тактильной модальности к frozen VLA (post-training) | FiLM с **zero-init β** | tactile features → `γ,β` | **zero-init β = identity при init** (явно в статье) | zero-init β = ваш identity-at-init (3.5, тест 4.2); aux к frozen StripNet = ровно ваш сетап | zero-init → медленное обучение без two-speed LR |
| **F40 M³amba** (2025) | мультимод. RS-классификация (HSI + LiDAR) | frozen CLIP + per-modality adapters + **Cross-SS2D** (SSM: `As` усред., `B` обмен) | CLIP semantic features направляют fusion | (п) SSM skip `D` есть, но Cross-SS2D усреднение перемешивает → нет чистого anchor | топология frozen-backbone + per-modality adapters = ваш 3.3; RS domain-match. Оператор Cross-SS2D **не** переносим | **⚠ предполагает все модальности присутствующими** (факт); (п) Cross-SS2D ломается при validity=0 |
| **F44 Fusion-Mamba** (TMM 2025) | cross-modality detection (RGB+IR) | SSM cross-state (SSCS) + **DSSF gating** (mul+add: `y_R·z_R + z_R·y_IR`) | гейт из кросс-модальных состояний (нет внешнего condition) | (п) нет; mul-член ломает identity | DSSF mul+add — ближайший к FiLM примитив; но SSM-scan нет в StripNet | +5.9% mAP через gating (факт); mul-член убивает инфо при validity=0; SSM нестабилен под dropout |
| **F68 RemoteDet-Mamba** (2024) | мультимод. **UAV** RS-детекция (DroneVehicle RGB+TIR) | element-wise **Add** + однослойный 4-напр. SS2D (CFM); residual `F̂=F+Linear(fused)` | нет (feature-driven scan) | residual `F̂=F+Linear(Y_fus)` → identity при `Linear≈0` (структурно, факт) | residual = скелет A-C1; **ADD-first ablation (Add +11.4 vs CFM +1.0) = ваш falsification-якорь**; ближайший UAV-домен | CFM лишь +1.0 над Add (факт); маржа не переживёт multi-seed; SSM хрупок при validity=0 |
| **F4 EarthMind** (2025) | cross-sensor мультимод. LLM для EO (QA/grounding) | hierarchical cross-modal attention (HCA) + per-token softmax gating | text query + **MAS-диагностика баланса модальностей** | (п) нет RGB-residual; attention-based | **MAS modality-balance → ваши diagnostics (4.3)**; per-token gating как концепт; но требует text query | требует text-query на inference → ломается в query-free retrieval; тяжёлая mLLM |
| **B14 StripNet** (Strip R-CNN) | RS oriented object detection (полосовые свёртки); здесь — прокси виз-энкодер (~28M, ImageNet-1K) | N/A — это backbone, **не** fusion-оператор (fusion строится поверх) | N/A | (п) даёт `X_rgb`-якорь, identity тривиальна; Stage-4 `[B,512,h,w]`→GAP→`[B,512]`→Linear→`[B,1024]` | это **и есть** StripNet (факт): frozen + Conv-MONA last-2 stages, `shared=True`, retrieval-dim 1024 | frozen capability floor — слабый backbone ⇒ потолок fusion-выигрыша; strip-ядра под detection, не retrieval (domain risk) |
| **F14_WeatherPrompt** | Решение критической проблемы CVGL с падением точности при смене освещения, погоды и сезона | FiLM с динамической генерацией `γ β` из текстового эмбеддинга | Текстовый эмбеддинг | - _Особенность инициализации:_ Последний слой в `fγ` инициализируется нулями, а выход оборачивается в экспоненту: `γ=exp(fγ(text))`. Это гарантирует, что на старте обучения `γ=1.0, и β=0.0` (Identity mapping, не разрушающий pre-trained веса). | Возможность получить **Privileged Context Vector (PCV)** из конкатенации D, E, Txt embs (768) и подать в генераторы | Необходим достаточно релевантный текстовый промпт |
| | | | | | | |
## Сквозной вывод
По столбцу **Identity path** явная identity подтверждена в статьях только у **F43, F47 и F68** (три независимых источника) — это опорная триада для теста identity-at-init (4.2). У F39 / F40 / F44 / F4 identity либо предположение, либо отсутствует, что отделяет «легальные для primary» операторы от «только-research-arm».

View File

@@ -0,0 +1,138 @@
# 1. Резюме (Master)
Full multi-modal fusion в MERIDIAN — **холистический pipeline** для Triple-Teacher (DINOv3-L SAT/Web-LVD/7B, frozen, ~356M+) объединяющий **5 modalities × 2 views = 10 channels** через 10 категорий fusion-парадигм. Master synthesis 4 sub-pair reviews + general fusion review.
```
DINOv3-L backbone (frozen): ~356M
Per-modality adapters (×5): ~500K (5 × 100K, light)
Multi-FiLM γ,β projections (×5): ~50K (5 × ~10K)
KARMMA tokens (5 modalities): ~100K (5 × 20K)
Θ-Average: 0 (parameter-free)
─────────────────────────────────────────
Total trainable params: ~650K (~0.2% backbone)
```
### Master Outcomes
1. **Primary fusion mechanism:** Multi-FiLM-Fusion (F43 SSF TPAMI 2024 anchor + F47 zero-init β) — **<1% params overhead, INT8-compatible**
2. **Secondary mechanism:** ACF Condition Token (F39 CAFuser RA-L 2025) — **-54% params vs separate backbones**
3. **Parallel-arm research:** Fusion-Mamba (F44 TMM 2025) — **+5.9% mAP detection benchmark**
4. **Critical ablations (F88 KARMMA):**
- Two-token missing-modality strategy
- Θ-Average FB reduction (-81.45% memory)
- Modality dropout 50% canonical
5. **Missing modality handling** convergent evidence (4 sources): F45 + F88 + F89 + F90 → **dropout p=0.5 canonical**
6. **Production-ready INT8 stack** confirmed (AUDIT_N6 v2: ~0-2 ms fusion overhead)
### Per-Pair Contribution Summary
|Pair|Modality|Expected R@1 gain|Status|
|:-:|:--|:-:|:--|
|**A**|Segmentation|+2-4% (L_seg aux)|Primary aux|
|**B**|Depth + Normals|+2-4% (geometric)|Primary geometric|
|**C**|CHM|+0.5-1.5% (vegetation scenes)|Optional niche|
|**D**|Text|+0.5-1% (visually-ambiguous)|Secondary|
|**Edges**|Edges|+1-2% (with depth synergy)|Supporting|
|**Combined**|Full 5-modal|**+3-5% R@1 total**|Triple-Teacher|
### Top-5 Critical Reads (Master)
| # | Paper | Venue | Year | Role |
| :-: | :------------------------ | :-------------------- | :--: | :----------------------------------------------- |
| 1 | **F43 SSF (Robust PEFT)** | **IEEE TPAMI** | 2024 | Multi-FiLM anchor (<1% overhead) |
| 2 | **F39 CAFuser** | **IEEE RA-L** | 2025 | ACF canonical (-54% params) |
| 3 | **F88 KARMMA** | arXiv | 2026 | 3 critical ablations (two-token, Θ-Avg, dropout) |
| 4 | **F44 Fusion-Mamba** | **IEEE TMM** | 2025 | Parallel-arm (+5.9% mAP) |
| 5 | **F45 Flex-MoE** | **NeurIPS Spotlight** | 2024 | Missing modality bank |
# 2. MERIDIAN Triple-Teacher Architecture
```
INPUT (5 modalities × 2 views = 10 channels):
┌──────────────────────────────────────────────────────────┐
│ ├── RGB sat ┌── RGB UAV │
│ ├── Depth (DepthAny v2) ├── Depth │
│ ├── Edges (Canny/HED) ├── Edges │
│ ├── Segmentation (SAM) ├── Segmentation │
│ ├── CHM (Lidar/M11 ML) ├── CHM │
│ └── Text caption (VLM) └── Text caption │
└──────────────────────────────────────────────────────────┘
DINOv3-L BACKBONE (frozen, ~356M+):
┌──────────────────────────────────────────────────────────┐
│ ├── DINOv3-L SAT-493M (satellite-specialized) │
│ ├── DINOv3-L Web-LVD (web-scale) │
│ └── DINOv3-L ViT-7B (large general) │
└──────────────────────────────────────────────────────────┘
FUSION MECHANISM (10 categories, primary: Multi-FiLM-Fusion):
┌──────────────────────────────────────────────────────────┐
│ Per-modality adapters (F39 CAFuser pattern, light): │
│ ├── edge_adapter (light Conv → FiLM) │
│ ├── depth_adapter (light Conv → FiLM) │
│ ├── seg_adapter (light Conv → FiLM) │
│ ├── chm_adapter (light Conv → FiLM) │
│ └── text_adapter (CLIP encoder → FiLM) │
│ │
│ Multi-FiLM-Fusion (F43 SSF pattern): │
│ F_fused = F_rgb │
│ F_fused = film_edge(F_fused, F_edge) │
│ F_fused = film_depth(F_fused, F_depth) │
│ F_fused = film_seg(F_fused, F_seg) │
│ F_fused = film_chm(F_fused, F_chm) ← when avail │
│ F_fused = film_text(F_fused, F_text) ← when avail │
│ │
│ Modality dropout p=0.5 (F88+F45+F89+F90 convergent): │
│ - Two-token KARMMA для каждой modality │
│ - Gradual schedule (F90 sigmoid warmup) │
│ │
│ Θ-Average FB reduction (F88, -81.45% memory): │
│ Output Teacher embedding compressed │
└──────────────────────────────────────────────────────────┘
OUTPUT: 512-dim Teacher embedding per view (+ optional 64-token queries)
KD signal (E2-E primary, см. ОБЗОР_KD_detailed_v1)
STUDENT SOFIA v7.6 (edge, ~5M Tiny):
┌──────────────────────────────────────────────────────────┐
│ ├── Input: RGB sat + RGB UAV (always) │
│ ├── Backbone (Variant-A/E/Q) │
│ ├── Asymmetric Heads (SatHead GGeM + UAVHead CHP) │
│ └── Optional TextFiLM caption-aware │
│ │
│ Latency target: <50 ms Jetson Orin NX INT8 │
└──────────────────────────────────────────────────────────┘
```
### Hybrid Pattern (Multi-FiLM + ACF combined)
**MERIDIAN architecture combines:**
1. **Shared backbone (F39 CAFuser pattern):** DINOv3-L processes RGB primary
2. **Per-modality lightweight adapters** (per F39): edge_adapter, depth_adapter, seg_adapter, chm_adapter, text_adapter
3. **Multi-FiLM modulation per stage (F43 SSF):** Each modality contributes γ⊙F + β
4. **Modality dropout p=0.5** training (F88+F45 convergent)
5. **F88 KARMMA two-token** для missing-modality (each modality)
6. **Θ-Average FB reduction** (F88, -81.45% memory)
### Critical Design Choices
| Decision | Rationale | Source |
| :--------------------------------------- | :---------------------------- | :--------------------- |
| Shared backbone + adapters | -54% params vs separate | **F39** CAFuser |
| Multi-FiLM modulation | <1% overhead PEFT | **F43** SSF TPAMI |
| Zero-init β identity при init | Graceful warmup | **F47** TacFiLM |
| Two-token missing-modality | +43% Epic-Kitchens evidence | **F88** KARMMA |
| Θ-Average FB reduction | -81.45% memory parameter-free | **F88** KARMMA |
| Modality dropout p=0.5 | 4-source convergent | **F45+F88+F89+F90** |
| Element-wise gating only | INT8 compatible | **F44** DSSF |
| Cached Tensors Era | No on-device modality compute | **F8** SegEarth-R1 |
| Per-modality adapters light (~100K each) | Param budget | **F43** PEFT principle |
### Tier-1 (immediate — E1 Teacher fusion benchmark)
1. **Multi-FiLM-Fusion (F43 + F47)** — primary mechanism
2. **ACF (F39 CAFuser) Condition Token** — secondary for ablation
3. **Fusion-Mamba (F44)** — parallel-arm benchmark
4. **Per-modality light adapters** — F39 pattern (-54% params vs separate)
5. **Modality dropout p=0.5** — canonical (4-source convergent)
6. **Θ-Average FB reduction (F88)** — -81.45% memory, INT8-trivial

125
reports/NOTES.md Normal file
View File

@@ -0,0 +1,125 @@
# FusionCore Personal
[[02_fusion_core_персональный]]
## B14_StripNet
^ead71b
### 3.1. Описание архитектуры
- **Общая структура:** Strip R-CNN базируется на фреймворке O-RCNN. Она включает новый бэкбон (StripNet) и новую голову детектирования (Strip Head).
- **StripNet Backbone:** Состоит из базовых блоков, каждый из которых имеет strip-подблок и подблок feed-forward сети (FFN).
- **Strip Module:** Включает стандартную свертку `5×5` за которой следуют две последовательные полосовые свертки (горизонтальная и вертикальная, например, `1×19` и `19×1`) и point-wise свертка.
- **Strip Head:** Разделяет предсказание локализации и угла. Модуль локализации усилен полосовыми свертками для захвата дальнодействующих пространственных зависимостей, в то время как классификация и предсказание угла делят общие полносвязные (FC) слои.
### 3.2. Визуальные материалы из статьи
- **Figure 1:** Статистика датасета DOTA и падение точности существующих SOTA методов при увеличении соотношения сторон объектов. Показывает критичность проблемы.
- **Figure 3:** Структурное сравнение модуля авторов с LSKNet и PKINet. Демонстрирует, что Strip R-CNN использует последовательную (strip-sequential) парадигму, в то время как PKINet — параллельную (strip-parallel), что делает Strip R-CNN более легковесным.
- **Figure 4:** Структура базового блока Strip Module. Иллюстрирует поток данных через квадратную свертку, горизонтальную/вертикальную strip-свертки и умножение признаков.
- **Figure 5, 6, 7:** Архитектура Strip Head и тепловые карты пространственной чувствительности. Показывают, что предсказание угла фокусируется на границах объекта, а классификация — на центре, что оправдывает их частичное слияние.
### 3.3. Математическая формализация
- **Feature Reweighing (Внимание):**
`Y^=X⋅Y` _Комментарий:_ `X` — входной тензор, `Y` — выход point-wise свертки, действующий как карта весов внимания (element-wise умножение).
- **Loss Function:**
`L=Lc+Ll+La` 
_Комментарий:_ Сумма кросс-энтропии для классификации (`Lc`) и Smooth L1 для локализации (`Ll`) и угла (`La`). Формула стандартна для rotated bounding box детекторов
### 3.4. Ключевые технические решения
- **Последовательные свертки:** Использование горизонтальной свертки перед вертикальной (или наоборот) работает одинаково хорошо и не требует сложных механизмов слияния, присущих параллельным ветвям.
- **Ядро размером 19:** Экспериментально установлено, что размер ядра 19 во всех стадиях бэкбона дает оптимальный результат для вытянутых объектов.
### ПРЕИМУЩЕСТВА ПОДХОДА
- **Вычислительная эффективность:** Отказ от параллельных heavy-сверток в пользу последовательных strip-сверток снижает FLOPs и количество параметров, обходя конкурентов (PKINet).
- **Архитектурная элегантность:** Отсутствие сложных модулей внимания. Векторное внимание реализуется простой point-wise сверткой.
- **Универсальность:** Замена классического detection head на Strip Head повышает метрики даже в старых фреймворках.
## F14_WeatherPrompt
^e9be0c
### 1. Контекст 
F14 решает критическую проблему Visual Geo-Localization: катастрофическое падение точности при смене освещения (день/ночь) или погоды (лето/зима). Модель использует механизм FiLM (Feature-wise Linear Modulation) для модуляции визуальных признаков на основе текстового промпта (например: "Снимок сделан глубокой ночью в тумане"). 
#### Архитектура
Общая структура модели WeatherPrompt представляет собой сложный двухэтапный пайплайн, состоящий из модуля офлайн-генерации мультимодальных данных и гибридной архитектуры мультимодального выравнивания (Multimodal Alignment Model).
##### На первом этапе
(генерация данных) система использует подход единичного сэмплирования (Single-image Sampling). Из каждой географической зоны случайным образом выбирается одно репрезентативное изображение с дрона для устранения избыточности. Далее, с помощью библиотеки imgaug генерируются синтетические погодные искажения. Полученные изображения обрабатываются большой мультимодальной моделью (в качестве примера авторы приводят архитектуру Qwen2.5-VL ). Модель использует стратегию Chain-of-Thought для последовательного вывода: сначала оценивается глобальная видимость, затем выявляются локальные атмосферные подсказки (отражения дождевых полос, паттерны рассеивания тумана), и на финальном шаге формируется общий погодный контекст. Вслед за этим запускается фаза пространственной семантики, где модель описывает макро-планировку, подсчитывает объекты и фиксирует топологические отношения. Одновременно сторонняя модель визуального граундинга (Visual Grounding Model - VGM), а именно XVLM, извлекает локальные семантические подсказки на уровне регионов.
##### Второй этап (обучение и инференс)
опирается на двухпоточную архитектуру. В качестве бэкбона выступает адаптированная модель XVLM, интегрирующая текстовый энкодер на базе BERT и визуальный энкодер на базе Swin Transformer. Поток данных проходит через эти энкодеры параллельно. ==Извлеченные глобальные и локальные визуальные признаки объединяются с текстовыми эмбеддингами через модуль кросс-модального слияния (Cross-modal fusion module). Ключевым узлом этого модуля является динамический строб (Weather-Driven Channel Gating), который вычисляет вектор весов на основе текста и применяет его к визуальным признакам через операцию поэлементного умножения (Hadamard product). ==Сформированный мультимодальный тензор передается в легковесный классификационный MLP-декодер (Classification Head), который проецирует признаки в пространство логитов для предсказания конкретной географической локации.
### 2. Значимость для MERIDIAN
Это прямой источник архитектурного паттерна Multi-FiLM-Fusion для Teacher-ветки. Понимание, как именно генерируются параметры `γ` и `β`, необходимо для правильной балансировки 5 модальностей (RGB, Depth, Edges, Seg, Text).
==В F14 WeatherPrompt параметры масштаба (γ) и сдвига (β) генерируются динамически из текстового эмбеддинга (text_embed):==
- **text_embed:** Вектор размерности 768 (выход CLIP/BERT).
- **Генераторы fγ, fβ:** Это **НЕ линейные слои**, а **2-Layer MLPs** (Многослойные перцептроны).
- `Linear(768, 256) -> GELU -> Dropout(0.1) -> Linear(256, C)`
- Где `C` — количество каналов в Feature Map на конкретном уровне визуальной сети (например, C=1024C=1024 для DINOv3).
- _Особенность инициализации:_ Последний слой в `fγ` инициализируется нулями, а выход оборачивается в экспоненту: `γ=exp(fγ(text))`. Это гарантирует, что на старте обучения `γ=1.0 и β=0.0` (Identity mapping, не разрушающий pre-trained веса).
### 3. Размещение в пирамиде признаков (Feature Pyramid)
F14 доказывает, что применять FiLM ко всем слоям подряд — избыточно и ведет к over-fitting.
- **Early Layers (до Block 1/2):** Не модулируются. Они извлекают низкоуровневые края и градиенты, которые инвариантны к тексту.
- **Middle Layers (Blocks 2, 3):** Слегка модулируются.
- **Late Layers (Block 4 / Последние 3 блока Transformer):** Интенсивно модулируются. Именно здесь сеть принимает семантические решения ("Это снег или белая крыша?").
- **Вывод:** FiLM встраивается исключительно в последние 1/31/3 архитектуры Teacher'а.
### 4. Как работает Dynamic Adaptation?
Динамическая адаптация означает, что каналы визуальной сети перевзвешиваются в реальном времени:
1. При промпте _"Bright sunny day"_: γγ усиливает цветовые фильтры и текстурные детекторные каналы.
2. При промпте _"Midnight, low light"_: γγ обнуляет каналы, зависящие от цвета, и усиливает $edges$-каналы и угловые детекторы (которые работают даже при плохом освещении).
3. При промпте _"Snowy terrain"_: Сбрасывает детекторы травы/листьев.
**Weather-Driven Channel Gating (Динамическое стробирование)**
Механизм адаптивного перевзвешивания каналов визуальных признаков на основе текстового контекста реализован через архитектуру типа Squeeze-and-Excitation, но управляемую кросс-модальным входом:
![[Pasted image 20260626110515.png]]
Здесь `fT∈RB×D` представляет собой батч нормализованных текстовых эмбеддингов. Матрица W1W1 проецирует вектор в пространство меньшей размерности (параметр rr — reduction ratio, коэффициент сжатия), что заставляет сеть выучивать компактные семантические зависимости и экономит вычислительные ресурсы. Матрица `W2` восстанавливает размерность до исходной DD. Функция активации сигмоида σσ гарантирует, что компоненты вектора стробирования `g` лежат в диапазоне `(0,1)`
Слияние модальностей происходит по формуле взвешенной интерполяции:
![[Pasted image 20260626110728.png]]
> Эта формула заслуживает особого внимания. Она концептуально эквивалентна механизму FiLM (Feature-wise Linear Modulation), который используется в вашей архитектуре MERIDIAN. В FiLM трансформация задается как `Fi=Fi⊙(1+γi)+βi`
> В подходе WeatherPrompt текст не просто масштабирует визуальные каналы (компонента `g⊙fI`), но и осуществляет прямое остаточное добавление отфильтрованного текста `(1g)⊙fT`. Это позволяет модели полностью "заглушить" визуальный канал, если он безнадежно испорчен погодой (при `g→0`), и полностью опереться на семантический текстовый приор.
### 5. ## Протокол обучения (Learning Rate и EMA)
Так как визуальный backbone загружен весами Foundation Model (DINOv2/v3), а `fγ,fβ`​ инициализируются с нуля, требуется **Two-Speed Learning Rate**:
- `LR_Backbone` = 1e-5 (или заморожен на ранних этапах).
- `LR_FiLM_MLP` = 1e-3 (в 100 раз больше!). Оптимизатору нужно быстро научиться генерировать правильные γ,β.
- **EMA (Exponential Moving Average):** Для всех весов визуальной сети используется momentum m=0.999, чтобы обучение FiLM-модуляторов не расшатало основную геометрию пространства признаков.
## 6. Сравнение с SSF (Scale and Shift Features, TPAMI)
- **SSF:** К каждому слою сети добавляются обучаемые векторы `γtask` и `βtask`. Они **статичны** для конкретной задачи (например, один набор для Semantic Seg, другой для Depth).
- **WeatherPrompt (FiLM):** Векторы `γ` и `β` генерируются **на лету** для каждого отдельного изображения в зависимости от текста.
- **Вердикт:** SSF великолепен для Transfer Learning (Task Adaptation), но FiLM — абсолютный победитель для **Data-driven / Context-aware** адаптации.
## 7. Расширение до 5-modal FiLM для MERIDIAN Teacher
В проекте MERIDIAN ветка Teacher (спутник) имеет доступ не только к RGB и Тексту, но и к Глубине (Depth), Границам (Edges) и Семантике (Seg). Как использовать формулы F14, чтобы слить 5 модальностей воедино?
**Решение: Концепт Privileged Context Vector (PCV)** Вместо того чтобы делать независимые FiLM слои для каждой модальности, мы сливаем все Privileged-данные в единый вектор, который управляет модуляцией главного ствола (RGB DINOv3):
1. Прогоняем Depth через легкую CNN-ветку →→ `Depth_Embed (256-d)`
2. Прогоняем Edges через легкую CNN-ветку →→ `Edge_Embed (256-d)`
3. Получаем текст из VLM →→ `Text_Embed (256-d)`
4. Конкатенируем: PCV=`[Depth_Embed,Edge_Embed,Text_Embed]PCV=[Depth_Embed,Edge_Embed,Text_Embed]` (размерность 768).
5. Подаем PCVPCV в `fγ,fβ` MLP-генераторы.
**Итоговое уравнение Multi-modal FiLM для MERIDIAN:**
![[Pasted image 20260625162506.png|697]]