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>
5.3 KiB
Руководство по переиспользованию существующих проектов
1. Проект генерации модальностей
Локальный путь:
C:\Users\Lisadminipc\Documents\code\depth_edges_annotate_worlduav
Remote:
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
Локальный путь:
C:\Users\Lisadminipc\Documents\code\caption-test
Remote:
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 |
Требуемые изменения
- Расширить dataset output auxiliary tensors и validity masks.
- Отделить image encoder от fusion family через общий API.
- Сделать fusion variant выбираемым через gin.
- Унифицировать diagnostics.
- Убрать хардкодированные пути из training config.
- Проверить multi-match evaluation после переноса.
- Сохранить один 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. Правило переноса кода
- Сначала написать тест, фиксирующий поведение исходного компонента.
- Перенести минимальный необходимый модуль.
- Указать source project и исходный файл в module docstring.
- Удалить неиспользуемые зависимости только после smoke comparison.
- Не редактировать
vendor_reference/; это контрольный снимок.
4. Минимальная проверка окружения
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, не добавляя их в исходный код.