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

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

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

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

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

View File

@@ -0,0 +1,286 @@
# Задание Морозу Егору Сергеевичу
## 1. Трек
Role-Aware Hierarchical Fusion.
Дополнительная командная роль: владелец dataset contract, modality preprocessing, validity masks и контроля качества auxiliary inputs.
## 2. Исследовательский вопрос
Даёт ли отдельная обработка spatial semantics, geometry и global text более сильный retrieval descriptor, чем один универсальный оператор для всех модальностей?
## 3. Обязательное чтение
### Общий пакет
- все документы `docs/02_references/01_required/`;
- fusion core synthesis и taxonomy;
- StripNet analysis B14.
### Segmentation
- `REVIEW_segmentation_pairA.md`
- `DELTA_pair_A_seg_revised_v3.md`
- `ОБЗОР_fusion_rgb_segmentation_v1.md`
- `F36_FC-CLIP.md`
- `P52_CVGL_2024_A guided ... segmentation.md`
### Geometry
- `REVIEW_depth_normals_pairB.md`
- `DELTA_pair_B_depth_uav_v3.md`
- `REVIEW_chm_pairC.md`
- `DELTA_pair_C_chm_sat_v3.md`
- `M11_CHMv2_deep_dive_for_MERIDIAN.md`
- `M4_2025_JRN-Geo ... .md`
- `P44_MGS2_deep_dive_for_MERIDIAN.md`
### Text
- `REVIEW_text_pairD_final.md`
- `REVIEW_text_pairD_methodology.md`
- `F14_2025_WeatherPrompt_deep_dive_for_MERIDIAN.md`
- `F47_2026_TacFiLM_Tactile_Modality_Fusion_VLA.md`
- `P64_2025_CGSI_deep_dive_for_MERIDIAN.md`
⚠️ Документы `DELTA_pair_*_v3.md` — короткие changelog-вершины. Полное содержание pair-анализов лежит в `03_segmentation/_version_chain/` и `04_geometry/_version_chain/` (базовые версии 3048 KB). Читать цепочкой: база → v2 → v3.
### Канонические опоры (проверенные выводы из vault, использовать в evidence matrix)
| Источник | Факт | Следствие для трека C |
|---|---|---|
| M4 JRN-Geo | normals дают +2.6% в паре с RGB, но alone → 37%: геометрия — модулятор, не самостоятельный поток | geometry-путь проектировать как модуляцию RGB-признаков, не как параллельный encoder |
| P44 MGS2 deep dive | асимметричная depth-ветка (только drone); Sobel-on-depth ≈ ориентационные карты — дешевле и устойчивее raw values | кандидат представления depth в C3 |
| P68 / обзор DA3 | metric scale depth на UAV ненадёжен | использовать только relative structure; запрет на абсолютные значения |
| B97 IM2HEIGHT (caveat) | DSM ≠ CHM; синтетический CHM может отравить обучение | проверять происхождение CHM-карт в data audit |
| F63 HLMamba (caveat) | multiplicative gating убивает информацию при near-zero RGB | аргумент за FiLM с additive β и residual-форму |
| P52 guided CVGL | land-cover guidance улучшает CVGL; GT-Guide vs Guided — прямое LUPI-evidence | главный прецедент пользы segmentation именно в CVGL |
| DFormerv2 (CVPR 2025, TRIAGE §2) | depth как geometry-prior bias в self-attention: модуляция ≡ identity при отсутствии depth | кандидат geometry-пути с бесплатной missing-modality устойчивостью |
| F14 WeatherPrompt deep dive | text→FiLM MLP: zero-init, two-speed LR; FiLM > CrossAttn > Concat | стартовая точка text-пути C5 |
## 4. Общая обязанность: data contract
Совместно с коллегами реализовать единый loader extension, который возвращает:
- RGB;
- captions и text-valid mask;
- segmentation tensor и valid mask;
- view-specific geometry tensor и valid mask;
- sample IDs только для logging;
- multi-match evaluation metadata.
Loader не должен знать выбранный fusion variant.
## 5. Персональные задачи
### C0. Data audit
Проверить минимум 40 samples, поровну satellite/UAV, и заполнить:
| Sample | View | RGB shape | Seg classes | Geometry range | Caption | Alignment issue | Verdict |
|---|---|---|---|---|---|---|---|
Отдельно проверить:
- satellite alpha channel;
- resize/crop mapping;
- orientation consistency;
- SafeTensors keys;
- invalid/constant maps;
- empty captions;
- segmentation background fraction.
### C1. Modality role contract
Для каждой modality заполнить:
| Field | RGB | Segmentation | Depth | CHM | Text |
|---|---|---|---|---|---|
| Raw input | | | | | |
| Normalization | | | | | |
| Encoder | | | | | |
| Spatial level | | | | | |
| Confidence | | | | | |
| Expected CVGL signal | | | | | |
| Main shortcut risk | | | | | |
### C2. Segmentation path
Сравнить:
1. Class ID embedding + convolution.
2. One-hot/probability maps + convolution.
3. Mask-pooled class tokens.
4. Segmentation-guided attention bias.
Ответить:
- где сохраняется spatial layout;
- как кодируются отсутствующие классы;
- что делать с high-background samples;
- нужна ли entropy/confidence;
- на каких StripNet stages segmentation полезнее.
### C3. UAV depth path
Сравнить input representations:
- normalized relative depth;
- inverse depth;
- depth gradients;
- depth + gradient channels;
- compact depth statistics.
Выбрать representation, которая не зависит от неизвестного absolute scale GTA-UAV.
### C4. Satellite CHM path
Сравнить:
- raw normalized CHM;
- robust percentile normalization;
- CHM gradients;
- CHM + validity mask;
- local height statistics.
Проверить, что CHM используется только для satellite view.
### C5. Text path
Сравнить:
1. Global FiLM.
2. Visual-query/text-key-value cross-attention.
3. L1/L2/L3 tokens.
4. Late descriptor gating.
Зафиксировать empty-caption behaviour и исключить location leakage.
### C6. Сформировать три кандидата
| Candidate | Required design |
|---|---|
| C-C1 | dense geometry+seg fusion, затем text FiLM |
| C-C2 | segmentation class tokens + geometry bias + late text attention |
| C-C3 | multi-stage role-specific adapters + hierarchical readout |
### C7. Обосновать hierarchy
Primary должен явно определить порядок, например:
```text
StripNet stage 2/3
+ segmentation spatial semantics
+ view-specific geometry structure
-> fused spatial feature
-> StripNet stage 4 / aggregation
+ text semantic context
-> hierarchical readout
-> descriptor [B,1024]
```
Нужно показать, почему другой порядок слабее или рискованнее.
### C8. Uncertainty/validity handling
Минимальный набор:
- `text_valid`;
- `segmentation_valid`;
- `geometry_valid`;
- segmentation entropy/background ratio;
- geometry valid fraction.
Learned reliability head добавлять только после сравнения с explicit deterministic indicators.
### C9. Shared и view-specific параметры
Обязательно view-specific:
- первый geometry projector;
- normalization depth/CHM;
- quality features, зависящие от geometry semantics.
Кандидаты на shared:
- output channel interface;
- segmentation encoder;
- text encoder;
- late fusion/readout.
### C10. Diagnostics
- segmentation class contribution;
- geometry feature norm;
- text contribution;
- valid fraction distributions;
- RGB vs fused cosine;
- per-view modality contribution;
- failure examples high-background/flat geometry/empty text.
### C11. Tests
1. Correct SafeTensors key mapping per view.
2. Segmentation IDs остаются в `0..16`.
3. Missing class mask pooling finite.
4. Depth не подаётся в satellite geometry path.
5. CHM не подаётся в UAV geometry path.
6. Constant maps finite.
7. Invalid pixels не влияют на pooled statistics.
8. Output shape и norm.
9. Spatial alignment after resize.
### C12. Персональные ablations
| ID | Сравнение |
|---|---|
| C-AB1 | one universal operator vs role-aware operators |
| C-AB2 | segmentation dense map vs class tokens |
| C-AB3 | raw depth vs inverse/gradient depth |
| C-AB4 | raw CHM vs robust/gradient CHM |
| C-AB5 | text FiLM vs cross-attention |
| C-AB6 | text early vs late |
| C-AB7 | spatial-first vs text-first |
| C-AB8 | validity only vs reliability head |
| C-AB9 | shared vs view-specific geometry projector |
| C-AB10 | global vs hierarchical readout |
### C13. Falsification
Role-aware hypothesis не подтверждена, если:
- универсальный Multi-FiLM не хуже;
- порядок fusion не влияет;
- geometry contribution близок к нулю;
- text полностью определяет descriptor;
- segmentation path улучшает same-area, но ухудшает cross-area;
- gain не повторяется по seed.
## 6. Кодовые артефакты
```text
src/fuse_proj/data/batch.py
src/fuse_proj/data/gtauav_multimodal.py
src/fuse_proj/data/validation.py
src/fuse_proj/models/fusion/role_aware.py
in/config_files/data_gtauav.gin
in/config_files/fusion_role_aware.gin
tests/test_multimodal_data.py
tests/test_role_aware.py
reports/moroz/DESIGN.md
reports/moroz/IMPLEMENTATION_AND_RESULTS.md
```
## 7. Definition of Done
- [ ] Data audit завершён.
- [ ] Loader contract принят всей командой.
- [ ] Role table заполнена.
- [ ] Segmentation/depth/CHM/text paths описаны отдельно.
- [ ] Три candidates сравнены.
- [ ] Primary/fallback выбраны.
- [ ] Все validity tests проходят.
- [ ] C-AB1..C-AB10 выполнены в согласованном объёме.
- [ ] Близно выполнил code review.
- [ ] Failure cases добавлены в общий отчёт.