- 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]
В дальнейших планах:
Автор: 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
Нажмите здесь для печати.