Интерактивное веб-приложение для демонстрации работы сверточных слоев (Convolutional Layers) в нейронных сетях. Приложение визуализирует процесс прохождения ядра (фильтра) по изображению, выполняет математические расчеты в реальном времени и использует Google Gemini AI для объяснения смысла каждой операции простым языком.
- Интерактивная визуализация: Наглядное отображение входной матрицы (изображения), ядра свертки и выходной карты признаков (Feature Map).
- Различные фильтры: Встроенные пресеты классических ядер компьютерного зрения:
- Обнаружение границ (вертикальные/горизонтальные).
- Повышение резкости (Sharpen).
- Размытие (Box Blur).
- Тождественное преобразование (Identity).
- Математика в деталях: Пошаговое отображение операции скалярного произведения (Dot Product) для каждого пикселя.
- AI-Объяснения: Интеграция с Google Gemini API для получения интуитивных объяснений того, почему конкретный участок изображения дал такой результат свертки (например, "здесь обнаружен резкий перепад яркости").
- Анимация: Автоматический режим прохода фильтра по изображению.
- "Липкое" выделение: Удобный UX, позволяющий взаимодействовать с результатами без потери контекста при движении мыши.
- Frontend: React 19, TypeScript
- Стилизация: Tailwind CSS
- AI: Google Gemini SDK (
@google/genai) - Сборка: Vite / ES Modules
Следуйте этой инструкции, чтобы запустить проект локально.
- Node.js (версия 18 или выше).
- API Key от Google Gemini (получить бесплатно можно в Google AI Studio).
-
Клонируйте репозиторий:
git clone https://github.com/your-username/cnn-visualizer.git cd cnn-visualizer -
Установите зависимости:
npm install
-
Настройка переменных окружения:
Для работы AI-функций необходимо предоставить API ключ.
Если вы используете Vite: Создайте файл
.envв корне проекта:VITE_API_KEY=ваш_ключ_здесь
(Примечание: В коде используется
process.env.API_KEY, убедитесь, что ваш сборщик настроен на его замену, либо используйтеdefineв конфиге Vite). -
Запуск в режиме разработки:
npm run dev
-
Откройте приложение: Перейдите по ссылке в терминале (обычно
http://localhost:5173).
- Выберите фильтр: Используйте кнопки в верхней панели (например, "Вертикальные границы").
- Исследуйте:
- Наведите курсор на любую ячейку в правой матрице ("ВЫХОД").
- Слева подсветятся соответствующие ячейки "ВХОДА" (Receptive Field).
- Внизу отобразится панель "Математика шага" с детальным расчетом.
- Анимация: Нажмите кнопку "Анимация", чтобы увидеть автоматический проход фильтра.
- Спросите AI: Выделите интересующий вас пиксель результата и нажмите кнопку "Объяснить этот шаг". Искусственный интеллект проанализирует входные данные и фильтр, чтобы объяснить результат.
src/App.tsx- Главный компонент приложения и управление состоянием.src/components/Grid.tsx- Компонент для отрисовки матриц с тепловой картой.MathPanel.tsx- Визуализация математических вычислений.
src/services/geminiService.ts- Клиент для взаимодействия с Google Gemini API.src/constants.ts- Определение входного изображения и пресетов ядер.
Этот проект распространяется под лицензией MIT.
Создано с помощью React и Google Gemini.