Название продукта: Программная система организации и проведения психофизиологических исследований «Аметист».
Область применения: исследовательские системы, анализ данных, проведение комплексных исследований с применением мультимодальных стимулов и устройств записи. 

Назначение ПО -  создание программно-аппаратных комплексов психологического тестирования для решения задач:

  • обеспечения надежности деятельности персонала опасных объектов - диспетчеров, пилотов, машинистов, водителей;
  • контроля психологической готовности специалистов экстремальных профессий (военнослужащих, сотрудников МЧС и т. п.) к выполнению служебных обязанностей;
  • подбора кандидатов на замещение ответственных должностей, текущего контроля их отношения к выполнению обязанностей;
  • предсменного контроля психологического состояния лиц, которым по служебной необходимости выдается оружие, другие средства повышенной опасности;
  • оценки информации, сообщаемой свидетелями, потерпевшими, другими участниками событий.

 

Общая характеристика

«Аметист» — распределённая программная система, предназначенная для организации и проведения исследований с использованием различных стимулов (видео, текст, сенсомоторные и психологические тесты) и синхронной записи данных с нескольких устройств (взгляд, эмоции, голос, курсор и др.).
Система реализует полный цикл работы с данными: от проектирования исследований и сбора информации до обработки, синхронизации и анализа результатов.

Система поддерживает работу с аппаратными средствами:

  • Телевизоры/мониторы (предъявление тестовых стимулов)
  • Видеокамеры (считывание эмоций, траекторий движения глаз)
  • Тепловизоры (регистрация мимических движений,  температурных градиентов)
  • Айтрекеры (параметры движения глаз)
  • Полиграфические комплексы (параметры физиологических реакций)
  • Клавиатуры, манипуляторы (параметры мелкой моторики, скорость реакций)
  • Микрофоны (речевые параметры)

Система имеет встроенную универсальную систему синхронизации для работы со всем совместимым оборудованием

 

Архитектура проекта построена на взаимодействии трёх ключевых частей:

  • Исследовательская часть
  • Респондентская часть
  • Серверная часть

 

Исследовательская часть

Веб-интерфейс, позволяющий:

  • формировать конфигурации отдельных исследований или батарей исследований;
  • направлять их на респондентскую часть для проведения;
  • просматривать базу метаданных (через подписку на Redis), описывающую файлы в озере данных и скачивать их оттуда.
  • просматривать и скачивать файлы из озера данных.

Дополнительный функционал:

конструкторы стимульного материала (сенсомоторные, ассоциативные, психологические тесты, видео).

 

Респондентская часть

Представлена двумя кластерами сервисов, оркестрируемыми системой «Система проведения»:

  • Кластер предъявления — сервисы, отвечающие за демонстрацию стимулов (видео, текст, тесты различных типов).
  • Кластер записи — сервисы, фиксирующие реакции и данные с устройств (эмоции, взгляд, голос и др.).

Система проведения принимает конфигурации исследований из исследовательской части, инициирует и синхронно запускает выбранные сервисы из обоих кластеров, обеспечивая синхронизацию предъявления и записи.

 

Серверная часть

Состоит из служебных сервисов, системы хранения и кластера воркеров.

Служебные сервисы:

  • Сервис БД — взаимодействует с основной БД (PostgreSQL).
  • Сервис «Распределитель» — сохраняет полученные от устройств файлы в озеро данных и делает запись в БД.
  • Сервис «Смотритель» — отслеживает новые записи в БД (через Redis) и направляет данные на обработку воркерам.
  • Система хранения: 
  • PostgreSQL (метаданные, реестры);
  • Озеро данных реализовано через файловую систему (FS) на серверной части: файлы классифицируются по слоям: bronze (исходные файлы), silver (обработанные), gold (синхронизованные файлы по исследованию).

Кластер воркеров:

  • Воркер курсора;
  • Воркер эмоций;
  • Воркер взгляда;
  • Воркер голоса;
  • Другие специализированные воркеры;
  • Воркер-вычислитель (синхронизация, предобработка и комплексный анализ).

Принцип работы:

Во время проведения респондентская часть генерирует файлы/потоки с устройств → Распределитель сохраняет файлы в озере (bronze) и делает запись в БД.

Сервис БД публикует уведомление через Redis → Смотритель получает уведомление и отправляет бронзовые файлы соответствующим воркерам.

Воркеры обрабатывают raw-данные → записывают silver файлы обратно через Распределитель (сохранение в озере + запись в БД).

При появлении silver-файлов Смотритель инициирует воркер-вычислитель, который синхронизирует данные разных сервисов и формирует gold-файл для анализа.

Исследовательская часть подписывается на метаданные (через Redis) и отображает/позволяет скачивать файлы из bronze/silver/gold.

 

Технологический стек

  • Язык программирования: Python 3.11
  • Фреймворк для сервисов: FastAPI
  • Фронтенд: JavaScript + React
  • Базы данных: PostgreSQL
  • Система подписки и уведомлений: Redis (pub/sub)
  • Обработка: воркеры на Python; в некоторых воркерах используются нейронные сети и вычисления на CUDA (GPU) с соответствующими библиотеками— PyTorch / TensorFlow / CUDA-toolkit
  • Хранение данных: озеро данных на файловой системе (FS)