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:
109
docs/03_codebase_guides/ANNOTATION_PROJECT_CODE_MAP.md
Normal file
109
docs/03_codebase_guides/ANNOTATION_PROJECT_CODE_MAP.md
Normal 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. Генерация повторяется во внешнем проекте только при отсутствии или повреждении данных.
|
||||
105
docs/03_codebase_guides/CAPTION_TEST_CODE_MAP.md
Normal file
105
docs/03_codebase_guides/CAPTION_TEST_CODE_MAP.md
Normal 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.
|
||||
Reference in New Issue
Block a user