forked from Pikaliov/fuze_task
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:
113
README.md
Normal file
113
README.md
Normal 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.
|
||||
Reference in New Issue
Block a user