- PVSM.RU - https://www.pvsm.ru -

Захват сигнала мышечной активности в систему машинного обучения

Около года назад ко мне пришла идея создания открытого фреймворка для нейроинтерфейсов.


На данном видео захват ЭМГ [1] сигнала мышц происходит с помощью восьмиканального ЭМГ датчика на предплечье. Таким образом, мы через кожу снимаем нерасшифрованную, усиленную мышцами картину активации двигательных нейронов.

Сырой сигнал с датчика через Bluetooth поступает в Android/Android Things приложение [2].

Для обучения системы, мы на определенный жест руки будем назначать класс движения. Например, если нам нужно состояние «остановка», а также вращение двух моторов в двух направлениях, всего мы запишем пять жестов. Соберем всё в файлы и отправим на обучение в нейросеть [3]. На входе сети имеем нервную активность, на выходе — распознанный класс движения.

Пример архитектуры сети на Keras:

model = Sequential()
# 8 каналов ЭМГ записаны по 8 раз каждый
model.add(Dense(36, activation='relu', input_dim=64))
model.add(Dense(20, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(16, activation='relu'))
# 5 записанных жестов
model.add(Dense(5, activation='softmax'))

sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])

https://www.kaggle.com/kyr7plus/naive-classifier [4]

Для связи приложения и нейросети используется сервер [5]. Клиент-серверное решение позволяет легко скриптовать машинное обучение с использованием TensorFlow, не меняя код приложения и избегая постоянных переустановок в процессе отладки.

Использовать полученные классификаторы можно при помощи TFLite [6] либо TF Serving [7]

Код системы находится тут [8]

В дальнейших планах:

  • Cоздание опен сорс многоканального датчика ЭМГ, работающего по USB
  • Эксперименты с машинным обучением для повышения надежности управления

Автор: kirillskiy

Источник [9]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/android/306833

Ссылки в тексте:

[1] ЭМГ: https://ru.wikipedia.org/wiki/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BC%D0%B8%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F

[2] Android/Android Things приложение: https://github.com/cyber-punk-me/nukleos

[3] нейросеть: https://github.com/cyber-punk-me/emg-nn

[4] https://www.kaggle.com/kyr7plus/naive-classifier: https://www.kaggle.com/kyr7plus/naive-classifier

[5] сервер: https://github.com/cyber-punk-me/hivemind

[6] TFLite: https://www.tensorflow.org/lite/

[7] TF Serving: https://www.tensorflow.org/serving/

[8] Код системы находится тут: https://github.com/cyber-punk-me

[9] Источник: https://habr.com/ru/post/437888/?utm_campaign=437888