Files
fuze_task/docs/00_project/01_INPUT_OUTPUT_CONTRACT.md
Pikaliov 2c6a00a4ca 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>
2026-06-11 17:16:57 +03:00

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.