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

113
README.md Normal file
View File

@@ -0,0 +1,113 @@
# Fuse Project: multimodal fusion for cross-view geo-localization
Проект для совместной разработки и экспериментального сравнения способов объединения модальностей в задаче перекрёстной геолокализации БПЛА и спутниковых изображений.
## Команда
| Сотрудник | Основной трек | Дополнительная командная роль |
|---|---|---|
| Павленко Богдан Викторович | Condition-Aware RGB-Anchored Fusion | координатор общего архитектурного API |
| Близно Максим Витальевич | Token/Bottleneck Aggregation | координатор benchmark, метрик и воспроизводимости |
| Мороз Егор Сергеевич | Role-Aware Hierarchical Fusion | координатор входных модальностей и контроля качества данных |
Все три трека реализуются в одном репозитории, используют один набор данных, один StripNet contract, одинаковые split, loss, метрики и правила отчётности. Результатом является не три изолированных исследования, а общий сравнительный проект с тремя взаимозаменяемыми fusion-модулями.
## Постановка
Для satellite-ветки доступны:
1. RGB satellite.
2. Текстовое описание satellite-сцены.
3. CHM satellite.
4. Семантическая сегментация satellite.
Для UAV-ветки доступны:
1. RGB UAV.
2. Текстовое описание UAV-сцены.
3. Карта глубины UAV.
4. Семантическая сегментация UAV.
RGB кодируется shared `StripNet-small`. Каждая ветка независимо строит L2-нормированный descriptor `[B, 1024]`. Сопоставление веток выполняется только в retrieval objective. Прямая передача признаков или метаданных между paired satellite и UAV внутри encoder запрещена.
## С чего начать
1. Прочитать [контекст MERIDIAN](docs/00_project/06_MERIDIAN_CONTEXT.md) — частью какой системы является проект и почему важна устойчивость к отсутствию модальности.
2. Прочитать [общее задание](docs/01_tasks/00_MASTER_ASSIGNMENT.md).
3. Прочитать [контракт входов и выходов](docs/00_project/01_INPUT_OUTPUT_CONTRACT.md).
4. Прочитать [регламент совместной работы](docs/00_project/02_TEAM_WORKFLOW.md).
5. Открыть своё персональное задание в `docs/01_tasks/`.
6. Изучить обязательные документы по [карте чтения](docs/02_references/00_READING_MAP.md). Важно: канонические документы — это цепочки версий, полное содержание лежит в `_version_chain/` (см. карту чтения, §0).
7. Проверить доступность GTA-UAV и двух внешних проектов по [руководству переиспользования](docs/00_project/05_REPOSITORY_REUSE_GUIDE.md).
8. До реализации согласовать общий API на совместном архитектурном ревью.
## Данные
Датасет GTA-UAV-LR и его производные расположены на Linux-сервере с RTX 4090:
| Компонент | Путь |
|---|---|
| RGB + pair JSON | `/home/servml/Документы/datasets/GTA-UAV-LR/` |
| Captions (L1/L2/L3, JSON) | `/home/servml/Документы/datasets/GTA-UAV-LR-captions/` |
| Auxiliary maps (segm/depth/edge/chm, SafeTensors) | `/home/servml/Документы/datasets/GTA-UAV-LR-aug/` |
| Split snapshots, seg-filter | `caption-test/meta/` |
Фактические пути не хардкодятся: задаются через gin и фиксируются в `reports/joint/ENVIRONMENT_AUDIT.md`.
Рекомендуемое окружение: Python 3.11, PyTorch 2.x, CUDA для RTX 4090. Системный Python 3.14 не использовать для этого проекта, так как рабочие сборки PyTorch и pytest могут отсутствовать.
```powershell
py -3.11 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -e ".[dev]"
python -m pytest -q
```
## Структура
```text
fuse_proj/
├── docs/
│ ├── 00_project/ # постановка, контракты, workflow, эксперименты, контекст MERIDIAN
│ ├── 01_tasks/ # общее и персональные задания
│ ├── 02_references/ # физические копии обязательных материалов
│ │ ├── 01_required/ # обязательный пакет для всех
│ │ ├── 02_fusion_core/ # канон fusion (+ _version_chain/ с полными базовыми версиями)
│ │ ├── 03_segmentation/ # pair A (+ _version_chain/)
│ │ ├── 04_geometry/ # pair B/C (+ _version_chain/)
│ │ ├── 05_text/ # pair D
│ │ └── 06_paper_analyses/ # конспекты статей F/P/B/M
│ └── 03_codebase_guides/ # карты использования внешних проектов
├── vendor_reference/ # снимки ключевых файлов двух рабочих проектов (read-only)
├── src/fuse_proj/ # общий код и fusion API
├── in/config_files/ # gin-конфигурации
├── tests/ # unit, shape и integration tests
├── experiments/ # registry и шаблоны run-артефактов
├── reports/ # персональные и общий отчёты
└── results/ # локальные агрегированные результаты, без весов и датасета
```
## Доступные внешние проекты
| Назначение | Локальный путь | Remote |
|---|---|---|
| Генерация depth, segmentation, CHM и SafeTensors | `C:\Users\Lisadminipc\Documents\code\depth_edges_annotate_worlduav` | `https://git.lissad.keenetic.name/Pikaliov/depth_edges_annotate_worlduav` |
| StripNet, GTA-UAV loader, loss, eval, training utilities | `C:\Users\Lisadminipc\Documents\code\caption-test` | `https://git.lissad.keenetic.name/Pikaliov/caption-test` |
`vendor_reference/` содержит копии файлов для чтения и аудита. Реализацию следует переносить осознанно в `src/fuse_proj/`, а не редактировать снимки.
## Жёсткие ограничения
- Visual backbone: `StripNet-small`, shared для satellite и UAV.
- Основной размер входа: `256 x 256`.
- Descriptor: `1024`, L2 normalization.
- Dataset: GTA-UAV-LR, primary split `cross-area`.
- Full-modal forward использует RGB, text, segmentation и view-specific geometry.
- Стохастическое отключение модальностей при обучении не является частью задания.
- Leave-one-modality-out допускается только как контролируемая оценочная аблация.
- Координаты, имена локаций и paired-view признаки не должны попадать в fusion-модуль.
- Все сравниваемые варианты используют одинаковый protocol и минимум три seed в финальном сравнении.
## Главный результат
Команда должна предоставить общий benchmark трёх семейств fusion, выбрать primary, fallback и research-arm, а также показать, какая дополнительная модальность, на каком уровне StripNet и каким оператором даёт измеримое улучшение retrieval.