$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Przegląd kluczowych elementów potrzebnych do przeprowadzenia eksperymentu okulomotorycznego jest pokazany na rysunku 1. Każdy blok na schemacie blokowym zostanie szczegółowo omówiony poniżej.
1. USTAWIENIA OPRZYRZĄDOWANIA:
- W tym systemie można użyć dowolnego rodzaju monitora ruchu gałek ocznych. Zademonstrujemy śledzenie rąbka w podczerwieni oraz system monitoringu wizyjnego.
- Do śledzenia ruchów tandemowych, takich jak akkada lub płynny pościg, do wyświetlania wizualnego można użyć jednego komputera. Do badania przeciwstawnych ruchów gałek ocznych, takich jak wergencja lub interakcja wergencji z ruchami w wersji tandemowej (tj. wergentna z bodźcami sakkadowymi), potrzebny jest haploskop z dwoma monitorami komputerowymi do wyświetlania wizualnego, patrz rysunek 2.
2. KALIBRACJA:
- Kalibracja jest potrzebna do przekształcenia jednego zestawu wskaźników na inny. Ruchy gałek ocznych są zwykle wskazywane w stopniach (°) obrotu pokazanych na rysunku 3. Jednak monitory komputerowe wykorzystują wartości pikseli w porównaniu z badaczami wzroku, którzy często oznaczają bodźce wzrokowe w stopniach. W związku z tym potrzebna jest konwersja, aby przekonwertować wartości pikseli na stopnie. Za pomocą trygonometrii można obliczyć, gdzie umieścić cele fizyczne, aby skalibrować wyświetlacze wizualne. Na przykład, jeśli bodziec na ekranie komputera wyrównuje się z fizycznym celem 2° (patrz rysunek 2), to wartość piksela odpowiada bodźcowi 2°.
- Aby skalibrować system, operator musi otworzyć Pixel2Deg.vei w katalogu VisualEyes. Najpierw zdefiniuj monitor do kalibracji za pomocą pola trybu rozciągania. Wprowadź numer 1 dla monitora lewego oka i numer 2 dla monitora prawego oka. Następnie uruchom program i przesuwaj bodziec zielonej linii, aż zielona linia zostanie nałożona na fizyczny cel. Wprowadź znaną pozycję fizycznego celu w stopniach i naciśnij przycisk zapisz. Następnie kliknij zieloną linię. Stopień i wartość pikseli zostaną pokazane na wyświetlaczu w lewym dolnym rogu. Operator powinien zebrać co najmniej trzy punkty kalibracji.
- Po zapisaniu wszystkich punktów kalibracji otwórz plik wyjściowy D2P w katalogu VisualEyes, aby uzyskać punkty kalibracji. Wykreśl punkty kalibracji, aby uzyskać równanie regresji liniowej. Użyj równania, aby obliczyć początkową i końcową pozycję bodźca wizualnego, który operator chce zaprogramować w wartościach pikseli. Przykład krzywej kalibracyjnej lewego i prawego oka uzyskanej przy użyciu pięciu punktów kalibracji dla bodźca wergencji pokazano na rysunku 4.
- Powtórz kroki 2.2 i 2.3 dla drugiego monitora, jeśli bodziec wymaga dodatkowego monitora.
3. OPROGRAMOWANIE VISUALEYES:
- Zdefiniuj bodziec: Operator musi zdefiniować początkową i końcową pozycję bodźca lewego i prawego oka przed eksperymentem. Najpierw otwórz nowy plik tekstowy i w pierwszym wierszu zdefiniuj początkowe wartości czasu i położenia bodźca. Należy zdefiniować cztery parametry: 1) czas (sekundy), 2) pozycję poziomą (piksel), 3) pozycję pionową (piksel) i 4) obrót (°) oddzielony zakładką. Podobnie zdefiniuj cztery parametry końcowego czasu i położenia bodźca. Zapisz bodziec w katalogu VisualEyes jako plik stimulus_name.vei (VEI=VisualEyes Input) i powtórz ten krok dla drugiego bodźca oka.
- Ruch bodźca można uogólnić na dwa rodzaje ruchu: nagły krok lub ciągłą rampę. Krok pozwala bodźcowi gwałtownie przesunąć się lub przeskoczyć z pozycji wyjściowej do pozycji końcowej. Operator powinien zwrócić uwagę, że zmiana czasu wynosi 0,001 sekundy dla bodźca krokowego. W następnym wierszu określ, jak długo bodziec ma znajdować się w pozycji początkowej, a także w pozycji końcowej. Bodźce są definiowane za pomocą czterech pól w jednym wierszu. Przykład kroku sakkadowego, gładkiej rampy pościgowej, kroku wergentnego i rampy wergentnej przedstawiono w tabeli 1.
- W przypadku bodźców możesz mieć pojedynczy bodziec, taki jak krok, lub sekwencję zadań wizualnych, takich jak wiele kroków.
- Zapisz bodźce w bibliotece bodźców: Istnieje kilka ustawień domyślnych w plikach dc1.txt (bodziec lewego oka / monitor) i dc2.txt (bodziec prawego oka / monitor) w katalogu VisualEyes. Pierwsza linia to procent ekranu w kierunku poziomym. Druga linia to procent ekranu w kierunku pionowym. Trzeci to obraz tła, a czwarty to obraz pierwszego planu lub docelowy. Piąty wiersz wskazuje, że komputer ma pracować w trybie niezależnym. 6oznacza, który monitor (1 to prawe oko, a 2 to lewe oko). Siódmalinia to proporcje monitorów. Reszta linii to różne rodzaje bodźców, które operator może wykorzystać w ramach sesji eksperymentalnej.
- Otwórz dc1.txt i dc2.txt z katalogu VisualEyes. Te dwa pliki zawierają bodźce biblioteczne odpowiednio dla lewego i prawego oka. W ostatnim wierszu wpisz nazwę pliku bodźca, który został wygenerowany od kroku 3.1. Numer profilu odnosi się dom-tego wiersza odpowiadającego nazwie pliku bodźca. Na przykład na rysunku 1 numer profilu bodźca wynosi 8.
- Można powtórzyć kroki od 3.1 do 3.2, aby stworzyć tyle bodźców, ile jest potrzebnych do eksperymentu.
- Napisz skrypt dla protokołu eksperymentalnego: Otwórz plik tekstowy, aby wpisać polecenia protokołu eksperymentalnego. Plik ten nazywany jest plikiem skryptu, co oznacza, że system VisualEyes odczyta i wykona każde polecenie ze skryptu znajdującego się w tym pliku. Możliwość utworzenia pliku skryptu dla protokołu eksperymentalnego pozwala użytkownikowi na przeprowadzanie powtarzających się sesji eksperymentalnych przy użyciu tego samego protokołu. Ponadto można napisać wiele skryptów, aby zmienić typ i sekwencję poleceń eksperymentalnych. Plik ten można zapisać w katalogu VisualEyes jako plik script_name.ves. (VES = Skrypt VisualEyes)
- Funkcje VisualEyes mają argumenty wejściowe i wyjściowe. Tabela 2 przedstawia wszystkie funkcje oprogramowania VisualEyes.
- ExpTrial: Ta funkcja służy do wywoływania bodźca, który został zapisany w bibliotece bodźców z kroku 3.2. Długość danych to czas, w którym funkcja będzie mogła wykonać bodziec. Plik tempfile.lwf umożliwia oprogramowaniu VisualEyes tymczasowe przechowywanie przychodzących danych i wyprowadzanie ich do bufora wyjściowego. Jeśli plik tempfile.lwf nie jest zdefiniowany, podczas wykonywania tej funkcji nie będzie przechowywał żadnych danych przychodzących do digitalizacji.
- LogFile: Ta funkcja wyprowadza ciągi lub bufor wejściowy zdefiniowany z ExpTrial do pliku out.txt w katalogu VisualEyes. Po zakończeniu eksperymentu operator musi zmienić nazwę pliku out.txt na inną nazwę. W przeciwnym razie dane zostaną nadpisane podczas następnego eksperymentu.
- TriggerWait: Ta funkcja czeka, aż podmiot naciśnie przycisk wyzwalający, aby rozpocząć ExpTrial i zdigitalizować dane. Jest to wejście kanałowe na cyfrowej karcie akwizycji, które czeka na zmianę sygnału z cyfrowego wysokiego (5 V) na niski (0 V).
- RandomDelay: Ta funkcja generuje losowe opóźnienie, aby zapobiec przewidywaniu lub przewidywaniu następnego bodźca.
- WaveMSD: Ta funkcja oblicza średnią i odchylenie standardowe danych.
4. UMIEŚĆ MONITOR RUCHU GAŁEK OCZNYCH I URUCHOM EKSPERYMENT:
- Do zbierania i rejestrowania ruchów gałek ocznych można używać różnych monitorów ruchu gałek ocznych, takich jak system obrazowania wideo odbicia rogówki, system śledzenia limbusa lub cewka poszukiwawcza twardówki.
- Zanim uczestnik będzie mógł wziąć udział, eksperyment musi zostać wyjaśniony, a uczestnik musi przeczytać i podpisać formularz świadomej zgody zatwierdzony przez Instytucjonalną Komisję Rewizyjną.
- Operator musi wyregulować monitor ruchu gałek ocznych na obiekcie. Po pierwsze, podmiot jest proszony o skupienie się na celu. Operator dostosowuje monitor ruchu gałek ocznych, aby uchwycić anatomiczne atrybuty oka, takie jak rąbek (granica między tęczówką a twardówką) lub odbicie źrenicy i rogówki, w zależności od zastosowanego monitora ruchu gałek ocznych.
- Po prawidłowym ustawieniu monitora ruchu gałek ocznych na obiekcie, operator powinien sprawdzić, czy monitor ruchu gałek ocznych rejestruje ruchy gałek ocznych, prosząc fotografowanego o wykonanie ruchów wergentnych lub sakkadowych.
- Otwórz program ReadScript.vei w katalogu VisualEyes. W prawym górnym rogu wpisz nazwę pliku skryptu protokołu eksperymentalnego utworzonego na podstawie kroku 3.4. Następnie uruchom program ReadScript.vei, naciskając czerwoną strzałkę w lewym górnym rogu.
- Daj osobie badanej przycisk spustowy i wyjaśnij, że gdy osoba naciśnie przycisk, rozpocznie się zbieranie danych. Na ekranie automatycznie pojawi się kolejny plik Acquire.vei, który wykreśli przychodzące dane. Dane są próbkowane z częstotliwością 500 Hz.
- Po zakończeniu eksperymentu plik ReadScript.vei zostanie automatycznie zatrzymany. W tym momencie przejdź do katalogu VisualEyes i znajdź plik Out1.txt. Zmień nazwę pliku, w przeciwnym razie następnym razem, gdy operator uruchomi eksperyment, plik danych zostanie zastąpiony.
5. ANALIZA DANYCH OFF-LINE:
- Operator może analizować dane za pomocą różnych pakietów oprogramowania (tj. MatLab lub Excel). Opóźnienie, prędkość szczytowa lub amplituda mogą być interesujące w zależności od badania.
- Przykład kodu analizy Matlab znajduje się w katalogu VisualEyes do wykreślania sakkad, stopni wergencji i ramp wergencji. Przykłady śladów położenia sakkady zespołowej, kroku wergencji i rampy wergencji wraz z odpowiadającymi im reakcjami prędkości pokazano na rysunku 5.
6. Reprezentatywne wyniki:
Przykłady zespołu ruchów gałek ocznych zarejestrowanych za pomocą systemu VisualEyes pokazano na rysunku 5. Typowe ruchy sakkadowe 10° pokazano na wykresie 4A. Antysakady są reakcjami sakkadowymi, gdy badanemu mówi się, aby wykonał sakkadę w kierunku przeciwnym do bodźca wzrokowego i są pokazane na wykresie 4B. Jest to zadanie bardziej wymagające poznawczo; stąd można zaobserwować, że opóźnienie lub czas rozpoczęcia ruchu jest dłuższy w przypadku antysakad (wykres 4B) w porównaniu z sakkadami w kierunku bodźca wzrokowego, zwanymi również prosakadami (wykres 4A). Odpowiedzi wergencji na kroki 4° są pokazane na wykresie 4C, a odpowiedzi wergencji na bodźce ramp 5 °/s są pokazane na wykresie 4D. Każdy ślad to indywidualny ruch gałek ocznych, w którym górny rząd jest oznaczony w stopniach w funkcji czasu. Ruchy gałek ocznych są kalibrowane w jednostkach stopni, kątach metrowych lub dioptriach pryzmatów. W naszych badaniach wykorzystujemy stopień rotacji. Dolny rząd to prędkość wykreślona w °/ s w funkcji czasu i jest prędkością ruchu. Skala dla poszczególnych danych zespołu różni się w zależności od ruchu.

Rysunek 1. Schemat blokowy kluczowych elementów do przeprowadzenia eksperymentu okulomotorycznego. Przedstawiono przykłady kroków potrzebnych do wygenerowania bodźca za pomocą oprogramowania VisualEyes i przeprowadzenia eksperymentu do analizy danych w trybie offline. Część A przedstawia okno Pixel2Deg.vei. W części B przedstawiono cztery parametry potrzebne do zdefiniowania bodźca. Część C to biblioteka bodźców, w której czarne wiersze tekstu w bibliotece bodźców są przykładowymi plikami bodźców, a czerwony tekst definiuje każdą linię. Część D jest przykładem eksperymentalnego protokołu skryptu.

Rysunek 2. Eksperymentalny zestaw haploskopu systemu VisualEyes. Stosowane są trzy monitory CRT: 1) Panel sterowania jest potrzebny do przeglądania bodźców i odpowiedzi, 2) monitor CRT dla bodźców wzrokowych prawego oka (RE) oraz 3) monitor CRT dla bodźców wzrokowych lewego oka (LE). Na wpół posrebrzane lustro umieszczone jest w odległości 30 cm od dwóch monitorów CRT z bodźcami wizualnymi. Ma to na celu zapewnienie, że bodźce na monitorach CRT są rzutowane na częściowo posrebrzane lustro (50% transmisyjne i 50% odbijające światło). Lustro umożliwia badanemu oglądanie bodźców z ekranów komputerowych nałożonych na cele znajdujące się w zmierzonych odległościach od obiektu, co jest potrzebne do kalibracji. W przypadku haploskopu zapotrzebowanie na akomodację dla obu oczu jest utrzymywane na stałym poziomie. Odległość między oczami osoby badanej a lustrem wynosi 10 cm. System można dostosować do różnych rozstawów źrenic (IPD), ale w przypadku tej demonstracji przyjmiemy, że IPD wynosi 6 cm.

Rysunek 3. Pokazano obliczenia ruchu sakkadowego (po lewej) i wergentnego (po prawej) od celów A do B. IPD to rozstaw między źrenicami.

Rysunek 4. Krzywa kalibracyjna bodźca lewego oka (wykres górny) i prawego oka (wykres dolny). Podobną procedurę przeprowadzono w przypadku bodźców sakkadowych lub gładkich pościgowych.

Rysunek 5. Przykłady sakkad (A), antysakkad (B), stopni wergencji (C) i ramp wergencji (D) przy użyciu systemu VisualEyes i analizowanych za pomocą niestandardowego programu MATLAB. Ślady pozycji zespołu (° w funkcji czasu w sekundach) są wykreślane w górnym wierszu, gdzie każda kolorowa linia reprezentuje inny ruch gałki. Odpowiednie ślady prędkości (°/s w funkcji czasu w sekundach).
Typ bodźca
Stimulus_Name_Left Eye.vei
Stimulus_Name_Right_Eye.vei
Czas (s)
Pozycja X (piksel)
Pozycja Y (piksel)
Obrót (
°)
Czas (s)
Pozycja X (piksel)
Pozycja Y (piksel)
Obrót (
°)
Płynna rampa pościgowa
0
100 szt.
0
0
0
100 szt.
0
0
10
200 szt.
0
0
10
200 szt.
0
0
Krok sakkadowy
0
100 szt.
0
0
0
100 szt.
0
0
0,5
100 szt.
0
0
0,5
100 szt.
0
0
0,501
200 szt.
0
0
0,501
200 szt.
0
0
3
200 szt.
0
0
3
200 szt.
0
0
Rampa Vergence
0
452 szt.
0
0
0
973 TGLI
0
0
10
Okręg wyborczy 370 TGL
0
0
10
1044 szt.
0
0
Krok wergencji
0
452 szt.
0
0
0
973 TGLI
0
0
0,5
452 szt.
0
0
0,5
973 TGLI
0
0
0,501
Z numerem 416
0
0
0,501
Numer katalogowy 1002 TGL
0
0
3
Z numerem 416
0
0
3
Numer katalogowy 1002 TGL
0
0
Tabela 1. Przykład gładkiej rampy pościgowej, kroku sakkadowego, rampy wergencji i bodźców kroku wergencji
funkcja
składnia
ExpTrial (Próba Exp)
Bufor wyjściowy # = ExpTrial ("Długość danych: Profil LE: Profil RE");
Przykład: 2=ExpTrial("13:3:3");
Bufor wyjściowy # = Exo Trial ("Długość danych: LE Profile: RE Profile: tempfile. lwf") ;
Przykład: 2=ExpTrial("13:3:3:templfile.lwf");
Plik dziennika
Bufor wyjściowy # = LogFile("TEXT");
Przykład: 0=LogFile("Eksperyment 1");
0=LogFile( Bufor wejściowy #);
Przykład: 0=LogFile(2);
TriggerWait (Wyzwalacz)
0=TriggerWait(Numer bufora);
Przykład: 0=TriggerWait(0);
Losowe opóźnienie
0=RandomDelay("t2:t1");
Przykład: 0=RandomDelay("2000:500");
Czujnik WaveMSD
Bufor wyjściowy #= WaveMSD(Bufor wejściowy #);
Tabela 2. Funkcje używane do pisania protokołu eksperymentalnego w programie VisualEyes