Міжнародна конференція розробників
і користувачів вільного програмного забезпечення

Опыты над людьми и Octave: FOSS-based GSR measurements

Ольга Карабутова, Minsk, Belarus

LVEE Winter 2014

The paper describes practical experience of creating a biometrical device to evaluate user’s stress level. Signs specific to stress are considered as well as the device prototype and intermediate research results. Free/libre open source software used to evaluate and analyse raw biometric data is covered.

Вступление

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

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

Стресс

Под стрессом (от англ. stress — нажим, напряжение) понимают общую реакцию организма на физическое или психологическое воздействие, выводящее его из состояния равновесия (нарушающее гомеостаз), а также соответствующее состояние нервной системы и организма в целом.
“Изобретатель”стресса канадский эндокринолог Ганс Салье доказал, что стресс ведет к истощению организма и к очень многим нарушениям здоровья.

Реакцию организма на стресс можно выразить фразой «дерись или беги». За большинство физиологических изменений, отвечают две нейроэндокринные системы, управляемых гипоталамусом: симпатической и парасимпатической. Симпатическая нервная система подготавливает организм к атаке, обеспечивая выброс в кровь глюкозы, увеличение кислорода в крови и артериального давления, сердцебиения, расширяет зрачок, активирует железы и мускулатуру, сокращает ток периферических сосудов, а также подавляет деятельность большинства внутренних органов, такие как пищеварение. Действие парасимпатической системы во многом противоположно. Поэтому можно выделить стандартные признаки, сопутствующие стрессовой ситуации:

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

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

Кожно-Гальваническая Реакция
Ряд исследований показывает, что для детектирования стресса достаточно одного датчика кожно-гальванической реакции (Galvanic Skin Response или GSR).

GSR — биоэлектрическая реакция, обусловленная деятельностью потовых желез. Если приложить к коже электрическое напряжение, то между двумя участками кожи можно замерить электрическое сопротивление или проводимость. Во время стрессового воздействия потовые железы кожи выделяют микрочастицы пота, в результате чего сопротивление кожи меняется. На рисунке показана идеальная реакция на стрессовый стимул, обозначенный красной линией с подписью “Stimulus”. Можно заметить временную задержку отклика (Latency) и последующее время восстановления (Recovery), т.е. адаптации к новому гомеостазу или релаксации после точечного стресса.

Устройство

Разработка включает две части: носимое устройство в виде браслета и программное обеспечение, устанавливаемое на персональный компьютер или мобильное устройство.

Носимое устройство включает следующие части:

  • датчик GSR
  • акселерометр
  • микропроцессор
  • память
  • RF-модуль (Bluetooth Low Energy)
  • устройство питания (батарея CR2032 или литий-полимерный аккумулятор)

Биометрия считывается с аналоговых датчиков, усиливается, конвертируется в цифровой сигнал. Далее показания агрегируются в памяти, находящейся на устройстве. При портативном ношении данные собираются на устройстве за продолжительный период времени. Также они могут передаваться в режиме реального времени на персональный компьютер или мобильное устройство для обработки – как по интерфейсу USB, так и через беспроводной интерфейс Bluetooth Low Energy, который широко используется в медицинских устройствах.

Для обработки данных на PC использован GNU Octave.

Методика тестирования

Для проверки работоспособности прибора использовалась серия тестов следующего вида. После закрепления датчиков подопытному давался адаптационный период не менее 15 минут. Далее испытуемый подвергается стрессовым воздействиям, которые следовали одно за другим в случайном порядке. Воздействия проводились с перерывом в 20-30 минут. Между последним стрессовым воздействием и завершением предусматривалась пауза не менее 10-15 минут. Общая продолжительность одной сессии составляет 1-3 часа.

Датчики GSR крепятся на двух пальцах одной руки или на запястье подопытного, но должны быть разнесены минимум на 1 сантиметр расстояния между ними, с обеспечением плотного контакта. Плотность контакта на пальцах обеспечивается заводским креплением на “липучке”, а на запястье – креплением на резинке с регулируемой длиной браслета. Дополнительно на теле человека закрепляется акселерометр.

В качестве типов стрессовой нагрузки применялись следующие:

Физическое воздействие Физические упражнения
Изменение температуры в помещении
Когнитивная нагрузка Решение интересных, но не тривиальных задач
Прохождение/выполнение задач вне компетенции на время
Соревновательные игры
Эмоциональная нагрузка Видеоролики или материалы, вызывающие эмоциональный отклик
Обсуждение событий, вызывающих радость, положительные эмоции
Требование отчета вышестоящим начальником (этот тест показал слабую эффективность)
Ситуация экзамена

Данные с датчиков сохранялись в cvs-файл и затем обрабатывались в Octave. Там же обработанные данные пропускались через алгоритм, выдающий на выходе, когда у человека был стресс (по показаниям GSR), и был ли он вызван физической активностью или нет (по показаниям акселерометра).

Параллельно все происходящее во время опытов тщательно документировалось наблюдателем. Пример журнала:


13.57	Испытуемый разговаривает по телефону 
Виден пик повышения GSR, но как стресс программа это не выделила (не достаточно существенное отклонение от общего уровня GSR)
14.05	Игра “Морской бой” с ограничением по времени
14.09 	Окончание игры
14.10 	Обсуждение игры и тактик. (Испытуемый выиграл)
14.44	Физическое упражнение  “бег на месте”
Стресс, вызванный физической активностью испытуемого, легко отличить по показаниям акселерометра
14.45	Завершение физических упражнений
15.00	Включение обогревателя в комнате
15.16	Выполнение разнообразных физических упражнений
15.21	Завершение физических упражнений

Результаты испытаний

Тестирование показало, что стресс, вызванный физической нагрузкой, детектируется 100%. Что касается прочих причин, было сложно иногда создать однозначно стрессовую ситуацию для подопытного.
Например, ситуация отчета перед начальством не всегда вызывала у подопытного волнение (подопытному было известно, что он в ситуации “теста” и ситуация создана искусственно).
Тем не менее, у разработчика, который также иногда выступал в роли подопытного, сообщение о визите вышестоящего начальства, как и сам визит, однозначно повышало регистрируемый уровень стресса.

Игровые ситуации дают однозначный результат, как и во время игры, так и при последующих обсуждениях результатов и стратегий. Аналогично дело обстоит и с просмотром видеоматериалов, вызывающих с высокой долей вероятности эмоциональный отклик у реципиентов.

Octave

GNU Octave — свободная система для математических вычислений, использующая совместимый с MATLAB язык высокого уровня.
По сути, Octave – это свободный клон MATLAB, благодаря чему и динамически подгружаемые модули (*.m-файлы), и пользовательские функции можно очень легко портировать из одной среды в другую.

В среде профессиональных исследователей MATLAB занимает лидирующие позиции (благодаря крайне обширному набору вычислительных функций практически для всех областей применения) а к его свободным клонам часто относятся с предубеждением. Однако по нашему опыту GNU Octave оказался чрезвычайно мощным математическим инструментом, с помощью которого можно экспериментировать, моделировать устройства и обрабатывать цифровые данные.

Не в последнюю очередь это достигается благодаря тому, что Octave позволяет подключать сторонние утилиты, а также общие или предметно-ориентированные библиотеки функций для вычислений.
Например, для построения графиков по умолчанию Octave использует gnuplot, хотя также есть на выбор не менее 5 альтернативных графических пакетов.

Сторонняя библиотека Octave-forge включает множество пакетов, среди которых для решения класса задач анализа биометрических данных нами были отобраны следующие:

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

  • instrument-control позволяет взаимодействовать с внешними устройствами через serial, i2c, parallel, tcp, gpib, vxi11 и usbtmc интерфейсы.
  • communications – передача цифровых данных, Error Correcting Codes, модуляции и поля Галуа.

Для цифровой обработки сигнала:

  • signal – наборы функций для обработки сигналов (а также обработки изображений, проектирования цифровых фильтров и систем связи – БПФ, фильтры различных порядков).
  • ltfat – библиотека частотно-временного анализа сигналов. Позволяет производить большое количество линейных преобразований, включая преобразование Габора и вейвлет-преобразование, а так же шаблоны для конструирования окон (моделирование фильтров) и утилиты для манипулирования коэффициентами.

Для статистики, анализа данных и машиного обучения:

  • nan – набор утилит для статистики и машинного обучения, работает как с Octave, так и с Matlab, умеет обрабатывать как непрерывные данные, так и данные с пропущенными значениями.
  • mvn – кластеризация многомерного нормального распределения
  • fuzzy-logic-toolkit позволят создавать экспертные системы на основе нечеткой логики, проводить кластеризацию нечеткими алгоритмами, а также проектировать нечеткие нейронные сети.
  • fl-core содержит базовые функции для нечеткой логики.
  • queueing содержит набор функций в том числе и для анализа цепей Маркова

В итоге для решения нашей задачи был задействован меньший набор пакетов Octave для построения эффективной обработки данных и ее статистического анализа (преимущественно использовались пакеты signal). Определенно мог быть задействован пакет instrument-control для приема данных на ПК.
Но Octave – поистине мощный математический инструмент, с помощью которого можно экспериментировать, моделировать устройства и обрабатывать цифровые данные.

Abstract licensed under Creative Commons Attribution-ShareAlike 3.0 license

Назад