Wykorzystanie algorytmu oceny cech w rozpoznawaniu sygnałów EMG

Łukasz Juszkiewicz

Raport wykonany w ramach projektu z kursu "Metody i Algorytmy Sztucznej Inteligencji"


Prowadzący:
dr inż. Witold Paluszyński

Data: 21.06.2010

Use of feature evaluation algorithm in EMG signals clasification

Łukasz Juszkiewicz

The project described in this report has been completed to fulfill the requirements for the course: 'Methods and algorithms of artificial intelligence'.


Instructor:
Witold Paluszynski, Ph.D

Date: June 21st, 2010


Abstract

This report describes feature selection technique based on evaluation criteria for extracting robust features of EMG signals. Wavelet packet transform was first adopted to provide an effective time–frequency representation of non-stationary EMG signals. Then Singular Values Decomposition and the distance evaluation technique were utilized to extract and select the optimal feature vector. The goal was to find optimal number of features in vector and asses the efficiency of used technique.

The implementation was done mainly using MATLAB with Wavelet Toolbox and Octave. Some programs were written in C++ using Fast Artificial Neural Network (FANN) Library.

Eight channel EMG signals representing three motion patterns were used for experiments. Lenght of feature vector after WPT and SVD was 256 elements. Distance evaluation measure was computed for all elements and they were sorted by thi criterion. Then the k-nearest neighbours classifier was used to find optimal length of feature vector. Similar experment was done with artificial neural network. Experiments have shown that number of elements can be meaningfully reduced from 256 to even 8, giving high classification accuracy.



Wstęp

Celem projektu było przetestowanie jak opisany w [1] mechanizm ekstrakcji cech sprawdza się w klasyfikacji sygnałów EMG. Są to sygnały elektryczne generowane przez poruszające się mięśnie. Można je wykorzystywać, ponieważ po amputacji dłoni mięśnie przedramie- nia dalej poprawnie wykonują swoją pracę. Sygnały EMG odczytywane są za pomocą 8 elektrod różnicowych, a następnie próbkowane z częstotliwością 1kHz, przetwarzane na postać cyfrową i przesyłane do komputera. W prze- prowadzonym przez nas doświadczeniu wykorzystałem dane przygotowane wcześniej na potrzeby innego projektu. Dane dotyczyły 3 różnych chwytów (dłoniowy, szczypcowy i hakowy). Największym problemem w skutecznej klasyfikacji tego typu niestacjonarnych sygnałów jest redukcja ilości informacji, tak aby zachować tylko te wartści, które pozwalają na rozróżnienie poszczególnych wzorców. Wybrane zostały próbki liczące 1000 wartości dla każdego kanału (1 sekunda), co daje aż 8000 współczynników dla jednej próbki. Liczbę tę należało znacząco zredukować. Wybrane zostało podejście polegające na wykorzystaniu pakietowej transformaty falkowej, rozkładu na wartości szczególne oraz algorytmu oceny cech. Na rysunku pokazano schemat całego procesu.

Schemat blokowy

Schemat ideowy procesu klasyfikacji chwytów

Reprezentcja sygnału -- transformacja falkowa

Pierwszym etapem było uzyskanie czasowo-częstotliwościowej reprezentacji sygnału. wykorzystana do tego została pakietowa transformacja falkowa. Różni się ona od "klasycznej" transformacji falkowej. W klasycznym podejściu sygnał wejściowy rozkłada się na część reprezentująca aproksymację sygnału A oraz detal D. W każdym kolejnym przybliżeniu rozkłada się znów aproksymację na kolejną aproksymację i detal. Zasadniczą cechą odróżniającą pakietową transformację jest rozkład zarówno aproksymacji A oraz detalu D. W wyniku tego powstaje rozkład przypominający drzewo binarne. Na rysunkach poniżej pokazano strukturę zarówno klasycznego jak i pakietowego podziału. Jako reprezentację sygnału przyjęto liście ostatniego (w omawianym przypadku piątego) poziomu.

Schemat klasycznej transformaty falkowej

Schemat ideowy klasycznej transformaty falkowej



Schemat pakietowej transformaty falkowej

Schemat ideowy pakietowej transformaty falkowej



W wyniku takiego podziału, dla każdego z 8 kanałów otrzymano 32 ele- mentowy pakiet wektorów o długości zależnej od wielkości danych wejścio- wych. W tym przypadku (1000 próbek, czyli 1 sekunda) były to 39 elementowe wektory.

Rozkład na wartości szególne (Singular Values Decomposition)

Rozkład na wartości szczególne pozwala na redukcję wymiarowości, danych w sposób podobny do wyliczania wartości własnych, z tą różnicą, że rozkładana macierz nie musi być diagonalna. Liczba wyliczonych wartości własnych jest równa mniejszemu z wymiarów macierzy. W tym przypadku, każda z wejściowych macierzy o rozmiarze 32x39 została zredukowana do wektora o długości 32.

Algorytm oceny cech

Wartości szczególne uzyskane z pakietowej transformacji falkowej sygnałów, oprócz informacji pozwalającej rozróżnić poszczególne chwyty, zawiera- ją również nadmiarową informację na przykład o ruchach całego ramienia, a także szumach itp. Uwzględnienie tych nadmiarowych wartości pogarsza znacząco jakość klasyfikacji, zacierając podział pomiędzy klasami. Istotna jest więc ocena, które z wartości szczególnych najlepiej odróżniają poszczególne chwyty. Niekoniecznie będą to największe z nich – dominująca składowa sygnału może być podobna dla wszystkich chwytów.

Zastosowany więc został algorytm oceny wartości szczególnych, będący modyfikacją algorytmu przedstawionego w [1]. Zebrano pomiary sygnałów dla określonej ilości powtórzeń każdego chwytu. Niech c będzie liczbą rozpoznawanych chwytów, a Ni ilością powtórzeń i-tego (i=1,...,c) chwytu. W ten spósb dla i-tego chwytu otrzymujemy zbiór Ni wektorów cech:
Wzór1

Dla każdego elementu wektora cech (wartości szczególnej) obliczany jest współczynnik oceny. Niech Din będzie średnią wartością n-tych elementów wektorów cech dla i-tego chwytu. Wtedy:
Wzór2

Dla i-tego chwytu maksymalny dystans n-tego elementu wektora cech od wartości średniej wynosi
Wzór3

Wtedy maksymalny dystans n-tego elementu wektora cech od odpowiada- jącej mu wartości średniej dla wszystkich chwytów wynosi
Wzór4

Im mniejsze Dan tym wartości qn(i,k) tworzą bardziej skupione zbiory.

Minimalny dystans pomiędzy wartościami Din określa oddalenie od siebie poszczególnych zbiorów tworzonych przez wartości qn(i,k)
Wzór5

Dla n-tego elementu wektora cech otrzymujemy współczynnik oceny:
Wzór6

Im wartość Fn większa tym bardziej skupione i oddalone od siebie zbiory są tworzone przez dany element wektora cech. Pozwala to na ocenę przydatności wartości szczególnych do rozpoznawania.

Na poniższym rysunku zobrazowano użyte wielkości, dla większej czytelności w przypadku dwuwymiarowym (n oznacza tu parę wartości).

Zobrazowanie wielkości użytych do wyliczenia współczynnika F

Zobrazowanie wielkości użytych do wyliczenia współczynnika F

Dla wektora cech otrzymujemy wektor współczynników oceny o takiej samej długości. Na rysunku poniżej pokazano wartości współczynnika oceny dla wartości szczególnych pogrupowanych według kanału pomiarowego od którego pochodzą i uporządkowanych malejąco. Widać, że nie zawsze największe wartości szczególne najlepiej rozróżniają chwyty między sobą, oraz niejednakową wartość informacji pochodzących z poszczególnych kanałów.

Wartości współczynnika oceny

Wartości współczynnika oceny

Wybór optymalnej długości wektora cech (Współczynnik F)

Jak już wcześniej zostało powiedziane, wektor cech o długości 256 jest zbyt długi. Znajdują się w nim zarówno parametry rozróżniające chwyty, jak i takie, które nic nie wnoszą do algorytmu klasyfikacji. Aby uzyskać jak najlepsze efekty, konieczne jest wyeliminowanie tych, które nie mają znaczenia. Odpowiedzialny za to jest parametr F. Został on wykorzystany do wyznaczenia optymalnej długości wektora cech. Otrzymane wyniki przedstawiono na rysunku poniżej. Sortowanie według wyliczanych wartości parametru F, a następnie testowanie dla każdej długości wektora jakości klasyfikacji pozwala wybrać optymalną długość wektora cech. Do testów użtyty został klasyfiktator k-najbliższych sąsiadów zaimplementowany w MATLABie. Dzięki temu zabiegowi zostały otrzymane indeksy tych elementów, które najlepiej rozróżniają chwyty. W przedstawionym przypadku optymalna długość wektora cech wynosi 6 (wartości szczególnych o największym współczynniku F).

Jakość rozpoznawania w zależności od długości wektora cech

Jakość rozpoznawania w zależności od długości wektora cech; klasyfikator k-najbliższych sąsiadów

Linią niebieską zaznaczono wartości współczynnika F, za 100% przyjęto największą z nich.

Podobny eksperyment został przeprwoadzony z pomocą sztucznej sieci neuronowej typu feed-forward. W tym celu został napisany program w języku C++, wykorzystujący bibliotekę FANN [2]. Dane podzielono na część uczącą (30 przypadków) oraz testową (24 przypadki). następnie przetestowano skuteczność klasyfikacji przy pomocy sieci dla długości wektora wejściowego od 1 do 256, dla każdej wartości tworząc sieć, ucząc ją i testując. Wyniki przedstawiono na rysunku.

Jakość rozpoznawania w zależności od długości wektora cech

Jakość rozpoznawania w zależności od długości wektora cech; sieci neuronowe

Optymalna długość wektora wyliczona tutaj cech wynosi 10 (wartości szczególnych o największym współczynniku F).

Pojawia się jednak pytanie, czy aby na pewno wybór współczynników o najwyższych wartościach F jest optymalny. Innymi słowy na ile wybrane kryterium jakości jest skuteczne. Aby to sprawdzić sprawdzono poprawność klasyfikacji dla wektorów cech o stałej długości (wybranej poprzednio), ale przesuniętych w stronę niższych wartości F. Podobnie jak poprzednio eksperyment przeprowadzono przy pomocy klasyfikatora k-najbliższych sąsiadów oraz sieci neuronowych. Wyniki pokazano na rysunkach poniżej.

Jakość rozpoznawania w zależności od przesuniecia

Jakość rozpoznawania w zależności przesunięcia; klasyfikator k-najbliższych sąsiadów



Jakość rozpoznawania w zależności od przesunięcia

Jakość rozpoznawania w zależności przesunięcia; sieci neuronowe



Podsumowanie

Przeprowadzone przy pomocy klasyfikatora k-najbliższych sąsiadów eksperymenty wskazują na skuteczność opisanej metody. Wyniki z eksperymentów z sieciami neuronowymi dały znacznie mniej jednoznaczne rezultaty. Wynika to zapewne z małej ilości dostępnych danych uczących oraz znacznie większego stopnia skomplikowania tego klasyfikatora. Należałoby, dysponując większą ilością danych, przeprowadzić większą liczbę eksperymentów i spróbować dobrać parametry sieci. Cały procs, mimo swojego skomplikowania pozwolił na bardzo znaczącą redukcję wymiarowości danych. Z jednej próbki zawierającej 8000 wartości uzyskano wektor zaledwie 6 elementów, pozwalający jednak skutecznie odróżniać poszczególne wzorce ruchu. Należy wyraźnie zaznaczyć, że wybór optymalnego wektora cech może zależeć od ilości rozpoznawanych wzroców. Jest to więc algorytm zawierający pewien element uczenia. W zastosowaniu praktycznym pozwoliłoby to na dostrojenie klasyfikatora do indywidualnego przypadku. Wybór optymalnego wektora cech odbywałby się tylko raz na początku, później klasyfikator wykorzystywałby tylko wybrane wartości.

Omówiony algorytm oceny wartości cech opiera się na bardzo prostym aparacie matematycznym jest więc łatwy w implementacji w dowolnym języku programowania.

Bibliografia

[1] Hong-Bo Xie, Yong-Ping Zheng and Jing-Yi Guo Classification of the mechanomyogram signal using a wavelet packet transform and singular value decomposition for multifunction prosthesis control, March 2009.
[2] Fast Artificial Neural Network Library (FANN) http://leenissen.dk/fann/

Valid HTML 4.01 Transitional