Files
fuze_task/reports/NOTES.md

126 lines
18 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# FusionCore Personal
[[02_fusion_core_персональный]]
## B14_StripNet
^ead71b
### 3.1. Описание архитектуры
- **Общая структура:** Strip R-CNN базируется на фреймворке O-RCNN. Она включает новый бэкбон (StripNet) и новую голову детектирования (Strip Head).
- **StripNet Backbone:** Состоит из базовых блоков, каждый из которых имеет strip-подблок и подблок feed-forward сети (FFN).
- **Strip Module:** Включает стандартную свертку `5×5` за которой следуют две последовательные полосовые свертки (горизонтальная и вертикальная, например, `1×19` и `19×1`) и point-wise свертка.
- **Strip Head:** Разделяет предсказание локализации и угла. Модуль локализации усилен полосовыми свертками для захвата дальнодействующих пространственных зависимостей, в то время как классификация и предсказание угла делят общие полносвязные (FC) слои.
### 3.2. Визуальные материалы из статьи
- **Figure 1:** Статистика датасета DOTA и падение точности существующих SOTA методов при увеличении соотношения сторон объектов. Показывает критичность проблемы.
- **Figure 3:** Структурное сравнение модуля авторов с LSKNet и PKINet. Демонстрирует, что Strip R-CNN использует последовательную (strip-sequential) парадигму, в то время как PKINet — параллельную (strip-parallel), что делает Strip R-CNN более легковесным.
- **Figure 4:** Структура базового блока Strip Module. Иллюстрирует поток данных через квадратную свертку, горизонтальную/вертикальную strip-свертки и умножение признаков.
- **Figure 5, 6, 7:** Архитектура Strip Head и тепловые карты пространственной чувствительности. Показывают, что предсказание угла фокусируется на границах объекта, а классификация — на центре, что оправдывает их частичное слияние.
### 3.3. Математическая формализация
- **Feature Reweighing (Внимание):**
`Y^=X⋅Y` _Комментарий:_ `X` — входной тензор, `Y` — выход point-wise свертки, действующий как карта весов внимания (element-wise умножение).
- **Loss Function:**
`L=Lc+Ll+La` 
_Комментарий:_ Сумма кросс-энтропии для классификации (`Lc`) и Smooth L1 для локализации (`Ll`) и угла (`La`). Формула стандартна для rotated bounding box детекторов
### 3.4. Ключевые технические решения
- **Последовательные свертки:** Использование горизонтальной свертки перед вертикальной (или наоборот) работает одинаково хорошо и не требует сложных механизмов слияния, присущих параллельным ветвям.
- **Ядро размером 19:** Экспериментально установлено, что размер ядра 19 во всех стадиях бэкбона дает оптимальный результат для вытянутых объектов.
### ПРЕИМУЩЕСТВА ПОДХОДА
- **Вычислительная эффективность:** Отказ от параллельных heavy-сверток в пользу последовательных strip-сверток снижает FLOPs и количество параметров, обходя конкурентов (PKINet).
- **Архитектурная элегантность:** Отсутствие сложных модулей внимания. Векторное внимание реализуется простой point-wise сверткой.
- **Универсальность:** Замена классического detection head на Strip Head повышает метрики даже в старых фреймворках.
## F14_WeatherPrompt
^e9be0c
### 1. Контекст 
F14 решает критическую проблему Visual Geo-Localization: катастрофическое падение точности при смене освещения (день/ночь) или погоды (лето/зима). Модель использует механизм FiLM (Feature-wise Linear Modulation) для модуляции визуальных признаков на основе текстового промпта (например: "Снимок сделан глубокой ночью в тумане"). 
#### Архитектура
Общая структура модели WeatherPrompt представляет собой сложный двухэтапный пайплайн, состоящий из модуля офлайн-генерации мультимодальных данных и гибридной архитектуры мультимодального выравнивания (Multimodal Alignment Model).
##### На первом этапе
(генерация данных) система использует подход единичного сэмплирования (Single-image Sampling). Из каждой географической зоны случайным образом выбирается одно репрезентативное изображение с дрона для устранения избыточности. Далее, с помощью библиотеки imgaug генерируются синтетические погодные искажения. Полученные изображения обрабатываются большой мультимодальной моделью (в качестве примера авторы приводят архитектуру Qwen2.5-VL ). Модель использует стратегию Chain-of-Thought для последовательного вывода: сначала оценивается глобальная видимость, затем выявляются локальные атмосферные подсказки (отражения дождевых полос, паттерны рассеивания тумана), и на финальном шаге формируется общий погодный контекст. Вслед за этим запускается фаза пространственной семантики, где модель описывает макро-планировку, подсчитывает объекты и фиксирует топологические отношения. Одновременно сторонняя модель визуального граундинга (Visual Grounding Model - VGM), а именно XVLM, извлекает локальные семантические подсказки на уровне регионов.
##### Второй этап (обучение и инференс)
опирается на двухпоточную архитектуру. В качестве бэкбона выступает адаптированная модель XVLM, интегрирующая текстовый энкодер на базе BERT и визуальный энкодер на базе Swin Transformer. Поток данных проходит через эти энкодеры параллельно. ==Извлеченные глобальные и локальные визуальные признаки объединяются с текстовыми эмбеддингами через модуль кросс-модального слияния (Cross-modal fusion module). Ключевым узлом этого модуля является динамический строб (Weather-Driven Channel Gating), который вычисляет вектор весов на основе текста и применяет его к визуальным признакам через операцию поэлементного умножения (Hadamard product). ==Сформированный мультимодальный тензор передается в легковесный классификационный MLP-декодер (Classification Head), который проецирует признаки в пространство логитов для предсказания конкретной географической локации.
### 2. Значимость для MERIDIAN
Это прямой источник архитектурного паттерна Multi-FiLM-Fusion для Teacher-ветки. Понимание, как именно генерируются параметры `γ` и `β`, необходимо для правильной балансировки 5 модальностей (RGB, Depth, Edges, Seg, Text).
==В F14 WeatherPrompt параметры масштаба (γ) и сдвига (β) генерируются динамически из текстового эмбеддинга (text_embed):==
- **text_embed:** Вектор размерности 768 (выход CLIP/BERT).
- **Генераторы fγ, fβ:** Это **НЕ линейные слои**, а **2-Layer MLPs** (Многослойные перцептроны).
- `Linear(768, 256) -> GELU -> Dropout(0.1) -> Linear(256, C)`
- Где `C` — количество каналов в Feature Map на конкретном уровне визуальной сети (например, C=1024C=1024 для DINOv3).
- _Особенность инициализации:_ Последний слой в `fγ` инициализируется нулями, а выход оборачивается в экспоненту: `γ=exp(fγ(text))`. Это гарантирует, что на старте обучения `γ=1.0 и β=0.0` (Identity mapping, не разрушающий pre-trained веса).
### 3. Размещение в пирамиде признаков (Feature Pyramid)
F14 доказывает, что применять FiLM ко всем слоям подряд — избыточно и ведет к over-fitting.
- **Early Layers (до Block 1/2):** Не модулируются. Они извлекают низкоуровневые края и градиенты, которые инвариантны к тексту.
- **Middle Layers (Blocks 2, 3):** Слегка модулируются.
- **Late Layers (Block 4 / Последние 3 блока Transformer):** Интенсивно модулируются. Именно здесь сеть принимает семантические решения ("Это снег или белая крыша?").
- **Вывод:** FiLM встраивается исключительно в последние 1/31/3 архитектуры Teacher'а.
### 4. Как работает Dynamic Adaptation?
Динамическая адаптация означает, что каналы визуальной сети перевзвешиваются в реальном времени:
1. При промпте _"Bright sunny day"_: γγ усиливает цветовые фильтры и текстурные детекторные каналы.
2. При промпте _"Midnight, low light"_: γγ обнуляет каналы, зависящие от цвета, и усиливает $edges$-каналы и угловые детекторы (которые работают даже при плохом освещении).
3. При промпте _"Snowy terrain"_: Сбрасывает детекторы травы/листьев.
**Weather-Driven Channel Gating (Динамическое стробирование)**
Механизм адаптивного перевзвешивания каналов визуальных признаков на основе текстового контекста реализован через архитектуру типа Squeeze-and-Excitation, но управляемую кросс-модальным входом:
![[Pasted image 20260626110515.png]]
Здесь `fT∈RB×D` представляет собой батч нормализованных текстовых эмбеддингов. Матрица W1W1 проецирует вектор в пространство меньшей размерности (параметр rr — reduction ratio, коэффициент сжатия), что заставляет сеть выучивать компактные семантические зависимости и экономит вычислительные ресурсы. Матрица `W2` восстанавливает размерность до исходной DD. Функция активации сигмоида σσ гарантирует, что компоненты вектора стробирования `g` лежат в диапазоне `(0,1)`
Слияние модальностей происходит по формуле взвешенной интерполяции:
![[Pasted image 20260626110728.png]]
> Эта формула заслуживает особого внимания. Она концептуально эквивалентна механизму FiLM (Feature-wise Linear Modulation), который используется в вашей архитектуре MERIDIAN. В FiLM трансформация задается как `Fi=Fi⊙(1+γi)+βi`
> В подходе WeatherPrompt текст не просто масштабирует визуальные каналы (компонента `g⊙fI`), но и осуществляет прямое остаточное добавление отфильтрованного текста `(1g)⊙fT`. Это позволяет модели полностью "заглушить" визуальный канал, если он безнадежно испорчен погодой (при `g→0`), и полностью опереться на семантический текстовый приор.
### 5. ## Протокол обучения (Learning Rate и EMA)
Так как визуальный backbone загружен весами Foundation Model (DINOv2/v3), а `fγ,fβ`​ инициализируются с нуля, требуется **Two-Speed Learning Rate**:
- `LR_Backbone` = 1e-5 (или заморожен на ранних этапах).
- `LR_FiLM_MLP` = 1e-3 (в 100 раз больше!). Оптимизатору нужно быстро научиться генерировать правильные γ,β.
- **EMA (Exponential Moving Average):** Для всех весов визуальной сети используется momentum m=0.999, чтобы обучение FiLM-модуляторов не расшатало основную геометрию пространства признаков.
## 6. Сравнение с SSF (Scale and Shift Features, TPAMI)
- **SSF:** К каждому слою сети добавляются обучаемые векторы `γtask` и `βtask`. Они **статичны** для конкретной задачи (например, один набор для Semantic Seg, другой для Depth).
- **WeatherPrompt (FiLM):** Векторы `γ` и `β` генерируются **на лету** для каждого отдельного изображения в зависимости от текста.
- **Вердикт:** SSF великолепен для Transfer Learning (Task Adaptation), но FiLM — абсолютный победитель для **Data-driven / Context-aware** адаптации.
## 7. Расширение до 5-modal FiLM для MERIDIAN Teacher
В проекте MERIDIAN ветка Teacher (спутник) имеет доступ не только к RGB и Тексту, но и к Глубине (Depth), Границам (Edges) и Семантике (Seg). Как использовать формулы F14, чтобы слить 5 модальностей воедино?
**Решение: Концепт Privileged Context Vector (PCV)** Вместо того чтобы делать независимые FiLM слои для каждой модальности, мы сливаем все Privileged-данные в единый вектор, который управляет модуляцией главного ствола (RGB DINOv3):
1. Прогоняем Depth через легкую CNN-ветку →→ `Depth_Embed (256-d)`
2. Прогоняем Edges через легкую CNN-ветку →→ `Edge_Embed (256-d)`
3. Получаем текст из VLM →→ `Text_Embed (256-d)`
4. Конкатенируем: PCV=`[Depth_Embed,Edge_Embed,Text_Embed]PCV=[Depth_Embed,Edge_Embed,Text_Embed]` (размерность 768).
5. Подаем PCVPCV в `fγ,fβ` MLP-генераторы.
**Итоговое уравнение Multi-modal FiLM для MERIDIAN:**
![[Pasted image 20260625162506.png|697]]