Analyse des secousses musculaires avec Python

kin.jpg

(from pixabay)

Les amateurs de musculation qui auraient 114514 personnes dans l'industrie informatique

Bonjour, c'est alf ++.

Aujourd'hui, je vais parler des muscles, en particulier des secousses. Bien sûr, le code est écrit en Python. Parlons maintenant des muscles.

Ingénieur informatique et muscle

Les ingénieurs informatiques aiment beaucoup l'entraînement musculaire. Cependant, peu de gens essaient de soutenir l'entraînement musculaire avec l'IT, Je suis très triste. Donc, dans cet article, soutenons l'entraînement musculaire avec l'informatique Tout d'abord, je présenterai un capteur myoélectrique capable de quantifier la force et le moment des secousses musculaires et sa méthode d'analyse.

Numérisation par saccades musculaires et capteurs myoélectriques

Pourquoi le muscle pique-t-il? Les muscles reçoivent des commandes de mouvement du cerveau humain sous la forme de signaux électriques. Le muscle se contracte fortement en fonction de la force de ce signal électrique. Au contraire, il se détend lorsqu'il n'y a pas de signal électrique. [^ 1] Par conséquent, les secousses musculaires peuvent être quantifiées en regardant les signaux électriques transmis aux muscles. command.png

Heureusement, le signal électrique transmis au muscle fuit du muscle à la surface de la peau, donc En mesurant ce signal de fuite, vous pouvez quantifier les secousses de vos muscles. Un instrument de mesure qui applique ce phénomène est appelé "capteur myoélectrique [^ 2]". trigno-lab.jpg (Cité de Delsys HP [1])

Visualisez les secousses musculaires avec Python

Voyons comment les cuisses picotent en marchant à partir de la valeur du capteur myoélectrique. Tout d'abord, téléchargez l'ensemble de données du capteur myoélectrique à partir du site suivant. http://archive.ics.uci.edu/ml/datasets/EMG+dataset+in+Lower+Limb

En cela, visualisez 1Nmar.log. Le code à visualiser est le suivant.

VisulizeEMG.py


import matplotlib.pyplot as plt
import pandas

FILE_PATH="../SEMG_DB1/N_TXT/1Nmar.txt"
HEADER_SIZE=6

data=pandas.read_csv(FILE_PATH,skiprows=HEADER_SIZE,sep="\t")
data.columns=["RF","BF","VM","ST","FX"]

plt.plot(data["RF"])
plt.xlabel("Time[ms]")
plt.ylabel("EMG[V]")
plt.show()

Le résultat de l'exécution est le suivant.

figure_1.png

La figure ci-dessus s'appelle un électrocardiogramme. Plutôt que de l'allumer et de l'éteindre comme un interrupteur, Cela ressemble à une onde sonore. En fait, le signal transmis au muscle n'est pas DC mais AC. Par conséquent, il est nécessaire de traiter un peu les données du capteur pour voir comment cela se sent.

Calculez la force et le timing des secousses musculaires avec Python

Lorsque l'on regarde la force d'un signal CA, la racine carrée moyenne (Root Square Means; RMS) est souvent utilisée comme indice. Par conséquent, l'indice de secousse musculaire est calculé ici en utilisant la racine carrée moyenne. Le code est ci-dessous. Notez que ce code est différent de la racine carrée moyenne habituelle, Le fait est qu'il utilise la racine carrée moyenne mobile.

VisualizeStrength.py


import matplotlib.pyplot as plt
import pandas

import numpy as np

WINDOW_SIZE=200

#http://stackoverflow.com/questions/8245687/
# numpy-root-mean-squared-rms-smoothing-of-a-signal
#Modifié en fonction de
def window_rms(a, window_size):
  a2 = np.power(a,2)
  window = np.ones(window_size)/float(window_size)
  return np.sqrt(np.convolve(a2, window,"same"))

FILE_PATH="../SEMG_DB1/N_TXT/1Nmar.txt"
HEADER_SIZE=6

data=pandas.read_csv(FILE_PATH,skiprows=HEADER_SIZE,sep="\t")
data.columns=["RF","BF","VM","ST","FX"]

RMS=window_rms(data["RF"],WINDOW_SIZE)

plt.plot(data["RF"],color="lightgray")
plt.plot(RMS)
plt.xlabel("Time[ms]")
plt.ylabel("EMG[V]")
plt.show()

Ainsi, lorsque vous l'exécutez réellement, la figure suivante apparaîtra.

figure_1.png

Plus la ligne bleue est grande, plus elle est serrée. Parce que ce sont des secousses à intervalles réguliers Vous pouvez voir à quoi ressemblent les muscles en marchant.

Un exemple d'application de secousses musculaires à l'informatique

Appliquer cette analyse, par exemple, en fonction de l'activité des secousses Vous pourrez faire fonctionner le drone et ainsi de suite. スクリーンショット 2016-12-10 23.08.56.png スクリーンショット 2016-12-10 23.31.38.png (Extrait de HP de Delsys [2])

Dans cette étude, effectuer la rééducation comme un jeu Il semble qu'il se développe. Toujours en 2016, la première année de VR Il semble qu'il soit également utilisé comme contrôleur pour faire fonctionner le bras du personnage dans l'espace VR. Vidéo Yotsube (Cliquez pour accéder à la vidéo de démonstration sur YouTube.)

De cette façon, les muscles ont des possibilités infinies.

Résumé

Les ingénieurs informatiques aiment beaucoup l'entraînement musculaire. Cependant, peu de gens essaient de soutenir l'entraînement musculaire avec l'IT, Je suis très triste. Par conséquent, dans cet article, nous discuterons de la force et du timing des secousses musculaires afin que l'entraînement musculaire puisse être soutenu par l'informatique. J'ai introduit un capteur myoélectrique qui peut être quantifié et une méthode d'analyse rudimentaire utilisant Python. L'analyse par Python peut être appliquée aux interfaces utilisateur et à la réhabilitation. Cependant, il semble qu'il existe très peu d'exemples de son application à l'entraînement musculaire. À l'avenir, les ingénieurs informatiques utiliseront des capteurs EMG pour créer des applications qui améliorent l'entraînement musculaire. J'espère sincèrement que vous le développerez.

__ Si vous écrivez jusqu'à présent, ne me dites pas d'y arriver __

Les références

[1] http://www.delsys.com/products/wireless-emg/trigno-lab/ [2] http://www.delsys.com/education/videos/research/serious-games/

[^ 1]: Bien sûr, des signaux électriques peuvent provenir de la moelle épinière appelée réflexe spinal. Les détails seront probablement autour de Kandel Neuroscience. [^ 2]: Strictement parlant, on l'appelle un capteur EMG de surface (sEMG).

Recommended Posts

Analyse des secousses musculaires avec Python
Analyse de données avec python 2
Analyse vocale par python
Analyse vocale par python
Analyse de données avec Python
[Python] Analyse morphologique avec MeCab
[Analyse de co-occurrence] Analyse de co-occurrence facile avec Python! [Python]
Analyse des émotions par Python (word2vec)
Analyse de squelette planaire avec Python
Analyse morphologique japonaise avec Python
Analyse de la structure du squelette en trois dimensions avec Python
Analyse d'impédance (EIS) avec python [impedance.py]
Text mining avec Python ① Analyse morphologique
Analyse de données à partir de python (visualisation de données 1)
Analyse de régression logistique Self-made avec python
Analyse de données à partir de python (visualisation de données 2)
FizzBuzz en Python3
Grattage avec Python
Statistiques avec python
[Didacticiel d'analyse Python en base de données avec SQL Server 2017]
Analyse bidimensionnelle du flux de perméation saturée-insaturée avec Python
Grattage avec Python
Python avec Go
Programme d'analyse des contraintes FEM 2D par Python
Twilio avec Python
Intégrer avec Python
Jouez avec 2016-Python
AES256 avec python
Testé avec Python
python commence par ()
avec syntaxe (Python)
Analyse des tweets avec Python, Mecab et CaboCha
Bingo avec python
Zundokokiyoshi avec python
Analyse de données à partir de python (pré-traitement des données-apprentissage automatique)
Python: analyse morphologique simplifiée avec des expressions régulières
Excel avec Python
Micro-ordinateur avec Python
Cast avec python
[Diverses analyses d'images avec plotly] Visualisation dynamique avec plotly [python, image]
Analyse d'images médicales avec Python 1 (Lire une image IRM avec SimpleITK)
Analyse statique du code Python avec GitLab CI
Analyse de régression LASSO facile avec Python (pas de théorie)
Analyse non linéaire géométrique du squelette élastique bidimensionnel avec Python
Communication série avec Python
Zip, décompressez avec python
Django 1.11 a démarré avec Python3.6
Jugement des nombres premiers avec Python
Communication de socket avec Python
Python: analyse des séries chronologiques
Essayez de gratter avec Python.
Apprendre Python avec ChemTHEATER 03
Recherche séquentielle avec Python
"Orienté objet" appris avec python
Exécutez Python avec VBA
Manipuler yaml avec python
Résolvez AtCoder 167 avec python
Communication série avec python
[Python] Utiliser JSON avec Python
Analyse du panier avec Spark (1)