Navigation überspringen

Machine Learning zur Bewegungsdetektion

Lesen Sie diesen Artikel auch im E-Paper der Technischen Rundschau: Technische Rundschau 11/2025 (Seite 54/55).

Was passiert, wenn ein Elektroingenieur ohne Data-Science-Vorkenntnisse sich für eine Mastervertiefung in Medical Engineering entscheidet und seine Abschlussarbeit dem Thema Machine Learning zur Bewegungsdetektion aus Elektromyografie-Signalen widmet? Ein Erfahrungsbericht von Sébastien Monn.

Zur Diagnose von neurodegenerativen Krankheiten wird das sogenannte Bereitschaftspotential (BP) aus gemessenen Hirnströmen extrahiert. Dieses Signal taucht bei bewusst und regelmässig ausgeführten Bewegungen auf. Die Form und Ausbreitung des Signals durch das Gehirn lässt Rückschlüsse auf Krankheiten zu. In der Elektroenzephalographie (EEG), welche die elektrische Aktivität des Gehirns misst, ist dieses Signal kaum zu erkennen. Es geht im Rauschen der vielen anderen Hirnströme unter. Mittels Rückwärtsmittelung wird das Signal sichtbar gemacht. Es werden viele gleiche Bewegungen aufgezeichnet und jeweils der genaue Zeitpunkt des Bewegungsbeginns markiert. Für jede Bewegung wird ein Signalfenster aus dem EEG extrahiert, bei dem der Zeitpunkt der Bewegung in der Mitte des Fensters ist. Diese kurzen EEG-Fenster werden übereinandergelegt und gemittelt. Dadurch werden zufällige Signale und Rauschquellen gefiltert und das BP wird sichtbar. Dafür muss der Beginn der bewussten Bewegung bekannt sein. In meiner Masterarbeit habe ich dieses Problem mit Hilfe von Machine-Learning gelöst. Die Bewegung wird mittels Elektromyographie (EMG) erfasst. Durch auf der Haut platzierte Elektroden lässt sich die elektrische Aktivität der Muskeln bestimmen. Bei Bewegungen wird ein rauschförmiges Signal gemessen, das eine Amplitude von einigen Millivolt aufweist, während bei Ruhe das Signal keine Aktivität zeigt (Abb. 1). In meiner Masterarbeit wurden Machine-Learning-Modelle verwendet, um anhand der EMG-Signale zu detektieren, ob in einem Signalfenster eine Bewegung vorhanden ist. Dies wurde mit anderen automatisierten Methoden, etwa den Detektoren der BioSPPy-Library der Universität Lissabon, verglichen. Zum Testen und Trainieren wurden EMG- und EEG-Daten von 16 gesunden Personen und 15 Parkinson-Patienten verwendet, bei denen der Start der Bewegungen bereits markiert war. 

Das Machine-Learning-Modell hat einen Eingangsvektor, der das komplette Signal beinhaltet. Um die Modelle einfach zu halten, wurde entschieden, das Signalfenster zuerst in kleinere Fenster zu unterteilen und aus diesen die Varianz oder den RMS-Level zu berechnen (Abb. 2). Da die absoluten Signalpegel von Person zu Person variieren, müssen die Daten statistisch skaliert werden. Diese Skalierung erlaubt es, dass das Modell stets die gleichen Signalpegel erhält und sich somit nur auf die relativen Grössen der einzelnen Vektorwerte konzentrieren kann. Somit können Machine-Learning-Modelle trainiert werden. Für diese Arbeit wurde die Python-Bibliothek «Scikit-Learn» verwendet. Diese bietet die gängigsten Modelle an, sowie die nötigen Tools, um sie zu trainieren.

Trainings- und Testdaten

Die Datensätze werden in Trainings- und Testdaten getrennt: Die Trainingsdaten werden zum Trainieren des Modells verwendet, während die Testdaten prüfen, wie gut das Modell unbekannte Daten vorhersagen kann. Da das Modell entscheiden soll, ob in einem Signalfenster eine Bewegung vorliegt oder nicht, müssen die Trainingsdaten sowohl Signalfenster mit und ohne Bewegungen enthalten. Hier ist das Verhältnis wichtig. Wenn zu viele Trainingsdaten denselben Vorhersagetyp haben, kann ein Bias entstehen, der das Modell dazu veranlasst, die Daten eher dem vorherrschenden Vorhersagetyp zu klassifizieren. Um dem entgegenzuwirken, wurden beim Training gleich viele Signalfenster mit und ohne Bewegung verwendet. Es können auch «künstlich» mehr Daten generiert werden, indem die gleichen Bewegungen in einem Signalfenster mit einem zufälligen Offset verschoben werden. Da dadurch die absoluten Signalpegel gleichbleiben, besteht jedoch das Risiko des «Overfittings», was sich auch auf die Vorhersagequalität auswirken kann.

Beim Machine-Learning sind «Over-» und «Underfitting» Kriterien zur Beurteilung, ob ein Modell gute, generelle Vorhersagen macht. Dies kann unter anderem durch die Anzahl der Trainingsdaten variiert werden, doch mit wenig Erfahrung ist es schwierig abzuschätzen, was die richtige Menge ist. In meiner Arbeit wurde die Anzahl Trainingsdaten sowie die zusätzliche Anzahl «künstlich» generierter Daten für jede Modellgenerierung zufällig gewählt. Für jedes Modell wurde dann die Fehlerrate zwischen den Trainings- und Testdaten verglichen, um die passende Modellkomplexität zu finden.

Prozesspipeline der Bewegungsdetektion

Die Bewegungsdetektion basiert auf einer Prozesspipeline mit zwei Stufen: Dem initialen Detektor und einer Verfeinerung. Die erste Stufe erkennt Bewegungen aus dem kompletten Signal, während die Zweite das Signal genauer analysiert, um den Start der Bewegung präziser zu bestimmen. Das Machine-Learning-Modell wurde im initialen Detektor verwendet. Folgende weitere Methoden wurden in der Bewegungsdetektion angewandt: Schwellenbasierter Detektor (BioSPPy), Wavelet Transformations-basierter Detektor, um das Signalspektrum zu analysieren (Wavelet) sowie die Kross-Korrelation des EMG-Signals mit einem modellierten Signal (Model-based). Die Verfahren der ersten Stufe lassen sich mit verschiedenen Methoden der zweiten Stufe kombinieren, um deren Zusammenspiel zu prüfen. Die Detektionsgenauigkeit wurde ebenfalls getestet. Es wurde evaluiert, wie viele Bewegungen fälschlicherweise vorhergesagt wurden (false positives/fp) und wie viele Bewegungen übersehen wurden (false negatives/fn). Dabei zeigte sich, dass die Machine-Learning-Modelle eine vergleichbare Performance wie andere Detektionsmethoden haben und somit erfolgreich für diese Applikation verwendet werden können.

Fazit

Am Ende zeigte sich, dass es einem Laien wie mir gut möglich war, Machine-Learning-Modelle zu trainieren. Eine Hilfe war, dass die Scikit-Library «Plug-and-Play» ist. Entscheidend ist, dass das Eingangssignal und dessen Eigenschaften klar verstanden sind. Welche Parameter wie optimiert werden müssen, erfordert Erfahrung. Der Vorteil in Python ist, dass vieles automatisiert werden und somit viele Parameter zufällig gesetzt werden können, um den besten Wert zu determinieren. So musste am Ende der Arbeit nur noch das Python-Skript gestartet werden. Anhand der Testresultate konnten die besten Parametereinstellungen und Modelle eindeutig bestimmt werden.

Zürich 14.11.2025
Beitrag von: Sébastien Monn, Belinda Kneubühler
Bildquelle: Zühlke Engineering AG

Beitrag teilen

Wir verwenden Cookies, um Ihnen ein optimales Nutzererlebnis zu bieten. Einige Cookies sind für den Betrieb der Seite notwendig, andere dienen Statistikzwecken, Komforteinstellungen oder zur Anzeige personalisierter Inhalte. Sie können selbst entscheiden, welche Cookies Sie zulassen wollen. Bitte beachten Sie, dass aufgrund Ihrer Einstellung womöglich nicht mehr alle Funktionalitäten der Seite verfügbar sind. Weitere Informationen finden Sie in unserer Datenschutzerklärung und Cookie Policy. Details anzeigen