From 71ebce3b6d012ce3273586c7b23831b0be2a160b Mon Sep 17 00:00:00 2001 From: bogdanpavl Date: Wed, 24 Jun 2026 08:54:36 +0000 Subject: [PATCH 1/4] =?UTF-8?q?=D0=97=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=B2=20=C2=AB?= =?UTF-8?q?reports=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../1.1 Подготовительный этап (Конспект).md | 315 ++++++++++++++++++ 1 file changed, 315 insertions(+) create mode 100644 reports/1.1 Подготовительный этап (Конспект).md diff --git a/reports/1.1 Подготовительный этап (Конспект).md b/reports/1.1 Подготовительный этап (Конспект).md new file mode 100644 index 0000000..ec28331 --- /dev/null +++ b/reports/1.1 Подготовительный этап (Конспект).md @@ -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, стабильность и интерпретируемость вклада модальностей. \ No newline at end of file -- 2.43.0 From ec7586b68daed6b2a649aab1bfad20a17d33d83a Mon Sep 17 00:00:00 2001 From: bogdanpavl Date: Thu, 25 Jun 2026 14:05:26 +0000 Subject: [PATCH 2/4] =?UTF-8?q?=D0=97=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=B2=20=C2=AB?= =?UTF-8?q?reports=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit П. 1.1. Конспект по пункту П. 1.2. Разбор personal_package, заметки, Evidence matrix (≥8 источников) --- reports/02_fusion_core_персональный.md | 183 +++++++++++++++++++++++++ reports/EVIDENCE MATRIX.md | 25 ++++ reports/Fusion RGB MM full v1.md | 138 +++++++++++++++++++ reports/NOTES.md | 102 ++++++++++++++ 4 files changed, 448 insertions(+) create mode 100644 reports/02_fusion_core_персональный.md create mode 100644 reports/EVIDENCE MATRIX.md create mode 100644 reports/Fusion RGB MM full v1.md create mode 100644 reports/NOTES.md diff --git a/reports/02_fusion_core_персональный.md b/reports/02_fusion_core_персональный.md new file mode 100644 index 0000000..cf86865 --- /dev/null +++ b/reports/02_fusion_core_персональный.md @@ -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 меньше, чем с применением метода;
Driving results:
Уменьшение числа параметров при использовании адаптеров в сравнении с baseline и 4 раздельными бэкбонами | +| Transfer | condition token = ваш контроллер `c_v`;
env-descriptor → замена на content-summary + quality + `e_view`;
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
(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;
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-компонент потеряет информацию;
При дропауте модальности ненадежно + 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;
преимущество экономии квадратичной стоимости проявляется для пары модальностей, а не при произв. их числе;
оценки только на собственном бенчмарке; | +| 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):
`PCV = [DepthEmb ⊕ EdgeEmb ⊕ TextEmb]`
`(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;
преимущество экономии квадратичной стоимости проявляется для пары модальностей, а не при произв. их числе;
оценки только на собственном бенчмарке; | +| 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 | diff --git a/reports/EVIDENCE MATRIX.md b/reports/EVIDENCE MATRIX.md new file mode 100644 index 0000000..c583059 --- /dev/null +++ b/reports/EVIDENCE MATRIX.md @@ -0,0 +1,25 @@ + +[[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) | + +## Сквозной вывод + +По столбцу **Identity path** явная identity подтверждена в статьях только у **F43, F47 и F68** (три независимых источника) — это опорная триада для теста identity-at-init (4.2). У F39 / F40 / F44 / F4 identity либо предположение, либо отсутствует, что отделяет «легальные для primary» операторы от «только-research-arm». + + + diff --git a/reports/Fusion RGB MM full v1.md b/reports/Fusion RGB MM full v1.md new file mode 100644 index 0000000..d142f09 --- /dev/null +++ b/reports/Fusion RGB MM full v1.md @@ -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 \ No newline at end of file diff --git a/reports/NOTES.md b/reports/NOTES.md new file mode 100644 index 0000000..fcdbbc3 --- /dev/null +++ b/reports/NOTES.md @@ -0,0 +1,102 @@ +# 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) для модуляции визуальных признаков на основе текстового промпта (например: "Снимок сделан глубокой ночью в тумане").  +### 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"_: Сбрасывает детекторы травы/листьев. + +### 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]] + -- 2.43.0 From fe4b80242cc22bc26c3d58e070027f4816c25af3 Mon Sep 17 00:00:00 2001 From: bogdanpavl Date: Fri, 26 Jun 2026 07:50:53 +0000 Subject: [PATCH 3/4] =?UTF-8?q?=D0=97=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=B2=20=C2=AB?= =?UTF-8?q?reports=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit evidence matrix v2 --- reports/EVIDENCE MATRIX.md | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/reports/EVIDENCE MATRIX.md b/reports/EVIDENCE MATRIX.md index c583059..970cc65 100644 --- a/reports/EVIDENCE MATRIX.md +++ b/reports/EVIDENCE MATRIX.md @@ -5,17 +5,19 @@ # Канонические опоры 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) | +| 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) и подать в генераторы | Необходим достаточно релевантный текстовый промпт | +| | | | | | | | ## Сквозной вывод -- 2.43.0 From 8faacf7cc7d05104dec3cb7f963326134a5b2fdf Mon Sep 17 00:00:00 2001 From: bogdanpavl Date: Fri, 26 Jun 2026 08:07:32 +0000 Subject: [PATCH 4/4] =?UTF-8?q?=D0=97=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=B2=20=C2=AB?= =?UTF-8?q?reports=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reports/NOTES.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/reports/NOTES.md b/reports/NOTES.md index fcdbbc3..83e57c0 100644 --- a/reports/NOTES.md +++ b/reports/NOTES.md @@ -43,6 +43,15 @@ ### 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). @@ -70,6 +79,20 @@ F14 доказывает, что применять FiLM ко всем слоя 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**: -- 2.43.0