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,66 @@
Очень интересная идея. Вот мой анализ:
## CHMv2 vs Depth Anything V3 для CVGL
|Аспект|DA3-BASE (depth)|CHMv2 (canopy height)|
|:--|:--|:--|
|**Что предсказывает**|Относительную глубину сцены (расстояние до камеры)|**Абсолютную высоту растительности** (в метрах)|
|**Backbone**|ViT (собственный)|**DINOv3 ViT-L/16 Sat** (тот же что наш Teacher!)|
|**Обучающие данные**|Наземные/уличные фото|**Спутниковые снимки + LiDAR**|
|**Домен**|General (domain gap для satellite)|**Native satellite** (нет domain gap)|
|**Выход**|Relative [0,1] per-frame|**Абсолютный** (метры)|
|**Разрешение**|Произвольное|Метровое (satellite)|
|**HuggingFace**|`depth-anything/DA3-BASE`|[`facebook/dinov3-vitl16-chmv2-dpt-head`](https://huggingface.co/facebook/dinov3-vitl16-chmv2-dpt-head)|
|**Информативность для CVGL**|Рельеф + масштаб (general)|**Высота деревьев** (специфична)|
## Мой вердикт: использовать **оба** как отдельные модальности
**Почему не заменять, а дополнять:**
1. **DA3 и CHMv2 дают ортогональную информацию:**
- DA3 depth → **рельеф и структура зданий** (перепады высот крыш, дорожная сетка)
- CHMv2 → **высота растительности** (парки vs пустыри, лес vs поле)
- Для matching: два здания на одном рельефе различаются окружающей растительностью
2. **CHMv2 построен на DINOv3 Sat** — том самом backbone, который наш Teacher использует. Это значит:
- Features CHMv2 **совместимы** с Teacher's feature space
- L_feat дистилляция от CHMv2-features к Student будет эффективнее, чем от DA3
3. **CHMv2 работает нативно на спутниковых снимках** — нет domain gap. DA3 обучен на наземных фото → на satellite качество ниже (это наша гипотеза AH3)
4. **Для дроновых снимков:** DA3 лучше (дрон ≈ наземный ракурс), CHMv2 хуже (обучен на satellite nadir)
## Предлагаемая конфигурация: 7-канальный выход
```
Channels: RGB(3) + Depth(1) + CanopyHeight(1) + Edges(1) + SegID(1) = 7ch
```
|Канал|Модель|Для drone|Для satellite|
|:--|:--|:--|:--|
|0-2: RGB|—|Основа|Основа|
|3: **Depth**|DA3-BASE|**Хорошо** (похож на training domain)|Средне (domain gap)|
|4: **Canopy Height**|CHMv2|Средне (обучен на sat)|**Отлично** (native domain)|
|5: Edges|Sobel из depth|Хорошо|Хорошо|
|6: SegID|SegEarth-OV3|Хорошо|Хорошо|
**Ключевое преимущество:** DA3 и CHMv2 **комплементарны по доменам**: DA3 лучше для drone, CHMv2 лучше для satellite. Teacher, обучающийся на обоих, получает лучшее из двух миров.
## Что нужно для реализации
1. Добавить `canopy_height` как новую стадию в pipeline
2. Модель: `facebook/dinov3-vitl16-chmv2-dpt-head` (HuggingFace transformers)
3. Вход: RGB satellite/drone image
4. Выход: `canopy.npy` [1, H, W] float32 (метры, абсолютные)
5. Обновить `segmentation.gin` → добавить `canopy_model_id`
6. Обновить `concat` → 7ch вместо 6ch
Хотите добавить CHMv2 в пайплайн?
Sources:
- [CHMv2 paper (arXiv:2603.06382)](https://arxiv.org/abs/2603.06382)
- [CHMv2 model on HuggingFace](https://huggingface.co/facebook/dinov3-vitl16-chmv2-dpt-head)
- [DINOv3 GitHub](https://github.com/facebookresearch/dinov3)
- [Meta AI blog post](https://ai.meta.com/blog/world-resources-institute-dino-canopy-height-maps-v2/)