MAL-Homepage Inhaltsverzeichnis



MAL Dokumentation: Photogrammetric Headshape Digitizer




Inhalt:

1. ALLGEMEINES
2. ABLAUF EINER MESSUNG
3. DATEISTRUKTUR
4. DAS SYSTEMBETREUER-MENÜ
5. KONFIGURATIONSDATEN


1. ALLGEMEINES

Der Photogrammetric Headshape Digitizer (PHD) ist ein Gerät für die Vermessung der Raumkoordinaten von am Kopf applizierten EEG-Elektroden.

Sämtliche für den Betrieb, die Wartung und das Design des PHD erforderlichen Worte befinden sich im Folder 'olympus_folder' in der Private-Directory (Aufruf mit
mein vom MAL-Prompt aus).

MAL-Homepage Inhaltsverzeichnis


2. ABLAUF EINER MESSUNG

Wenn vom Archiv aus (Wort
browse_messdaten) der Menüpunkt Insert oder der MAL-Interpreter mit dem Kommando 'mal measure.mal' aufgerufen wird, dann kommt das Wort messprozedur zur Ausführung.

Dabei laufen folgende Schritte für die Erfassung und Archivierung der Messdaten ab:

  1. Auswahl der Markenkonfiguration: Mit dem Wort select_config wird ein Browser für die Liste der vordefinierten Markenkonfigurationen (Variable config) gestartet. Die vom Benutzer ausgewählte Konfiguration wird in der Variablen actual_config gespeichert.
  2. Eingabe der Probandendaten: Nach erfolgreicher Auswahl der Konfiguration wird das Wort config_gewaehlt ausgeführt, das eine Bedienoberfläche für die Durchführung ein oder mehrerer Messungen mit Hilfe des Wortes eine_messung enthält. Das Wort eine_messung nimmt die Probandendaten auf und startet anschließend die Messung mit messung_starten.
  3. Erfassung der Bilder: Das Wort gesamtaufnahme nimmt mit jeder Kamera ein Bild auf und transferiert sie auf die entsprechenen JPEG-Dateien. Die Shell-Scripts 'init', 'multishot' und 'transfer' werden dabei mit Hilfe des Wortes system ausgeführt.
  4. Berechnung der Markenpositionen: das Wort analyse analysiert die Bilder und berechnet die Raumkoordinaten der Marken.
  5. Ausrotieren für das Sortieren: Die Raumkoordinaten werden zur Vorbeitung für das manuelle Sortieren ausrotiert. Dafür werden die Orientierungsdaten der Variablen grundorientierung verwendet.
  6. Sortieren der Marken: Der Anwender gibt die Reihenfolge der Marken mit der Maus ein. Dazu wird das Wort manuell_sortieren verwendet.
  7. Kopf in Normalposition rotieren: Die Raumkoordinaten werden so ausrotiert, daß das Nasion vorne, das Inion hinten und die Punkte A1 und A2 auf gleicher Höhe liegen. Das wird mit dem Wort ausrotieren bewerkstelligt.
  8. Archivieren der Daten: Das (lokal in messprozedur definierte) Wort speichern übernimmt das Archivieren der Daten im Messdaten-Folder sowie das Exportieren der Daten.
  9. Exportieren der Daten: Das Wort export_coord speichert die Koordinatenwerte und Personendaten in die Dateien 'mess_id.car', 'mess_id.sph' und 'mess_id.per' (wobei mess_id, der in der Maske der Probandendaten im Feld 'ID' eingegebene String ist).
Berechnung der Markenpositionen
Die Berechnung der Raumkoordinaten der Marken aus den Bilddaten erfolgt mit dem Wort kamera+farbkombination (der Name stammt von Versuchen mit verschiedenfarbigen Marken). Dieses Wort liest die Bilder von Datei ein, sucht die Markenpositionen mit dem Wort frame_auto_spots, entzerrt die so gewonnenen Bildkoordinaten mit dem Wort linsenentzerrung und berechnet die Raumkoordinaten mit dem Wort combination>3d.

Syntax:
-> [ [ x1 y1 z1 ] [ x2 y2 z2 ] ... ]
Das Ergebnis besteht aus den Raumkoordinaten aller gefundenen Punkte. Nachdem viele Marken von verschiedenen Kamerkombinationen gefunden werden, enthält das Ergebnis auch mehrfache Postitionen von ein und derselben Marke. Sie unterscheiden sich nur durch geringe Abweichungen aufgrund der Messungenauigkeit. Das Wort analyse kapselt das Wort kamera+farbkombination, führt eine Gruppenbildung der Messergebnisse mit dem Wort cluster_mean durch und zeigt das Ergebnis in einer Maske an.

Code von kamera+farbkombination:
»bildverbunde_berechnen«
»bildkoordinaten_berechnen«
»raumkoordinaten_berechnen«


mess_param >voc bildverbunde_berechnen >> bildverbunde bildkoordinaten_berechnen raumkoordinaten_berechnen ;
Das Wort bildverbunde_berechnen stellt für jede Kamera eine Verbund mit den Parametern eines Bildes zusammen. Diese sind: Das Wort bildkoordinaten_berechnen liest die Bilddatei, sucht die Markernpositionen und führt die Linsenentzerrung durch. Das Wort raumkoordinaten_berechnen berechnet für jede Kamerakombination (gelesen aus der Variable kamerakombinationen) mit Hilfe des Wortes combination>3d die Raumpositionen der Marken.

MAL-Homepage Inhaltsverzeichnis


3. DATEISTRUKTUR

Für den Betrieb des PHD-Softwaresystems sind drei Directories vorgesehen:

Der Pfad der MAL-Directory wird in der Datei 'auto.usr' durch die Zeilen
 
"/home/stefan/mal/" >> userdirectory
"/home/stefan/mal/" >> maldirectory
"/home/stefan/mal/" >> publicdirectory
festgelegt. Wie man sieht, könnte die MAL-Directory ihrerseits wieder auf mehrere Directories aufgeteilt werden. Achtung: die in 'auto.usr' angegebene Variable 'userdirectory' hat nichts mit der Userdirectory des PHD-Systems zu tun! Nähere Information dazu findet man unter
Konfiguration.

Die Datei 'auto.usr' muss außerdem noch die Definition einer Variable 'author' beinhalten. Mit ihr wird der im Messdatenarchiv eingetragene Username definiert. Der Username im Messdatenarchiv ist zwar für den Anwender nicht sichtbar, verhindert aber das Löschen oder Verändern von Messdaten anderer User.

Die User-Directory ist jene Directory, von der aus das System gestartet wird. Das Shell-Script 'foto' startet den MAL-Interpreter und lässt ihn die Datei 'foto.mal' interpretieren. Am Schluß jeder erfolgreichen Messung werden die Messergebnisse in die User-Directory in die Dateien 'mess_id.car', 'mess_id.sph' und 'mess_id.per' exportiert ('mess_id' ist jener String, der bei den Propandendaten unter 'ID' eingegeben wurde).

Die Archiv-Directory beinhaltet das Messdaten-Archiv, also die Dateien 'olympus.pl' und 'olympus.ix'. Ihr Pfad wird durch die Variable 'olympus_messpool' in der Datei 'auto.cpu' (befindet sich in er MAL-Directory) definiert. Zum Beispiel:
"/home/stefan/phd/olympus" >> olympus_messpool 
Zweck einer eigenen Directory für das Messdaten-Archiv ist die einfachere Handhabung der Datensicherung für den Systembetreuer.

Bei Angabe eines relativen Pfadnamens (z.B.: "olympus" >> olympus_messpool) wird das Archiv relativ zur User-Directory angelegt (Einrichten des Archivs siehe Systembetreuer-Menü). Auf diese Weise erhält jeder User ein eigenes Messdaten-Archiv.

MAL-Homepage Inhaltsverzeichnis


4. DAS SYSTEMBETREUER-MENÜ

Durch Aufruf des Wortes
foto vom MAL-Prompt aus, oder durch Start des Wortes foto im 'olympus_folder', wird das Systembetreuer-Menü aufgerufen. Es enthält Menüpunkte für die Systemwartung und das Design der Kuppel. Die Menüpunkte für das Design der Kuppel erfordern die 3d-Lasermaus und sind hier nicht beschrieben.

Menüpunkte des Systembetreuer-Menüs:

Foto
Der Menüpunkt Foto dient zum Einstellen der Kameraeinstellungen, Snapshots und Darstellung der Bilder. Er hat folgendes Untermenü:

Darstellen
Das Untermenü 'Darstellen' hat folgende Menüpunkte:

Kalibrieren
Der Menüpunkt Kalibrieren wechselt in ein Untermenü mit folgenden Punkten:

Nachkalibrieren
Der Menüpunkt Nachkalibrieren setzt voraus, daß dem System die ungefähren Bildkoordinaten der Passpunkte bekannt sind. Das wird mit Positionen vorgeben bewerkstelligt. Zu diesem Zweck muss eine Gesamtaufnahme des Kalibrierkörpers gemacht werden. Dann werden mit dem Menüpunkt Positionen vorgeben für jede Kamera die Marken im Bild in der richtigen Reihenfolge angeklickt. Das Ergebnis wird dann in der Variablen kalib_bildkoord abgespeichert.

Linsenkalibrierung
Der Menüpunkt Linsenkalibrierung dient zur Berechnung der Linsenentzerrungs-Polynome für die Kameras. Diese werden in den Variablen polynom1 .. polynom12 abgespeichert. Die
Linsenkalibrierung kann nur durchgeführte werden, wenn die entsprechende Kamera aus der Kuppel genommen wird. Das Kalibrierraster muß so vor dem Objektiv aufgestellt werden, daß es möglichst formatfüllend in der Aufnahme erscheint. Zu beachten ist, daß die Makroeinstellung und die Pixeldichte der Kamera bei dieser Aufname gleich sein muss, wie die bei der Kopfvermessung verwendete. Es empfiehlt sich, den Code des Wortes eine_linse (lokal im Wort kalibrieren) zu kontrollieren.

Gesamt
Die lineare Kalibrierung erfolgt mit dem Menüpunkt Gesamt (für alle Kameras) oder mit Auswahl einer Kameraziffer. Für die lineare Kalibrierung muß ein Bild vom Kalibrierkörper aufgenommen werden. Der Menüpunkt Gesamt macht dies automatisch (durch Aufruf des Wortes
gesamtaufnahme) bei Auswahl einer Kamera muß der Anwender dafür sorgen, daß die Bilddateien entsprechend aktuell sind (z.B. durch Aufruf des Menüpunktes Foto / Gesamtaufnahme)

Config
Der Menüpunkt Config wechselt in ein Untermenü mit folgenden Punkten:

Set of Markers
Der Menüpunkt Set of Markers in dient zum Bearbeiten und Erstellen von Marken-Konfigurationen. Eine Markenkonfiguration besteht aus

Beim Editieren der Namenslisten muß darauf geachtet werden, daß die Zeilen keine Blanks am Zeilenende haben.

Die Verbindungsliste ist eine Doppelpunktdefinition (muß daher ein Semikolon am Dateiende haben). Sie enthält einen Verbund ( [ ... ] ) von Einzelverbindungen, die ihrerseits jeweils Verbunde mit den Nummern der zu verbindenden Marken sind. Die Markennummern werden von 1 ab gezählt.

Beispiel:
[ 
[ 1 2 3 4 1 ]
[ 5 6 7 5 ]
] ;
Diese Verbindungsliste beschreibt zwei Polygone (ein Viereck und ein Dreieck). Die Blanks sind syntaktisch erforderlich (siehe
MAL-Syntax).

Measure-Parameters
Folgende Parameter lassen sich für die Bildanalyse einstellen:

Messdaten
Der Menüpunk Messdaten dient zur Administration des Messdaten-Archivs. Er wechselt in ein Untermenü mit folgenden Punkten:

Justieren
Der Menüpunkt Justieren dient für Wartungs und Einstellungsarbeiten. Er enthält ein Untermenü mit folgenden Punkten:

Die Menüpunkte Kamera und Rahmen dienen für das mechanische Justieren einer Kamera (ist nur im Versuchsaufbau mit flexibler Kameramontage möglich) oder des Kalibrierrahmens auf die Position der letzten Kalibrierung. Es werden jeweils Fotos gemacht und in einer 3d-Animation die Soll- und Istposition gleichzeitig dargestellt.

Der Menüpunkt Sehstrahlen ist für die Analyse von nicht erkannten Marken sehr hilfreich. Man kann von mehreren Kameras die Sehstrahlen bestimmter Marken darstellen und überprüfen, ob sie sich kreuzen. So lässt sich feststellen, ob zum Beispiel eine Kamera falsch kalibriert wurde o.ä..

Für das Einstellen der Grundorientierung ist eine Aufnahme des Testkopfes mit Marken (zumindest Nasion, Inion, A1 und A2) erforderlich. Das 3d-Bild des gemessenen Kopfes muss so gedreht werden, daß man von unten in den Kopf sieht, das Inion links und das Nasion rechts im Bild zu liegen kommt. Das Ergebnis der Einstellung wird in der Variablen grundorientierung gespeichert.

MAL-Homepage Inhaltsverzeichnis


5. KONFIGURATIONSDATEN

Nebst jenen Konfigurationsdaten, die mit dem Menüpunkt Config vom
Systembetreuer-Menü aus eingestellt werden können, sind für die Inbetriebnahme des Systems noch folgende MAL-Variablen einzustellen:

Das Wort devicefiles dient zur Definition der Kamera-Schnittstellen. Es übergibt einen Verbund von Strings mit den Pfadnamen der Schnittstellen-Devicefiles am Stack.

Das Wort bilddateien übergibt einen Verbund von Strings mit den Pfadnamen der Bilddateien (normalerweise 'bild1.jpg' .. 'bild12.jpg') am Stack.

MAL-Homepage Inhaltsverzeichnis