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,109 @@
# Карта проекта depth_edges_annotate_worlduav
## 1. Источник
```text
C:\Users\Lisadminipc\Documents\code\depth_edges_annotate_worlduav
```
Снимки ключевых файлов находятся в `vendor_reference/depth_edges_annotate_worlduav/`.
## 2. GTA-UAV annotation run
Reference entry point: `scripts/run_gta_uav.py`.
Исходная GTA-UAV структура:
```text
GTA-UAV-LR/
├── drone/images/ # UAV, 512x384
└── satellite/ # satellite, 256x256, возможен alpha channel
```
Reference output:
```text
GTA-UAV-LR-aug/
├── depth/
├── edge/
├── segm/
├── chm/
├── safetensors/
└── manifest.json
```
## 3. Используемые модальности
| View | Geometry key | Segmentation key |
|---|---|---|
| Satellite | `chm` | `segm` |
| UAV | `depth` | `segm` |
`edge` генерируется pipeline, но не входит в primary fusion input этого проекта.
## 4. Segmentation classes
Canonical source: `scripts/seg_classes.py`.
17 classes:
```text
0 background
1 building
2 road
3 vegetation
4 water
5 sand and gravel ground
6 rocky terrain
7 farmland
8 railway
9 parking lot
10 sidewalk
11 bare soil and plowed field
12 roof and rooftop
13 sports field and playground
14 muddy ground and wetland
15 embankment and levee
16 swimming pool
```
При переносе запрещено создавать новый порядок IDs.
## 5. Storage
Для обучения предпочтительны SafeTensors:
| Key | Dtype | Shape | Range |
|---|---|---|---|
| `depth` | float16 | `[1,H,W]` | normalized `[0,1]` |
| `chm` | float16 | `[1,H,W]` | normalized `[0,1]` |
| `segm` | uint8 | `[1,H,W]` | IDs `[0,16]` |
| `edge` | float16 | `[1,H,W]` | normalized `[0,1]` |
PNG используется только для визуальной инспекции.
## 6. Data validation перед training
Для каждой view вычислить:
- число найденных SafeTensors;
- число отсутствующих файлов;
- shape mismatch count;
- NaN/Inf count;
- min/max/mean/std geometry;
- class histogram segmentation;
- valid fraction;
- долю constant maps;
- совпадение stem с RGB.
Результат сохранить в `reports/joint/DATA_VALIDATION.json` и кратко описать в `ENVIRONMENT_AUDIT.md`.
## 7. Что не копировать в training code
- Model inference implementation генераторов.
- Веса DA3, segmentation и CHM generators.
- Sequential model loading logic.
- Visualization palette как model input.
- Хардкодированные source/output paths.
Новый проект читает готовые annotations. Генерация повторяется во внешнем проекте только при отсутствии или повреждении данных.

View File

@@ -0,0 +1,105 @@
# Карта проекта caption-test
## 1. Источник
```text
C:\Users\Lisadminipc\Documents\code\caption-test
```
Снимки ключевых файлов находятся в `vendor_reference/caption_test/`.
## 2. StripNet
| Файл | Назначение | Действие |
|---|---|---|
| `src/models/stripnet/model.py` | 4-stage StripNet-small | переиспользовать backbone |
| `src/models/stripnet_encoder.py` | GAP + Linear 512->1024 | использовать как RGB baseline wrapper |
| `src/models/stripnet/conv_mona.py` | adapters stages 3-4 | применять одинаково во всех сравнениях |
| `conf/gtauav_balanced_stripnet.gin` | reference config | перенести параметры, убрать hardcoded paths |
Ожидаемые stage outputs:
```text
stage 1: [B, 64, 64, 64]
stage 2: [B, 128, 32, 32]
stage 3: [B, 320, 16, 16]
stage 4: [B, 512, 8, 8]
```
Текущий wrapper возвращает только stage 4 descriptor. Для multi-stage fusion нужен безопасный интерфейс к `forward_features`, не дублирующий backbone forward.
## 3. GTA-UAV data
| Файл | Полезная часть |
|---|---|
| `src/datasets/gtauav_dataset.py` | pair JSON, captions L1/L2/L3, satellite candidates |
| `src/datasets/mutually_exclusive_sampler.py` | исключение false negatives внутри batch |
| `meta/train_80.json` | train split snapshot |
| `meta/test_20.json` | test split snapshot |
| `meta/seg_filter.json` | segmentation-based filter |
Что добавить:
1. Annotation root.
2. SafeTensors loading.
3. CHM для satellite, depth для UAV.
4. Segmentation для обеих view.
5. Validity masks.
6. Auxiliary tensor validation.
## 4. Training
| Файл | Переиспользовать |
|---|---|
| `src/training/train_gtauav.py` | seed, optimizer, scheduler, tracking, checkpoint patterns |
| `src/training/trackers.py` | CSV/TensorBoard/W&B |
| `src/training/profiling.py` | profiler и model summary |
| `src/losses/multi_infonce.py` | symmetric objective |
| `src/losses/weighted_infonce.py` | только если одинаково для всех variants |
Текущий training file содержит исторические model options и hardcoded paths. В новом проекте отделить:
- model construction;
- fusion registry;
- data config;
- training loop;
- evaluation;
- run manifest.
## 5. Evaluation
Критическая проверка: одна UAV query может иметь несколько valid satellite matches. Нельзя считать единственным positive только diagonal pair текущего batch.
Сохранить per-query:
```text
query_id
rank_first_positive
top_k_ids
success_at_1
success_at_5
success_at_10
```
Это требуется для paired statistical tests между fusion variants.
## 6. Residual fusion reference
`src/models/residual_fusions.py` содержит простые gate/residual baselines. Использовать как B1-B3 reference, но перед переносом:
- проверить все ветви `gate_type`;
- добавить strict shape validation;
- добавить explicit diagnostics;
- убрать неиспользуемые варианты;
- обеспечить identity behaviour;
- покрыть tests.
## 7. Рекомендуемый порядок переноса
1. StripNet model и wrapper.
2. Dataset pair semantics.
3. Evaluation.
4. RGB-only training smoke.
5. SafeTensors extension.
6. Common fusion API.
7. Три fusion variants.