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,105 @@
# Руководство по переиспользованию существующих проектов
## 1. Проект генерации модальностей
Локальный путь:
```text
C:\Users\Lisadminipc\Documents\code\depth_edges_annotate_worlduav
```
Remote:
```text
https://git.lissad.keenetic.name/Pikaliov/depth_edges_annotate_worlduav
```
### Использовать
| Файл | Что взять |
|---|---|
| `scripts/run_gta_uav.py` | GTA-UAV layout, source mapping satellite/UAV, параметры annotation run |
| `scripts/seg_classes.py` | канонические 17 segmentation classes |
| `src/augmentor/io_utils.py` | SafeTensors layout и безопасная запись |
| `src/augmentor/inference.py` | normalization и post-processing модальностей |
| `in/config_files/*.gin` | hardware, input size, model и segmentation settings |
| `README.md` | формат выходов и pipeline stages |
### Не переносить автоматически
- Хардкодированные Linux paths.
- CLI на `argparse` из `run_gta_uav.py`; в новом проекте параметры задаются gin.
- World-UAV-specific subset logic, если она не нужна GTA-UAV.
- Edge modality как обязательный fusion input: в текущей постановке она не входит в full-modal contract.
### Ожидаемый annotation output
На одно изображение рекомендуется SafeTensors с ключами:
| Key | Dtype | Shape | Использование здесь |
|---|---|---|---|
| `depth` | float16 | `[1,H,W]` | UAV geometry |
| `segm` | uint8 | `[1,H,W]` | обе ветки |
| `chm` | float16 | `[1,H,W]` | satellite geometry |
| `edge` | float16 | `[1,H,W]` | не входит в primary input |
## 2. Проект StripNet и GTA-UAV training
Локальный путь:
```text
C:\Users\Lisadminipc\Documents\code\caption-test
```
Remote:
```text
https://git.lissad.keenetic.name/Pikaliov/caption-test
```
### Использовать
| Файл | Что взять |
|---|---|
| `src/models/stripnet/model.py` | StripNet-small stages и feature maps |
| `src/models/stripnet_encoder.py` | GAP и projection 512->1024 |
| `src/models/stripnet/conv_mona.py` | optional common adaptation stages 3-4 |
| `src/datasets/gtauav_dataset.py` | pair parsing, captions, multi-match ground truth |
| `src/datasets/mutually_exclusive_sampler.py` | защита от false negatives |
| `src/losses/multi_infonce.py` | symmetric retrieval objective |
| `src/training/train_gtauav.py` | training utilities, logging, checkpoints |
| `src/eval/evaluate.py` | retrieval evaluation |
| `conf/gtauav_balanced_stripnet.gin` | исходный StripNet config |
### Требуемые изменения
1. Расширить dataset output auxiliary tensors и validity masks.
2. Отделить image encoder от fusion family через общий API.
3. Сделать fusion variant выбираемым через gin.
4. Унифицировать diagnostics.
5. Убрать хардкодированные пути из training config.
6. Проверить multi-match evaluation после переноса.
7. Сохранить один StripNet instance shared для обеих view-веток.
## 2.1. Что уже скопировано в vendor_reference
Для чтения без доступа к исходным репозиториям в `vendor_reference/` лежат снимки: StripNet (`model.py`, `stripnet_encoder.py`, `conv_mona.py`), GTA-UAV dataset + `mutually_exclusive_sampler.py`, losses (`multi_infonce.py`, `weighted_infonce.py`, `hard_negatives.py`), `train_gtauav.py`, `trackers.py`, `profiling.py`, `evaluate.py`, `make_split.py`, `filter_segmentation.py`, конфиги gin, а из annotation-проекта — `run_gta_uav.py`, `seg_classes.py`, `io_utils.py`, `inference.py`, `models.py`. Снимки предназначены для аудита; рабочий перенос выполняется из живых репозиториев по правилам ниже.
Снапшоты split (`meta/train_80.json`, `test_20.json`, `seg_filter.json`) в vendor_reference сознательно не копировались (30+ MB данных): брать из `caption-test/meta/`.
## 3. Правило переноса кода
1. Сначала написать тест, фиксирующий поведение исходного компонента.
2. Перенести минимальный необходимый модуль.
3. Указать source project и исходный файл в module docstring.
4. Удалить неиспользуемые зависимости только после smoke comparison.
5. Не редактировать `vendor_reference/`; это контрольный снимок.
## 4. Минимальная проверка окружения
```powershell
Test-Path 'C:\Users\Lisadminipc\Documents\code\caption-test\src\models\stripnet_encoder.py'
Test-Path 'C:\Users\Lisadminipc\Documents\code\depth_edges_annotate_worlduav\scripts\run_gta_uav.py'
```
Дополнительно команда фиксирует фактические dataset paths в `reports/joint/ENVIRONMENT_AUDIT.md`, не добавляя их в исходный код.