Курсовая работа на тему: "Сбор и анализ биометрических маркеров с помощью смартфона"

У нас на сайте представлено огромное количество информации, которая сможет помочь Вам в написании необходимой учебной работы. 

Но если вдруг:

Вам нужна качественная учебная работа (контрольная, реферат, курсовая, дипломная, отчет по практике, перевод, эссе, РГР, ВКР, диссертация, шпоры...) с проверкой на плагиат (с высоким % оригинальности) выполненная в самые короткие сроки, с гарантией и бесплатными доработками до самой сдачи/защиты - ОБРАЩАЙТЕСЬ!

Курсовая работа на тему:

"Сбор и анализ биометрических маркеров с помощью смартфона"

Оглавление

Введение                                                                                                        3

1.      Цель работы                                                                                           5

2.      Обзор                                                                                                        6

2.1.   Система в целом .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .       6

2.2.       Измерение ЧСС с помощью  камеры смартфона   . . . . .           7

3.      Реализация клиентской части                                                       8

3.1.   Архитектура   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . . .        8

3.2.       Аспекты реализации и стек технологий  . . . . . . . . . .                 9

4.      Алгоритмы вычисления ЧСС                                                      10

4.1.        Измерение в состоянии покоя  . . . . . . . . . . . . . . . .                    10

4.2.      Измерение в состоянии релаксации . . . . . . . . . . . . .     11

5.      Эксперименты и анализ  выявленных проблем                      13

5.1.       Обобщенные численные результаты   . . . . . . . . . . . .                13

5.1.1.    Первая серия тестов   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .      13

5.1.2.   Вторая серия тестов   .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .      14

5.2.      Точность  и полнота алгоритма   . . . . . . . . . . . . . . .                  14

5.3.   Технические проблемы  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .      15

Заключение                                                                                                17

Список литературы                                                                                 18

 

Введение

В современном мире становится все более актуальным вопрос мо- ниторинга состояния здоровья человека и принятия мер для его под- держания и укрепления. Эта тема –– основа для многочисленных ис- следований научных групп и лабораторий как частных компаний [7], так и подразделений университетов, институтов физической культу- ры и спорта, ученых в области психологии, и других (например, [12], [11]). Исследования невозможны без экспериментов и данных, которые специалисты собирают преимущественно в лабораторных условиях с привлечением групп испытуемых – спортсменов или обычных людей разных возрастов. Часть исследования может состоять в оценке одного или нескольких биометрических маркеровчеловека в заданных услови- ях, например, частоты сердечных сокращений, способности удерживать равновесие, объема выдыхаемого воздуха, и так далее. Лабораторное оборудование позволяет делать измерения с высокой точностью, вы- полнять соответствующие расчеты, и получать метрики, на которых в дальнейшем ученые выстраивают и проверяют гипотезы, однако, оно, обычно, сложное и имеет размеры, исключающие его транспортиров- ку. Последние аспекты означают, что возможности сбора данных в ря- де случаев ограничены наличием лаборатории и ее возможностями. В противоположность этому, смартфон имеется уже практически у каж- дого человека, и сенсоры, которыми оснащены все устройства, находят на первый взгляд не очевидное, но вполне осмысленное применение в перечисленных выше задачах. При этом точность этих сенсоров доста- точная для того, чтобы иметь возможность собирать требуемые дан- ные, и соответствующие алгоритмы могут быть разработаны для их анализа. В то же время массовость распространения смартфонов вле- чет возможность собирать данныев гораздо больших объемах и в более короткие сроки. В связи с этим возникает идея построения централи- зованной, и в должной степени анонимизированной системы для сбора биометрических маркеров с помощью смартфона. Собранные данные будут храниться на сервере с возможностью их обработки различными

алгоритмами для выработки способов анализа и метрик, необходимых специалистам для исследований.

1.       Цель работы

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

Задачи:

1.     Разработка и реализация архитектуры приложения (клиентской части)

2.   Разработка решения для серверной части (выполнено коллегой по команде и описано в отдельной работе)

3.   Изучение имеющихся и выработка собственного алгоритма опре- деления ЧСС с учетом специфики исследовательских задач

4.   Реализация модуля на основе выработанного алгоритма

5.    Исследование средств тестирования ПО и их применение в курсо- вой работе

 

3.2.      Аспекты реализации и стек технологий

Основная часть клиентской части, а именно управляющие модули, написана на языке Kotlin [6], разработанный компанией JetBrains [5]  с использованием библиотеки Volley [9] для выполнения асинхронных запросов.

В то же время модуль для измерения ЧСС написан на Java [4], и вклю- чает в себя лишь компонент для преобразования IUV формата в RGB для того, чтобы отправлять на сервер сырые данные интенсивности красного канала снимков с камеры. Остальная часть алгоритма нахо- дится на серверной части для того, чтобы ее удобнее было обновлять,  а также для сохранения кода в тайне на случай возможного создания патента и коммерциализации системы.

4.       Алгоритмы вычисления ЧСС

4.1.      Измерение в состоянии покоя

Состояние покоя характеризуется тем, что субъект не выполнял предварительно никакое физическое упражнение для поднятия ЧСС, то есть, измерение проводится в так называемых нормальных усло- виях. В течение некоторого времени (порядка 20 секунд) происходит считывание данных с камеры, при включенном светодиоде, во время того, как пользователь приложил к ней указательный палец. Полу- ченные данные из формата YUV420SP (стандартный формат кадров для камеры смартфона на ОС Android) переводятся в RGB представ- ление, после чего для каждого измерения берется значение красного канала. Таким образом, имея последовательность измерений значений этого цвета на кадрах, можем интерпретировать ее как временной ряд для интенсивности приливов крови в капиллярах пальца. Дальнейшая задача заключается в том, чтобы определить по нему ЧСС, зная часто- ту снятия кадров с камеры (fps). Для определения доминирующей ча- стоты сигнала выбран метод с применением быстрого преобразования Фурье (БПФ), алгоритма, позволяющего выполнять дискретное преоб- разование Фурье за время O(nlogn) вместо O(n2):

 

2.       Обзор

2.1.      Система в целом

Системы сбора показателей с портативных устройств, вероятнее все- го, существуют внутри компаний, производящих соответствующие устрой- ства, однако, они не находятся в открытом доступе, или не исполь- зуются массово. В то же время в магазинах приложений для разных платформ существует огромное множество приложений  для  измере- ния ЧСС, использующих другие сенсоры мобильных устройств,  а  так- же приложения, предоставляющие программы оздоровления и трени- ровок, основанные, по заверениям авторов, на научных данных и ис- следованиях (например [1], [10]). Все существующие приложения реша- ют задачу с достаточной точностью, обладают множеством функций, однако не отвечают некоторым специальным требованиям, возникаю- щим в процессе научных исследований, так как ориентированы сразу на широкую аудиторию пользователей. Поясним, что здесь имеется в виду под вышеуказанными требованиями. Для научных изысканий в области оценки физического состояния и здоровья человека проводятся обыч- ные испытания, но ученых зачастую интересуют специфичные детали     и закономерности в полученных данных. Например, для метода оценки аэробной выносливости требуется анализ кривой снижения пульса. При этом требуется знать ЧСС в момент сразу после выполнения специаль- ного упражнения, и ровно через 60 секунд после этого. Существующие  на данный момент алгоритмы не решают конкретно эту задачу, так  как  в большинстве случаев делают априорное предположение о том,  что ЧСС слабо меняется в процессе измерения, что в поставленной задаче допустить невозможно. Таких задач, то есть довольно  специфичных, хотя и поддающихся обобщению тестов, может быть много, и поэтому основной задачей данной работы является создание системы, способной вмещать в себя разные компоненты, реализующиетребуемую логику.

Аналогов системы, подлежащей разработке, обнаружено не было.

2.2.      Измерение ЧСС с помощью камеры смартфона

Существует немалое число работ, направленных на решение задачи определения частоты сердечных сокращений с помощью камеры смарт- фона. В [14] дается подробный разбор методов анализа ряда интенсив- ности красного канала изображений, получаемых с камеры. Под анали- зом здесь понимается алгоритм определения частоты сигнала, то есть частотысердечных сокращений. Два основных метода выделения доми- нирующей частоты сигнала –– подсчет пиков и преобразование Фурье. Первый метод обладает меньшей устойчивостью, так  как  измерение   с помощью камеры может отражаться шумом на данных временного ряда, что сильно повлияет на результаты подсчета пиков. Для реше- ния этой проблемы применяютсяразличные эвристики, например, вос- становление потенциально пропущенных пиков. Метод, использующий преобразование Фурье более устойчив к шумам, но асимптотически ра- ботаетдольше, и для приемлемой точности (малого шага) требует срав- нительно большое число данных. В работе [2] описывается комплексный подход, сочетающий описанные выше стратегии, для снижения недо- статков обоих методов, и содержащий полезные технические идеи, как например перевод сигнала с камеры не в RGB, а в HSV формат, позво- ляющий сохранить больше информации, а также обрезание картинки с камеры для обработки таким образом, чтобы поймать баланс между скоростью и производительностью на конкретном устройстве. В одной изранних работ [8] для подсчета числа сердечных сокращений исполь- зовался алгоритм поиска пиков, дополненный эвристикой вырезания из временного ряда релевантного окна, содержащего заранее заданное число «ударов». Несмотря на указанные авторами проблемы (напри- мер, световые помехи и шумы при измерении), результаты алгоритма обладают низкой относительнойошибкой.

3.       Реализация клиентской части

3.1.      Архитектура

 

Рис. 1: Обобщенная архитектура

 

Ниже приводится описание компонентов, указанных на схеме (Рис. 1)

    Hub – главный управляющий класс. Он осуществляетвзаимодей- ствие между сторонними приложениями (SideApplication), серве- ром, базой данных на устройстве (при ее наличии), и логгирова- ние. Чтобы исключить конфликты, архитектурой требуется, что- бы существовал единственный объект этого класса, что и реали- зуется с помощью паттерна Singleton. Взаимодействие с вызыва- ющими его приложениями происходит с помощью обратных вы- зовов, а также он контролирует, чтобы в один момент было запу- щено лишь одно стороннее приложение, вновь, чтобы исключить возможные конфликты доступа и запросов к данным или серверу.

    NetworkManager – класс для взаимодействия с сервером. Осу- ществляет асинхронные запросы на сервер, передавая требуемые

данные. Запрос осуществляется к API сервера по конкретному ад- ресу, определяемому с помощью имени приложения, которое де- лает запрос. Принятые данные передаются вместес тегом обратно в Hub, который осуществляет их передачу приложению, сделав- шему запрос.

    SideApplication – интерфейс, описывающий стороннее приложе- ние, включаемое в систему. Hub не вызывает напрямую с помо- щью объектов Intent классы приложений, реализующие интер- фейс Activity, потому что возможны  сценарии,  когда  до  запус- ка непосредственно интерфейса, приложению нужно, например, показать флеш-заставку, при этом обратившись в память, или к серверу. Для этого в методе start() приложению дается возмож- ность сделать любую предварительную работу. При вызове мето- да stop() приложение обязано завершить работу, это - служебный метод.

n

 

Метод, использующий преобразование Фурье, выбран как наиболее точ- ный и устойчивый к помехам. Для улучшения точности использует-  ся также метод пересекающихся отрезков, заключающийся в том, что данные разбиваются на некоторое число отрезков, каждый из которых (кроме первого) имеет начальную точку ровно посередине предыдуще- го. После этого вычисление доминирующей частоты производится на каждом из отрезков, и на всем промежутке измерений. Имея все ре- зультаты, можно реализовывать разные стратегии вычисления ответа. В самом строгом случае можно потребовать совпадения всех значений,

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

 

4.2.      Измерение в состоянии релаксации

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

вывод, что наибольшую точность обеспечивает экспоненциальная за- висимость –– y = aebt, где  t - время. Теперь,  поиск коэффициентов A,   b –– это оптимизационная задача для решения которой выбран метод наименьших квадратов. Будем искать решение для логарифмирован- ного равенства: y = a + bt, где a ≡ lnA. Согласно методу наименьших квадратов, будем минимизировать функцию

 

Теперь, вспоминая, что A ≡ ea, получаем формулу для вычисления

ЧСС в произвольный момент времени, в частности, при t=0, t=60, т.    е. в случаях, для которых эта задача и была сформулирована. Отме- тим, что вычисления для уравнений (1), и (2) могут быть сделаны за линейное от числа точек время, а так как оно обычно не превосходит сотни, вычисление можно считать очень быстрым. Также заметим, что мы решили более сильную задачу, так как анализ графика снижения частоты сердечных сокращений является центральным местом некото- рых тестов для определения физического состояния человека.

5.       Эксперименты и анализ выявленных про- блем

Мои коллеги из НИИФК [13] провели ряд экспериментов, направ- ленных на тестирование функциональности и точности алгоритма для измерения ЧСС. Было проведено две серии тестов - до и после улучше- ния алгоритма с помощью экспоненциальной функции в режиме релак- сации. До введения последней алгоритм по сути состоял только лишь из одного измерения сприменением быстрого преобразования Фурье и ме- тода пересекающихся отрезков. Различий между режимами измерения не делалось. Для проведения экспериментов тестовая версия приложе- ния была установлена на смартфон Sony Xperia M4 Aqua Dual (E2333), а в качестве контрольного прибора использовался профессиональный пульсометр Polar M600. Была проведена серия экспериментов в трех режимах: режим покоя, режим релаксации, и режим восстановления (измерение после минутного восстановления вслед за выполненной на- грузкой).

 

5.1.      Обобщенные численные результаты

5.1.1.     Первая серия тестов

При измерении в режиме покоя выявлены лишь незначительные отклонения от контрольного прибора, и точность алгоритма призна- на удовлетворительной. При измерении в двух других случаях коли- чество расхождений с контрольным прибором возрастало. Ошибочные ответы в некоторых случаях, вероятнее всего, были обусловлены за- шумленностью сигнала, что дало ошибку при преобразовании Фурье, так как ответ отличался от действительного значения в целое число раз (в подавляющем большинстве из этих случаев - в 2 раза). Однако, были и другие ошибки, необъяснимые подобным образом. Например, при измерении ”ЧСС релаксации” алгоритм показывал результат 86, а контрольный прибор – 110. Те же случаи имели место при измерении ”ЧСС восстановления”: алгоритм показывает 39, а контрольный прибор

– 65. Подобного рода ошибки, вероятнее всего, были связаны с шумом при измерении (например, движение пальца), и несовершенностью ал- горитма.

5.1.2.     Вторая серия тестов

После разделения режимов, и реализации отдельного метода для из- мерения специфического случая релаксации точность повысилась зна- чительно. Эти изменения не затронули алгоритм измерения в состоя- нии покоя, однако в двух других случаях наблюдалось значительное улучшение результатов: в нескольких измерениях не было значимых различий между результатами алгоритма и контрольного прибора, в других наблюдались расхождения в 5-7 ударов в режиме релаксации, и в 5-10 ударов в режиме восстановления. Мы будем иметь возможность улучшать алгоритм, создав систему, описываемую в данной работе, так как получим доступ к большому числу данных, и сможем тестировать различные алгоритмы очистки иобработки сигналов в неограниченном масштабе.

 

5.2.      Точность и полнота алгоритма

В процессе экспериментов появлялись случаи, когда измерение при- знавалось плохим, то есть алгоритм сообщал о невозможности точно определить пульс. Напомним, что это решение принимается алгорит- мом на основании сравнения значений на отдельных отрезках, и на всем измерении в целом. До введения отдельного алгоритма для измерения пульса в режиме релаксации более 75% сообщений о неточном измере- нии приходились именно на этот режим, что легко объясняется высокой вариативностью значений ЧСС в этом случае. Это являлось одной из главных причин создания для этого случая отдельного режима изме- рений для релаксации. Однако сообщения о неточном измерении все еще случаются в режиме покоя. Здесь мы сталкиваемся с проблемой баланса следующего рода: можно сделать совсем нестрогие критерии для оценки точности измерения, и в этом случае мы будем сообщать

o плохом измерении крайне редко, или вовсе никогда. Однако, в этом случае чаще будут появляться неадекватные результаты и значения, обусловленные реальной зашумленностью входных данных вследствие тех или иных событий. При такой стратегии полнота охвата будет боль- шой, но точность значительно пострадает. Обратный подход заключа- ется в максимально строгом сравнении значений на всех интервалах, и выдаче ответа только в том случае, если они полностью совпадают, или максимально близки, то есть, находятся на расстоянии шага дискрети- зации. В этом случае полнота охвата сильно снизится, однако точность измерений скорее всего максимально приблизится к профессиональным приборам. В будущем возможно введение для пользователя возможно- сти выбирать режим ”строгости” измерений.

 

5.3.      Технические проблемы

Основной проблемой, обнаруженной при измерении, оказался силь- ный нагрев светодиода камеры смартфона. Это вызывало дискомфорт- ные ощущения у участников эксперимента, и могло значительно ска- заться на результатах эксперимента. Было сделано предположение, что в более ранних моделях смартфонов были установлены незащищен- ные от чрезмерного нагрева светодиодные элементы, что и являлось причиной нагрева. Чтобы проверить эту гипотезу, был проведен ряд экспериментов с разными моделями смартфонов, результаты которого представлены ниже (см. Таблицу 1). Эксперимент состоял в изучении ощущений от длительного контакта со включенным светодиодом. Вре- мя тестирования составляло 2 минуты, в то время как самый долгий период измерения для алгоритма составляет 1 минуту.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Значительный нагрев    Незначительный нагрев

Xiaomi Mi A2                         Sony Xperia Z

Xiaomi Mi Max                         Xiaomi Mi 8 Nokia 5                                  OnePlus 6

Nokia 3.1 Plus Samsung Galaxy S5 OnePlus 5

Alcatel Pop                           Xiaomi Mi A1 Samsung Galaxy S6

IPhone X IPhone 6

Samsung Galaxy J2 Prime IPhone   6S IPhone   SE IPhone 5S

Xiaomi  Redmi 5+

Таблица 1: Сравнение смартфонов по признаку нагрева светодиода

Заключение

Результатом работы является репозиторий с кодом [3], который хо- рошо документирован и покрыт тестами, которые запускаются автома- тически при добавлении кода (совершении commit-push). Создана хо- рошая платформа для работы других специалистов, готовых писать модули-приложения для других физических проб и экспериментов. В реализованном модуле для измерения ЧСС многое можно улучшить, но это, вероятнее всего, задача для специалистов в области обработ-  ки сигналов, удобные условия для которых (а именно – большое число примеров, нам также удалось создать). Интерфейс модуля для тестиро- вания также допускает доработки в области UI, но функциональность его полностью реализована. При тестировании, однако, выявлен ряд проблем, связанных в первую очередь с чрезмерным нагревом светоди- ода камеры на некоторых устройствах. Хотя небольшое исследование показало, что такиеустройства составляют малую часть от всего много- образия смартфонов, все же, область применения технологии несколько сужается. Серверная компонента также реализована, и готова к раз- вертыванию на любом сервере. Цели работы считаю в большей степени достигнутыми, и результат в целом успешным.

Список литературы

[1]     Accurate Heart Rate Monitor. Приложение // Google Play Market. 2017. URL: https://play.google.com/store/apps/details?id= com.repsi.heartrate (дата обращения: 15.12.2018).

[2]    Arpan    Pal    Aishwarya    Visvanathan    Anirban    Dutta    Choudhury Aniruddha Sinha. Improved heart rate detection using smart phone. 2014.

[3]    BiometricHub. GitLab code repository. 2019. URL: https:// gitlab.com/SergeyGorbatyuk171/biometrichub (online; accessed: 13.05.2019).

[4]    Java.  Programming language. –   2019. –   URL: https://www.java. com/ru/about/whatis_java.jsp (дата обращения:11.05.2019).

[5]    JetBrains.  Software  Development Company. –  2019. –  URL: https:

//www.jetbrains.com/ (дата обращения: 11.05.2019).

[6]    Kotlin. Programming language by JetBrains. 2019. URL: https:

//kotlinlang.org/ (дата обращения: 11.05.2019).

[7]    Nike      Research.       Сайт       лаборатории        //        Google. –  2019. –                                   URL:             https://about.nike.com/pages/ nike-explore-team-sport-research-lab (дата обращения: 15.12.2018).

[8]   Pelegris P. Banitsas K. Orbach T. Marias K. A Novel Method to Detect Heart Beat Rate Using a Mobile Phone. 2010.

[9]    Volley. A library for asinchronous network requests  by  Google. –  2019. URL:https://developer.android.com/training/volley (дата обращения: 11.05.2019).

[10]     Здоровье и фитнес трекер. Приложение // Google Play Market. 2017. URL: https://play.google.com/store/apps/details?id= com.droidinfinity.healthplus (дата обращения: 15.12.2019).

[11]      Мисникова И.В., Ковалева Ю.А. Влияние физической нагрузки на обменные процессы у пациентов с метаболическим синдромом. Русский  медицинский  журнал, 2018. –   URL: https://elibrary. ru/item.asp?id=35663868.

[12]     Нувальцева Е.П. Функциональная активность человека и взаимо- связь физической и умственной деятельности. Утомление и вос- становление. Вклад молодых ученых в аграрную науку: Материа- лы международной научно-практической конференции. –  2018. URL: https://elibrary.ru/item.asp?id=36337288.

[13]     СПбНИИФК ФГБУ. Научно-исследовательский институт физиче- ской культуры. 2019. URL: http://www.spbniifk.ru/ (дата обращения: 11.05.2019).

[14]     Ташкинов Михаил Ильич. Оценка пульса с помощью камеры мо- бильного телефона. 2016.