304 lines
26 KiB
Markdown
304 lines
26 KiB
Markdown
|
||
## 0. Главный вердикт
|
||
|
||
|
||
|
||
---
|
||
|
||
## 1. Где HID-Fusion уже соответствует SOTA (не трогать)
|
||
|
||
|Компонент|Подтверждение в литературе|
|
||
|---|---|
|
||
|**InfoNCE как ядро L_cvi**|Sample4Geo (98.68% R@1 CVUSA), GeoSSM (96.02%), GeoBridge, GLEAM — все на InfoNCE; Triplet вытеснена|
|
||
|**Симметричный Loss (drone↔sat и sat↔drone)**|Sample4Geo, GLEAM — стандартная практика|
|
||
|**Ортогональные проекции P_M⊥P_S, Q_desc⊥Q_cvi**|CVD M5/P16, GeoDTR+ — disentanglement через ортогональность подтверждён|
|
||
|**CKA-based disentanglement (L_disent)**|Современная замена MINE; O(Bd) дешевле, стабильнее градиент|
|
||
|**Дифференциальная bias-инициализация шлюзов (0.4/0.3/0.2)**|WeatherPrompt F14 (zero-init γ,β), WildDet3D F33 — концепция modality injection с малыми инициалами валидна|
|
||
|**Curriculum 3 фазы с graceful degradation**|GLEAM two-phase warmup, GeoBridge поэтапное обучение — концепт принят в SOTA|
|
||
|**MobileCLIP2-s0 как text encoder с partial unfreeze**|Sweet spot для текста БПЛА; альтернатив с лучшим Pareto нет (см. §6)|
|
||
|**Иерархическая декомпозиция в 3 листа**|**Не покрыто литературой:** CVD = 2 фактора, GeoText-1652 = 2 уровня текста (image/region), Aquila VLM6 — 2 уровня. **Это новизна.**|
|
||
|**L_hier (реконструкционная когерентность Level-2 → Level-1)**|**Не покрыто литературой.** Новизна.|
|
||
|**L_center на основе SM-InfoScore (Mahalanobis к EMA-центрам)**|**Не покрыто в CVGL.** Стандартный L2-center заменён на Mahalanobis — новизна.|
|
||
|
||
---
|
||
|
||
## 2. Конкурентные работы 2025–2026 (pre-publication threats)
|
||
|
||
| Работа | Год | R@1 (Univ-1652) | Что делает | Угроза | Контрмера |
|
||
| --------------------------- | :--: | :--------------------------------: | ----------------------------------------------- | :------------------------------------: | ---------------------------------------------------------------------------------- |
|
||
| **CGSI** (P64) | 2025 | 95.45% | DINOv2+BERT+metadata, late fusion HBP | 🔴 Критично — text+metadata fusion | Подчеркнуть **иерархию (3 листа)** + L_cvi на CVI-подпр.; CGSI flat-fusion |
|
||
| **GeoBridge** (P58/M10) | 2026 | 94.89% | DINOv2+BERT+meta, semantic anchoring | 🔴 Критично — text как «якорь» | HID не использует text как anchor; явная декомпозиция typов текста (T_meta/L12/L3) |
|
||
| **MMGeo** (P50) | 2026 | 94.81% | 5-modal mutable token | 🟠 Среднее — но out of scope (5-modal) | Кандидатская = 2 модальности; MMGeo цитировать как шире-задачный baseline |
|
||
| **CVD** (M5/P16) | 2025 | +1–2% поверх baseline | Content/Viewpoint disentanglement (vision-only) | 🟠 Среднее — disentanglement | HID = 3 листа vs CVD = 2; vision+text vs vision-only |
|
||
| **(MGS)²** (P44) | 2026 | 97.50% | Depth + multi-scale geometric | 🟢 Не в scope (depth) | Цитировать как upper bound при depth-priors; HID = vision+text only |
|
||
| **GeoText-1652** (P57/VLM2) | 2024 | 13.6% T→I | Region-level text + 9-zone | 🟢 Низкая — это benchmark | HID использует его как evaluation set, цитирует как мотивацию для T_L12 |
|
||
| **GeoDTR+** (P11) | 2023 | 95.05% (CVUSA) | Geometric disentangle + CHSG aug | 🟢 Низкая — vision-only | CHSG как идея для аугментаций (см. §3) |
|
||
| **Sample4Geo** (P10) | 2023 | 98.68% (CVUSA), 92.65% (Univ-1652) | InfoNCE + GPS-DSS sampling | 🟡 Базовый baseline | Использовать GPS-DSS как стратегию sampling в L_cvi |
|
||
|
||
**Стратегическая отстройка HID-Fusion:** новизна = **двухуровневая иерархия + 3 типа текста + L_cvi/L_disent/L_hier/L_center как авторские**. CGSI/GeoBridge — это flat fusion, не иерархия. CVD — это 2 фактора, не 3. GeoText-1652 — это benchmark, не архитектура.
|
||
|
||
---
|
||
|
||
## 3. Что **добавить** в HID-Fusion (точечные коррекции, ранжированы по приоритету)
|
||
|
||
### 🔴 P1 — критические, сделать в S0–S2
|
||
|
||
#### 3.1. CHSG-аугментация (Layout Simulation) для L_cvi
|
||
|
||
**Источник:** GeoDTR+ (P11), +7.52% R@1 cross-area на CVUSA.
|
||
|
||
**Что:** для каждой пары `(I_drone, I_sat)` создавать 2 layout-shifted варианта спутникового снимка (random translation 0–20%, без вращения). Батч становится `2B` пар. Это даёт «бесплатные» hard negatives внутри батча без mining.
|
||
|
||
**Применимо к HID:** работает в Фазе 1 (DISC) и Фазе 2 (full HID), не конфликтует с curriculum.
|
||
|
||
**Риск:** дополнительная аугментация — нужно проверить, что текстовые описания (`T_L12`, `T_L3`) не теряют валидности при shift. Решение: применять только к спутнику, текстовые описания при shift сохраняются.
|
||
|
||
**Действие:** добавить `LayoutShiftAug` в dataloader S0; включить с эпохи 16 (Фаза 2).
|
||
|
||
#### 3.2. Hard-negative mining: GPS-then-DSS вместо in-batch random
|
||
|
||
**Источник:** Sample4Geo (P10), +9.46% R@1 от GPS-sampling, +11.71% от DSS, вместе +12.63% на VIGOR.
|
||
|
||
**Что:** заменить in-batch negatives для `L_cvi` на двухфазную стратегию:
|
||
|
||
- **Фаза 1 (cold start, эпохи 1–15):** GPS-sampling — для каждого якоря брать k=64 негативов из географических соседей (100–500 м, исключая 100-метровую зону «может быть позитив»).
|
||
- **Фаза 2 (16+):** DSS — каждые 4 эпохи пересчёт эмбеддингов всего датасета, top-128 ближайших по cosine, батч = `k/2 top + k/2 random` с маской 100 м.
|
||
|
||
**Применимо к HID:** не меняет архитектуру, только стратегию формирования батчей в L_cvi.
|
||
|
||
**Риск:** DSS — overhead full forward-pass каждые 4 эпохи. Для GeoText-1652 (~1652 здания × несколько ракурсов) это терпимо, для World-UAV (~927K) — критично. Решение: использовать EMA-encoder для DSS-пересчёта.
|
||
|
||
**Действие:** реализовать в S6 (CVGL); для S1–S5 регрессии на VisLoc — оставить in-batch (там не нужно).
|
||
|
||
#### 3.3. Quality-filtering captions Поляковой ПЕРЕД подачей в HID
|
||
|
||
**Источник:** SC3 Quality-Driven Curation (Полякова/3_scoring), top-30% отфильтрованных данных > 100% сырых; H2 Seeing Clearly (-11pp hallucination); H3 RSPOPE.
|
||
|
||
**Что:** перед использованием captions Поляковой:
|
||
|
||
1. **Фильтр по длине:** `tokens_output > 300` (отсев 44% обрезанных без Level 3).
|
||
2. **Фильтр по FDR:** `FDR < 0.10` для drone, `FDR < 0.15` для sat (отсев hallucinations).
|
||
3. **Фильтр по NumAcc:** `NumAcc > 0.95` (counts должны быть точны).
|
||
4. **Очистка raw JSON в output_text:** удалить `coverage_pct`, `quadrant`, `inventory` маркеры через regex.
|
||
5. **Infer terrain:** заменить `terrain="Unknown"` на категорию из доминирующего класса segmentation.
|
||
|
||
**Применимо к HID:** все правки на стороне dataloader, не меняют HID-блок.
|
||
|
||
**Риск:** после фильтрации может остаться <50% captions. Если это всё ещё ≥30 K — приемлемо для VisLoc/World-UAV. Если <15K — нужен перегенерация.
|
||
|
||
**Действие:** S0, до запуска S1.
|
||
|
||
### 🟠 P2 — важные, сделать в S3–S6
|
||
|
||
#### 3.4. Adaptive λ-balancing (GradNorm или PALW) вместо фиксированных весов
|
||
|
||
**Источник:** DPHR (P47, +2–3%), GradNorm (общая практика), GLEAM warmup.
|
||
|
||
**Что:** 8 фиксированных λ — много, есть риск, что L_cvi или L_reg доминирует. Два варианта:
|
||
|
||
- **PALW (проще):** `λ_i(t) = λ_i^* · σ(10 · (t/T − 0.3))` — сигмоидная рампа.
|
||
- **GradNorm:** автоматически балансирует λ_i так, чтобы `||∇_θ L_i||` были одного масштаба.
|
||
|
||
**Применимо к HID:** PALW тривиально подключается к curriculum (Фаза 2). GradNorm требует одной дополнительной forward через backbone — в 1.1× медленнее.
|
||
|
||
**Риск:** GradNorm может «оживить» компоненту, которую ты намеренно держишь маленькой (например, L_disent с λ=0.01 — он _должен_ быть малым, чтобы CKA не дробил подпространства). Решение: применять адаптацию только к `λ_cvi, λ_hier, λ_center`, фиксировать `λ_align, λ_disent, λ_ortho`.
|
||
|
||
**Действие:** S3 (curriculum) — использовать PALW для warmup новых компонент `λ_cvi, λ_hier, λ_center`. GradNorm — опционально в S4 ablation A_balance.
|
||
|
||
#### 3.5. Аугментации: ColorJitter + Rotation + GridMask
|
||
|
||
**Источник:** TransGeo, Sample4Geo, Stage4Geo — стандартный CVGL pipeline.
|
||
|
||
**Что:** добавить в dataloader для drone и satellite (синхронно):
|
||
|
||
- ColorJitter (brightness/contrast/saturation = 0.3 для drone, 0.2 для sat).
|
||
- Rotation спутника (0/90/180/270° или непрерывное), drone — без вращения (yaw уже метаданные).
|
||
- HorizontalFlip спутника (drone не флипать — yaw меняется).
|
||
- GridMask 64×64 с p=0.5 на drone (имитация occlusion).
|
||
|
||
**Применимо к HID:** работает на любом датасете, не конфликтует с курс-обучением.
|
||
|
||
**Риск:** GridMask на текстовых данных не имеет смысла. Применять только к img-входу.
|
||
|
||
**Действие:** S0, реализация в transforms.py.
|
||
|
||
#### 3.6. Knowledge injection в промпт VLM Поляковой
|
||
|
||
**Источник:** RSTeller PE8/9 (-30…-50% hallucination), Aquila VLM6.
|
||
|
||
**Что:** в промпт Qwen3-VL **обязательно** инъецировать факты из Step 1 (segmentation):
|
||
|
||
```
|
||
"Сегментация подтверждает: {N1} buildings, {N2} road segments,
|
||
{N3} vegetation patches. Опираясь ТОЛЬКО на эти счёты,
|
||
сгенерируй описание. Не выдумывай объекты."
|
||
```
|
||
|
||
**Применимо к HID:** улучшает качество T_L12 → меньше шума в `z^desc` → стабильнее L_disent.
|
||
|
||
**Риск:** требует координации с Поляковой по обновлению промпта v7.1 → v7.2. Время — 1–2 дня.
|
||
|
||
**Действие:** обсудить с Поляковой в S0; перегенерация subset (1000 captions) для проверки.
|
||
|
||
### 🟡 P3 — опциональные, в S4–S7 как ablation
|
||
|
||
#### 3.7. Two-stage prompting (RADAR-like) для T_L3
|
||
|
||
**Источник:** H2 Seeing Clearly without Training (-11pp hallucination).
|
||
|
||
**Что:** для генерации `T_L3` использовать 2 запроса:
|
||
|
||
1. **Where:** «опиши пространственную структуру: что в каких углах, какие формы доминируют».
|
||
2. **What:** «уточни характерные признаки крыш, дорог, растительности».
|
||
|
||
Объединить в финальный fingerprint.
|
||
|
||
**Применимо к HID:** улучшает cross-view stability T_L3 → сильнее L_cvi.
|
||
|
||
**Риск:** +2× latency VLM. Для 80K captions это +16 ч на RTX 4090. Терпимо.
|
||
|
||
**Действие:** S6 пилот на 5K captions; если SigLIP score satellite растёт с 0.16 → 0.25, перегенерировать всё.
|
||
|
||
#### 3.8. Constrained decoding (JSON-schema) для T_L3
|
||
|
||
**Источник:** DGTRSD VLM8, GeoGround PE1.
|
||
|
||
**Что:** заменить free-form промпт T_L3 на `json_schema` через vLLM/`outlines`. Обязательные поля: `roof_signatures`, `road_pattern`, `vegetation_distribution`, `9_zone_anchors`, `cross_view_invariants`.
|
||
|
||
**Применимо к HID:** гарантирует 100% парсируемость, упрощает извлечение `T_L3` из JSON в dataloader.
|
||
|
||
**Риск:** structured output может уменьшить разнообразие → SigLIP-score может упасть. Тестировать.
|
||
|
||
**Действие:** S6 пилот, A/B сравнение со свободным форматом.
|
||
|
||
#### 3.9. Cross-area validation split
|
||
|
||
**Источник:** Sample4Geo (CVUSA→CVACT даёт честную картинку), VIGOR same-area vs cross-area (77.86% vs 46% R@1).
|
||
|
||
**Что:** для GeoText-1652 — train на одних университетах, test на других. Для VisLoc — train на одних регионах, test на других.
|
||
|
||
**Применимо к HID:** проверка обобщающей способности; ожидаемая просадка R@1 на 10–25%, но это честный показатель.
|
||
|
||
**Риск:** absolute R@1 будет ниже, чем у конкурентов на same-area (CGSI 95.45%). Решение: репортить **обе** настройки.
|
||
|
||
**Действие:** S5–S6, обязательно для Scopus-публикации.
|
||
|
||
---
|
||
|
||
## 4. Что **не** добавлять в HID-Fusion (отвергнуто после фильтрации)
|
||
|
||
| Идея агентов | Почему не делать |
|
||
| ------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||
| **Слить `L_ortho^(1)` + `L_ortho^(2)`** | Это **разные уровни иерархии** (P_M⊥P_S vs Q_desc⊥Q_cvi). Слияние сломает теоретическую структуру и Положение 1 |
|
||
| **Слить `L_align` в `L_cvi`** | Разные роли: `L_align` = внутри-подпространственное cosine между модальностями; `L_cvi` = cross-view contrastive на одном CVI-подпр. Слияние теряет смысл иерархии |
|
||
| **Удалить `L_disent` (CKA)** | Преждевременно. Литература (CVD M5) показывает, что disentanglement даёт +1–2%. Сначала ablation A4 в S4, потом решать |
|
||
| **Заменить FiLM на Sigma CroMB / Coupled Mamba** | HID не использует FiLM — у него мультипликативные шлюзы. Это другой механизм. CroMB может быть рассмотрен как **альтернативная архитектура шлюза** в очень дальних ablation, но не как корректировка |
|
||
| **Top-down semantic projection как 6-я модальность** | Out of scope (это 5-modal докторской) |
|
||
| **Pure LUPI / Knowledge Distillation** | Out of scope (докторская Пикалёва) |
|
||
| **DINOv3-L SAT-493M teacher** | Out of scope (масштаб докторской) |
|
||
| **Mutable token для graceful modality dropout (MMGeo)** | Полезно, но out of scope: HID работает с 2 модальностями (RGB+Text), а text-dropout уже опубликован SPCRAS 2025 |
|
||
| **Сменить Qwen3-VL-8B на DeepSight/AeroLite** | FDR=0.076 уже хорош. Смена VLM = high risk новых классов ошибок. **Stay with Qwen3-VL.** Лучше LoRA fine-tune на top-30% отфильтрованных |
|
||
| **Edge deployment Jetson Orin / INT8 TensorRT** | Out of scope (докторская). Кандидатская репортит только GPU FLOPs/latency как H_HID-8 |
|
||
|
||
---
|
||
|
||
## 5. Численные ориентиры — куда целиться
|
||
|
||
|Датасет|SOTA 2025–2026|Ориентир для HID-Fusion (кандидатская)|
|
||
|---|:-:|:-:|
|
||
|**University-1652 D→S R@1**|97.50% (MGS²+depth), 95.45% (CGSI flat)|≥ **94%** (без depth, на vision+text)|
|
||
|**University-1652 D→S AP**|97.77% (GeoBridge)|≥ **95%**|
|
||
|**CVUSA R@1**|98.68% (Sample4Geo)|≥ **86%** (HID = vision+text, не vision-only optimized)|
|
||
|**VIGOR same-area R@1**|77.86% (Sample4Geo)|≥ **70%**|
|
||
|**VIGOR cross-area R@1**|61.70% (Sample4Geo + DSS)|≥ **55%**|
|
||
|**SUES-200 R@1 (150m alt.)**|96.47% (JRN-Geo с normals)|≥ **88%** (vision+text)|
|
||
|**GeoText-1652 T→I R@1**|13.6% (P57 baseline)|≥ **20%** — это новизна, есть пространство|
|
||
|**VisLoc регрессия val MAE**|0.17 (Gate-Fusion baseline)|≤ **0.155** (HID с DISC), ≤ **0.140** (полный HID)|
|
||
|
||
**Стратегия:** на same-area не выйти на CGSI/GeoBridge (95%+), но **HID может побеждать на cross-area** благодаря дизентэнглменту через 3 подпространства — это и есть аргумент для рецензента.
|
||
|
||
---
|
||
|
||
## 6. Vision-side: backbone и текст-encoder — менять?
|
||
|
||
### Vision backbone: **StripNet-small остаётся**
|
||
|
||
- StripNet-small (~5M) валидирован публикацией ПИИ 2024.
|
||
- Альтернативы (ConvNeXt-Nano 15.5M, Vim 35M, DINOv3-S/B) — больше параметров, выгода неочевидна для регрессии БПЛА.
|
||
- Цена смены: пере-обучение всех baselines, потеря преемственности с опубликованным baseline. **Не оправдано.**
|
||
|
||
### Text encoder: **MobileCLIP2-s0 остаётся**
|
||
|
||
- Партиальная разморозка работает, RU/EN не критично (всё промпты EN, валидировано в ПИИ 2025 Т.39 №4).
|
||
- Альтернатива — DINOv3 (визуальный), не text. RemoteCLIP / GeoRSCLIP — RS-domain, но больше параметров.
|
||
- **Не менять.**
|
||
|
||
---
|
||
|
||
## 7. Приоритизированный action-list
|
||
|
||
### Срочно (S0, 1 неделя — до 13 мая)
|
||
|
||
1. ✅ **Quality-filter captions Поляковой** (длина >300, FDR<0.10, NumAcc>0.95, очистка raw JSON, infer terrain) — §3.3
|
||
2. ✅ **Реализовать аугментации** (ColorJitter, Rotation/Flip спутника, GridMask drone) — §3.5
|
||
3. ✅ **Согласовать с Поляковой knowledge-injection** в промпт v7.2 (counts из сегментации как аксиомы) — §3.6
|
||
4. ✅ **Сгенерировать captions для VisLoc** через Qwen3-VL-8B (~6742 снимков, ~3.5 ч на RTX 4090) — критично для S1
|
||
|
||
### Важно (S1–S3, 4 недели — до 9 июня)
|
||
|
||
5. ⚙️ **Курсовое обучение с PALW** для warmup λ_cvi, λ_hier, λ_center — §3.4
|
||
6. ⚙️ **DSC: реализовать SM-InfoScore + L_center** на базе Cholesky-стабильной версии — задача S2
|
||
7. ⚙️ **Обновить CLAUDE.md и novelty_differentiation.md** — заменить «7 компонент» на «8 компонент» во всех местах (см. предыдущий отчёт)
|
||
|
||
### Среднесрочно (S4–S6, 6 недель — до 21 июля)
|
||
|
||
8. 🔬 **Cross-area validation split** на VisLoc и GeoText-1652 — §3.9
|
||
9. 🔬 **GPS-then-DSS hard-negative mining** для L_cvi — §3.2
|
||
10. 🔬 **CHSG layout-shift аугментация** — §3.1
|
||
11. 🔬 **Ablations A1–A15** (включая A4: λ_disent=0; A11: T_L3=∅; A13: λ_center=0) — S4
|
||
|
||
### Опционально (S6–S7, как ablation)
|
||
|
||
12. 🧪 **Two-stage RADAR prompting для T_L3** — §3.7
|
||
13. 🧪 **Constrained JSON-schema decoding** для T_L3 — §3.8
|
||
14. 🧪 **Hit Rate / VIGOR-style semi-positive evaluation** на GeoText-1652
|
||
|
||
---
|
||
|
||
## 8. Что писать в Related Work / Differentiation
|
||
|
||
```
|
||
"Отличия HID-Fusion от существующих подходов:
|
||
|
||
1. От flat vision-text fusion (CGSI [P64], GeoBridge [P58/M10]):
|
||
двухуровневая иерархическая декомпозиция на 3 подпространства
|
||
с разными целевыми задачами, обоснованная Hierarchical IB
|
||
(Goldfeld 2019).
|
||
|
||
2. От vision-only disentanglement (CVD [M5/P16], GeoDTR+ [P11]):
|
||
расширение на vision+text, 3 листа против 2, явная привязка
|
||
текстовых уровней к подпространствам.
|
||
|
||
3. От contrastive CVGL без текста (Sample4Geo [P10], DAC):
|
||
текстово-индуцированная cross-view инвариантность через
|
||
L_cvi на CVI-подпространстве (а не на полном представлении),
|
||
что сохраняет drone-специфичные признаки в z^M, z^desc.
|
||
|
||
4. От 5-modal multimodal CVGL (MMGeo [P50]):
|
||
рамки кандидатской диссертации сознательно ограничены парой
|
||
RGB+Text; обобщение на K≥5 модальностей вынесено в смежную
|
||
докторскую работу (Пикалёв Я.С.). HID-Fusion — строительный
|
||
блок более общего метода."
|
||
```
|
||
|
||
---
|
||
|
||
## 9. Финальный вердикт
|
||
|
||
**Ничего фундаментального в HID-Fusion не менять.** Архитектура, формализация (8 формул), curriculum, набор loss-компонент — валидны и новы. Корректировки точечные, в основном на стороне данных и стратегии sampling (не архитектуры):
|
||
|
||
- **3 действия P1** до S1 (фильтр captions, аугментации, knowledge-injection)
|
||
- **3 действия P2** в S3–S6 (PALW, DSS, cross-area split)
|
||
- **3 опциональных P3** для ablation-таблицы
|
||
|
||
Всё это закрывает критику рецензентов («где hard negative mining? — DSS», «где аугментации? — CHSG», «где валидация generalization? — cross-area») без изменения научных Положений 1–4. |