Skip to content

Repository files navigation

img.png

Приложение для мониторинга мозговой активности и трекинга взгляда в реальном времени с возможностью синхронизации с видеоматериалами.

Python PyQt6 License

Возможности

  • Подключение BrainBit — поиск и подключение устройств BrainBit через Bluetooth
  • Проверка контакта электродов — мониторинг качества наложения электродов (O1, O2, T3, T4)
  • Калибровка — автоматическая калибровка для получения точных данных
  • Мониторинг в реальном времени — отображение внимания, альфа/бета/тета ритмов
  • Трекинг взгляда — определение направления взгляда через веб-камеру
  • Синхронная запись — одновременная запись данных мозга и взгляда при просмотре видео
  • Просмотр результатов — анализ записей с синхронизацией по видео

Требования

  • Python 3.9+
  • Устройство BrainBit
  • Веб-камера (для трекинга взгляда)
  • Windows 10/11

Установка

1. Клонирование репозитория

git clone https://github.com/kelpi-e/palmacode.git
cd palmacode

2. Создание виртуального окружения (рекомендуется)

python -m venv venv
venv\Scripts\activate

3. Установка зависимостей

pip install -r requirements.txt

Зависимости

Пакет Назначение
pyneurosdk2 SDK для работы с нейроинтерфейсами
pyem-st-artifacts Обнаружение артефактов в сигнале
PyQt6 Графический интерфейс
PyQt6-WebEngine Веб-компоненты
pyqtgraph Графики в реальном времени
numpy Числовые вычисления
opencv-python Работа с камерой и трекинг

Запуск

python main.py

Использование

Вкладка «Подключение»

  1. Нажмите «Начать поиск» для обнаружения устройств BrainBit
  2. Выберите устройство из списка для подключения
  3. Нажмите «Начать проверку» для проверки контакта электродов
  4. Убедитесь, что все индикаторы (O1, O2, T3, T4) зелёные
  5. Нажмите «Начать калибровку» и дождитесь завершения

Вкладка «Мониторинг»

  • Отображает данные в реальном времени:
    • Внимание — уровень концентрации (0-100%)
    • Альфа — расслабление, медитация
    • Бета — активное мышление, концентрация
    • Тета — дремота, творчество

Вкладка «Видео + Взгляд»

  1. Загрузите видеофайл (MP4, AVI, MKV, MOV)
  2. Нажмите «Тест камеры» для проверки веб-камеры
  3. Выполните «Калибровку» трекинга взгляда
  4. Нажмите «НАЧАТЬ ЗАПИСЬ» — видео откроется на полный экран
  5. После просмотра нажмите «СТОП» — данные сохранятся автоматически

Вкладка «Результаты»

  1. Загрузите JSON-файл с результатами записи
  2. Загрузите соответствующее видео (опционально)
  3. Используйте плеер для навигации — графики синхронизируются с видео
  4. Анализируйте:
    • Графики внимания и спектральных данных
    • Тепловую карту взгляда
    • Значения метрик в каждый момент времени

Структура проекта

palmacode/
├── main.py                 # Главное приложение и интерфейс
├── brain_bit_controller.py # Контроллер устройства BrainBit
├── eye_tracker.py          # Модуль трекинга взгляда
├── styles.py               # Стили интерфейса
├── widgets.py              # Кастомные виджеты
├── requirements.txt        # Зависимости
├── reports/                # Папка с отчётами записей
│   └── report_*.json       # JSON-файлы с данными
├── logs/                   # Логи SDK
└── ui/                     # UI файлы (опционально)

Формат данных записи

Записи сохраняются в JSON формате:

{
  "created_at": "2025-12-06T11:29:37.123456",
  "ended_at": "2025-12-06T11:35:42.654321",
  "video_file": "stimulus.mp4",
  "video_path": "C:/Videos/stimulus.mp4",
  "total_records": 3600,
  "records": [
    {
      "timestamp": "2025-12-06T11:29:37.223456",
      "elapsed_sec": 0.1,
      "video_ms": 100,
      "attention": 45.5,
      "alpha": 35,
      "beta": 40,
      "theta": 25,
      "gaze_x": 0.52,
      "gaze_y": 0.48,
      "gaze_h": "center",
      "gaze_v": "center",
      "left_eye": true,
      "right_eye": true
    }
  ]
}

Описание полей записи

Поле Тип Описание
timestamp string Абсолютное время записи (ISO 8601)
elapsed_sec float Секунды от начала записи
video_ms int Позиция видео в миллисекундах
attention float Уровень внимания (0-100%)
alpha int Альфа-ритм (0-100%)
beta int Бета-ритм (0-100%)
theta int Тета-ритм (0-100%)
gaze_x float Координата взгляда X (0-1)
gaze_y float Координата взгляда Y (0-1)
gaze_h string Горизонтальное направление (left/center/right)
gaze_v string Вертикальное направление (up/center/down)
left_eye bool Левый глаз открыт
right_eye bool Правый глаз открыт

Горячие клавиши

Клавиша Действие
F Полноэкранный режим видео
Esc Выход из полноэкранного режима
Пробел Пауза/воспроизведение

Лицензия

MIT License

Авторы

команда Bugsdestroytto:

About

решение кейса Нейротех Cyber Garden 2025 от команды Bugsdestroytto

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages