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.9 KiB
5.9 KiB
Контракт входов и выходов
1. Единица данных
Одна обучающая запись содержит UAV query и один положительный satellite candidate. Для evaluation одна UAV query может иметь несколько допустимых satellite matches.
2. Satellite view
| Поле | Форма | Dtype | Нормализация | Назначение |
|---|---|---|---|---|
rgb |
[B, 3, 256, 256] |
float32 |
ImageNet mean/std | вход StripNet |
text |
list[str] или tokens |
string/int | согласно text encoder | описание сцены без location leakage |
geometry |
[B, 1, 256, 256] |
float32 |
robust per-frame CHM normalization | высотная структура |
segmentation |
[B, 1, 256, 256] class IDs или [B, 17, 256, 256] probabilities |
uint8/float32 |
IDs 0..16 или probabilities |
land-cover semantics |
geometry_valid |
[B, 1, 256, 256] |
bool |
нет | валидные CHM pixels |
segmentation_valid |
[B, 1, 256, 256] |
bool |
нет | валидные segmentation pixels |
sample_id |
[B] |
string | нет | только логирование, не feature |
3. UAV view
| Поле | Форма | Dtype | Нормализация | Назначение |
|---|---|---|---|---|
rgb |
[B, 3, 256, 256] |
float32 |
ImageNet mean/std | вход StripNet |
text |
list[str] или tokens |
string/int | согласно text encoder | описание сцены без location leakage |
geometry |
[B, 1, 256, 256] |
float32 |
relative depth normalization | структура и масштабные признаки |
segmentation |
[B, 1, 256, 256] class IDs или [B, 17, 256, 256] probabilities |
uint8/float32 |
IDs 0..16 или probabilities |
spatial semantics |
geometry_valid |
[B, 1, 256, 256] |
bool |
нет | валидные depth pixels |
segmentation_valid |
[B, 1, 256, 256] |
bool |
нет | валидные segmentation pixels |
sample_id |
[B] |
string | нет | только логирование, не feature |
4. StripNet contract
| Stage | Tensor | Spatial stride | Разрешённое использование |
|---|---|---|---|
| 1 | [B, 64, 64, 64] |
4 | преимущественно RGB low-level; auxiliary fusion только после отдельного обоснования |
| 2 | [B, 128, 32, 32] |
8 | dense segmentation/geometry кандидаты |
| 3 | [B, 320, 16, 16] |
16 | основной mid-level fusion |
| 4 | [B, 512, 8, 8] |
32 | high-level fusion и readout |
| GAP | [B, 512] |
global | RGB anchor descriptor |
| Projection | [B, 1024] |
global | retrieval descriptor до L2 normalization |
Backbone weights shared между satellite и UAV. Базовый вариант заморожен, адаптеры stages 3-4 рассматриваются одинаково для всех fusion families.
5. Выход fusion-модуля
Каждый encode_view возвращает:
| Поле | Форма | Требование |
|---|---|---|
descriptor |
[B, 1024] |
finite, L2 norm 1 +/- 1e-4 |
rgb_descriptor |
[B, 1024] |
RGB anchor для диагностики |
modality_contributions |
[B, 3] или dict |
text, segmentation, geometry |
diagnostics |
dict tensors/scalars | gates, attention mass, norms, entropy |
Диагностика не должна менять descriptor в eval mode.
6. Парный forward
satellite batch -> encode_view(view="satellite") -> z_sat [B, 1024]
UAV batch -> encode_view(view="uav") -> z_uav [B, 1024]
similarity = z_uav @ z_sat.T / temperature
Между двумя вызовами encode_view нет обмена признаками. Положительные и отрицательные связи используются только при вычислении retrieval objective.
7. Text contract
- Поддержать L1, L2, L3 или выбранную объединённую схему.
- Пустой satellite caption обрабатывается через explicit validity mask.
- Пустая строка не должна кодироваться как полноценный semantic signal.
- Caption не должен содержать координаты, названия районов, file names и прямые match identifiers.
- Text encoder и token budget фиксируются для честного сравнения fusion variants.
8. Geometry contract
- CHM и depth имеют общий ключ
geometry, но разные preprocessing и projector parameters. - Нельзя считать численные значения depth и CHM сопоставимыми до view-specific normalization.
- PNG допускается только для визуальной проверки. Для обучения использовать dense tensors/SafeTensors.
- Любая производная карта, например depth gradient, считается внутри documented preprocessing block.
9. Segmentation contract
- Канонический набор: 17 unified classes.
- Primary representation определяется командой на interface-freeze: class IDs + embedding или probabilities/logits.
- Hard RGB palette images не используются как model input.
- Редкие и отсутствующие классы не должны приводить к NaN при mask pooling.
10. Запрещённые признаки
- GPS и координаты.
- Название карты, района или локации.
- Индекс paired image как embedding.
- Features второй view-ветки внутри текущего encoder.
- Evaluation labels внутри preprocessing.