Из-за популярности случайных смартфонов в повседневной жизни большинство людей носят свои телефоны с собой, когда они что-то делают. Если датчик в мобильном телефоне включен, при движении пользователя может быть собрано большое количество информации о пользователе, по которой можно судить о текущем режиме движения пользователя, таком как ходьба, подъем по лестнице, спуск. лестницы, сидя, стоя, лежа и т.д. На основе этих спортивных режимов разработайте различные сценарии, чтобы добавить интересные функции в приложения для фитнеса или спорта.
В смартфонах распространен датчик информации о местоположении.АкселерометриГироскоп.
- Датчик ускорения: используется для измерения изменения скорости и положения мобильного телефона;
- Гироскоп: используется для проверки изменения направления движения мобильного телефона и изменения скорости вращения;
В этой статье в основном обучается модель глубокого обучения, основанная на данных датчика мобильного телефона, для прогнозирования модели движения пользователя.
Технические решения:
- DL:DeepConvLSTM
- Керас: 2.1.5
- ТензорФлоу: 1.4.0
Исходный код этой статьи: https://github.com/SpikeKing/MachineLearningDemos/tree/master/motion_detector
данные
Данные для этого примера взяты из UCI (т.е. Калифорнийского университета в Ирвине, Калифорнийского университета в Ирвине). Данные были собраны 30 добровольцами в возрасте 19-48 лет со смартфонами, закрепленными на их талии, выполняющими шесть движений, а именно: ходьба, подъем по лестнице, спуск по лестнице, сидение, стояние и лежание, сохраняя при этом в мобильном телефоне. -размерные (ось XYZ) данные с датчиков (акселерометр и гироскоп). Частота датчика была установлена на 50 Гц (т.е. 50 записей в секунду). Для размерности данных выходного датчика выполнить фильтрацию шума (Noise Filter), слайд с фиксированным окном 2,56 секунды, и при этом содержать 50% перекрытия между окнами, то есть размерность данных каждого окна равна 128 ( 2,56 * 50), маркируйте данные в соответствии с различными спортивными категориями. Существует три типа датчиков: датчики ускорения тела, датчики полного ускорения и гироскопы.
Ниже приведена кривая движения, построенная на основе данных: амплитуда стояния (красный), сидения (зеленый), лежания (оранжевый) меньше, а амплитуда ходьбы (синий), вверх по лестнице (фиолетовый) и вниз по лестнице. (черный) относительно маленький большой.
Ниже представлена кривая движения по трем осям трех типов датчиков и суммарные 9-мерные данные во время ходьбы:
Ниже представлена кривая движения в положении сидя:
При наблюдении видно, что кривые данных датчика для разных режимов движения имеют определенные различия, но различия некоторых режимов движения не очевидны, например, при ходьбе, подъеме по лестнице и спуске по лестнице; кривые данных датчика один и тот же режим движения также отличается.
В источнике данных 70% данных используются в качестве обучающих данных, а 30% данных используются в качестве тестовых данных Добровольцы, которые генерируют обучающие данные, отличаются от тех, кто генерирует тестовые данные, чтобы обеспечить строгость данные, что соответствует прогнозированию неизвестных действий пользователя в практических приложениях.
Модель
Модель представляет собой алгоритм DeepConvLSTM, основанный на глубоком обучении.Алгоритм сочетает операции свертки (Convolution) и LSTM, которые могут изучать как пространственные, так и временные атрибуты выборок. В операции свертки сигнал формы волны фильтруется путем умножения сигнала на ядро свертки, сохраняя информацию высокого уровня. В операции LSTM временная связь между сигналами определяется путем запоминания или забывания информации о предварительном порядке.
Структура алгоритма DeepConvLSTM выглядит следующим образом:
Объедините данные трех координатных осей (XYZ) каждого типа датчика (ускорение тела, общее ускорение, гироскоп) в матрицу данных, то есть(128, 3)
измерение, в качестве входных данных каждый тип датчика создает модель DeepConvLSTM, всего 3 модели. С помощью 3 операций свертки и 3 операций LSTM данные абстрагируются в 128-мерный выходной вектор LSTM.
В блоке свертки CNN посредством комбинированной операции свертки (ядро свертки 1x1), BN, MaxPooling (двухмерная чихуа) и Dropout есть 3 последовательные группы, и последняя группа выполняет Dropout. Через операцию уменьшения размерности MaxPooling (2^3=8
) для преобразования 128-мерных данных в 16-мерные высокоуровневые объекты.
В последовательном блоке RNN с помощью операции LSTM число нейронов в скрытом слое устанавливается равным 128, три раза подряд, 16-мерные функции свертки преобразуются в 128-мерные функции временных рядов, а затем операция Dropout. выполняется.
Наконец, 3 выхода модели 3 датчиков объединяются (Merge) в один вход, а именно128*3=384
, а затем выполнять такие операции, как Dropout, Dense, BN и т. д., и, наконец, использовать функцию активации Softmax для вывода вероятности 6 категорий.
Категория с более высокой вероятностью выбирается в качестве окончательного прогнозируемого шаблона движения.
Эффект
В 48-м слое, слое Concatenate, выходные данные LSTM трех датчиков объединяются в один вход, и эффекты различных категорий функций также различны, например:
Параметры тренировки:
epochs = 100
batch_size = 256
kernel_size = 3
pool_size = 2
dropout_rate = 0.15
n_classes = 6
Конечный эффект, в тестовом наборе точность составляет около 95%:
loss: 0.0131 - acc: 0.9962 - val_loss: 0.1332 - val_acc: 0.9535
val_f1: 0.953794 — val_precision: 0.958533 — val_recall 0.949101
Если вы продолжите настраивать параметры, вы также можете повысить точность.
Модель распознавания действий пользователя, обученная алгоритмом глубокого обучения, может быть применена к мобильному терминалу для обнаружения сцен, включая шесть действий, таких как ходьба, подъем по лестнице, спуск по лестнице, сидение, стояние и лежание. В то же время точность 95% удовлетворяет потребности большинства продуктов.
C. L. Wang @ Meitu Cloud Business Unit
Ссылаться на:Merge versus merge,visualization,DeepConvLSTM,multiclass one-hot