Очень интересная идея. Вот мой анализ: ## 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/)