--- name: scientific-viz description: "Generate publication-quality scientific visualizations: charts (matplotlib/seaborn), neural network architecture diagrams, block-scheme flowcharts (mermaid), training pipeline diagrams, and benchmark comparison tables. Use when the user needs any visual figure for papers, reports, or presentations." argument-hint: "[type: chart|architecture|flowchart|comparison|pipeline] [description]" user-invocable: true allowed-tools: Read Write Edit Bash Glob Grep --- # Научная визуализация для CVGL Генерация визуализаций для научных публикаций, отчётов и презентаций проекта NADEZHDA. ## Входные данные - `$ARGUMENTS` — тип визуализации + описание - Примеры: - `/scientific-viz chart "R@1 comparison across methods on University-1652"` - `/scientific-viz architecture "Teacher-Student LUPI pipeline"` - `/scientific-viz flowchart "Training progressive staging 3 phases"` - `/scientific-viz comparison "Backbone candidates: params vs R@1"` ## Типы визуализаций ### 1. `chart` — Графики и диаграммы (matplotlib + seaborn) Для: сравнение метрик, аблации, распределения, training curves. **Выход:** Python-скрипт `.py` + сохранённый `.png`/`.pdf` Обязательные требования: - Разрешение ≥ 300 DPI - Шрифт: Times New Roman или DejaVu Serif, ≥ 10pt - Colorblind-safe палитра (Okabe-Ito или tab10) - Подписи осей на **английском** (для публикаций) - Легенда без перекрытия данных - Grid: light gray, alpha=0.3 - Tight layout, без обрезки подписей - Формат сохранения: PNG (300 DPI) + PDF (vector) Стиль matplotlib (использовать в начале каждого скрипта): ```python import matplotlib.pyplot as plt import matplotlib matplotlib.rcParams.update({ 'font.family': 'serif', 'font.size': 11, 'axes.labelsize': 12, 'axes.titlesize': 13, 'legend.fontsize': 10, 'xtick.labelsize': 10, 'ytick.labelsize': 10, 'figure.dpi': 300, 'savefig.dpi': 300, 'savefig.bbox': 'tight', 'axes.grid': True, 'grid.alpha': 0.3, }) ``` Шаблоны: см. [reference/chart_patterns.md](reference/chart_patterns.md) ### 2. `architecture` — Архитектуры нейросетей Для: Teacher/Student диаграммы, backbone stages, fusion modules, head designs. **Два варианта выхода:** **A) Python (matplotlib + patches/arrows)** — для сложных кастомных диаграмм: - Прямоугольники = слои/модули - Стрелки = потоки данных - Цвета = разные модальности/компоненты - Аннотации: размерности тензоров, число параметров - Используй `matplotlib.patches.FancyBboxPatch` для красивых блоков **B) Mermaid** — для встраивания в Obsidian: ```mermaid graph TD A[Satellite RGB] --> B[DINOv2-L Encoder] C[Drone RGB] --> B D[Depth Map] --> E[CNN Encoder] ... ``` Шаблоны: см. [templates/architecture_nadezhda.md](templates/architecture_nadezhda.md) ### 3. `flowchart` — Блок-схемы процессов Для: training pipeline, inference pipeline, experimental workflow, data processing. **Выход:** Mermaid-диаграмма (встраиваемая в Obsidian) + опционально Python-версия Mermaid-конвенции: - `graph TD` для вертикальных flow - `graph LR` для горизонтальных pipeline - Цвета через `style` или `classDef` - Подписи на английском (для публикаций) или русском (для отчётов) ### 4. `comparison` — Сравнительные визуализации Для: scatter plot params-vs-accuracy, grouped bar chart методов, radar chart по критериям. Паттерны: - **Pareto front:** params (x) vs R@1 (y), маркеры = разные методы, размер = FLOPs - **Grouped bar:** методы × датасеты, hatching для edge/cloud - **Radar/spider:** критерии (accuracy, speed, size, generalization, robustness) - **Heatmap:** метод × датасет → R@1 значения ### 5. `pipeline` — Диаграммы пайплайна Для: LUPI distillation flow, data augmentation pipeline, edge deployment chain. Специальная нотация: - Thick arrows = main data flow - Dashed arrows = gradient flow / loss signals - Color: blue = Teacher, orange = Student, green = shared - Labels on arrows: loss names (L_task, L_LUPI, L_feat, L_RKD) ## Процесс генерации ### Шаг 1: Определи тип и параметры Из `$ARGUMENTS` извлеки: - Тип: chart / architecture / flowchart / comparison / pipeline - Что визуализировать - Целевой формат: Obsidian (mermaid) / публикация (matplotlib) / оба - Язык подписей: EN (default для публикаций) / RU (для отчётов) ### Шаг 2: Найди данные Если визуализация требует числовых данных: - Поищи в `1_lit_research/СИНТЕЗ_всех_статей_для_LUPI_CVGL.md` - Или в конкретных конспектах `1_lit_research/6_cvgl/P{N}_*.md` - Или спроси пользователя ### Шаг 3: Сгенерируй код - Python-скрипт: сохранить в `3_work/` или `attachments/figures/` - Mermaid: вставить inline в .md файл - Всегда указывай: `plt.savefig("filename.png", dpi=300, bbox_inches='tight')` ### Шаг 4: Добавь аннотации Каждая визуализация должна иметь: - Заголовок (title) - Подписи осей (xlabel, ylabel) - Легенду (если >1 series) - Источник данных (caption или комментарий в коде) ## Специфика проекта NADEZHDA ### Цветовая схема компонентов | Компонент | Цвет | Hex | |:----------|:-----|:----| | Teacher | Deep blue | `#1f77b4` | | Student | Orange | `#ff7f0e` | | Satellite modality | Green | `#2ca02c` | | Drone modality | Red | `#d62728` | | Street-view | Purple | `#9467bd` | | Depth | Brown | `#8c564b` | | Text | Pink | `#e377c2` | | Loss / gradient | Gray | `#7f7f7f` | | Edge / Jetson | Teal | `#17becf` | ### Стандартные размерности тензоров ``` Input: [B, 3, 256, 256] Stage 1: [B, 32, 96, 96] Stage 2: [B, 64, 48, 48] Stage 3: [B, 128, 24, 24] Stage 4: [B, 256, 12, 12] Descriptor: [B, 512] L2-normalized ``` ## Ограничения - НЕ используй внешние API (OpenRouter, Gemini) — только локальные библиотеки - НЕ генерируй растровые диаграммы архитектур через PIL/ImageDraw — используй matplotlib patches или mermaid - Всегда сохраняй и .py скрипт, и результат (.png/.pdf) - Для Obsidian: mermaid блоки встраиваются напрямую в .md