Научная статья на тему 'ПРИМЕНЕНИЕ НЕЙРОННЫХ СЕТЕЙ ДЛЯ ОПРЕДЕЛЕНИЯ ФИЗИЧЕСКОГО СОСТОЯНИЯ ЧЕЛОВЕКА'

ПРИМЕНЕНИЕ НЕЙРОННЫХ СЕТЕЙ ДЛЯ ОПРЕДЕЛЕНИЯ ФИЗИЧЕСКОГО СОСТОЯНИЯ ЧЕЛОВЕКА Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
276
52
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
БАЗА ДАННЫХ / НЕЙРОННАЯ СЕТЬ / ANDROID-ПРИЛОЖЕНИЕ / ФИЗИЧЕСКОЕ СОСТОЯНИЕ ЧЕЛОВЕКА / ФИТНЕС-БРАСЛЕТ / НЕЙРОСЕТЕВОЕ ПРОГНОЗИРОВАНИЕ / РАЗРАБОТКА АНДРОИД-ПРИЛОЖЕНИЯ / DATABASE / NEURAL NETWORK / ANDROID APPLICATION / PHYSICAL CONDITION OF A PERSON / FITNESS BRACELET / NEURAL NETWORK PREDICTION / ANDROID APPLICATION DEVELOPMENT

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Сергеев Р.А., Бубнов В.П.

Рассматривается разработанное мобильное приложение, которое представляет собою систему мониторинга физического состояния работников железной дороги. Работа этой системы заключается в том, что пользователь (работник на РЖД) надевает фитнес-браслет Mi band 2 и подключает его к android-смартфону по Bluetooth, а специально разработанное приложение автоматически замеряет пульс и отправляет его на сервер для обработки данных с целью получения результатов состояния работника.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

THE USE OF NEURAL NETWORKS TO DETERMINE THE PHYSICAL CONDITION OF A PERSON

The developed mobile application is a system for monitoring the physical condition of railway workers. The idea of this system is that a user (an employee on Russian Railways) puts on a Mi band 2 fitness bracelet and connects it to an android smartphone via Bluetooth, and a specially developed application automatically measures the pulse and sends it to the server for data processing in order to obtain status results employee.

Текст научной работы на тему «ПРИМЕНЕНИЕ НЕЙРОННЫХ СЕТЕЙ ДЛЯ ОПРЕДЕЛЕНИЯ ФИЗИЧЕСКОГО СОСТОЯНИЯ ЧЕЛОВЕКА»

Применение нейронных сетей для определения физического состояния человека

магистр Р. А. Сергеев, д.т.н. В. П. Бубнов Петербургский государственный университет путей сообщения Императора Александра I

Санкт-Петербург, Россия roma.svetl@gmail.com, bubnov 1950@yandex.ru

Аннотация. Рассматривается разработанное мобильное приложение, которое представляет собою систему мониторинга физического состояния работников железной дороги. Работа этой системы заключается в том, что пользователь (работник на РЖД) надевает фитнес-браслет Mi band 2 и подключает его к android-смартфону по Bluetooth, а специально разработанное приложение автоматически замеряет пульс и отправляет его на сервер для обработки данных с целью получения результатов состояния работника.

Ключевые слова база данных, нейронная сеть, android-приложение, физическое состояние человека, фитнес-браслет, нейросетевое прогнозирование, разработка андроид-приложения.

Введение

В связи с повышенными нагрузками на физическое состояние работников РЖД, становится актуальной задача мониторинга и контроля физического состояния работника.

Целью данной работы является разработка мобильного приложения, контролирующего физическое состояние работников железной дороги, для операционной системы Android. Данное приложение снижает риск возникновения аварийных ситуаций и повышает безопасность пассажиров и сотрудников РЖД.

Анализ рынка

Проанализировав рынок на наличие аналогичных приложений мониторинга и контроля физического состояния работника, мы выявили несколько приложений, три из которых близки по смыслу к системе, описываемой в этой работе.

1. Mi HR with Smart Alarm — be fit Band (рис. 1, а). Отличное приложение, в котором имеется множество опций для различных тренировок, также позволяет на протяжении всей тренировки отслеживать пульс, а позже просматривать его в виде удобного графика. К сожалению, в нем нет необходимого функционала, а именно «анализа физического состояния и определения его статуса».

2. Master for Mi Band (рис. 1, б). Замечательное приложение для работы с умным браслетом Mi Band и умными весами Mi Scale имеет такие функции, как: шагомер, измеритель пульса, умный будильник. К сожалению, в нем нет необходимого функционала.

3. Mi Fit (рис. 1, в). Это официальное приложение от создателей данного фитнес-браслета. Mi Fit отслеживает ак- ^

тивность, анализирует качество сна и оценивает прогресс _

ваших тренировок, но, как и в предыдущих двух приложе- ^

ниях, в нем отсутствует необходимый функционал. -

Рис. 1. Andraid-приложения мониторинга и контроля физического состояния работника

Wmhaul limn: Û ггнп, Ьшг-id елки

МЬмй

№*№h*d 16d*r"4 giul

Littt n»ght'6 sleep 7 h л? ф

Q Hfljri iraïo в & BPM Q Welghî 58 7Qkg

Все эти приложения позволяют измерить пульс человека и просмотреть его историю, но ни в одном приложении нет функционала для предсказания физического состояния человека по его физиологическим параметрам и пульсу в конкретный момент времени, а также отсутствует веб-панель для отслеживания целой группы людей одним оператором. В связи с этим было решено разработать данное АМго1^приложение.

Проектирование мобильного приложения В данном разделе представлены UML-диаграммы взаимодействия разрабатываемого Android-приложения с сервером.

Моделирование операций Согласно правилам взаимодействия программ в сети, приложения должны обмениваться четко структурированными и согласованными пакетами данных [1]. В разработанной системе используется формат JSON для обмена данными между приложением и сервером.

При выполнении запросов от приложения к серверу неприемлемо блокирование потока работы Android-приложе-ния, поэтому все запросы к серверу приложение выполняет в отдельном потоке [2].

На рисунке 2 представлена диаграмма процесса регистрации пользователя в системе.

Рис. 2. Диаграмма последовательности процесса регистрации пользователя в системе

Рис. 3. Диаграмма процесса Рис 4. Диаграмма процесса подсчета пульса и отправки

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

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

На рисунке 3 представлена диаграмма процесса авторизации пользователя в системе.

При авторизации очень важно точно идентифицировать нужного пользователя по логину и паролю, чтобы избежать потери его персональных данных. Для этого используется специально разработанное серверное API.

На рисунке 4 представлена диаграмма процесса подсчета пульса пользователя и отправка его значения на сервер для последующей обработки.

На рисунке 5 представлена диаграмма процесса подключения фитнес-браслета к приложению.

На рисунке 6 представлена диаграмма получения истории пульса пользователя.

Рис. 5. Диаграмма процесса подключения фитнес-браслета к приложению

Для связи приложения с фитнес-браслетом используется беспроводная сеть Bluetooth.

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

Преимущества данного способа связи заключаются в экономии заряда батареи на обоих устройствах [3].

Рис. 6. Диаграмма получения истории пульса пользователя

На рисунке 7 показана диаграмма процесса заполнения подробных личных данных о пользователе.

Рис. 7. Диаграмма процесса заполнения подробных личных данных о пользователе.

Проектирование макета приложения

Для любого приложения главным является удобство и простота его использования, поэтому при создании макета приложения использовался стиль Material Design.

Material Design — это общий разработанный концепт дизайна всех приложений для Android версий 5+. Его главной чертой является четкость и выделение всех действий через анимацию [4]. Таким образом, пользователь всегда наглядно видит, что делает его приложение и не впадает в состояние «неведения».

Все важные элементы интерфейса выделяются с помощью теней и анимаций, реагирующих на действия пользователя [4].

При выборе этого дизайна следует придерживаться правилу «трех цветов», что означает, что в оформлении всего приложения будет использоваться всего 3 основных цвета и их оттенки. Обязательным условием Material Design является использование одного общего шрифта на все приложение [4].

Проектирование архитектуры базы данных

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

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

Для того, чтобы корректно сохранить данные, написанные в кодировке CP1251 («Кириллица»), использовалась кодировка базы данных UTF8_bin («Многоязычная бинарная»). такой метод кодировки позволяет корректно сохранять любые данные в любой кодировке, но минусом этого метода является чрезмерное использование дискового пространства при хранении данных.

Проектирование структуры приложения

Для проектирования структуры данного мобильного приложения использовалась схема разделения данных приложений «Model-View-Controller» (MVC).

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

Все элементы, отвечающие за визуальное отображение интерфейса приложения, создаются в специальных файлах формата .xml [2].

Все файлы, отвечающие за логику работы приложения, описываются в специальных файлах формата .java. Таким образом код не «перемешивается» и остается легко читаемым [2].

Также, чтобы избежать повторения одного и того же кода несколько раз в разных классах, было решено вынести повторяющийся код в отдельный класс и использовать его в остальных классах через наследование.

Проектирование базы данных веб-панели

Всего было создано две таблицы:

1) Users:

id - bigint(auto increment unique) name - string surname - string

age - byte weight - byte height - byte

sex - boolean(0 - жен. 1 - муж.) email - string(unique) password - string auth_token - varchar(40) created_at - date updated_at - date deleted_at - date;

2) Pulse_history:

id - bigint(auto increment unique)

user_id - bigint

pulse - integer

status - integer

created_at - date

updated_at - date

deleted_at - date.

Схема работы сервера:

1. Пользователь регистрирует учетную запись в приложении, и его данные записываются в таблицу «users».

2. Приложение автоматически замеряет пульс и отправляет его на сервер для сохранения в таблице «pulse_history».

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

Проектирование нейронной сети для нейросетевого прогнозирования

В данной системе используется библиотека TenserFlow.js. Данная библиотека была основана на DeepLearningjs. Для запуска и обучения нейронной сети на сервере используется программная платформа NodeJS [5].

Установка TensorFlow:

yarn add @tensorflow/tfjs

Подключение библиотеки в скрипт:

var tf = require('@tensorflow/tfjs');

Callback-функция для обучения нейронной сети:

async function doTraining(model) { const history = await model.fit(xs, ys, { epochs: 1000, callbacks: { onEpochEnd: async (epoch, logs) => { console.log(epoch, logs.loss);

}

}

});

}

Объявление модели нейронной сети: const model = tf.sequential();

model.add(tf.layers.dense({units: 1, inputShape: [5]})); model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});

Подготовка данных для обучения нейронной сети: let arr = [

[(1 / 186) * 100, (1 / 91) * 100, (1 / 24) * 100, 1 / 1, (1 / 80) * 100], [(1 / 186) * 100, (1 / 91) * 100, (1 / 24) * 100, 1 / 1, (1 / 120) * 100], [(1 / 186) * 100, (1 / 91) * 100, (1 / 24) * 100, 1 / 1, (1 / 81) * 100], [(1 / 186) * 100, (1 / 91) * 100, (1 / 24) * 100, 1 / 1, (1 / 121) * 100], [(1 / 186) * 100, (1 / 91) * 100, (1 / 24) * 100, 1 / 1, (1 / 82) * 100], [(1 / 186) * 100, (1 / 91) * 100, (1 / 24) * 100, 1 / 1, (1 / 122) * 100], [(1 / 186) * 100, (1 / 91) * 100, (1 / 24) * 100, 1 / 1, (1 / 83) * 100], [(1 / 186) * 100, (1 / 91) * 100, (1 / 24) * 100, 1 / 1, (1 / 123) * 100], [(1 / 186) * 100, (1 / 91) * 100, (1 / 24) * 100, 1 / 1, (1 / 84) * 100], [(1 / 186) * 100, (1 / 91) * 100, (1 / 24) * 100, 1 / 1, (1 / 124) * 100], [(1 / 171) * 100, (1 / 88) * 100, (1 / 32) * 100, 1 / 2, (1 / 80) * 100], [(1 / 171) * 100, (1 / 88) * 100, (1 / 32) * 100, 1 / 2, (1 / 120) * 100], [(1 / 171) * 100, (1 / 88) * 100, (1 / 32) * 100, 1 / 2, (1 / 81) * 100], [(1 / 171) * 100, (1 / 88) * 100, (1 / 32) * 100, 1 / 2, (1 / 121) * 100], [(1 / 171) * 100, (1 / 88) * 100, (1 / 32) * 100, 1 / 2, (1 / 82) * 100], [(1 / 171) * 100, (1 / 88) * 100, (1 / 32) * 100, 1 / 2, (1 / 122) * 100], [(1 / 171) * 100, (1 / 88) * 100, (1 / 32) * 100, 1 / 2, (1 / 83) * 100], [(1 / 171) * 100, (1 / 88) * 100, (1 / 32) * 100, 1 / 2, (1 / 123) * 100], [(1 / 171) * 100, (1 / 88) * 100, (1 / 32) * 100, 1 / 2, (1 / 84) * 100], [(1 / 171) * 100, (1 / 88) * 100, (1 / 32) * 100, 1 / 2, (1 / 124) * 100], [(1 / 186) * 100, (1 / 91) * 100, (1 / 24) * 100, 1 / 1, (1 / 150) * 100], [(1 / 171) * 100, (1 / 88) * 100, (1 / 32) * 100, 1 / 2, (1 / 150) * 100],

const xs = tf.fewsor2fi?(arr); const ys = tf.tensor2d(

[0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 2, 2], [arr. length, 1]

);

Запуск обучения и прогнозирования:

doTraining(model).then(() => {

console.log(model.predict(tf.tensor2d([(1 / 186) * 100, (1 / 91) * 100, (1 / 24) * 100, 1 / 2, (1 / 85) * 100], [1,5])).print()); });

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

Обозначения входных параметров в данном примере:

1) 186, 171 — рост пользователя в сантиметрах;

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

2) 91, 88 — вес пользователя в килограммах;

3) 24, 32 — возраст пользователя в годах;

4) 1 означает, что пользователь мужчина;

5) 2 означает, что пользователь женщина;

6) 80, 81, 82, 83, 84, 120, 121, 122, 123, 124 — пульс пользователя в определенный момент времени.

Обозначение результирующих параметров для обучения нейронной сети:

1) 0 — самочувствие пользователя «отлично»;

2) 1 — самочувствие пользователя «внимание»;

3) 2 — самочувствие пользователя «плохо».

На выходе нейронной сети рассчитывается вероятность статуса самочувствия пользователя в диапазоне [0, 1].

По результирующему коэффициенту можно отделить статус пользователя так:

1) до 0,35 => «отлично»

2) 0,35-0.7 => «внимание»

3) от 0,7 => «плохо»

Диапазон 0,35-0,7 немного больше других диапазонов, потому что для данной системы важнее найти «больного» пользователя, даже если пара лишних пользователей попадут в «зону риска».

Заключение

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

Возможно масштабирование системы путем разработки новых сервисов для более качественного анализа физического состояния человека.

Литература

1. Машнин Т. С. Web-сервисы Java. — СПб.: БХВ-Пе-тербург, 2012. — 560 с. — (Профессиональное программирование: PRO).

2. Android. Разработка приложений = Android: Application Development / Р. Роджерс, Д. Ломбардо, З. Мед-ниекс, Б. Мейк. — М.: ЭКОМ Паблишерз, 2010. — 400 с.

3. Асмаков C. Интерфейс Bluetooth: разберемся с нюансами // Компьютер Пресс. 2013. № 3 (279). С. 34-36.

4. Васильева Е. В. Flat-Design и система интернационального стиля: графические принципы и визуальная форма / Е. В. Васильева, Ж. С. Гарифуллина (Аристова) // Знак: проблемное поле медиаобразования. 2018. № 3 (29). С. 43-49.

5. Джулли А. Библиотека Keras — инструмент глубокого обучения. Реализация нейронных сетей с помощью библиотек Theano и TensorFlow = Deep learning with Keras. Implement neural networks with Keras on Theano and Tensor-Flow / А. Джулли, С. Пал.; пер. с англ. А. А. Слинкин. — M.: ДМК-Пресс, 2018. — 294 с.

The Use of Neural Networks to Determine the Physical Condition of a Person

Master of Science R. A. Sergeev, Grand PhD V. P. Bubnov Emperor Alexander I Petersburg State Transport University Saint Petersburg, Russia roma.svetl@gmail.com, bubnov1950@yandex.ru

Abstract. The developed mobile application is a system for monitoring the physical condition of railway workers. The idea of this system is that a user (an employee on Russian Railways) puts on a Mi band 2 fitness bracelet and connects it to an android smartphone via Bluetooth, and a specially developed application automatically measures the pulse and sends it to the server for data processing in order to obtain status results employee.

Keywords: database, neural network, android application, physical condition of a person, fitness bracelet, neural network prediction, android application development.

References

1. Mashnin T. S. Java Web services [Web-servisy Java], St. Petersburg, BHV-Petersburg, 2012, 560 p.

2. Rogers R., Lombardo J., Mednieks Z., Meike B. Android: Application Development [Android. Razrabotka prilozheniy], Moscow, ECOM Publishers, 2010, 400 p.

3. Asmakov S. Bluetooth Interface: Let's Look at the Nuances [Interfeys Bluetooth: razberemsya s nyuansami],

Computer Press [Komp'yuter Press], 2013, No. 3 (279), Pp. 34-36.

4. Vasylieva E. V., Garifullina (Aristova) Zh. S. Flat-Design and the System of International Style: Graphic Principles and Visual Form [Flat-Design i sistema internatsional'nogo stilya: graficheskie printsipy i vizual'naya forma], SIGN: Problematic Field of Media Education [Znak: problemnoe pole mediaobrazovaniya.], 2018, No. 3 (29), Pp. 43-49.

5. Gulli A., Pal S. Deep learning with Keras. Implement neural networks with Keras on Theano and TensorFlow [Biblioteka Keras — instrument glubokogo obucheniya. Realizatsiya neyronnykh setey s pomoshch'yu bibliotek Theano i TensorFlow], Moscow, DMK-Press Publishers, 2018, 294 p.

HHmmneKmyanbHbie техноnогии Ha mpaHcnopme. 2020. № 2

70

i Надоели баннеры? Вы всегда можете отключить рекламу.