Die Dokumentation zum Projekt | |
Extrapolation von Bewegung und Scheinbewegung in Abhängigkeit von Kontextreizen |
---|
Visuelle Wahrnehmung bewegter, auf einer Ebene abgebildeter Szenen
Mit unserem Experiment wird die Hypothese getestet, ob verschiedene Kontextreize Einfluss auf die Genauigkeit von Bewegungsextrapolation besitzen. Insbesondere interessiert die Beurteilung der Geschwindigkeit und der Tiefenausdehnung von Objekten in unterschiedlichen Umgebungen und unter variierenden Bewegungsformen.
Es ist zu erwarten, daß die geschätzte Extrapolationszeit mit der Stärke des
Tiefeneindrucks wächst. Perspektivische Texturen werden Tiefe suggerieren,
Rahmen um die Szenen werden diese Täuschung vermutlich abschwächen (Eby,
D. W., & Braunstein, M. L., 1995).
Die Geschwindigkeit sprunghaft
bewegter Objekte (sampled motion) sollte bei niedrigen
Geschwindigkeiten überschätzt werden und somit zu kürzeren Antwortzeiten
führen (Castet, E., 1995). Es gibt allerdings auch Anhaltspunkte für einen
gegenteiligen Effekt. Nijhawan (1994) fand, daß gesampelte Bewegung langsamer
verarbeitet wird als kontinuierliche Bewegung.
Zur Darstellung und
Animation der Szenen werden die Vorteile und Möglichkeiten des
Graphik-Computers sowie des WWW benutzt. Die präzise Einhaltung des geplanten
zeitlichen Ablaufs und ein rascher Szenenwechsel lassen sich so sehr einfach
realisieren.1) Interaktion der Versuchsperson (VP) mit Hilfe einer
Maus oder Tastatur ermöglicht sofortige, automatische Protokollierung der
Versuchsergebnisse.
Die vollständige Automatisierung des Experimentes
erfordert die Integration versuchsbegleitender Erläuterungen textueller Form
und des statistisch variierten Versuchsablaufs in das Programm.
1) Multitasking behindert die Einhaltung zeitkritischer Variablen
Zielsetzung und offene Fragen
Am Anfang unserer Untersuchung steht die Frage, ob Experimente dieser Art brauchbare Ergebnisse liefern. Dazu sollen die Resultate mit Ergebnissen eines herkömmlichen Experiments gleichen Inhalts verglichen werden.
Lassen sich zeitkritische Variablen umsetzen, welche Bedeutung muß zum Beispiel Störungen durch Hintergrundprozesse beigemessen werden?
Welche Auswirkungen hat eine von VP zu VP wechselnde Versuchsumgebung (Beleuchtung, Rechnergeschwindigkeit, Bildschirmeigenschaften, Geräusche,...)?
Sind die Resultate repräsentativ, wenn sie nur auf Beobachtungen von WWW-
Benutzern basieren? Inwieweit ist mehrfache Teilnahme derselben Person
auszuschliessen?
Wieviele Personen sind bereit ernsthaft an dem
Experimenten teilzunehmen?
Das Internet ist als weltumspannendes, dezentrales Datennetz, das mittlerweile
mehrere Millionen unterschiedlichster Rechner [DE-NIC] miteinander
verbindet, das Medium für unsere Realisierung eines vollautomatisierten,
interaktiven Psychologieexperiments.[2]
Charakteristisch
für das Internet ist, daß unabhängig von der physikalischen Verbindung der
einzelnen Rechner untereinander auf der Basis von standardisierten
Kommunikationsvorgängen Datenaustausch unterschiedlicher Art ermöglicht wird.
Bestimmte Regeln und Steuerkommandos definieren hierzu jeweils ein Protokoll.
Verschiedene Dienstprogramme, wie beispielsweise telnet oder
ftp, stehen als Implementierung der gleichnamigen Protokolle für die
jeweilige Kommunikationsart zur Verfügung.[3]
Das wichtigste Protokoll für unsere Zwecke ist das Hypertext Transfer
Protocol (http), welches die Grundlage des World Wide Web (WWW)
bildet.
Das World Wide Web ist als Integration (fast) aller Kommunikationsmöglichkeiten in sogenannten Browsern der bisher komfortabelste und leistungsfähigste Dienst im Internet. Im WWW werden Adressen nicht mehr als Rechnernummern angegeben, sondern in Form einer URL (Uniform Ressource Locator). Die URL gibt außer dem Namen des Rechners noch die Position im Dateisystem und das zu verwendende Protokoll an. So kann mittels eines Browsers direkt auf eine bestimmte Datei des Hosts zugegriffen werden und diese mit dem entsprechenden im Browser implementierten oder extern aufzurufenden Dienstprogramm umgegangen werden. Darstellbare Hypertext-Dokumente, erstellt in HTML [4], enthalten markierte, anklickbare Verbindungspunkte zu anderen Dokumenten. Der wesentliche Punkt in unserem Fall ist neben dem Hypertext-Mechanismus die Implementierung eines Interpreters für eine Programmiersprache (Java) im Browser.
Das HTML-Format beinhaltet Textformatierung, Einbindung von Graphiken, Verknüpfungen zu anderen Dateien, Menus und Texteingabefeldern und Einbindung von Java-Applikationen. Das neue HTML3-Format unterstützt zusätzlich die Darstellung von Formeln und Diagrammen.
Für dieses Projekt ist die Einbindung von Java-Applikationen (Applets) in HTML-Dateien unerlässlich. Leider geben momentan erst wenige der WWW-Browser die Möglichkeit dazu.2)
Das vorliegende Experiment konnte von uns
nur für einen bestimmten Browser optimiert werden, unsere Wahl fiel auf
Netscape in den Versionen 3.0 und 3.01. Diese Entscheidung wurde
aufgrund des hohen Verbreitungsgrades von Netscape und der frühzeitigen
Implementierung eines JAVA-Interpreters getroffen. [5]
Für andere Browser, die ebenfalls einen Java-Interpreter beinhalten, wie
zum Beispiel HotJava von Sun oder InternetExplorer von Microsoft
können wir zum jetzigen Zeitpunkt keine korrekte Datenerhebung
bzw. Versuchsdurchführung garantieren.
Aus diesem Grund wird der für das
Experiment benutzte Browser protokolliert. Sollte jemand trotz des Hinweises
auf der Versuchs-Einstiegsseite einen anderen Browser benutzen, wird der
jeweilige Einzelversuch in der Gesamtauswertung nicht berücksichtigt.
Java ist eine objektorientierte, netzwerkfähige Programmiersprache von Sun
Microsystems.
Das Java Developers Kit (JDK) [6] ist im Internet unter Bedingungen
ähnlich der GNU-Copyright-License frei erhältlich.
Bei Java handelt es sich um eine interpretierte, plattformunabhängige Sprache,
die Konzepte aus Sprachen wie C++, Smalltalk und Eiffel vereinigt.[7] Die
Syntax ähnelt der von C++.[8]
Besonderheit im Hinblick auf mögliche Anwendungen ist die spezielle
Ausrichtung auf den Einsatz im Wold Wide Web.
Java-Programme sind binärkompatibel zwischen verschiedenen Rechnerplattformen,
da der Java-Compiler abstrakte Maschinenbefehle für eine virtuelle Maschine
liefert. Diese virtuelle Maschine wird (zum Beispiel durch einen Browser wie
Netscape) auf der konkreten Maschine emuliert. Somit werden vom Java-Programm
maschinenspezifische Eigenschaften nicht berücksichtigt.
Aus naheliegenden Sicherheitsgründen dürfen Java-Programme
keine Systemaufrufe durchführen oder direkt auf Ports zugreifen. Zeiger und
Adresszugriffe werden aus Gründen der Datensicherheit2) nicht
unterstützt. Der Code wird beim Compilieren im Hinblick auf Effizienz bei der
Datenübertragung angelegt.
Java bietet Klassen und deren Vererbung mit strenger Datenkapselung [9], starke Typisierung, einen Garbage Collection Mechanism, der unbenutzten Speicherraum schon zur Laufzeit wieder freigibt, weiterhin multithreading, d.h. Modellierung unabhängig voneinander laufender Programmteile und eine umfangreiche Klassenbibliothek (z.B. [Fla96]).
Im Gegensatz zu einem herkömmlichen
Java-Programm, welches mittels eines Java-Interpreters von der Befehlszeile
eines Betriebssystems aus ausgeführt wird, handelt es sich bei unserer
Realisierung eines psychologisches Experiments um ein Java-Applet. Der
charakteristische Unterschied zwischen Java-Anwendung und Java-Applet ist zum
einen die Einbindung einer Referenz auf letztgenanntes in eine HTML-Seite und
zum anderen die beim Laden dieser Seite eingeleitete Ausführung des Applets
durch den Java-fähigen WWW-Browser.
Java-Applets unterliegen allerdings
einigen Einschränkungen hinsichtlich des Ausführens eines unbekannten
Programms auf dem eigenen lokalen System. So ist zum Beispiel (eventuell mit
Ausnahme spezieller Verzeichnisse) der Zugriff auf das lokale Dateisystem
tabu. Außerdem können vom Applet keine Programme auf dem Client-System
gestartet werden. Anmerkend sei hinzugefügt, daß durch die eingebauten
Sicherheitsvorkehrungen bösartige Applets nicht unmöglich gemacht sein
müssen.
Ein Applet wird in Java erstellt, indem eine Subklasse der Klasse Applet (aus dem Paket java.applet) definiert wird. Diese neue Klasse, die mit dem Modifier public deklariert sein muß, ist die Hauptklasse für die Ausführung des Applets, sie kann allerdings noch beliebig viele Subklassen haben. Jede Klasse hat genau eine Superklasse, erbt aber die Methoden und Variablen von allen ihren Superklassen, es handelt sich also um einen Klassenbaum mit Einzelvererbung. Ganz oben in der Klassenhierarchie steht die Klasse Objekt, von der alle anderen Klassen erben.
Ausgehend von den gewünschten Eigenschaften und Aktivitäten, die
das Applet haben soll, müssen bestimmte Standardmethoden definiert
bzw. genauer gesagt, bestimmte von der Klasse Applet stammende
Methoden ohne Definition überschrieben werden. Wenn, wie in unserem
Fall, ein separater Thread im Applet ausgeführt werden soll, muß
noch eine Schnittstelle namens Runnable implementiert werden.
Allgemein formuliert spezifizieren Schnittstellen Eigenschaften, die dann
Klassen implementieren sollen (Runnable spezifizert ausschließlich die
Methode run()).
Die wesentlichen Methoden für eine
Applet-Ausführung sind im Folgenden mit kurzer Erläuterung aufgelistet.
Bei einem Java-Applet, das in einer HTML-Datei im WWW referenziert ist, wird der ausführbare Programmcode in den Arbeitsspeicher des aufrufenden Rechners geladen und dort vom Java-Interpreter des WWW-Browsers ausgeführt. Dadurch wird die Gestaltung interaktiver Programme in HTML-Dokumenten ermöglicht. Die Bildschirmausgaben bzw. die Interaktionen zwischen Anwender und Programm finden dann im Anzeigefensters des Browsers statt. Das Einbinden eines Java-Applets in eine Web-Page erfolgt nach folgender (Netscape-)Syntax (aus Wettbewerbsgründen hält sich u.a. Netscape leider nicht an den Standard):
<applet [ codebase = applet-url ] code = applet-dateiname width = pixel-breite height = pixel-höhe > <param name = parameter value = wert> <\applet>
Mit dem Tag <applet ... > wird ein Java-Applet referenziert.
Die Datei mit dem vorcompilierten Java-Programm wird mit der Option
code angegeben.
Mit der Option codebase wird der Pfad für
alle Programmdateien und relevanten Daten festgelegt.
Zwischen dem
einleitenden Tag <applet...> und dem abschließenden Tag
</applet> können Parameter notiert werden, die dem Programm beim
Aufruf übergeben werden.
Jeder Parameter wird durch <param name =
parameter value = wert> angegeben, wobei der Name des Parameters und
dessen Wert definiert und beim Appletaufruf an das Programm übergeben werden.
Die Parameter werden beim Laden an das Applet weitergereicht und mittels
speziellen Java-Codes analysiert und verarbeitet.
Die beiden Optionen
width und height bestimmen die Größe des Applets in der
HTML-Seite.
Somit steht aus technologischer Sicht einer Entwicklung von psychologischen Experimenten im Internet nichts im Wege. Es werden den Versuchspersonen keine Kenntnisse auf dem Gebiet der Informatik abverlangt und die rege Frequentierung des WWW läßt auf eine ausreichende Anzahl Versuchspersonen hoffen.
2) Java bzw. die Java interpretierende Browser sind schon mehrfach durch erhebliche Sicherheitslücken aufgefallen.
Es soll die Hypothese getestet werden, ob verschiedene Kontextreize einen Einfluß auf die Genauigkeit der Bewegungsextrapolation von Computeranimationen besitzen. Da bildhafte Darstellungen sowohl als 2-D und als 3-D Szenen interpretierbar sind, soll untersucht werden, ob bei objektiv identischem Stimulus eine 3-D Interpretation zu höheren geschätzten Geschwindigkeiten führt. Ebenfalls soll der Einfluß von Objekten in der Nachbarschaft des Bewegten Reizes untersucht werden.
Wir untersuchen die Auswirkung von simulationsspezifischem Kontext auf die Fähigkeit, visuelle Bewegung zu extrapolieren. Indem wir eine möglichst handlungsorientierte Umgebung wählen, bieten wir eine unmittelbar einleuchtende Handlung an und vermeiden dadurch rein ästhetische Wahrnehmungsurteile. Vpn sollen eine zeitkritische Bewegungsextrapolation durchführen.
Die Fähigkeit solche Handlungen am Computer auszuführen ist noch weitgehend unerforscht, gewinnt aber im Zusammenhang mit virtueller Realität große Bedeutung. Ein hier besonders problematischer Aspekt, die nicht kontinuierliche Bewegung (time-sampling), soll in unserer Studie im Vordergrund stehen.
Versuchsablauf
Nachdem alle benötigten Daten geladen sind (Bilder und Versuchsparameter) erscheint im Fenster des Browsers ein Button mit der Aufschrift "START" und darunter die Aufforderung, mit der Maus darauf zu klicken. Ist dies geschehen, erstellt das Applet ein Fenster für das Experiment. Die Größe wird an den jeweiligen Bildschirm angepasst.
Nach einem Probedurchlauf beginnt der Versuch. Der Probedurchlauf ist für die VP nicht von den folgenden Durchgängen zu unterscheiden. Es werden Daten zum zeitkritischen Verhalten des benutzten Systems protokolliert. Der weitere Versuch setzt sich aus einer zufällig sortierten Abfolge von Einzelexperimenten zusammen.
Ein Einzelexperiment
Aufbau des Bildschirms:
Alle relevanten Objekte erscheinen in einer bestimmten zeitlichen Abfolge nacheinander. Hierdurch wird der VP die Möglichkeit gegeben, die einzelnen Objekte zu erkennen und zu lokalisieren. Bei der Hälfte der Einzelversuche wird als erstes ein grünes Fixationskreuz gezeichnet. Darauf folgt eine grüne Linie(die Ziellinie). Abhängig von der Versuchsanordnung wird der Hintergrund (Kontextreiz) mit einer Textur belegt. Zuletzt erscheint ein bewegter roter Punkt, der den Ball darstellt.
Durchführung:
Der rote Ball bewegt sich von links nach rechts bzw. von unten nach oben über
den Bildschirm. Dann verschwindet er an einem vordefinierten Punkt. Die
gestrichelte Linie in der Abbildung unten deutet den Ort des Verschwindens
an. Sie ist jedoch im Versuch selbst nicht zu sehen.
Ab dem Zeitpunkt des Verschwindens soll sich die VP die weitere Bewegung des
Balls vorstellen (extrapolieren). Der Zeitpunkt, zu dem ihrer Meinung
nach der Ball die grüne Linie erreicht, soll durch einen Mausklick bestimmt
werden.
Findet der Mausklick außerhalb des zeitlichen Toleranzbereichs oder überhaupt nicht statt, wird ein deutlicher Hinweis eingeblendet. Der Toleranzzeitraum endet circa eine Sekunde nachdem der Ball an der Linie angekommen sein müsste. Schätzfehler darüber hinaus werden also nicht berücksichtigt.
Abb.2.1: Versuchsablauf: Der Ball bewegt sich sichtbar bis zu einer Grenze (hier durch die gestrichelte Linie symbolisiert). Aufgabe ist, zu schätzen, wann der Ball bei fortgeführter Bewegung an der dicken grünen Linie ankäme.
Der Versuch besteht aus 256 Einzelexperimenten, welche sich durch verschiedene
Belegungen der unabhängigen Variablen unterscheiden (siehe Tab.1). Um
Versuchspersonen nicht übermäßig lange zu beanspruchen, wurde der Versuch in
12 Gruppen zu je 32 Einzelexperimenten unterteilt.
Innerhalb der Gruppen wird ein Teil der unabhängigen Variablen, entsprechend
Tabelle 1 unten, konstant gehalten.
Bei den Kontextreizen muß folgendes beachtet werden:
Um den Einfluß von Hintergrundtexturen klar beurteilen zu können, bestehen die Einzelexperimente in jeder der Gruppen genau zur Hälfte aus Versuchen ohne (genauer: mit einfarbigem) Hintergrund. Insgesamt ergeben sich somit mehr als 256 Durchläufe (32x12=384).Um Tiefe allein durch die Texturen zu suggerieren, wurde die Größe des Balls konstant gehalten und Schattenwurf vermieden. Auch kreuzen keine Objekte die Bahn des Balls. Dies würde Tiefe suggerieren und die Vergleichbarkeit der Versuche untereinander wäre nicht mehr gewährleistet.
Unabhängige Variablen:
2D-Objekt | 3D-Objekt | Gradient |
Abhängige Variable:
Nr.
|
Fixationskreuz
|
Richtung
|
Hintergrund
|
Die alleinige Anwesenheit anderer Objekte sollte keine Effekte zeigen. Bei besonders dichten und detailreichen Texturen tritt eventuell eine Erhöhung der wahrgenommenen Geschwindigkeit auf. Die Schätzzeiten wären dann geringer als bei einfarbigem Hintergrund (Kontrollbedingung).
Blinkende Bewegung (sampled) sollte die geschätzte Geschwindigkeit mit maximaler Wirkung bei niedrigen Geschwindigkeiten erhöhen. Rämliche Unregelmäßigkeiten scheinen den Effekt nicht wesentlich zu beeinflußen.
Bisherigen Beobachtungen nach zu urteilen führt ein Verfolgen des Balles mit den Augen zu schlechteren Einschätzungen der Geschwindigkeit.
Der Zugang zum Experiment findet über die Startseite* statt. Sie enthält einen kurzen Überblick über das Experiment und Links zu Seiten mit weitergehenden Informationen. Durch Anklicken des "WEITER"-Links gelangt man zur Formularseite.
Von allen HTML-Seiten existiert eine deutsche und eine englische Version. Die Auswahl der Sprache ist auf der Startseite durch einen Link auf die jeweils andere Version der Seite möglich. Im weiteren Verlauf des Experiments wird die dort ausgewählte Sprache beibehalten.
Auf der Formularseite wird die VP zur Eingabe einiger persönlicher Daten, insbesondere Alter, Geschlecht und Beruf, aufgefordert. Ein Klick auf den "WEITER"-Link startet ein CGI-Skript, welchem die Personendaten und die ausgewählte Sprache als Parameter übergeben werden.
Das Skript liefert als Ausgabe eine HTML-Seite. Wurde die Formularseite unvollständig oder falsch (z.B. Buchstaben als Altersangabe) ausgefüllt, wird eine weitere Formularseite mit Aufforderung zur Korrektur angezeigt. Waren die Angaben vollständig, wird mit Hilfe einer Zufallszahl ein Versuchsteil für die VP ausgewählt. Das Resultat des Skripts ist eine HTML-Seite mit einer Anleitung für den entsprechenden Versuchsteil und einem Applet-Tag, der dazu führt, daß bei Erscheinen der Seite das Java-Applet (die Implementierung des Experiments ) gestartet wird.
Abb.3.1: Nähere Erläuterungen im Text |
Bei Ende der Versuchs startet das Applet ein CGI-Skript, welches das Versuchsprotokoll als email versendet. Das Protokoll enthält folgende Informationen.
*Aus Gründen der Übersichtlichkeit werden hier nicht die wirklichen Dateinamen verwendet.
Abb.3.2: Abhängigkeiten und Vererbung der Java-Klassen |
Die Hauptklasse Blink ist von der Klasse java.applet.Applet abgeleitet und repräsentiert die gesamte Versuchsdurchführung inklusive des auf der HTML-Startseite eingebetteten START-Buttons.
Durch die Schnittstelle Runnable enthält das Applet einen eigenen Thread. Dieser kann durch Initialisierung einer Instanz des Typs Thread in der Methode start() direkt angesprochen werden und ist somit während der gesamten Lebenszeit des Applets steuerbar.
Die Klasse Blink erzeugt Objekte der Klassen Settings, PlayWin, Output und Cgi, die jeweils spezielle, im Folgenden ausführlich beschriebene Aufgaben bei der Versuchsdurchführung erfüllen. Die Klassen Setting und Play sind ihrerseits wiederum Superklassen für die abgeleiteten Subklassen namens Settings und PlayWin.
Jeder Versuch besteht aus 32 Teilversuchen, die sich in Parametern voneinander unterscheiden. Abhängig von einer Zufallszahl, die vom CGI-Skript erzeugt und über die HTML-Seite dem Java-Programm übergeben wird, wird einer von zwölf möglichen Versuchen ausgewählt und dessen spezielle Variablenbelegung in einem Objekt der Klasse Settings gespeichert. Die Klasse Settings stellt einen Container von Instanzen des Typs Setting dar. Die einzelnen Teilversuche werden in der Methode Blink.run() vor Versuchsbeginn zufällig gemischt.
Sind alle oben genannten Objekte mit Ausnahme von PlayWin erfolgreich kreiert, wartet das Applet auf einen Mausklick der VP. Bei der darauffolgenden Erzeugung eines PlayWin-Ojektes wird das Versuchsfenster erstellt und angezeigt.
Für alle Versuchsdurchgänge ruft das Applet die Methode PlayWin.go(setting) auf. Dem Konstruktor von PlayWin wird das Objekt der Klasse Output übergeben. Mit Hilfe der Methode Output.addElement() werden nach jedem Teilversuch die Ergebnisse gespeichert.
Mit den Methoden Output.toString() und Cgi.sendData() übermittelt das Applet alle im Output-Objekt angesammelten Daten an ein CGI-Skript, welches diese als Email versendet.
Ein Kernpunkt des Experiments ist die Geschwindigkeitsschätzung durch die
Versuchspersonen. Die Auswertbarkeit der Versuche hängt also direkt davon ab,
daß die Ballbewegungen bei allen Versuchen auf die gleiche Art und Weise und
mit vergleichbarer Geschwindigkeit ablaufen.
Die verschiedenen Bewegungsarten sind spezifiziert wie folgt:
Der Ball bewegt sich unbeschleunigt und gradlinig. Der sichtbare Teil der
Ballbewegung beträgt eine Sekunde. Die Dauer des nicht sichtbaren Anteils
wird entsprechend der zu schätzenden Stecke gewählt.
Der Ablauf der Ballbewegung:
3.3 Kontrolle und Regelung zeitlicher Constraints
Die Schrittweite des Balles ergibt sich aus der Monitorgröße und variiert mit
der Bewegungsart.
Bei blinkender Bewegung ist auch die Länge der Pausen fest definiert.
Unregelmäßigkeiten auf Grund von Prozeßscheduling sind nicht ganz zu
vermeiden. Das Pausieren des Threads ist notwendig, um diese Schwankungen
möglichst gering zu halten.
Für den Fall, daß der Versuch auf einem überlasteten oder zu langsamen
Computer durchgeführt wird, findet zu Beginn ein Konrolldurchgang statt, in dem
die Zeitpunkte jeder Einzelbewegung protokolliert werden.
Die so entstehenden Zeitreihen dienen uns als Maß für die Verwertbarkeit der
Experimente.
Da die Zeitmessung und Ausgabe sich sehr geschwindigkeitsmindernd auswirkt,
wird bei den restlichen Versuchsteilen nur die Dauer der Gesamtbewegungen
vermerkt.
zurück zum Anfang