Загрузить файлы в «reports» (П.1.1. Конспект) #1
183
reports/02_fusion_core_персональный.md
Normal file
183
reports/02_fusion_core_персональный.md
Normal 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 |
|
||||
315
reports/1.1 Подготовительный этап (Конспект).md
Normal file
315
reports/1.1 Подготовительный этап (Конспект).md
Normal 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 — асимметричная Teacher–Student система
|
||||
|
||||
MERIDIAN — асимметричная Teacher–Student система кросс-видовой геолокализации БПЛА (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, высоты 100–600 м|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, стабильность и интерпретируемость вклада модальностей.
|
||||
27
reports/EVIDENCE MATRIX.md
Normal file
27
reports/EVIDENCE MATRIX.md
Normal 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».
|
||||
|
||||
|
||||
|
||||
138
reports/Fusion RGB MM full v1.md
Normal file
138
reports/Fusion RGB MM full v1.md
Normal 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
125
reports/NOTES.md
Normal 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`), но и осуществляет прямое остаточное добавление отфильтрованного текста `(1−g)⊙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]]
|
||||
|
||||
Reference in New Issue
Block a user