Wykorzystanie algorytmu oceny cech w rozpoznawaniu sygnałów EMG
Use of feature evaluation algorithm in EMG signals clasification
WstępCelem 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 ideowy procesu klasyfikacji chwytów Reprezentcja sygnału -- transformacja falkowaPierwszym 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 ideowy klasycznej 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 cechWartoś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: ![]() 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: ![]() Dla i-tego chwytu maksymalny dystans n-tego elementu wektora cech od wartości średniej wynosi ![]() Wtedy maksymalny dystans n-tego elementu wektora cech od odpowiada- jącej mu wartości średniej dla wszystkich chwytów wynosi ![]() 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) ![]() Dla n-tego elementu wektora cech otrzymujemy współczynnik oceny: ![]() 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 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 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; 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; 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 przesunięcia; klasyfikator k-najbliższych sąsiadów ![]() Jakość rozpoznawania w zależności przesunięcia; sieci neuronowe PodsumowaniePrzeprowadzone 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/ |