Laboratorní úloha č.11: Elektrookulogram
Úvod: Elektrookulogram (EOG) zaznamenává rozdíl potenciálů mezi elektrodami umístěnými na kůži v blízkosti očí. Signál je generovaný pohybem očního bulbu a mění se vzdáleností rohovky od elektrod. Podstatou potenciálové změny je napěťový rozdíl mezi rohovkou a sítnicí. Při pohybu očního bulbu dojde ke změně potenciálu v jeho okolí.
+
-
ø
-+
0.4 ~ 1 mV
Fixace, schopnost zaměřit se (zafixovat) na určitý předmět, je jednou ze základních schopností okna. Pokud je oko zafixováno na nějaký předmět, tak jeho obraz se promítá na sítnici do oblasti žluté skvrny. Okohybné svaly udržují obraz ve žluté skvrně, ať se zafixovaný předmět pohybuje nebo ne. Fixace mohou být volní (umožňují vůlí zaměřit pozornost na určitý předmět) i mimovolní (udržují zafixovaný objekt v zorném poli). Sakády jsou skokovité oční pohyby mezi řadou po sobě jdoucích fixací. Pozorujeme je při sledování rychlého pohybu nebo při čtení. Cíle úlohy: 1. Analyzujte vlastní nebo jeden Vámi zvolený signál eog_kyvadlo.txt a) vykreslete průběh EOG, označte úsek sledování předmětu a napodobování pohybu b) porovnejte plynulost pohybu okna při fixaci na předmět a napodobování pohybu předmětu 2. Analyzujte vlastní nebo jeden Vámi zvolená signál eog_cteni.txt a) vykreslete průběh EOG do textu (přibližně) b) zhodnoťte sakadycké pohyby očí při čtení textu; najděte slova, která dělaly čtenáři problém 3. Analyzujte vlastní nebo jeden Vámi zvolená signál (eog_uhly.txt) a) vyhodnoťte závislost mezi napětím a změnou úhlu (úhlového vychýlení oka) pozorovaného objektu detekujte jednotlivá vychýlení, spočtěte napětí špička-špička generujte úhly vychýlení jednotlivých sekvencí projekce při záznamu EOG porovnejte průběh napětí špička-špička s odpovídajícími úhly vychýlení 4. Analyzujte vlastní nebo jeden Vámi zvolená signál (eog_kalibrace.txt, eog_rozpoznávání.txt) detekujte změny polohy oka v trénovacích datech rozpoznejte z EOG sekvenci čísel (bonusová/dobrovolná úloha) zhodnoťte schopnost rozpoznat z EOG čísla, na které se osoba dívá zhodnoťte výhody a nevýhody samoshlukové metody k-means 1
Data potřebná ebná k vypracování úlohy: http://sami.fel.cvut.cz/bsg/cv11/Data_lab11.zip mi.fel.cvut.cz/bsg/cv11/Data_lab11.zip
Pořízení biologických signálů: Snímání EOG signálu se skládá z několika ně úloh: 1. Sledování pohybujícího se objektu: objektu a) Průběh snímání: V první části subjekt (vyšetřovaná osoba) sleduje pomalu se pohybující předmět zavěšený ěšený na provázku ((kyvadlo). V druhé části, se subjekt snaží napodobit tento pohyb (snaží se pomalu plynule pohybovat očima o zleva doprava a zpět). zpě výsledné dva signály se budou lišit, neboť nebo očii nejsou schopny plynulé plynulého pohybu bez fixace na předmět př b) Zapojení elektrod: bipolárn ipolárně v horizontální rovině + elektroda u pravého oka − elektroda u levého oka zemnící elektroda na čele
2. Čtení textu: a) Průběh snímání: subjekt ubjekt čte běžným způsobem níže uvedený text.
Podzim na starém bělidle b V okolí starého bělidla začínalo být smutno a ticho. Les byl světlejší, ětlejší, strá stráň žloutla, vítr a vlny odnášely chomáče če starého listí bůh b ví kam. Ozdoba sadu uschována byla v komoře. komo V zahrádce kvetla astra, měsíčky m a umrlčí čí kvítky. Na louce za splavem růžověly r se naháčky a v noci prováděla provádě tam světélka svoje rejdy. Když babička šla s dětmi na procházku, nezapomněli chlapci na papírové draky, které pak na vrchu pouštěli. 2
b) Zapojení elektrod: bipolárně v horizontální rovině 3. Změna napětí při úhlovém vychýlení oka: a) Průběh snímání: subjekt sleduje křížek, který se každou sekundu objevuje na obrazovce. pohyb křížku je zleva doprava a zpět, přičemž vzdálenost mezi body se stále zvětšuje pro výpočet úhlu je zapotřebí znát maximální rozteč bodů a vzdálenost očí od projekce
+
+
Výchozí pozice sledovaného objektu
Konečná pozice sledovaného objektu
b) Zapojení elektrod: bipolárně v horizontální rovině 4. Hodnocení prostorového pohybu očí: a) Průběh snímání: subjekt sleduje bod, který se každou sekundu objevuje na obrazovce. signály pořídíme ve dvou fázích (I.) učící a (II.) rozpoznávací. v učící fázi se postupně na projekci po jedné sekundě zobrazují referenční body v sekvenci [1, 2, 3, 4, 5, 1] v rozpoznávací fázi jsou na projekci postupně promítány body v sekvenci [1, 3, 2, 4, 2, 5, 1, 3, 5, 4, 1]
Rozmístění bodů pro generování referenčního signálu v učící fázi.
a) Zapojení elektrod: pro snímání jsou použity horizontální i bipolární svody + elektroda horizontálního svodu u pravého oka + elektroda vertikálního svodu nad pravým okem – elektroda horizontálního svodu u levého oka – elektroda horizontálního svodu pod pravým okem zemnící elektrody na čele
3
Struktura dat: eog_kyvadlo_01.txt, eog_cteni_01.txt, fs=200 Hz EOG [mV] eog_uhly_01.txt fs=10 kHz EOG [mV] eog_kalibrace_01.txt, eog_rozpoznavani_01.txt fs=10 kHz 1. sloupec ... EOG horizontální svod [mV] 2. sloupec ... EOG vertikální svod [mV]
Nápověda k některým úkolům: 2. Vykreslení průběhu EOG při čtení do textu (Obrázek 1): uložte si text jako obrázek (print-screen). pomocí funkce imread načtěte obrázek, a imshow jej vykreslete. z EOG signálu vyřízněte úsek, který odpovídá čtení textu. Normujte signál mezi 0 a 1. normovaný signál vynásobte horizontálním rozlišením textu. vytvořte si pseudo-časovou osu signálu, která bude na intervalu 1 až vertikální rozlišení obrázku za pomoci hold on překreslete obrázek signálem. Obrázek 1: Pohyb oka při čtení textu
3. Změna napětí při úhlovém vychýlení oka (Obrázek 2 a 3) Vzdalenost=linspace(0,d/2,length(s_s)).*(-1).^((1:length(s_s))+1); % s_s … detekované napětí špička-špička (rozdíl mezi výchylkami); d … maximální rozteč bodů
vzdálenost od projekce přepočítejte na úhly (pokud jste neměřili vlastni signál, tak vzdálenost od projekce uvažujte zhruba 1,5 metru).
4
Obrázek 2: Průběh EOG při změně úhlového vychýlení, detekce „špiček“
x 10
detekce výchylek
EOG [mV]
1 0.5 0 -0.5 -1
0
1
2
3 n [-]
4
5
6 5
x 10
Obrázek 3: Generované vychýlení, přepočet na úhlové vychýlení, porovnání celkového úhlového vychýlení a napětí špička-špička <- L | P ->
<- L | P ->
celkový úhel X EOG špička-špička 60
50
50 50 40
30
30
20
20
10
10
-1
celkový úhel
realizace
40
-0.5
0 dn [m]
40 30 20 10
0.5
-20
0 úhel [°]
20
10
20 30 40 realizace
50
4. Detekce změna polohy oka spočítejte euklidovskou vzdálenost dvou vždy po sobě jdoucích vzorků, tj. diferenci polohy přefiltrujte klouzavými průběhy, detekujte velké změny Obrázek 4: Detekce změny polohy oka -4
změna polohy za jednotku času
x 10
okamžitá změna polohy
12 10 8 6 4 2 0
1
2
3
4
5
6 n [-]
5
7
8
9
10 4
x 10
4. Rozpoznávání číselné sekvence dle EOG při prostorovém pohybu očí (bonusová/dobrovolná úloha; viz. Obrázek 5): a) Dle euklidovské vzdálenosti: v trénovacích signálech nalezněte výrazné změny polohy oka pro vzniklé úseky s malým pohybem spočtěte průměrné hodnoty horizontálního a vertikálního signálu, tj. pro každý úsek (číslo) je získán bod o dvou souřadnicích (centroid) u rozpoznávaného signálu je počítána vzdálenost od všech centroidů, nejmenší vzdálenost určuje číslo, na které se v dané chvíli osoba dívá Dle euklidovské vzdálenosti shlukové analýzy Nejprve pochopte algoritmus k-means! (viz níže) pokud budeme znát souřadnice promítaných bodů mapované ve 2-D prostoru reprezentované napětím EOG, můžeme spočítat euklidovskou vzdálenosti okamžitého signálu od všech bodů. Nejmenší vzdálenost signálu k bodu bude i odpovídat tomu, kam se oko dívá. K namapování promítaných bodů do EOG slouží trénovací sekvence. Oko postupně sleduje 5 bodů, na kterých se cca po 1 sekundu fixuje. Tyto fixace vytvoří shluky v okolí mapovaných bodů. K určení výchozí souřadnice mapovaných bodů je výhodné využít shlukových analýz, které najdou optimální místo centroidu („těžiště shluku“). Využijte např. algoritmus kmeans. V trénovacích datech nalezněte centroidy 5 shluků (5 bodů). V případě, že známe předběžně místa shluků, použijte startovací centroidy – dle předpokládaného rozmístění bodů, 4 body v rozích a jeden uprostřed mapovaného prostoru. 0.3
0.3
0.2
0.2
0.1
0.1 EOG-y
EOG-y
b)
0
0
-0.1
-0.1
-0.2
-0.2 -0.4
-0.2
0 EOG-x
0.2
0.4
1 2 3 4 5
-0.4
-0.2
0 EOG-x
0.2
0.4
Po výpočtu centroidů ověřte, zda správně reprezentují pořadová čísla bodů; dle potřeby opravte. Při rozpoznávání již stačí spočítat vzdálenost okamžitého EOG signálu od těchto centroidů a určit, ke kterému bodu je nejblíže a přiřadit ho tak do třídy. Vzhledem k časovému odstupu trénovací a rozpoznávací sekvence může dojít k stejnosměrnému posunu signálu (vliv pohybu elektrod, filtrů zesilovačů). Proto doporučuji podrobit rozpoznávaný signál shlukové analýze ještě jednou s použitím startovacích centroidů z výsledku trénování.
6
přetrénování 0.4
0.3
0.3
0.2
0.2 EOG-y
EOG-y
trénovací centroidy 0.4
0.1
0.1
0
0
-0.1
-0.1
-0.6
-0.4
-0.2 0 EOG-x
0.2
-0.6
0.4
-0.4
-0.2 0 EOG-x
0.2
0.4
při počítání euklidovské vzdálenosti signálu od centroidů se pokuste vyvarovat použití forcyklů, např.: centroid=repmat(centroid,size(eog,1),1); % vzdálenost EOG od jednoho centroidu vzdalenost=sqrt(sum((eog-centroid).^2,2));
napište si vlastní algoritmus k-means nebo využijte implementovanou Matlab funkci
Algoritmus k-means: metoda hledající k shluků podle průměrné pozice – těžiště (centroidu) popis algoritmu: a. v datovém prostoru jsou zvoleny startovací centroidy (náhodně nebo předem definovaně) b. dle vzdálenosti od centroidu jsou data zařazeny do tříd c. spočítají se těžiště každé třídy (nové centroidy) d. pokud je dostatečně velká změna polohy nového centroidu (gradient), algoritmus pokračuje od bodu 2. e. Při malém nebo nulovém gradientu algoritmus končí. Př.: hledání 2 shluků ve 2-D prostoru 4
4
2
2
2
0
N
N
N
4
0
0
-2
-2
1) -2
0
2
4
6
-2
2) -2
0
2
M
4
2
2
2
0
-2 2
4
6
2
4
6
0
-2
2)‘
4
N
N
N
4
0
2 M
4
0
0
M
4
-2
3) -2
6
-2
3)‘ -2
0
2
M
M
7
4
6
2)‘‘ -2
0 M
6
Obrázek 5: Průběh EOG při rozpoznávací sekvenci, zjištěné centroidy. Porovnání generované sekvence čísel a rozpoznání z EOG. přetrénování 6 0.4
vzor rozpoznání 5
0.3 4 promítané číslo
EOG-y
0.2
0.1
3
2 0 1 -0.1
-0.6
-0.4
-0.2
0
0.2
0
0.4
EOG-x
2
4
6 n [-]
Užitečné funkce: repmat, reshape, sign, kmeans
8
8
10 4
x 10