2

Я разрабатываю (для моего старшего проекта) гантель, способный классифицировать и записывать различные упражнения. Устройство должно иметь возможность классифицировать ряд этих упражнений на основе данных, полученных от ИДУ (Инерциальная измерительная единица). У меня есть данные ускорения, гироскопа, компаса, тангажа, рыскания и рулона.Распознавание движения с искусственными нейронными сетями

Я склоняюсь к использованию искусственной нейронной сети, чтобы сделать это, но я открыт и для других предложений. В конечном счете, я хочу передать данные IMU в сеть и рассказать мне, какое это упражнение (Bicep curl, incline fly и т. Д.).

Если я использую ANN, какой тип я должен использовать (повторяющийся или нет) и как его реализовать? Я не уверен, как заставить сеть распознавать упражнение, когда я передаю ему непрерывный поток данных. Я думал о постоянном выполнении БПФ на части входов и отправке заданного количества частотных величин в сеть, но я не уверен, что это сработает. Любые предложения/комментарии?

ответ

2

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

Если у вас есть 5 разных людей, чтобы выполнить все упражнения и посмотреть на полученные данные самостоятельно (например, пилотировать различные части собранных данных), можете ли вы отличить, какое упражнение это? Это может дать вам подсказки о том, какую предварительную обработку вы можете выполнить на данных перед отправкой в ​​классификатор.

+0

Привет, Натан, спасибо за ваши предложения. У меня есть фактические данные из IMU (pitch, yaw, roll) и я могу видеть шаблоны в способе изменения данных с каждым упражнением. Проблема, на которой я нахожусь, заключается в том, как отправить эти данные в нейронную сеть. В идеале я бы хотел отправить все данные, которые я получаю, но я не уверен, как они будут обрабатывать упражнения, выполняемые на разных скоростях. Если кто-то выполняет упражнение по какой-либо другой скорости, чем точная скорость, не отбрасывается ли она, поскольку значения в любой точке будут сильно различны? – anonymousfox

+0

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

+0

Что вы хотите сделать, это разбить вещи на функции. Вы можете делать такие вещи, как преобразовать Фурье данных, чтобы получить функции, основанные на времени, как единую функцию вместо временного ряда. Вы также можете делать такие вещи, как взять max, min, average и т. Д., Чтобы снова получить дискретные функции вместо временного ряда. Я видел подходы, которые работают во временных рядах, но вам, вероятно, лучше найти функции, которые суммируют зависящую от времени информацию в данных. –

0

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

И вы также можете использовать средние данные. Возможно использование фактического движения и движения, которое усредняется в течение 2 секунд 5 секунд и 10 секунд. используйте те же, что и для входных узлов.

при осуществлении обученной сети можно также получать усредненные данные, а также ea (последние x выборок, деленные на x), это даст вам стабильный подход. В противном случае нейронная сеть может стать беспокойной.

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

Смежные вопросы