TOPOS - Ein optisches Patientenpositionierungssystem

Werbung
Aus der Strahlenklinik
der
Friedrich-Alexander-Universität Erlangen-Nürnberg
Direktor: Prof. Dr. med. Rainer Fietkau
TOPOS - Ein optisches
Patientenpositionierungssystem für die
Strahlentherapie
Inaugural-Dissertation
zur Erlangung der Doktorwürde
der Medizinischen Fakultät
der Friedrich-Alexander-Universität Erlangen-Nürnberg
(Dr. rer. biol. hum.)
vorgelegt von
Bastian Lukas Lindl
aus
Ingolstadt
Gedruckt mit Erlaubnis der
Medizinischen Fakultät der Friedrich-Alexander-Universität
Erlangen-Nürnberg
Dekan:
Prof. Dr. med. Dr. h.c. J. Schüttler
Referent:
Prof. Dr. R. G. Müller
Korreferent:
PD Dr. med. Gunther Klautke
Korreferent:
Prof. Dr. W. Kretschmer
Tag der mündlichen Prüfung:
27.07.2011
Meinen Eltern.
Inhaltsverzeichnis
Zusammenfassung
1
1 Einleitung
5
2 Grundlagen
2.1 Problematik der Patientenlagerung bei der Strahlentherapie . . . . . . . . . .
2.2 Positionierung auf Basis der optischen Topometrie . . . . . . . . . . . . . . .
2.3 Theorie der phasenmessenden Triangulation und absoluten Höhenmessung . .
2.3.1 Die phasenmessende Triangulation und Herleitung der Phasenkarte . .
2.3.2 Kompensation der Mehrdeutigkeiten der Phasenkarte . . . . . . . . .
2.3.3 Von der Phasenkarte zur dreidimensionalen Punktwolke . . . . . . . .
2.3.4 Theoretische Auflösung eines auf phasenmessender Triangulation basierenden Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4 Theorie der Registrierung von dreidimensionalen Punktwolken . . . . . . . . .
7
7
10
12
12
15
18
21
23
3 Technische Umsetzung
3.1 Hardware der Prototypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.1 Verwendete Komponenten . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.2 Schematischer Aufbau . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.3 Integration in den Behandlungsraum . . . . . . . . . . . . . . . . . . .
3.2 Softwaretechnische Lösung . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 Verwendete Softwarebibliotheken . . . . . . . . . . . . . . . . . . . . .
3.2.2 Architektur und Funktionsweise der TOPOS Software . . . . . . . . .
3.2.3 Schnelle Erstellung der Phasenkarte und Transformation zur Punktwolke
3.2.4 Implementierung von Auswertungsalgorithmen . . . . . . . . . . . . .
3.3 Kalibrierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.1 Gamma Kalibrierung . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.2 Intrinsische Kalibrierung . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.3 Extrinsische Kalibrierung . . . . . . . . . . . . . . . . . . . . . . . . .
26
26
26
27
32
35
35
37
40
42
43
43
46
50
4 Messergebnisse
53
4.1 Oberflächenmessungen und Messungenauigkeiten . . . . . . . . . . . . . . . . 53
4.2 Messungen der Atemkurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.3 Positionierung mit Hilfe einer Referenzoberfläche . . . . . . . . . . . . . . . . 60
5 Integration in klinische Arbeitsabläufe
68
6 Zusammenfassung und Ausblick
71
Literaturverzeichnis
73
Abkürzungsverzeichnis
77
Abbildungsverzeichnis
79
Anhang
81
Danksagung
88
Lebenslauf
89
1
Zusammenfassung
Hintergrund und Ziele: Seit Beginn der Strahlentherapie wurde die Präzision der Bestrahlungsapparaturen kontinuierlich verbessert, mit dem Zweck einer immer genaueren Anpassung der Dosisverteilung an das Zielvolumen, um gesundes Gewebe und Risikoorgane weitestgehend zu schonen und den Patienten nicht zusätzlich zu belasten. Durch die Präzision
aktueller Systeme gewinnt auch eine korrekte Patientenpositionierung zunehmend an Bedeutung, denn selbst die genaueste Fokussierung des Strahls bringt keine Verbesserung, wenn der
Patient aufgrund einer ungenauen Lagerung an der falschen Stelle bestrahlt wird. Im Rahmen
dieser Arbeit sollten zwei Prototypen entwickelt werden, die auf Basis der phasenmessenden
Triangulation eine nicht-invasive Methode zur Patientenpositionierung ermöglichen. Dazu
muss die Oberfläche des Patienten kontinuierlich vermessen, mit einer Referenzoberfläche
registriert und die erhaltenen Raumwinkel und Translationsvektoren, die zur Überlagerung
der beiden Oberflächen führen ermittelt werden. Dadurch kann eine korrekte Lage sowohl
vor, als auch während der Behandlung gewährleistet werden. Aufgrund der Schnelligkeit des
Systems ist eine Ausgabe der Atemkurve ebenfalls möglich.
Methoden: Das TOPOS System besteht aus einem oder mehreren Sensoren, die jeweils
über eine Kamera und einen Projektor verfügen. Ein kleiner PC im Behandlungsraum steuert die angeschlossenen Sensoren und bereitet die eingehenden Daten der Kameras für eine
schnelle Übertragung über ein Netzwerkkabel vor. Die Datenverarbeitung und Oberflächenberechnung übernimmt ein zweiter PC im Kontrollraum. Ein wichtiges Kriterium bei der
Auswahl der Komponenten war die Verfügbarkeit als Standardprodukt. Auf dieser Basis
wurden Projektoren, Kameras und PCs bzw. Schnittstellenkarten ausgesucht, so dass keine
spezielle Entwicklungsarbeit hierfür nötig wurde. Ein wesentlicher Bestandteil dieser Arbeit
war die Entwicklung geeigneter, leistungsstarker Softwarekomponenten, die zum einen die
dreidimensionalen Oberflächendaten (bestehend aus über 600 000 Datenpunkten) berechnen und in Echtzeit darstellen können, zum anderen verschiedene Analysemodule parallel
ablaufen lassen. Es wurde ein Framework entwickelt, welches das einfache Hinzufügen von
zusätzlichen Modulen zur Oberfläche erlaubt und bereits ein Modul zur Oberflächenregistrierung auf Basis eines Gauß’schen Mischungsmodels, ein Modul zur farblichen Kodierung des
Abstands zur Referenzoberfläche und ein Modul zur Aufnahme von Atemkurven enthält.
Um die einzelnen Softwarekomponenten testen zu können, wurde eine Beispielanwendung
entwickelt, mit der einerseits eine vollständige Kalibrierung des Systems, andererseits das
Ansprechen aller integrierten Funktionen möglich ist. Bis auf wenige Ausnahmen wurden
alle Softwarekomponenten in der Programmiersprache C# geschrieben.
2
Ergebnisse und Beobachtungen: Die entwickelten Prototypen bestehen beide aus zwei
Sensoreinheiten. Das Messvolumen beträgt ungefähr 500 mm × 500 mm × 400 mm (L × B
× H) und hängt stark von der Geometrie des Messaufbaus ab, so dass auch deutlich größere
Messvolumina realisiert werden können. Die Genauigkeit der Oberflächenmessungen wurde
in allen drei Achsen zu weniger als einem Millimeter im gesamten Messvolumen ermittelt;
speziell in der Mitte des Messvolumens können noch deutlich präzisere Messungen durchgeführt werden. Die Wiederholfrequenz einer vollständigen Oberflächenmessung beträgt 10 Hz,
und konnte bei einem Ein-Sensorsystem sogar auf 20 Hz gesteigert werden, so dass ein kontinuierlich aktualisiertes, dreidimensionales Modell der Oberfläche des Patienten auf dem
Monitor dargestellt und in beliebig wählbaren Blickwinkeln betrachtet werden kann. Der
Algorithmus zur Oberflächenregistrierung benötigt je nach Datengröße etwa eine Sekunde
Rechenzeit und arbeitet mit einer ermittelten Genauigkeit von weniger als einem Millimeter
in x, y, z Richtung und weniger als 1◦ in den Raumwinkeln. Eine Atemkurve kann mit der
oben angegebenen Frequenz von 10 Hz (bzw. 20 Hz) aufgenommen und dargestellt werden.
Praktische Schlussfolgerungen: Mit TOPOS wurde ein Positionierungssystem entwickelt,
das schnell und präzise auf einem großen Messvolumen die Oberfläche von Patienten kontinuierlich vermessen und mit Hilfe einer Referenzoberfläche eine Lagekorrektur vorschlagen
kann. Es erlaubt eine schnelle und objektive Beurteilung der Position vor und während der
Bestrahlung und trägt zu mehr Benutzer- und Patientenfreundlichkeit bei. Die Idee zu solchen Systemen ist schon älter, doch erst jetzt sind die dafür benötigten Komponenten standardmäßig erhältlich und leistungsfähig genug, um die geforderten Voraussetzungen erfüllen
zu können. Nach Erprobung der entwickelten Prototypen in der klinischen Routine, könnten
in einem weiteren Entwicklungsschritt die Koordinaten zur Positionierungskorrektur direkt
an einen 6-Achsen-Tisch übermittelt werden, so dass iterativ die beste Lage des Patienten
automatisch gefunden werden kann. Zusätzlich könnte das System durch Auswertung der
aufgenommen Atemkurve als Steuerung für Respiratory-Gating eines Linearbeschleunigers
(atmungsgetriggerte Radiotherapie) verwendet werden.
Background: Since the beginning of radio therapy the precision of the irradiation has been
improved continuously to allow an increasing accuracy in dose application to the target
volume for saving healthy tissues and organs at risk as much as possible and to provide a
more patient friendly treatment. The improved precision of current treatment systems leads
to a more considerable importance for patient positioning, due to the fact that the best beam
focussing will not yield to more successful treatments, if the patient is irradiated at the wrong
location because of a wrong positioning. In the context of this work two prototypes have been
developed to provide a non-invasive method for patient positioning on the basis of phasemeasuring triangulation. To accomplish this the patient’s surface is measured continuously
and registered to a reference surface, to get a 3-dimensional translation vector and 3 rotation
angles which transform the patient’s surface to superpose the reference surface as best as
possible. Based on that, a correct patient positioning can be guaranteed before and during
3
the treatment. Due to the high speed acquisition of the surfaces a surveillance of the patient’s
respiration motion is also possible.
Methods: The TOPOS System is based on one or more individual sensors, each consisting
of a camera and a projector. A small PC in the treatment room is used to control all
connected sensors and prepares all incoming data of the cameras for a fast transmission over
a network cable. The task of data processing and surface calculation is done by a second
PC in the control room. An important criteria for the selection of the hardware components
was their availability as standard products. With this in mind, cameras, projectors and PCs,
respectively interface cards were chosen, so that there was no need for special developments.
An essential part of this work was the development of high performance software components
which are used on the one hand to calculate the 3-dimensional surface data (consisting of
over 600000 single data points) and to display the surface in real-time, on the other hand to
provide different analysis modules that work parallel on the acquired data points. A software
framework has been developed, which allows a simple adding of additional analysis modules
and already includes modules for surface registration based on gaussian mixture models, for
a color coded display of the positioning error and for recording of respiration motion curves.
To test the single software components efficiently an example application has been developed
which interacts with all integrated functions of the different software modules and allows a
full calibration of a multi sensor system. Aside from few exceptions all software components
were written in the programming language C# .
Results: Both prototypes consists of two sensor units. The measurement volume is approximately 500 mm × 500 mm × 400 mm (L × W × D) and depends strongly on the
geometry of the system configuration so it was also possible to provide considerable larger
measurement volumes. The accuracy of the surface measurement in all three axes is lower
than one millimeter in the whole measurement range and even better in the center of the
measurement volume. The repetition rate for a full surface measurement is 10 Hz for a two
sensor system and can be increased up to 20 Hz for a single sensor system, which allows a
continuously updated, 3-dimensional model of the patient’s surface to be displayed in arbitrary angles on the monitor. Depending on the size of the surfaces, the computation time
for the algorithm that is used for the surface registration is approximately one second and
has an average accuracy lower than 1 millimeter in x, y, z direction and 1◦ for solid angles.
The curve of the respiration motion can be acquired and monitored with a sampling rate of
10 Hz (respectively 20 Hz).
Conclusions: The verification of the TOPOS system prototypes shows that a positioning
system has been developed that is able to measure the patient’s surface fast and precise in
a large measurement volume. With the aid of a reference surface the system can provide an
accurate position adjustment and allows an objective rating of the patient’s position before
and during the irradiation and contributes to a more patient- and user-friendly treatment.
The idea for such systems already came up some years ago but now the needed hardware
4
components are powerful enough and available as standard products to comply with the
requirements. After testing the prototypes under clinical conditions another development
step is the transmission of the detected coordinates directly to a 6-axes table to enable
a complete automatic positioning. Moreover, the system could be used as a controller for
respiratory-gating by evaluation of the respiration motion curve.
1 Einleitung
Aktuellen Schätzungen zu Folge erkrankten in Deutschland im Jahr 2006 etwa 427 000
Menschen an Krebs [17]. Berücksichtigt man die Gesamteinwohnerzahlen Deutschlands und
die durchschnittliche Lebenserwartung heißt das, dass jeder dritte Mensch im Laufe seines
Lebens an Krebs erkrankt [37]. Die WHO schätzt die weltweiten Todesfälle in Folge von
Krebs im Jahr 2004 auf 7,4 Millionen Menschen und prognostiziert ein weiteres Wachstum
auf geschätzte 12 Millionen Menschen im Jahr 2030 [41]. Angesichts dieser Statistiken ist
es nicht verwunderlich, dass die Behandlung von Krebserkrankungen zu den bedeutendsten Bereichen der heutigen Medizin zählt. Die drei wichtigsten Säulen der konventionellen
Krebstherapie heißen Chirurgie, Chemotherapie und Strahlentherapie. Letztere ist laut Statistik bei etwa 50 Prozent alleinige oder beteiligte Behandlungsmethode [9].
Den therapeutischen Nutzen der Strahlung erkannte man bereits kurz nach Entdeckung
der Röntgenstrahlung 1895. Der Beginn der Strahlentherapie lässt sich mit James Ewings
(1934) Feststellung: „All one could really do was to place the patient under the machine and
hope for the best“ am besten beschreiben [2, S. 4]. Seitdem hat sich die Strahlentherapie
kontinuierlich verbessert, angefangen mit den Telekobaltgeräten in den sechziger Jahren bis
hin zu den heutigen Linearbeschleunigern mit Multi-Leaf-Kollimatoren. Mit Hilfe der intensitätsmodulierten Strahlentherapie (IMRT) ist ein weiterer Schritt zu einer immer genaueren
Anpassung der Dosisverteilung an das Zielvolumen gelungen. Die meist genutzten Strahlen
im therapeutischen Bereich sind hochenergetische Röntgenstrahlen und Elektronenstrahlen.
Nach Eintritt in das Gewebe nimmt für die hochenergetische Röntgenstrahlung die Energieabgabe bis zu einer gewissen Tiefe zu, um dann langsam abzufallen. Bei Elektronenstrahlung
ist der Bereich des maximalen Energieübergangs sehr oberflächennah, fällt dann in der Tiefe rasch ab. Durch den Einsatz von geladenen Teilchen (wie z. B. Protonen, Helium- und
Kohlenstoffionen) eröffnen sich weitere Vorteile bei der Therapie von Tumoren. Der Vorteil
der Partikeltherapie gegenüber der konventionellen Strahlentherapie ist das völlig andere
Eindringverhalten der Teilchen. Vergleicht man die Tiefendosiskurven dieser Teilchen mit
der von Photonen oder auch Elektronen, stellt man fest, dass das Maximum der Dosis zum
einen deutlich tiefer, und somit näher am Tumor als auf der Haut liegt, als auch deutlich
schärfer ist. Dadurch kann das Verhältnis von Dosis im Tumor zu Dosis in Risikoorganen
weiter optimiert werden [1]. All diese Entwicklungen haben eines gemeinsam: Das Zielvolumen soll möglichst exakt bestrahlt werden, damit gesundes Gewebe weitestgehend geschont
wird, um den Patienten nicht zusätzlich zu belasten.
Die Problematik der richtigen Patientenpositionierung bleibt bei allen genannten Metho-
6
den allerdings bestehen. In der perkutanen Strahlentherapie erfolgt eine tägliche Bestrahlung
der Patienten über einen Zeitraum von mehreren Wochen. Bei der Durchführung wird angenommen, dass das Zielvolumen und damit der Tumor jedes Mal so unter dem Bestrahlungsgerät gelagert ist, wie ursprünglich bei der Planung bestimmt. Eventuelle Positionierungsfehler
müssen durch ein größeres Zielvolumen kompensiert werden, um eine erfolgreiche Strahlentherapie zu gewährleisten. Durch immer genauere Bestrahlungsmöglichkeiten bekommt die
korrekte Positionierung eine immer wichtigere Rolle bei der Behandlung. Diese Tatsache
spiegelt sich in der Entwicklung von IRGT (Image-guided radiation therapy) wider.
Diese Arbeit möchte einen Beitrag zu einer verbesserten Patientenpositionierung leisten,
indem ein Sensorsystem entwickelt wurde, das in Echtzeit großflächig die Oberfläche des
Patienten vermessen und diese mit einer Referenzoberfläche registrieren kann, um eine Lagekorrektur in sechs Achsen (Translation und Rotation) vorzuschlagen. Neben Schnelligkeit
und Genauigkeit spielt auch die softwaretechnische Umsetzung und die Einbindung in den
klinischen Ablauf eine große Rolle.
In Kapitel 2 wird zu Beginn eine kurze Einführung in die Problematik der Patientenlagerung gegeben und die Anforderungen an ein Patientenpositioniersystem erarbeitet, bevor
anschließend auf die theoretischen Grundlagen zur Messung, Oberflächenregistrierung und
Kalibrierung eingegangen wird. Die technische Umsetzung (Hardware und Software) wird in
Kapitel 3 besprochen. Um die jeweiligen Messfehler objektiv ermitteln zu können, werden
in Kapitel 4 ausführlich die Messergebnisse besprochen und anhand von Referenzmessungen verifiziert. In Kapitel 5 wird eine mögliche Integration in die klinischen Arbeitsabläufe
vorgestellt bevor in Kapitel 6 eine kurze Zusammenfassung und ein Ausblick gegeben wird.
2 Grundlagen
Inhalt
2.1
Problematik der Patientenlagerung bei der Strahlentherapie . . . . . . .
7
2.2
Positionierung auf Basis der optischen Topometrie . . . . . . . . . . . .
10
2.3
Theorie der phasenmessenden Triangulation und absoluten Höhenmessung 12
2.4
Theorie der Registrierung von dreidimensionalen Punktwolken . . . . . .
23
2.1 Problematik der Patientenlagerung bei der
Strahlentherapie
In der perkutanen Strahlentherapie erfolgt eine tägliche Bestrahlung der Patienten, die an
einem Tumorleiden erkrankt sind, über einen Zeitraum von mehreren Wochen. Zu Beginn
der Therapie (Abb. 2.1) wird der Tumor mit Hilfe von Computertomographie (CT), Kernspintomographie (MRI) oder einem anderen bildgebenden Verfahren im Körper lokalisiert.
Anschließend wird die Bestrahlungsplanung durchgeführt, bei der die Anordnung und die
Form der einzelnen Bestrahlungsfelder sowie deren Gewichtung bestimmt werden. Auf Basis
Abbildung 2.1: Reihenfolge der einzelnen Schritte bei der Strahlenbehandlung von Tumoren
(Strahlentherapiekette) [33].
dieser Bestrahlungsplanung erfolgt nun computergestützt die Berechnung und Optimierung
der Dosisverteilung. Die räumliche Auflösung der computergestützten Planung wird durch
das Auflösungsvermögen des verwendeten bildgebenden Verfahrens begrenzt. Bei der Computertomographie liegt das Auflösungsvermögen in der Transversalschichtebene etwa bei
einem Millimeter [24, S. 1].
8
Es wird während des Behandlungszeitraums davon ausgegangen, dass das Zielvolumen
und damit der Tumor jedes Mal so unter dem Bestrahlungsgerät gelagert ist, wie ursprünglich bei der Planung angenommen. Nur unter diesen Umständen gilt die klinische Prognose.
Die genaue Reproduzierung der Patientenposition am Bestrahlungsgerät ist fundamental
für eine erfolgreiche Strahlenbehandlung. Eine Fehlpositionierung würde eine Überdosierung
im gesunden Gewebe und eine gleichzeitige Unterdosierung im Zielvolumen verursachen.
Dies beruht auf der Verschiebung des zu bestrahlenden Volumens im Körper gegenüber dem
berechneten Bestrahlungsvolumen im Raum. Wegen der Unterdosierung im Zielvolumen besteht die Gefahr einer Rezidivbildung, das heißt, das erneute Ausbrechen eines gleichartigen
Tumors am selben Ort nach der Strahlentherapie. Das einmalige bis zweimalige Verfehlen
von Tumorabschnitten während einer Fraktion kann die Tumorkontrollrate bereits verringern
[34; 42]. Auch das versehentliche Bestrahlen eines Risikoorgans kann die Erkrankungsrate
erhöhen. In einem solchen Fall sind Risikoorgane oft schon durch die erste Bestrahlungsserie
mit ihrer Toleranzdosis belastet, was eine erneute strahlentherapeutische Behandlung nur
noch eingeschränkt ermöglicht [24, S. 4f].
Abbildung 2.2: Skizze einer Bestrahlungsanlage in der Strahlentherapie. Die vertikale Drehachse des Tisches und die horizontale Drehachse der Gantry schneiden sich
im Isozentrum [34, S. 3].
Üblicherweise werden isozentrische Bestrahlungstechniken angwendet. Bei diesen muss das
Zentrum des Planungsvolumens in den Schnittpunkt der Drehachse des Gerätes und dem
Zentralstrahl (Isozentrum) gebracht werden (Abb. 2.2). Dies erweist sich oft als schwierig,
da das Planungsvolumen meist nicht an der Körperoberfläche des Patienten liegt und die
Lokalisierung deshalb nur mit Hilfe von Schnittbildverfahren eindeutig durchgeführt wer-
9
den kann. Ist die Lokalisierung abgeschlossen, verwendet man heutzutage häufig raumfeste
Orientierungslaser, die das Isozentrum markieren, in Verbindung mit Hautmarkierungen,
die mit den Laserlinien zur Deckung gebracht werden müssen (Abb. 2.3). Dieser Schritt
der Patientenpositionierung (Abb. 2.1) erfolgt üblicherweise in einer Simulation (welche der
eigentlichen Bestrahlung vorausgeht) mit Hilfe einer Apparatur, die die gleiche Geometrie
wie die Bestrahlvorrichtung besitzt, aber mit einer Röntgenröhre und einem Bildempfänger
ausgestattet ist.
(a) Hautanzeichnungen zur Positionierung des Patienten. Die hellen Streifen stammen von den Lagerungslasern [24].
(b) Anordnung der Laser bei einem LaserPositionierungssystem. A, B und C bezeichnen die
einzelnen Laserquellen [25].
Abbildung 2.3: Funktionsweise eines Positionierungssystems mit Orientierungslasern.
Die Größe des Planungszielvolumens PTV (Planning Target Volume) hängt von der Größe
des Tumors ab. Dabei wird in der Fachliteratur1 zwischen dem makroskopischen Tumorvolumen GTV (Gross Tumour Volume) und dem klinischen Zielvolumen CTV (Clinical Target
Volume) unterschieden. Letzteres kennzeichnet das GTV und mikroskopische Ausläufer des
Tumors, die zusätzlich entfernt werden müssen, aber nicht mit den diagnostischen Techniken
erkennbar sind. Das Planungszielvolumen ist nunmehr eine rein geometrische Erweiterung
des CTV und ist notwendig, um geometrische Ungenauigkeiten wie Organverschiebungen,
Fehler bei der Patientenpositionierung und Ungenauigkeiten in der Dosisapplikation mit
einzuschließen. Bei jeder neuen Positionierung am Bestrahlungsgerät muss sich das CTV im
PTV befinden. Die maximale Ausdehnung des Planungszielvolumens, um in jeder Situation
das klinische Zielvolumen einzuschließen, kann zur Überdosierung von gesundem Gewebe
führen. Einen wesentlichen Einfluss auf das PTV haben auch noch die Risikoorgane (Organs at Risk, OAR), die signifikant auf eine hohe Strahlendosis reagieren (Abb. 2.4) [34, S.
15]. Um zu gewährleisten, dass das PTV nicht wegen Positionierungsungenauigkeiten größer
als notwendig gewählt werden muss, wenn also Organverschiebung und sonstige Ungenauigkeiten kleiner als die Lagerungsunsicherheit sind, muss die Positionierung des Patienten
hinreichend genau erfolgen. Die Fehler bei der Reproduzierung der Lagerung sind stark ab1 PTV,
GTV, CTV und OAR sind definiert nach einer Empfehlung der ICRU (International Commission
on Radiation Units and Measurements).
10
Abbildung 2.4: Darstellung des GTV, CTV, PTV und der OAR [34, S. 6]
hängig von der gewählten Lagerungs- und Fixiertechnik und es würde den Rahmen dieser
Arbeit übersteigen, detailliert darauf einzugehen. In der Arbeit von Klöck [24] wird dies
ausführlich besprochen. Zusammenfassend ist zu sagen, dass eine Verbesserung der Positioniergenauigkeit fast immer zu einer Verkleinerung des Planungszielvolumens führen kann
und somit hilft, die Nebenwirkungswahrscheinlichkeit deutlich zu reduzieren.
Die Probleme, die bei einer Positionierung mit Orientierungslasern entstehen sind zum Teil
in diesem Abschnitt schon deutlich geworden. Im Folgenden werden diese zusammengefasst
aufgezählt [24, S. 7]:
• Hautmarkierungen: Die Breite der Hautmarkierungen kann bis zu fünf Millimeter
betragen, wohingegen die Linienbreite der Laserlinien bei etwa einem Millimeter liegt
[25]. Zu diesen Ungenauigkeiten kommt noch die Gefahr des Verwischens der Markierungslinien hinzu und man geht heute vielerorts dazu über, eine Tätowierung oder
Henna aufzubringen, um die Sichtbarkeit während der laufenden Therapie zu gewährleisten [34, S. 13]).
• Hautverschiebung: Da die Haut gegenüber dem Skelett und den inneren Organen
leicht verschoben werden kann, führt dies insbesondere bei den Hautmarkierungen (für
die Orientierungslaser) zu Problemen bei der Repositionierung.
• Unterschiedliche Gerätegeometrien: Computertomograph, Simulation und Bestrahlungsgerät verwenden jeweils eigene Anordnungen der Orientierungslaser.
• Eigenbewegung des Menschen: Durch Atmung oder Muskelanspannung ist der
Körper des Patienten niemals vollständig ruhig.
2.2 Positionierung auf Basis der optischen Topometrie
Ein neues Lagerungssystem sollte alle im vorherigen Abschnitt genannten Probleme ausschließen. Zum einen sollte auf Hautzeichnungen oder sonstigen Hautmarkierungen wegen
der angesprochenen Schwierigkeiten vollständig verzichtet werden. Zum anderen sollte das
System auch keine geometrischen Übertragungsfehler aufweisen. Um die Eigenbewegung des
Patienten mit zu berücksichtigen, muss das System in „Echtzeit“ arbeiten und eventuelle
11
Veränderungen vom Zielvolumen automatisch erkennen. Das setzt voraus, dass das System
kurz vor und während der Behandlung immer aktiv sein muss. Deshalb dürfen die Komponenten des Messsystems nicht durch eine erhöhte Strahlenbelastung im Raum beeinträchtigt
werden. Das Auflösungsvermögen des Lagerungsverfahrens sollte mindestens genau so hoch
sein wie das des zugrunde liegenden bildgebenden Verfahrens, damit, wie oben bereits erwähnt, das Planungszielvolumen nicht unnötig groß gewählt werden muss und so gesundes
Gewebe geschont wird. Des Weiteren muss eine hohe Reproduzierbarkeit der Lagerung durch
das System gewährleistet sein, um bei einem Behandlungszeitraum über mehrere Wochen
sicherzustellen, dass der Tumor bei jeder Fraktion planungsgemäß bestrahlt wird. Zusätzlich
sollte ein ideales Lagerungsverfahren den Arbeitsablauf in der klinischen Routine optimieren.
Für das durchführende Personal (im Allgemeinen MTAs) sollte es einfach zu bedienen und
schnell sein. Die letzten zwei Punkte würden auch maßgeblich zur Patientenfreundlichkeit des
Systems beitragen, da somit längere Liegezeiten erspart blieben. Wünschenswert ist außerdem, dass die aktuelle Position und Positionsabweichungen des Patienten auch während der
Behandlung für den Bediener direkt erkennbar sind, so dass im ersten Schritt ein manuelles
Eingreifen ermöglicht wird, in einem weiteren Schritt das System die Position des Patienten
automatisch korrigiert und der Bediener nur noch Kontrollaufgaben besitzt. Um den Patienten eindeutig zu positionieren, werden signifikante Referenzpunkte benötigt. Beim Beispiel
der Orientierungslaser sind dies die Hautmarkierungen, die in der Simulation auf Basis der
Laserlinien im Simulationsraum aufgetragen werden und vor der Bestrahlung mit den Laserlinien im Bestrahlungsraum zur Deckung gebracht werden, so dass der Patient anschließend
richtig positioniert ist. Eine konsequente Folgerung dieser Methode wäre, anstatt der wenigen Referenzpunkte in Form der Hautmarkierungen, die gesamte Oberfläche des Patienten
in einem gewissen Bereich um das Zielvolumen herum als Referenz zu verwenden. Dabei wird
nach korrekter Positionierung des Patienten eine Referenzoberfläche gespeichert, die während
der Bestrahlung fortlaufend mit der Messoberfläche verglichen wird. So kann die Lage des
Patienten entweder manuell oder mit Hilfe eines geeigneten 6-Achsen-Tisches automatisch
korrigiert werden. Ein weiterer entscheidender Vorteil dieser Methode ist die Möglichkeit, die
Volumeninformation aus der Planungs-Computertomographie mit der Oberflächenmessung
zu verknüpfen, um so die aktuelle Position des Planungszielvolumens zu erhalten [24, S. 30].
Damit würde, wie in Abbildung 2.5 angedeutet, der zeitaufwendige Schritt der Simulation
vollständig entfallen. An dieser Stelle ist zu erwähnen, dass der oben genannte Ansatz nur
(a) Herkömmlicher Arbeitsablauf bei der Strahlentherapie mit Simulation.
(b) Vereinfachter Arbeitsablauf (ohne Simulation)
unter Verwendung eines verbesserten Positionierungssystems.
Abbildung 2.5: Ausschnitt der Arbeitsabläufe bei der Strahlenbehandlung von Tumoren.
dann die Simulation ersetzen kann, wenn eine hinreichend gute Korrelation zwischen der
Position der inneren Organe und der Hautoberfläche besteht. Eine Verbesserung der bisherigen Lagerungssysteme ist aber auch ohne detailliertere Untersuchungen in dieser Richtung
12
gegeben.
Als Lösung für die angesprochene Problematik wird in dieser Arbeit ein Messsystem auf
Basis der optischen Topometrie entwickelt. Dabei sind die Voraussetzungen an diesen Sensor
im vorangehenden Teil schon festgelegt worden und werden hier abschließend noch einmal
zusammengefasst:
• „Echtzeitfähig“
• Bildgebung kurz vor und während der Behandlungsphase
• Patientenfreundlich (nicht invasiv)
• Auflösung kleiner als 1 mm in allen drei Raumrichtungen
• Weitestgehend unabhängig von der Umgebungsbeleuchtung bzw. vom Hauttyp
• Geforderter Messbereich etwa 500 mm × 500 mm × 400 mm (L × B × H)
Die geforderten Eigenschaften an das Messsystem sind außerordentlich anspruchsvoll. Die
größte Herausforderung ist die Notwendigkeit einer schnellen Oberflächenmessung, also einem System mit einer ungefähren Messgeschwindigkeit von 10 Datensätzen pro Sekunde,
bei gleichzeitig gutem Auflösungsvermögen. Ein Messsystem, das den Anforderungen am
ehesten entspricht und ein großes Steigerungspotenzial in sich birgt, wird in dieser Arbeit
auf Basis der phasenmessende Triangulation entwickelt.
2.3 Theorie der phasenmessenden Triangulation und
absoluten Höhenmessung
2.3.1 Die phasenmessende Triangulation und Herleitung der
Phasenkarte
Nach dem Prinzip der Triangulation werden Streifen auf das zu untersuchende Objekt projiziert und von einer Kamera unter dem Winkel θ detektiert. Die von der Kamera detektierte
seitliche Auslenkung der Streifen ist hierbei ein Maß für die Höhe des Objekts. Um die
Höheninformation zu kodieren, wird eine Sequenz von Streifenmustern mit sinusförmigen
Intensitätsprofilen projiziert. Wie im Folgenden gezeigt wird, genügt eine Folge von drei
Streifenmustern, die jeweils um 120◦ phasenverschoben sind (Abb. 2.6). Die Kamera zeichnet jedes der drei auf das Objekt projizierten Bilder auf. Die Intensität für jedes Pixel auf
dem aufgenommen Bild lässt sich wie folgt beschreiben
I(x, y) = I0 (x, y) + I 0 (x, y)cos(φ(x, y)),
(2.1)
wobei I(x, y) die Intensität am Punkt (x, y) ist, I0 (x, y) die durchschnittliche Intensität
beschreibt und I 0 (x, y) den Kontrast der Streifenprojektion repräsentiert. Wird eine Phasenverschiebung in das projizierte Signal induziert, wird das detektierte Signal ebenfalls
13
(a) Primäres Streifenmuster
(Phasenverschiebung 0◦ ).
(b) Zweites Streifenmuster
(Phasenverschiebung 120◦ ).
(c) Drittes
Streifenmuster
(Phasenverschiebung
−120◦ ).
Abbildung 2.6: Schematische Darstellung der drei Streifenmuster auf einem quaderförmigen
Objekt bei der phasenmessenden Triangulation.
um den selben Betrag phasenverschoben. Benutzt man drei Streifenbilder so erhält man
für deren Intensitätsverteilungen I1 (x, y), I2 (x, y) und I3 (x, y) folgenden Zusammenhang
(Abb. 2.7(a)):
I1 (x, y)
= I0 (x, y) + I 0 (x, y) cos[φ(x, y)]
2
I2 (x, y) = I0 (x, y) + I 0 (x, y) cos[φ(x, y) + π]
3
2
I3 (x, y) = I0 (x, y) + I 0 (x, y) cos[φ(x, y) − π].
3
(2.2)
(2.3)
(2.4)
Aus diesen Gleichungen kann nun eindeutig auf φ(x, y) geschlossen werden, da I1 (x, y),
I2 (x, y) und I3 (x, y) aus den aufgenommenen Bildern der Kamera bekannt sind. Wird Gleichung 2.3 von Gleichung 2.4 subtrahiert, ergibt sich ein Ausdruck für I 0 (x, y).
I3 (x, y) − I2 (x, y)
2
= I0 (x, y) + I 0 (x, y) cos[φ(x, y) − π] +
3
2
0
−I0 (x, y) − I (x, y) cos[φ(x, y) + π]
3
2
2
0
= I (x, y){cos[φ(x, y) − π] − cos[φ(x, y) + π]}
3
3
(2.5)
Das Anwenden des Additionstheorems führt zu
I3 (x, y) − I2 (x, y)
2
2
= I 0 (x, y){cos[φ(x, y)] cos[ π] + sin[φ(x, y)] sin[ π] +
3
3
2
2
− cos[φ(x, y)] cos[ π] + sin[φ(x, y)] sin[ π]}
3
3
2
0
= I (x, y){2 sin[φ(x, y)] sin[ π]}
3
√ 0
=
3I (x, y) sin[φ(x, y)].
(2.6)
14
Eine analoge Berechnung ergibt für die Addition von Gleichung 2.3 und Gleichung 2.4:
I3 (x, y) + I2 (x, y)
2
2
2I0 (x, y) + 2I 0 (x, y){cos[φ(x, y) − π] + cos[φ(x, y) + π]}
3
3
= ...
=
=
2I0 (x, y) − I 0 (x, y) cos[φ(x, y)].
(2.7)
Lösung der Gleichung 2.6 nach I 0 (x, y) und Gleichung 2.7 nach 2I0 (x, y) und Einsetzen in
Gleichung 2.2 liefert:
2I1 (x, y)
=
2I0 (x, y) + 2I 0 (x, y) cos[φ(x, y)]
= I2 (x, y) + I3 (x, y) + 3I 0 (x, y) cos[φ(x, y)]
3 I3 (x, y) − I2 (x, y)
.
= I2 (x, y) + I3 (x, y) + √
tan[φ(x, y)]
3
(2.8)
Bis auf φ(x, y) sind alle Variablen dieser Gleichung bekannt und man erhält so eine Funktion
für die Phase an jedem Pixel im detektierten Bild:
φ(x, y) = arctan
!
√
3[I3 (x, y) − I2 (x, y)]
.
2I1 (x, y) − I2 (x, y) − I3 (x, y)
(2.9)
Dieses Ergebnis zeigt, dass drei Bilder genügen, um die Phase in jedem Punkt des Bildes
zu bestimmen. Ein weiterer Vorteil dieser Methode ist, dass Material- oder Farbänderungen
des Objekts, die zu einer unterschiedlichen Reflexion des Lichts führen, keinen Einfluss auf
das Messergebnis der Phase haben. Sowohl die lokale Durchschnittsintensität I0 (x, y) als
auch der lokale Kontrast I 0 (x, y) kommen im Ergebnis für die Bestimmung von φ(x, y) nicht
mehr vor. Die resultierende Phasenfunktion φ(x, y), im Folgenden Phasenkarte genannt,
(a) Darstellung der Intensitätsverteilungen I1 (x, y), (b) Aus den einzelnen Intensitäten berechnete Phase
I2 (x, y) und I3 (x, y). Dies entspricht einem Quer- (Modulo 2π).
schnitt durch das Streifenmuster.
Abbildung 2.7: Zusammenhang zwischen Einzelintensitäten und berechneter Phase.
kann Modulo 2π genau bestimmt werden (Abb. 2.7(b)). Um eine eindeutige Zuordnung von
Pixel und Phase zu gewährleisten, muss diese Modulooperation kompensiert werden, worauf
im folgenden Abschnitt ausführlich eingegangen wird.
15
2.3.2 Kompensation der Mehrdeutigkeiten der Phasenkarte
Wie in Kapitel 2.3.1 bereits angesprochen, fehlt für den Erhalt einer eindeutigen Phasenkarte Φ(x, y) des Objekts noch ein entscheidender Schritt. Wie in Gleichung 2.9 zu erkennen
ist, ist φ(x, y) nur auf Modulo 2π bestimmbar. Prinzipiell gibt es mehrere Möglichkeiten,
um diese 2π-Modularität zu kompensieren. Eine Möglichkeit wäre das sogenannte Phase Unwrapping (Phasenentfaltung), das in meiner Diplomarbeit [26] ausführlich besprochen wurde.
Ein Weg zur Phasenentfaltung ist, benachbarte Punkte zu vergleichen und solange 2π zu
addieren, bis die Differenz kleiner als π ist. Der eindimensionale Fall ist in Abbildung 2.8 skizziert. Für die Erweiterung zur zweidimensionalen Phasenentfaltung gibt es verschiedenste
Abbildung 2.8: Prinzip der Phasenentfaltung (Phase Unwrapping). Untersuchung der Phase von benachbarten Punkten und Addition von Vielfachen von 2π bis die
Differenz kleiner als π ist.
Algorithmen und Herangehensweisen (vgl. pfad-folgende bzw. pfad-unabhängige Algorithmen) [12; 13; 16; 35; 38] . Für Details hierzu sei auf Ghiglia und Pritt [12] verwiesen. Eine
Problematik aller Methoden zum Phase Unwrapping ist das Verhalten bei nicht zusammenhängenden Oberflächen. Es ist leicht nachvollziehbar, dass Oberflächen ohne Verbindung
zueinander nicht eindeutig entfaltet werden können. Es gibt zwar gute Schätzungen dafür,
aber wie verlässlich diese sind, liegt letztendlich im Ermessen des Anwenders. Eine weitere
Schwierigkeit betrifft die Robustheit aller Algorithmen. Für die im Rahmen der Doktorarbeit
besprochene Anwendung hat die Verlässlichkeit der Messung oberste Priorität. Bei ersten
Tests konnte allerdings kein angewendeter Algorithmus überzeugen.
Eine sehr effektive Möglichkeit die Mehrdeutigkeiten der Phasenkarte zu kompensieren
ist die Projektion von zusätzlichen Bildern. In Abbildung 2.9 ist ein Beispiel gezeigt wie
drei Binärmuster verwendet werden können, um den Messbereich in 23 eindeutige Bereiche
zu untergliedern. Dabei ordnet man den jeweils schwarzen Bereichen die Binärzahl 1 zu,
den weißen Bereichen 0. Jedes gemessene Pixel hat nun neben den Intensitäten I1 , I2 und
I3 des Sinusmusters drei zusätzliche Attribute b1 , b2 und b3 . Bei Betrachtung der bi als
Komponenten einer dreistelligen Binärzahl ergibt sich für jedes Pixel eine Dezimalzahl d im
Bereich von 0 bis 7. Unter der Voraussetzung, dass die Wellenlänge des Sinusmusters, und
16
(a) Das erste Binärmuster
unterteilt den Messbereich in
zwei gleich große Bereiche.
(b) Im zweiten Binärmuster
werden die Bereiche des ersten Musters jeweils halbiert.
Zusammen mit dem ersten
Muster ist der Messbereich
nun in vier gleich große Teilbereiche unterteilt.
(c) Das dritte Binärmuster
unterteilt wieder die Bereiche des zweiten Binärmusters, so dass in Kombination mit dem ersten und dem
zweiten Muster acht eindeutige Bereiche entstehen.
Abbildung 2.9: Schematische Darstellung dreier Binärmuster zur Kompensation der Mehrdeutigkeit bei der phasenmessenden Triangulation. Schwarze Bereiche werden als 1 gewertet, weiße Bereiche als 0. Die Kombination aller Muster ergibt
für jeden Teilbereich eine dreistellige Binärzahl, die einer Dezimalzahl zwischen 0 und 7 entspricht.
damit die Breite des Eindeutigkeitsbereichs, gleich der Breite eines der 8 Teilbereiche im
Binärmuster ist, kann die Mehrdeutigkeit der Phasenkarte einfach aufgelöst werden:
Φ(x, y) = 2πd(x, y) + φ(x, y) = 2πd(x, y) + arctan
!
√
3[I3 (x, y) − I2 (x, y)]
. (2.10)
2I1 (x, y) − I2 (x, y) − I3 (x, y)
Der Nachteil dieser Methodik ist der zusätzliche Zeitaufwand, der benötigt wird, um die
weiteren Bilder zu projizieren und aufzunehmen. Bei einem Binärmuster bestehend aus drei
Bildern entspricht das einer Zunahme der Aufnahmezeit um 100 %. Des Weiteren ist durch
die Anzahl der Binärmuster auch die Wellenlänge des Sinusmusters und damit die Genauigkeit des Messsystems vorgegeben. Denn je feiner das Sinusmuster projiziert werden kann,
desto kontrastreicher sind die Höhenunterschiede auf dem Objekt aufzulösen. Bei einer Projektorauflösung von 1024 × 768 ergäbe das bei drei Binärmustern, wie in Abbildung 2.9, eine
Wellenlänge von lediglich 128 Pixel. Im optimalen Fall stünden dann für diese 128 Pixel
insgesamt 256 Graustufen bereit, so dass sich jedes Pixel im Durchschnitt mit 2 Graustufen
vom Nachbarpixel unterscheidet. Berücksichtigt man dann noch eine vorhandene Streuung
(zum einen vom Projektor, zum anderen von der Kamera) so ist leicht zu sehen, dass diese
128 Pixel für ein präzises Messsystem nicht ausreichen werden. Eine detaillierte Fehler- und
Genauigkeitsanalyse folgt in Kapitel 2.3.4. Eine weitere Herausforderung bei der Verwendung
von Binärmustern ist die eindeutige Erkennung der Übergänge von schwarz auf weiß. Die
Wahrscheinlichkeit ein Pixel, das genau auf dem Übergang liegt falsch zuzuordnen, beträgt
50 %. Betrachtet man das Binärmusters von Abbildung 2.9 genauer, erkennt man, dass sich
dieser Fehler von Muster zu Muster fortsetzen kann, da der Übergang im ersten Bild bei
allen Folgebildern ebenfalls an derselben Stelle vorhanden ist. Im schlimmsten Fall wird ein
17
Pixel bei drei Bildern also dreimal falsch zugeordnet. Fehler in dieser Größenordnung lassen
sich später nicht mehr kompensieren und führen zu einem massiven Genauigkeitsverlust an
den Nahtstellen der Streifen, falls diese in die Messung eingeschlossen werden - das heißt, es
bleibt nur die vollständige Eliminierung der Pixel an den Nahtstellen. Mit anderen Worten:
Objektpunkte die mit den Nahtstellen zusammenfallen können nicht gemessen werden. Mit
Hilfe des sogenannten Gray-Codes kann dieses Problem umgangen werden. Beim Gray-Code
beträgt der maximale Ablesefehler immer 1 [29]. Das Prinzip besteht darin, die Übergänge
von schwarz auf weiß immer an Stellen zu wählen, an denen noch in keinem Bild der Sequenz
ein Übergang stattgefunden hat.
Die resultierenden Nahtstellen sind zwar immer noch fehlerbehaftet, nun aber höchstens
(a) Erstes Bild einer GrayCode Sequenz.
(b) Zweites Bild einer GrayCode Sequenz.
(c) Drittes Bild einer GrayCode Sequenz.
Abbildung 2.10: Schematische Darstellung einer Gray-Code Sequenz. Jeder Übergang von
schwarz auf weiß ist an einer anderen Position.
bei einem Bild, so dass der maximale Fehler unter Zuhilfenahme des Sinusmusters leicht
kompensierbar wird. Eine konsequente Erweiterung des Gray-Codes ist in Abbildung 2.11
dargestellt. Werden insgesamt drei Werte (schwarz, 50 % grau und weiß) anstelle von zwei
(schwarz und weiß) verwendet, wird der Messbereich mit der gleichen Sequenzlänge (drei
Bilder) in 33 = 27 eindeutige Bereiche unterteilt und für das Sinusmuster ergibt sich eine
Wellenlänge von 37 Pixel. Im Allgemeinen bezeichnet man diese Art der Erweiterung als
(n, k) Gray-Code, wobei n die Anzahl der Werte beschreibt und k die Länge der Sequenz
[14].
(a) Erstes Bild einer erweiterten Gray-Code Sequenz.
(b) Zweites Bild einer erweiterten Gray-Code Sequenz.
(c) Drittes Bild einer erweiterten Gray-Code Sequenz.
Abbildung 2.11: Schematische Darstellung einer erweiterten Gray-Code Sequenz mit drei
Graustufenwerten. Wie schon in der originalen Gray-Code Sequenz sind
die Übergänge zwischen den Graustufen jeweils nur einmal an der gleichen
Pixelposition.
18
2.3.3 Von der Phasenkarte zur dreidimensionalen Punktwolke
Um von der Phasenkarte Φ(x, y) auf die Höhe des Objekts schließen zu können, muss das
System kalibriert werden. Im Wesentlichen gibt es zwei Herangehensweisen für die Kalibrierung: Modell-basierend auf der Geometrie des Messaufbaus und den optischen Eigenschaften von Projektor und Kamera, oder nicht Modell-basierend. Im letzteren Fall werden
Polynome n-ten Grades verwendet, um die Verzerrungen des Systems auszugleichen, um so
von der Phasenkarte Φ(x, y) auf die absolute Höhe schließen zu können. Bei TOPOS wird
eine Modell-basierende Kalibrierung eingesetzt, da diese weniger zeitaufwendig und somit
benutzerfreundlicher ist. Zhang [44] hat in seiner Arbeit eine interessante Art der Kamerakalibrierung beschrieben. Diese basiert auf dem Modell der Lochkamera (Abb. 2.12) und
wird durch folgende Gleichung beschrieben:



u




s  v  = AK 


1
X
Y
Z
1






(2.11)
wobei s ein Skalierungsfaktor ist, u und v die Pixelkoordinaten auf dem Chip der Kamera und
X, Y und Z die Weltkoordinaten sind. Gleichung 2.11 beschreibt also eine Transformation
vom Koordinatensystem des Kamerachips zum Weltkoordinatensystem. Dabei wird A als
Abbildung 2.12: Schematische Darstellung des Lochkamera Modells (pinhole camera) [43].
intrinsische Matrix bezeichnet und ist folgende 3 × 3 Matrix mit den Brennweiten fx und fy
und der Pixelposition der optischen Achse cx und cy :

fx

A=0
0
0
fy
0

cx

cy 
1
(2.12)
19
Die extrinsische Matrix K ist eine 3 × 4 Matrix, die das Kamerakoordinatensystem in das
Weltkoordinatensystem transformiert, bestehend aus einer Rotation rij und einer Translation ti :


r11 r12 r13 tx


K = [R, t] = r21 r22 r23 ty 
(2.13)
r31 r32 r33 ty
Gleichung 2.11 beschreibt eine optimale Lochkamera ohne Berücksichtigung von Linsenfehlern. Eine Kompensation dieser Fehler ist durch zusätzliche Terme möglich, die radiale und
tangentiale Verzerrungen korrigieren. Gleichung 2.11 ist gleichbedeutend mit:



X
u




⇔ sA−1  v  = R  Y  + t
Z
1

(2.14)
Der linke Ausdruck der Gleichung 2.14 entspricht dem intrinsischem Koordinatensystem der
Kamera, also gilt für einen Vektor (x, y, z) in diesem Koordinatensystem:



X
x




 y  = R Y  + t
Z
z

mit
1



x
u
fx




−1 
=
sA
=
s
y
v
0




z
1
0

0
1
fy
0
(2.15)
− fcxx


u

c 
− fyy   v 
1
1
(2.16)
Die Korrekturterme können nun auf die normalisierten Koordinaten x0 und y 0 für z 6= 0, also
x
z
y
0
y =
z
⇒ u = f x x 0 + cx
(2.17)
= f y y 0 + cy
(2.20)
x0
v
=
(2.18)
(2.19)
wie folgt angewendet werden [4]:
x00
= x0 (1 + k1 r2 + k2 r4 + k3 r6 ) + 2p1 x0 y 0 + p2 (r2 + 2x02 )
(2.21)
y 00
= y 0 (1 + k1 r2 + k2 r4 + k3 r6 ) + p1 (r2 + 2y 02 ) + 2p2 x0 y 0
(2.22)
mit r2 = x02 + y 02 , den radialen Verzerrungskoeffizienten k1 , k2 , k3 und den tangentialen Verzerrungskoeffizienten p1 , p2 . Die Koeffizienten hängen nicht von der betrachteten Szene, also
dem Weltkoordinatensystem ab, sondern sind charakteristisch für die verwendete Kamera
und sind deshalb den intrinsischen Parametern zuzuordnen. Ein Algorithmus, der die intrinsischen, extrinsischen und Verzerrungskoeffizienten ermittelt wurde von Zhang [44] entwickelt
20
und ist in den frei verfügbaren Bibliotheken von OpenCV [4] implementiert. Die Ermittlung
der Parameter erfolgt über mehrere Bilder eines Schachbrettmusters mit bekanntem Rastermaß, in verschiedenen Aufnahmewinkeln zur Kamera. Diese Art der Kamerakalibrierung
ist nicht unüblich und gut dokumentiert. Die Kalibrierung des Projektors erfolgt nach einer
Methode von Zhang und Huang [43]. Die Idee dabei ist, dass der Projektor im Grunde eine
invertierte Kamera darstellt und somit dessen Abbildungseigenschaften auch durch eine intrinsische Matrix zusammen mit den Verzerrungskoeffizienten beschrieben werden können.
Im Folgenden werden die Parameter die mit der Kamera in Verbindung stehen mit einem
c
markiert, die des Projektors mit einem p . Abbildung 2.13 zeigt den Zusammenhang der
verschiedenen Koordinatensysteme von Kamera und Projektor zum Weltkoordinatensystem.
Zur Vereinfachung der mathematischen Darstellung werden in den folgenden Gleichungen
Abbildung 2.13: Zusammenhang der Koordinatensysteme von Kamera und Projektor [43].
die Verzerrungskoeffizienten nicht berücksichtigt. Gemäß Gleichung 2.11 gilt:


c

u


 c 
c c
s v  = A K 

1


p

u


 p 
p p
s v  = A K 

1
X
Y
Z
1

X
Y
Z
1











(2.23)
(2.24)
21
Aus den Gleichungen 2.23 und 2.24 können drei lineare Zusammenhänge ermittelt werden:
=
0
(2.25)
f2 (X, Y, Z, v )
=
0
(2.26)
f3 (X, Y, Z, up )
=
0
(2.27)
f1 (X, Y, Z, uc )
c
wobei uc und vc die Pixelkoordinaten des Kamerabildes sind und up die absolute Phase (vgl.
Gleichung 2.10) an der Stelle (uc , vc ) ist, also
up = Φ(uc , vc ).
(2.28)
Die drei linearen Gleichungen 2.25, 2.26 und 2.27 können demnach eindeutig für jedes Kamerapixel (uc , vc ) nach P = (X, Y, Z) aufgelöst werden. Eine Abbildung der absoluten Phasenkarte auf eine dreidimensionale Punktwolke ist damit gegeben:
Φ(uc , vc ) 7→ (X, Y, Z)
(2.29)
2.3.4 Theoretische Auflösung eines auf phasenmessender
Triangulation basierenden Systems
Den Abschluss dieses Kapitels bildet eine Betrachtung zur Auflösung eines Systems, das
auf der phasenmessenden Triangulation basiert. Die möglichen Fehler werden in einen lateralen Fehler (x, y-Ebene) und einem vertikalen Höhenmessfehler (z-Achse) aufgeteilt. Bei
der gesamten Betrachtung wird davon ausgegangen, dass die vom Messsystem gelieferten
Rohdaten nach einer idealen Kalibrierung ins Koordinatensystem x, y, z transformiert sind.
Das heißt Fehler, die durch die Kalibrierung induziert werden könnten, werden hier (noch)
nicht berücksichtigt. Die Messung der x, y Koordinaten erfolgt ausschließlich über die Pixelkoordinaten im Detektorarray der Kamera. Da die einzelnen Detektorzellen im Array
eine begrenzte Größe haben, resultiert daraus ein nicht vernachlässigbarer Fehler. Die maximale laterale Auflösung ist durch die Anzahl der Zeilen und Spalten im Detektorarray
begrenzt (Abb. 2.14). Bei einem Messbereich von 500 mm × 500 mm (B × H) und einem
Detektorarray der Größe 640 × 488 Pixel ergibt sich somit (unter Vernachlässigung des Triangulationswinkels) eine maximale laterale Auflösung von δx ≈ 0,8 mm und δy ≈ 1,0 mm.
Eine einfache Möglichkeit diese Begrenzung herabzusetzen ist demnach entweder den Messbereich zu verkleinern, oder einen größeren Detektorarray zu verwenden.
Für die vertikale Auflösung kann eine ähnliche Betrachtung herangezogen werden. Bei der
Aufnahme der Sinusmuster erfolgt in jedem Pixel des Detektorarrays eine Diskretisierung der
projizierten Intensitätskurven (Abb. 2.14(c)). Um diesen Fehler möglichst gering zu halten
und um Aliasing-Effekte zu vermeiden, sollte das vom Projektor projizierte Sinusmuster eine
höhere Auflösung als das Detektorarray besitzen. Die Höhe des Objekts ist proportional zur
Phase Φ. Bei jeder Intensitätsmessung I1 , I2 und I3 muss nun ein Fehler δI berücksichtigt
22
(a) Vom Detektor aufgenommenes Sinusmuster. Das rote Quadrat
markiert den in (b) vergrößert dargestellten Ausschnitt.
(b) Vergrößerte Darstellung eines (c) Diskretisierung des IntensitätsBereichs im Sinusmuster. Die ein- musters durch den Detektor.
zelnen Zellen symbolisieren jeweils
eine einzelne Zelle im Detektorarray.
Abbildung 2.14: Schematische Darstellung des lateralen und vertikalen Messfehler.
werden. Dadurch wird Gleichung 2.9 erweitert zu:
#
√
3((I3 ± δI) − (I2 ± δI))
.
Φ ± δΦ = arctan
2(I1 ± δI) − (I2 ± δI) − (I3 ± δI)
"
(2.30)
Im Wesentlichen hängt δI von der Bittiefe und der Genauigkeit des Detektorarrays ab. Für
eine Bittiefe von 8 Bit stehen 28 = 256 diskrete Werte für die Abtastung der Intensitätskurve
1
zur Verfügung. Daraus ergibt sich ein δI von 256
· I 0 . Für den vertikalen Messfehler δhI gilt
nach Srinivasan u. a. [36] ein einfacher Zusammenhang:
δhI =
λ0
tan θ0 · K · δI
2π
(2.31)
wobei zwischen δΦ und δI näherungsweise ein linearer Zusammenhang δΦ = K ·δI angenommen wurde. Die Proportionalitätskonstante wurde in einer Computersimulation zu K ≈ 1, 3
ermittelt. Damit ergibt sich für ein Testsystem mit einem typischen Triangulationswinkel
θ0 ≈ 25◦ und einem Streifenabstand λ0 ≈ 25 mm ein Fehler von δh ≈ 10 µm. Außerdem
ist es offensichtlich, dass eine Veränderung in der Höhe des Objekts eine Verschiebung der
beleuchteten Zellen im Detektorarray zur Folge hat:
δhT ∝
1
.
sin θ0
(2.32)
Dadurch kann ein zusätzlicher Höhenmessfehler δhT auf die Unsicherheit der Positionsmessung auf dem Detektorarray zurückgeführt werden. Diese Genauigkeit ist letztlich beugungsbegrenzt, da bei der Verwendung von Licht mit kohärenten Anteilen, das auf eine raue
Oberfläche fällt, statische Beugungsbilder, Speckle entstehen [24, S. 53]. Die Ausprägung der
Speckle lässt sich grundsätzlich mit einer großen numerischen Apertur An und einer kurzen Wellenlänge λ des verwendeten Lichts begrenzen [7], da die maximale Auflösung dem
23
minimalen Abstand dmin zwischen zwei noch unterscheidbaren Strukturen entspricht. Dieser Abstand ist proportional zu λ und lässt sich mit Hilfe der numerischen Apertur An als
dmin = 2Aλn ausdrücken. Damit folgt für δhT :
δhT = C
1
λ
,
sin θ0 2An
(2.33)
wobei C als Speckle Kontrast bezeichnet wird. Bei vollständig räumlich kohärenter Beleuchtung ist C = 1. Durch Verwendung von Lichtquellen mit geringer zeitlicher und räumlicher
Kohärenz lässt sich der Speckle Kontrast entsprechend reduzieren. Es zeigt sich, dass bei Verwendung von sichtbarem Licht (0, 35 µm bis 0, 78 µm) die Gebiete mit räumlich kohärenter
Beleuchtung deutlich kleiner sind als die Abmessungen eines Kamerapixels, rückprojiziert
auf die Objektebene, so dass näherungsweise angenommen werden kann:
r
C=
AKoh
,
ABeob
(2.34)
wobei AKoh die Fläche des Kohärenzgebiets bzw. ABeob die Fläche der Beobachtungszelle ist
[24, S. 53]. Eine ausführlichere Betrachtung dazu ist bei Cloutot [7] und Klöck [24] zu finden.
Letzterer berechnet für ein ähnliches Messsystem einen Speckle Kontrast von C ≈ 0, 1 und
einen daraus resultierenden δhT Wert von 50 µm. Die theoretische vertikale Auflösung des
Systems beträgt demnach δz = δhI + δhT = 60µm.
2.4 Theorie der Registrierung von dreidimensionalen
Punktwolken
Der Begriff Registrierung bezeichnet einen Vorgang, zwei oder mehrere Aufnahmen derselben
Szene oder ähnlicher Szenen bestmöglich in Übereinstimmung zu bringen. Im zweidimensionalen Bereich ist die Bildregistrierung ein gängiger Prozess in einer Vielzahl von Anwendungen. So können z. B. MRT-Bilder, auf denen Weichteilgewebe sowie Gehirnstrukturen gut
dargestellt werden, mit PET-Bildern, die bestimmte Stoffwechselprozesse sichtbar machen,
miteinander registriert und dann überlagert werden, um nachvollziehen zu können, in welchen Gehirnbereichen diese Stoffwechselprozesse stattfinden [15]. Dreidimensionale Punktwolken finden auch bereits in verschiedensten Anwendungsbereichen Verwendung und so
ist auch die Registrierung solcher Daten ein aktueller Forschungsschwerpunkt. Der Iterative
Closest Point (ICP) Algorithmus ist eine der meist verbreitetsten Herangehensweisen [32].
Dieser startet mit zwei Punktmengen und einer ersten Schätzung der relativen Ausrichtung
zueinander. Die geschätzte Transformation wird iterativ immer weiter verbessert, indem korrespondierende Punktpaare in den beiden Datenmengen gesucht werden, deren Abweichung
d (Rotation R und Translation t) minimiert wird:
Np
1 X
2
kxi − Rpi − tk
d (R, t) =
Np i=1
(2.35)
24
wobei Np die Anzahl der Punkte in beiden Datenmengen und pi der korrespondierende
Punkt zu xi ist [3]. Die Anfälligkeit in lokalen Minima zu konvergieren und die daraus resultierende Forderung nach einem genügend großen Überlappungsbereich beider Datenmengen
und einer hinreichend guten Anfangsschätzung, ist eine der größten Limitierungen dieses
Algorithmus. Des Weiteren ist die Standardimplementierung des Algorithmus sehr anfällig
für Ausreißer in den Datensätzen [11].
Eine gute Alternative liefern Jian und Vemuri [19], indem sie die verwendeten Datenmengen als Gaussian Mixture Models (GMM) identifizieren und so einen sehr effektiven und
robusten Registrierungsalgorithmus entwickeln. Ein Gauß’sches Mischungsmodell ist eine
Wahrscheinlichkeitsverteilung p(x), die aus einer konvexen Kombination2 anderer Gaußverteilungen fi (x) besteht:
p(x)
=
k
X
(2.36)
wi fi (x)
i=1
fi (x)
1
= φ(x|µi , Σi ) = p
(2π)3 |Σi |
exp
−(x − µi )T Σ−1
i (x − µi )
2
(2.37)
wobei die einzelnen Gaußverteilungen durch den Mittelwertsvektor µi und der Kovarianzmatrix Σi charakterisiert sind und wi die Gewichtung der Einzelkomponenten mit 0 ≤ wi ≤ 1
Pk
und i=1 wi = 1 angibt. Um die Punktwolke darzustellen, kann man vereinfacht die Anzahl der Komponenten k mit der Anzahl der Punkte und den Mittelwertsvektor µi mit den
Koordinaten des jeweiligen Punktes gleich setzen. Ferner ist anzunehmen, dass jede Komponente die gleiche Gewichtung wi hat und eine sphärische Gaußverteilung vorliegt, also die
Kovarianzmatrix Σi proportional zur Identitätsmatrix ist. Sind die zwei zu vergleichenden
Punktwolken, modelliert durch g(x) und h(x), hinreichend ähnlich zueinander, so ist offensichtlich, dass auch deren Gauß’sche Mischverteilungen ähnlich sind. Um die Ähnlichkeit
bzw. den Abstand zweier Mischverteilungen quantitativ zu messen, kann die Definition der
euklidischen Distanz (L2 -Norm) verwendet werden [5] und so ergibt sich, ähnlich wie beim
ICP Algorithmus (vgl. Gleichung 2.35), die gesuchte Rotation R und Translation t durch
Minimierung folgender Distanzfunktion [19]:
Z
d(g, h, R, t) =
2
gR,t
− 2gR,t h + h2 dx
X
wi φ(x|Rµi + t, RΣi RT )
(2.38)
wobei
gR,t (x) =
i
die um R und t transformierte Verteilung ist. Außerdem ist bekannt, dass die L2 -Norm
jeder Wahrscheinlichkeitsdichtefunktion invariant unter starren Transformationen (R, t) ist,
R 2
R
so dass gR,t
dx = g 2 dx. Damit beschränkt sich die Minimierung von Gleichung 2.38
R
auf die Minimierung des Zwischenterms 2gR,t hdx. Der Vorteil dieser Implementierung
2 Unter
einer konvexen Kombination versteht man die lineare Kombination von Punkten, bei denen alle
Koeffizienten nicht-negativ sind und deren Summe 1 ergibt.
25
gegenüber dem ICP Algorithmus besteht darin, dass die zu minimierende Funktion überall
differenzierbar und konvex im Bereich der optimalen Registrierung ist und die Gradienten
explizit angegeben werden können, was den Einsatz schnellerer Optimierungsalgorithmen
erlaubt [19].
3 Technische Umsetzung
Inhalt
3.1
Hardware der Prototypen . . . . . . . . . . . . . . . . . . . . . . . . . .
26
3.2
Softwaretechnische Lösung . . . . . . . . . . . . . . . . . . . . . . . . . .
35
3.3
Kalibrierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
3.1 Hardware der Prototypen
Nach den theoretischen Grundlagen in Kapitel 2 wird in diesem Kapitel auf die technische Umsetzung eingegangen. Neben den offensichtlichen Zielen bei der Entwicklung des
Messsystems, wie einem großen Messbereich, einer hohen Genauigkeit, Zuverlässigkeit und
Schnelligkeit, steht auch die Verwendung von Standardkomponenten im Mittelpunkt, um
die Herstellungskosten gering zu halten. Alle verwendeten und im Folgenden beschriebenen
Bauteile sind nicht modifiziert und können entsprechend im Fachhandel erworben werden.
3.1.1 Verwendete Komponenten
In einer der ersten Arbeiten zur phasenmessenden Triangulation verwendeten Srinivasan
u. a. [36] noch ein kompliziertes System aus Laser, Polarisatoren und Filter, um die phasenverschobenen Sinusmuster zu projizieren. Abgesehen davon ist der Aufbau heutiger Systeme
immer noch sehr ähnlich. Im Wesentlichen besteht eine Sensoreinheit aus synchronisierter
Kamera und Projektor. Das Herz der eingesetzten Kamera ist ein CCD Chip, gewählt aufgrund der besseren Lichtempfindlichkeit im Vergleich zu CMOS-Chips, mit einer Auflösung
von 640 × 480 Pixel bei einer maximalen Bildwiederholrate von 240 Hz und einer Farbtiefe von 10 Bit1 [18; 8]. Als Schnittstelle zur Datenübertragung verwendet die Kamera den
digitalen Industriestandard CameraLink. Um eine Synchronisierung mit dem Projektor zu ermöglichen, muss es möglich sein den Zeitpunkt der Bildaufnahme über einen Triggereingang
an der Kamera oder am Framegrabber zu steuern. Als Objektiv wurde ein Zoomobjektiv
mit hoher Abbildungsgüte gewählt, um auf verschiedene Installationsstandorte reagieren zu
können. Als Projektor wird ein herkömmlicher DLP Videoprojektor mit einer Auflösung von
1024 × 768 Pixel und einer Farbtiefe von 8-Bit pro Farbkanal eingesetzt bei einer Bildwiederholrate von 120 Hz. DLP Projektoren basieren auf einem rechteckigen Array von vielen
kleinen steuerbaren Spiegeln (Abb. 3.1(b)). Je nach Stellung der einzelnen Spiegel wird das
Licht an der betreffenden Stelle in der Matrix in den Strahlengang zurück reflektiert oder
1 10
Bit Farbtiefe entsprechen einer Anzahl von 210 = 1024 Graustufen.
27
(a) Schematische Darstellung zweier DMDs.
(b) Rasterelektronenmikroskopische Aufnahme eines DMD Chips mit insgesamt 1024 ×
768 einzelnen Spiegeln.
Abbildung 3.1: Darstellung und Funktionsweise eines DMD Chips, wie er in DLPProjektoren zum Einsatz kommt [10].
ganz aus dem Strahlengang heraus gelenkt (Abb. 3.1(a)). Je nachdem, ob der Spiegel öfter in
den Strahlengang reflektiert oder daran vorbei, wird der korrespondierende Bildpunkt heller
oder dunkler. Der Vorteil dieser Methode im Vergleich zu LCD oder LCoS Projektoren, bei
denen das Bild durch Projektion eines LCD-Dias entsteht, liegt in den sehr hohen Kontrastwerten der DLP Projektoren, da bei ausgelenkten Spiegeln praktisch nur das Streulicht in
den Strahlengang gelangt. Eine wichtige Anforderung an den Projektor ist, dass das übertragene Bild direkt angezeigt wird, ohne im Projektor zwischengepuffert zu werden. Anhand
eines Beispiels soll diese Eigenschaft verdeutlich werden: LCDs werden typischerweise mit
einer Wiederholrate von 60 Hz aktualisiert, die fest im Projektor hinterlegt ist und unabhängig von der Bildwiederholrate der Grafikkarte im PC ist. Das würde bedeuten, dass die
Grafikkarte (bei eingestellten 120 Hz) zwar 120 Bilder pro Sekunde zum Projektor schickt,
der Projektor aber effektiv nur jedes zweite anzeigt und darüber hinaus keine Rückmeldung zur Grafikkarte liefert welche Bilder verworfen werden - eine Synchronisation mit der
Software oder der Kamera ist damit unmöglich.
3.1.2 Schematischer Aufbau
In Abbildung 3.2 ist der schematische Aufbau eines Standard TOPOS Systems mit zwei
Sensoreinheiten gezeigt. Prinzipiell unterstützt die TOPOS Architektur beliebig viele Sensoreinheiten, um beispielsweise auch ganze 360◦ Messungen vornehmen zu können. Um Abschattungseffekte, die bei jeder Triangulation entstehen, weitestgehend zu vermeiden, werden
diese zwei Sensoren gegenüberliegend angeordnet. Werden die gemessenen Daten dieser Sensoren zusammengesetzt, deckt die resultierende Gesamtoberfläche einen Bereich von mehr
als 180◦ ab und ist damit sehr gut geeignet, um mit Referenzoberflächen zuverlässig registriert werden zu können. Im optimalen Fall kann eine Geometrie wie in Abbildung 3.2(a)
mit zwei exakt gegenüberliegenden Sensoren realisiert werden. Aufgrund von Zusatzmodulen am Gantry ist ein seitlicher Blick auf das Isozentrum häufig nicht möglich, so dass für
die Prototypen eine andere Position der Sensoren gewählt werden musste. Prinzipiell ist
28
(a) Modell eines Systems (b) Schematischer Aufbau eines TOPOS Systems mit zwei Sensoren, einer
mit zwei gegenüberliegenden Computereinheit im Behandlungsraum und einem Server im Kontrollraum.
Sensoreinheiten.
Die Lage der Sensoren zueinander ist frei wählbar.
Abbildung 3.2: Darstellung des Aufbaus eines TOPOS Systems. Es werden zwei gegenüberliegend angebrachte Sensoren verwendet, um Abschattungen weitestgehend zu vermeiden und eine vollständige 180◦ Oberfläche des Patienten zu
erhalten.
sowohl die Lage der Sensoren zueinander als auch die Lage von Kamera und Projektor innerhalb einer Sensoreinheit frei wählbar. Allerdings müssen die allgemeinen Eigenschaften
der Triangulation beachtet werden, um ein gutes Messergebnis zu erhalten:
• Je näher Kamera und Projektor zusammenrücken, desto kleiner wird der Triangulationswinkel und desto anfälliger wird das System für Verzerrungen und Fehlmessungen.
• Je flacher der Blickwinkel von Kamera und Projektor auf das Isozentrum ist, desto
geringer wird die Intensität des in die Kamera reflektierten Lichts und desto fehleranfälliger wird das System, speziell bei dunkleren Flächen.
In Abbildung 3.2 ist schematisch das Zusammenspiel der einzelnen Komponenten des Systems dargestellt. Je eine Kamera und ein Projektor bilden einen Sensor. Der Projektor ist
mit einem VGA Kabel an den PC im Behandlungsraum (Server-PC) angeschlossen. Das
VGA Signal besteht mindestens aus fünf Einzelsignalen: Ein Signal für den Rotanteil, eines
für den Grünanteil und eines für den Blauanteil. Des Weiteren sind Synchronsignale für den
Zeilenaufbau (HSYNC ) und den Bildaufbau (VSYNC ) notwendig. Das VSYNC Signal kann
somit ideal zum Synchronisieren von Projektor und Kamera verwendet werden, um der Kamera mitzuteilen, wann der Projektor gerade ein Bild vollständig projiziert hat. Dies wird
realisiert, indem das VSYNC Signals des VGA Anschlusskabels mit einem speziellen Kabel
mit dem Triggereingang der Kamera verbunden wird. Die Kamera unterstützt außerdem
eine Triggerverzögerung mit der gesteuert werden kann nach wie vielen µs mit der Bildaufnahme begonnen werden soll. Diese Zahl muss experimentell mit der Software ermittelt
29
werden und hängt von den verwendeten Hardwarekomponenten ab. Im Fall der Prototypen ist eine Verzögerung von 425 µs eingestellt. Die Belichtungszeit der Kamera muss fest
(a) Aufnahme des Grauverlaufs mit einer
Belichtungszeit von 4000 µs. Der Bildaufbau des Projektors ist noch nicht vollständig abgeschlossen.
(b) Aufnahme des Grauverlaufs mit einer
Belichtungszeit von 8345 µs. Der Bildaufbau des Projektors ist abgeschlossen und
ein glatter Verlauf wird abgebildet.
Abbildung 3.3: Projektion eines Grauverlaufs mit einem DLP Projektor bei 120 Hz Bildwiederholrate und Aufnahme mit unterschiedlichen Belichtungszeiten.
auf die exakte Dauer eines Bildaufbaus eingestellt sein, die bei einer Bildwiederholrate von
120 Hz etwa 8, 3 Millisekunden beträgt. Eine Abweichung von dieser Belichtungszeit führt
zu Effekten, die auf die interne Funktionsweise der DLP Projektoren zurückzuführen sind
(vgl. Abb. 3.1(a)). Bei einer Belichtungszeit von 4000 µs zeigt Abbildung 3.3(a) deutlich,
dass der Bildaufbau des Projektors noch nicht vollständig abgeschlossen ist und einzelne
Grauwerte entsprechend fehlerhaft projiziert werden. Die Konsequenz aus der Notwendigkeit einer festen Belichtungszeit ist, dass auf eventuelle Über- bzw. Unterbelichtungen, und
damit auf eine suboptimale Ausleuchtung des Messbereichs, nicht mit einer Verlängerung
oder Verkürzung der Belichtungszeit reagiert werden darf, sondern mit einer Aufhellung oder
Abdunklung des projizierten Bildes. Beide Sensoren sind mit dem Server im Behandlungsraum verbunden, so dass die Kabellängen von Projektor und Kamera kurz gehalten werden
können, denn sowohl die analoge VGA Übertragung, als auch der CameraLink Standard sind
auf eine maximale Kabellänge von 10 m spezifiziert - größere Längen könnten nur zuverlässig
mit Hilfe von zusätzlichen Signalaufbereitern realisiert werden. Der Server besteht bei den
Prototypen aus einer Standard-Workstation mit einem gängigen Vier-Kern-Prozessor (Intel
XEON E5320 1,86 GHz, 2 GB RAM) und ist je nach Behandlungsraum an unterschiedlichen
Stellen platziert. Im endgültigen Produkt ist geplant, die Hardware des Servers in einen der
beiden Sensorgehäuse zu integrieren, so dass nur mehr die beiden Sensoren an der Decke des
Behandlungsraum befestigt werden müssen. Der Server übernimmt die Steuerung der beiden Sensoren und die Berechnung der absoluten Phasenkarte, die dann per Netzwerkkabel
(LAN-Verbindung) an den PC im Kontrollraum übertragen wird. Eine LAN-Verbindung hat
den Vorteil verlustfrei eine große Menge an Daten über weite Strecken (> 100 m) übertragen
zu können2 . Wie in Kapitel 2.3.2 besprochen wird als Projektionssequenz eine Kombination
aus einer Gray-Code Sequenz mit drei Bildern und drei phasenverschobenen Sinusmustern
verwendet, so dass die Sequenz insgesamt aus sechs Bildern besteht (vgl. Abb. 3.4). Aus der
vorgeschalteten Gray-Code Sequenz und der horizontalen Auflösung des Projektors ergibt
sich für das Sinusmuster eine Wellenlänge von 37 Pixel. Damit sich die Sensoren nicht gegen2 Im
Falle des Prototyps liegen zwischen Behandlungsraum und Kontrollraum 35 m Netzwerkkabel.
30
(a) 1. Bild Gray-Code Sequenz.
(b) 2. Bild Gray-Code Sequenz.
(c) 3. Bild Gray-Code Sequenz.
(d) 1. Sinusmuster (−120◦ ).
(e) 2. Sinusmuster (0◦ ).
(f) 3. Sinusmuster (+120◦ ).
Abbildung 3.4: Projizierte Sequenz bestehend aus einer Gray-Code Sequenz (obere Reihe)
und drei phasenverschobenen Sinusmustern (untere Reihe).
seitig beeinflussen, werden diese abwechselnd angesteuert. Dafür gibt es zwei Möglichkeiten:
Entweder jeder Sensor nimmt eine Sequenz auf einmal auf, also sechs Bilder unmittelbar
nacheinander, während der andere Sensor eine schwarze Fläche projiziert, oder alle Bilder
einer Sequenz werden abwechselnd von beiden Sensoren aufgenommen. Im Rahmen der Doktorarbeit wurden beide Methoden untersucht. Der Vorteil der ersten Methode liegt in der
schnelleren Aufnahme der Einzelsequenz mit einer Dauer von nur 50 ms pro Sensor. Diese
Zeit sollte so gering wie möglich gehalten werden, denn jede Bewegung des Patienten in
dieser Zeit führt zu einem Fehler in der Messung, vergleichbar mit der Bewegungsunschärfe
beim Fotografieren eines schnellen Objekts mit einer langen Belichtungszeit. Der Nachteil
der ersten Methode liegt in der optischen Anmutung des Systems. Wird abwechselnd eine
Sequenz von jeweils sechs Bildern, einmal mit dem linken Sensor und einmal mit dem rechten Sensor projiziert, so entsteht der Eindruck als würde das System mit einer Frequenz
von 20 Hz flackern. Dies wird zum einen als sehr unruhig empfunden, zum anderen ist bekannt, dass Flackerlicht speziell in einer Frequenz zwischen 10 und 20 Hz stimulus-induzierte
Reflexepilepsien für entsprechend veranlagte Patienten auslösen kann [28]. Deshalb fiel die
Entscheidung auf die zweite Methode, die zwar eine Dauer von 100 ms für eine Sequenz zur
Folge hat, dafür aber die Flackerfrequenz auf 60 Hz ansteigt und so als wesentlich angenehmer und ruhiger empfunden wird. Die von der Kamera aufgezeichneten Bilder werden vom
Server pro Sensoreinheit in eine absolute Phasenkarte umgerechnet (vgl. Kapitel 2.3.2). Parallel zur Erstellung der Phasenkarte wird ein Medianfilter appliziert, der Ausreißer bereits in
der Phasenkarte herausfiltert. Ein Medianfilter sortiert eine wählbare Anzahl Nachbarpunkte
in einer Sequenz der Größe nach und verwendet den Wert in der Mitte der Sequenz als gefilterten Wert. Die so erhaltenen Daten werden pro Sensor zum Client-PC im Kontrollraum
gesendet. Die Aufgabe des Client-PCs ist die Steuerung des Servers im Behandlungsraum,
31
(a) Bild 1/12: Gray-Code 1 (rechter Sensor).
(b) Bild 2/12: Gray-Code 1 (linker
Sensor).
(c) Bild 3/12: Gray-Code 2 (rechter Sensor).
(d) Bild 4/12: Gray-Code 2 (linker
Sensor).
(e) Bild 5/12: Gray-Code 3 (rechter Sensor).
(f) Bild 6/12: Gray-Code 3 (linker
Sensor).
(g) Bild 7/12: Sinusmuster −120◦
(rechter Sensor).
(h) Bild 8/12: Sinusmuster −120◦
(linker Sensor).
(i) Bild 9/12: Sinusmuster 0◦
(rechter Sensor).
(j) Bild 10/12: Sinusmuster 0◦
(linker Sensor).
(k) Bild 11/12: Sinusmuster (l) Bild 12/12: Sinusmuster +120◦
+120◦ (rechter Sensor).
(linker Sensor).
Abbildung 3.5: Aufnahmen einer vollständigen Sequenz von einem System mit zwei Sensoren. Die Projektion der Bilder erfolgt alternierend zwischen den beiden
Sensoren, um den Eindruck des Flackerns weitestgehend zu reduzieren. Die
Gesamtdauer zur Projektion und Aufnahme dieser Sequenz beträgt 100 ms,
so dass für ein System mit zwei Sensoren die Oberflächenaktualisierung mit
10 Hz erfolgt. Folglich hat ein System mit nur einem Sensor eine Aktualisierungsrate von 20 Hz.
32
die Berechnung der dreidimensionalen Punktwolke aus den absoluten Phasenkarten pro Sensor, die Anwendung von Algorithmen zur Oberflächenregistrierung und zur Ermittlung von
Atemkurven und die Darstellung der Oberfläche und aller Ergebnisse in einem übersichtlichen Benutzerinterface. Die Hardware des Client-PCs ist eine leistungsfähige Workstation
und ist ebenfalls mit einem schnellen Vier-Kern-Prozessor und genügend Arbeitsspeicher
(Intel XEON X5482 3,2 GHz, 8 GB RAM) ausgestattet. Die Entscheidung zwei PCs bei
den Systemen einzusetzen, hat - abgesehen von der komplizierteren Softwarearchitektur entscheidende Vorteile. Im Behandlungsraum selbst kann ein relativ schwacher und kompakter PC ohne Festplatten und sonstigen Laufwerken eingesetzt werden, der ausschließlich
die Synchronisation zwischen Kameras, Projektoren und Software übernimmt. Die Gewährleistung der Synchronisation, also sicher zu stellen, dass das empfangene Bild tatsächlich
das erwartete Bild in der projizierten Sequenz ist, ist die grundlegende Voraussetzung für
eine zuverlässige Messung. Jede Verzögerung durch zusätzlich laufende Prozesse, wie Virenscanner oder ähnliche Hintergrundaufgaben kann zur Folge haben, dass nicht genügend
Leistung zur Verfügung steht, um alle empfangenen Bilder rechtzeitig zu verarbeiten und
gleichzeitig wieder neue zu projizieren. Ein weiterer Vorteil des eigenständigen Computers
im Behandlungsraum sind die kurzen Kabellängen für Projektor- und Kamerasignale und
damit die geringen Datenverluste/-fehler auf diesen Strecken. Es kann ferner ein geeigneter
Übertragungsstandard (Netzwerkkabel) eingesetzt werden, um die Messdaten vom Behandlungsraum in den Kontrollraum zu übermitteln. Die kompakte Bauweise des Server-PCs
ermöglicht auch eine einfache Integration in eines der Sensorgehäuse. Am Client-PC im
Kontrollraum können dann Monitor und Tastatur wie an einen gewöhnlichen Computer angeschlossen werden. In vielen Fällen ist es sinnvoll, auch einen Monitor und gegebenenfalls
eine Tastatur oder Fernsteuerung im Behandlungsraum zu haben. Dies kann über Einsatz
eines sogenannten KVM over IP (Keyboard-Video-Mouse) realisiert werden, der die Tastatur, Video und Maussignale mit einem Netzwerkkabel über weite Strecken senden kann. So
kann ein zweiter Monitor im Behandlungsraum direkt mit dem Client-PC im Kontrollraum
verbunden werden.
3.1.3 Integration in den Behandlungsraum
Im Rahmen dieser Doktorarbeit sind zwei Prototypen des TOPOS Systems, jeweils mit zwei
Sensoreinheiten, entstanden. Mit dem Bau des ersten Prototyps wurde zu Beginn der Doktorarbeit begonnen. Dieser diente anschließend in erster Linie zum Test der Komponenten und
zur Entwicklung der Software (vgl. Abb. 3.6). Der erste Prototyp wurde in einem ehemaligen
Operationssaal an ein vorhandenes, in der Höhe elektrisch verstellbares Deckenstativ montiert. Projektor und Kamera wurden an einem eigens entworfenen Rohrsystem befestigt, um
zum einen beliebige Winkel und Neigungen zueinander zuzulassen und zum anderen verschiedene Abstände zwischen Kamera und Projektor voneinander zu testen. So war es möglich,
verschiedenste Konfigurationen des Systems in Hinblick auf eine spätere Installation in einem
Behandlungsraum mit Beschleuniger einfach zu simulieren. Der zweite Prototyp wurde nach
dem Vorbild des ersten im Sommer 2010 gebaut und verwendet, abgesehen von den Client
33
Abbildung 3.6: Aufbau des ersten Prototyps an einem vorhandenen Deckensystem in einem
ehemaligen Operationssaal. Durch die großzügig ausgelegten Stangen an denen jeweils Kamera und Projektor zueinander verschoben werden können,
ist es möglich, sehr viele unterschiedliche Konfigurationen beider Sensoren
zu testen und unterschiedliche Voraussetzungen bei der späteren Installation
in Behandlungsräumen zu simulieren.
34
(b) Vorderansicht der Konstruktion.
(a) Draufsicht auf einen Ausschnitt des Konstruktionsplans des Behandlungsraums mit installiertem TOPOS System. Der Server-PC ist
bei diesem Aufbau auf der linken Seite (blau) zu finden.
(c) Ansicht des linken Sensors. Auf
ein Gehäuse wurde aufgrund der Flexibilität noch verzichtet.
(d) Übersichtsbild der TOPOS Integration im Behandlungsraum mit einem Siemens Primart Beschleuniger.
Der Server-PC befindet sich in einem Seitenschrank auf der linken Seite.
Abbildung 3.7: Darstellung der Integration des Prototyps im Behandlungsraum. Auf den
Ausschnitten der Konstruktionspläne des Behandlungsraums sind die TOPOS Komponenten blau, die ungefähren Strahlengänge grün eingezeichnet.
35
und Server Computern, die gleichen Komponenten wie der erste Prototyp. Installiert ist dieser in einem Behandlungsraum im Universitätsspital in Zürich zusammen mit einem Siemens
Primart Beschleuniger (vgl. Abb. 3.7) und wird dort einige Tests unter Praxisbedingungen
durchlaufen, sowie für klinische Studien dienen. Der Aufbau eines Sensors (vgl. Abb. 3.7(c))
ist kompakter gestaltet als beim ersten Prototyp, am Schienensystem wurde aufgrund der
großen Flexibilität festgehalten. Auf ein Gehäuse für die Sensorkomponenten wurde auch
bei diesem System noch verzichtet, um keine Einschränkungen bei der Anordnung von Kamera und Projektor zu haben. Außerdem wird eine Softwareoberfläche entwickelt, die sich
nahtlos an den klinischen Arbeitsablauf anpassen wird (vgl. Kapitel 5). Der Client-PC ist
im Kontrollraum installiert und mit einem 35 Meter langem Netzwerkkabel direkt mit dem
Server-PC verbunden. Um im Behandlungsraum ebenfalls Zugriff auf den Client-PC und
die Benutzeroberfläche der Software zu haben, sind dort Monitor und Tastatur vorhanden
und über ein KVM -System mit dem Client-PC im Kontrollraum verbunden. Aufgrund der,
in Abbildung 3.7(a) lila eingezeichneten, deckenmontierten Schiene, mussten die Sensoren
hinter der Schiene montiert werden, um keinen zu flachen Einblickwinkel auf das Isozentrum
zu erhalten. Der Nachteil dieser Konfiguration ist, dass das Gantry in bestimmten Positionen jeweils einen der Sensoren teilweise abschattet. Die Qualität der Oberflächenmessung ist
davon allerdings nicht betroffen, da der jeweils andere Sensor immer eine freie Sicht auf das
Isozentrum hat. Zu beachten sind allerdings etwaige Fehlmessungen des verdeckten Sensors,
die durch die Abschattung entstehen können und über die Software herausgefiltert werden
müssen.
3.2 Softwaretechnische Lösung
Der Großteil der Entwicklungsarbeit des Messsystems war die Architektur und die Entwicklung der Steuersoftware des Systems. Sie soll zum einen flexibel im Hinblick auf die Anzahl
der verwendeten Sensoren sein, auf der anderen Seite aber auch sehr effektiv bei der Berechnung der Punktwolke und der Synchronisation von Kamera und Projektor. In diesem
Abschnitt wird eine Übersicht über die TOPOS Software gegeben.
3.2.1 Verwendete Softwarebibliotheken
Die TOPOS Software wurde hauptsächlich unter Verwendung von Microsoft Visual Studio
2008 (seit kurzem Version 2010) in der Programmiersprache C# 3 entwickelt. Für die Erstellung der Software konnte auch auf zahlreiche frei erhältliche Bibliotheken zugegriffen werden
auf deren Aufgabe im Folgenden kurz eingegangen wird.
OpenGL und OpenTK : Um komplexe dreidimensionale Objekte effektiv und in Echtzeit
darstellen zu können, ist ein hardwaregestütztes Rendering unumgänglich (Rendering bezeichnet das Zeichnen von Objekten auf den Bildschirm). Derzeit gibt es zwei gängige Softwarepakete, die diese Aufgabe erfüllen. DirectX der Firma Microsoft und der offene Standard
3 [­si:"SAôp].
Die Raute ist eine symbolische Anlehnung an die verwandte Sprache C++ . Die Spezifikation
der Sprache ist unter dem Standard ECMA-334 zu finden.
36
OpenGL [21]. Die Anwendungsmöglichkeiten und Arbeitsweisen beider Module sind sehr
ähnlich, allerdings hat sich DirectX in den letzten Jahren immer mehr zu einer Plattform
für Computerspiele entwickelt und so orientieren sich auch die Neuentwicklungen bei DirectX sehr stark an der aktuellen Spieleindustrie. OpenGL ist dagegen bei wissenschaftlichen
Anwendungen weit verbreitet. Der Hauptgrund dafür ist die Plattforminteroperabilität, also
dass OpenGL sowohl auf Windows, Linux, Mac OS, u. a. lauffähig ist. Auch das in den letzten Jahren immer populärer werdende GPGPU (General Purpose Computation on Graphics
Processing Unit), das mit Spracherweiterungen wie OpenCL oder Nvidias CUDA immer mehr
Einzug in Standardanwendungen findet, nutzt OpenGL [6; 27; 39; 30] . Um OpenGL mit C#
effektiv nutzen zu können, wurde auf das freie Modul OpenTK zurückgegriffen [40].
OpenCV (Open Computer Vision): OpenCV ist eine quelloffene Programmbibliothek mit
Algorithmen zur Bildverarbeitung und maschinellem Sehen. Die Entwicklung der Bibliothek
wurde von Intel initiiert und wird heute hauptsächlich von der Firma Willow Garage gepflegt.
Die Stärke von OpenCV liegt in der Geschwindigkeit und in der großen Menge der Algorithmen, u. a. zur Gesichtsdetektion, 3D-Funktionalität, Haar-Klassifikation und verschiedene
sehr schnelle Filter [4]. Wie schon im Kapitel 2.4 angesprochen, werden die Funktionen zur
Kamera- und Projektorkalibrierung von OpenCV eingesetzt. Die dort integrierten Methoden
basieren auf dem Artikel von Zhang [44].
VTK (Visualization Toolkit): Das Visualisierungs-Toolkit (VTK ) ist ein quelloffenes, plattformübergreifendes und kostenlos verfügbares Softwaremodul für dreidimensionale Computergrafiken, Bildverarbeitung und Visualisierung. VTK unterstützt eine Reihe von Visualisierungsalgorithmen und Modellierungstechniken. In der TOPOS Software wird das Toolkit
zum einem für den Import von Referenzoberflächen aus CT Datensätzen benötigt, zum
anderen, um aus dreidimensionalen Punktwolken vereinfachte Oberflächennetze zur übersichtlicheren Darstellung zu erzeugen. Die halbtransparent dargestellte Referenzoberfläche
in der TOPOS Software wird beispielsweise über Algorithmen im VTK Toolkit erzeugt.
ITK (Insight Toolkit): ITK ist ein quelloffenes, plattformübergreifendes und kostenlos
verfügbares Softwaremodul, das Entwicklern eine breite Auswahl an Hilfsmitteln zur Bildanalyse und Bildregistrierung zur Verfügung stellt [22]. Die finale Software Version von
TOPOS verwendet ITK nicht mehr, allerdings wurde zur Bewertung und Untersuchung der
Algorithmen zur Oberflächenregistrierung der ICP -Algorithmus dieses Toolkits verwendet.
Außerdem stellt das Toolkit Methoden zum Import von DICOM Daten bereit.
VXL (Vision-?-Libraries) VXL ist eine quelloffene, plattformübergreifende und kostenlose Sammlung von C++ Bibliotheken, die speziell zur Bildverarbeitung entwickelt wurden
und besteht aus den Modulen VNL (numerics), VIL(imaging), VGL (geometry) und VSL
(streaming I/O) [23]. In der TOPOS Software wird nur das Modul mit den numerischen
Algorithmen (speziell ein Minimierungsalgorithmus für nicht-lineare Funktionen) bei der
Oberflächenregistrierung verwendet.
37
3.2.2 Architektur und Funktionsweise der TOPOS Software
In Abbildung 3.8 ist das Zusammenspiel der Softwarekomponenten schematisch dargestellt.
Im oberen Teil der Grafik befindet sich die serverseitige Software, im unteren die Komponenten, die auf dem Client PC ausgeführt werden. Es ist an dieser Stelle anzumerken, dass in
den folgenden Beschreibungen nur auf die für den Autor zum Verständnis der Funktionsweise
für wichtig erachteten Komponenten Bezug genommen wird. Auf dem Server wird bei jedem
Systemstart automatisch ein Dienst gestartet, der auf Verbindungen mit dem zugehörigen
Client Rechner wartet. Sobald die Verbindung von einem Client Rechner hergestellt wird,
beginnt der Server mit der Initialisierung der Sensoren. Die dafür notwendige Konfiguration wird dem Server über den Client übermittelt. Die Konfiguration beinhaltet zum einen
die für die Übermittlung der Daten verwendeten Netzwerkports, zum anderen die Anzahl
der angeschlossenen Sensoren, die Anschlussbelegung der Kameras und der Projektoren, also
welche Kamera mit welchem Projektor verknüpft ist, sowie grundlegende Kameraeigenschaften wie Belichtungszeit und Triggerverzögerung (vgl. Kapitel 3.1.2). .NET Remoting, eine
Technologie zur Interprozesskommunikation (ICP), wird verwendet, um den Datenaustausch
zwischen Server PC und Client PC zu regeln. Damit kann der Client ein Objekt mit allen
notwendigen Funktionen und Eigenschaften bereitstellen, um die an den Server angeschlossenen Sensoren fernzusteuern. Der Server hat Objekte für alle angeschlossenen Kameras
und Projektoren erstellt. Wie in der Konfiguration definiert, werden jeweils eine Kamera
und ein Projektor zu einem Sensorobjekt zusammengefasst. Das Sensorobjekt hat im Wesentlichen die Aufgabe Projektor und Kamera intern zu synchronisieren, also dafür Sorge
zu tragen, dass die richtige Sequenznummer den eingehenden Kamerabildern zugeordnet
wird. Diese Problematik ist in Abbildung 3.9 schematisch dargestellt. Dort ist eine Sequenz
aus zwölf Frames (Bildern) dargestellt, die nacheinander auf den Projektor projiziert und
gleichzeitig mit der Kamera aufgenommen werden sollen. Die zeitliche Basis entspricht der
Bildwiederholrate des Projektors, in unserem Fall also 120 Hz, das heißt alle 8,33 ms wird
ein neuer Frame an den Projektor gesendet und ausgegeben. Abbildung 3.9 soll die Verzögerungen verdeutlichen, die zwischen dem Senden des Befehls, einen neuen Frame zu zeichnen,
und der tatsächlichen Projektion des Frames entstehen. Das Projektorobjekt auf dem Server sendet den Befehl zum Neuzeichnen eines Frames an die Grafikkarte. Um Flimmern zu
vermeiden, besitzen alle Grafikkarten einen sogenannten Backbuffer und einen Frontbuffer.
Prinzipiell wird nur im Backbuffer gezeichnet bis das Bild komplett zusammengestellt wird.
Danach werden Front- und Backbuffer miteinander vertauscht, so dass der alte Backbuffer
zum neuen Frontbuffer wird. Der Frontbuffer wird im nächsten Schritt in ein VGA Signal
umgewandelt. Um sicherzustellen, dass keine Verzögerung beim Tauschen der beiden Puffer
und dem VGA Signal auftritt, ist dort ebenfalls ein zusätzlicher Puffer vor der physikalischen
Ausgabe auf den VGA-Ausgang eingebaut. Das anliegende VGA Signal wird im Projektor
ebenfalls zwischengepuffert, abermals um sicherzustellen, dass immer ein Frame zur Verfügung steht, der angezeigt werden kann. Speziell bei der Auswahl des Projektors ist darauf
zu achten, dass dessen Framebuffer mit dem der Grafikkarte synchronisiert arbeitet (vgl.
Kapitel 3.1.1). Werden alle Puffer zusammengezählt, stellt man fest, dass die tatsächliche
38
Abbildung 3.8: Architektur der TOPOS Software: Aufteilung in Server und Client basierte Aufgaben. Blaue Pfeile markieren prozessinterne Interaktionen,
rote Pfeile markieren Interaktionen zwischen Client und Server via
Netzwerkverbindungen.
39
Abbildung 3.9: Schematische Darstellung aller beteiligten Framebuffer im System. Jeder
Puffer führt zu einer Verzögerung zwischen projiziertem Bild durch den Projektor und gleichzeitig detektiertem Bild der Kamera. In diesem Fall beträgt
die Verzögerung vier Frames.
Projektion des Bildes um drei Frames (also um 25 ms) verzögert ist, im Vergleich zum Abschicken des Befehls. Die Kamera läuft immer synchron zum Projektor, startet also mit der
Aufnahme zu Beginn der Projektion des Frames, endet 8,3 ms später und kann damit das
aufgenommene Bild erst an den Server schicken, wenn der Projektor schon wieder dabei
ist den nächsten Frame zu projizieren, was die letzte Verzögerung erklärt. Alles in allem
liegen also zwischen projiziertem Bild und aktuell empfangenen Bild vier Bilder, die bei der
Softwaresynchronisation berücksichtigt werden müssen: Wird Bild 1 der Sequenz gerade an
den Projektor geschickt, nimmt die Kamera aktuell Bild 9 der letzten Sequenz auf4 . Die den
empfangenen Kamerabildern zugeordnete Sequenznummer wird zusammen mit den Bildern
an einen sogenannten Sequenzprozessor übergeben, dessen Aufgabe es ist, nach Empfang
einer vollständigen Sequenz, diese auszuwerten. Derzeit sind zwei Sequenzprozessoren implementiert, einer für die Standardsequenz bestehend aus 6 Bildern pro Sensor und einer
für die Sequenz, die bei der Kalibrierung verwendet wird, bestehend aus 13 Bildern. Der
Standard-Sequenzprozessor ist so effektiv programmiert, dass er vor Eintreffen der nächsten
Sequenz mit der Abarbeitung der aktuellen Sequenz und dem Versenden (an den Client) der
resultierenden absoluten Phasenkarte fertig ist. Die Phasenkarte wird für jeden angeschlossenen Sensor auf einem eigenen Kanal über das Netzwerkkabel zum Client-PC transportiert.
Zusammen mit der Phasenkarte können außerdem noch Bildinformationen übermittelt werden, da die Summe der drei Einzelintensitäten des Sinusmusters dividiert durch drei, ein
Maß für die Hintergrundhelligkeit an diesem Pixel ist:
I1 + I2 + I3
2
2
= I0 + (I 0 cos[φ] + I0 + (I 0 cos[φ + π] + I0 + (I 0 cos[φ − π]
3
3
2
2
0
= 3I0 + I (cos[φ] + I0 + cos[φ + π] + I0 + cos[φ − π])
3
3
= 3I0
(3.1)
Pro Sensor und Sequenz ergibt das eine Datenmenge von 1, 5 MB5 . Die Netzwerkleitung
muss also in der Lage sein mindestens 30 MB pro Sekunde vom Server zum Client zu trans4 Es
ist anzumerken, dass diese Überlegungen zwar für alle Kameras, Grafikkarten und Projektoren gelten,
allerdings können bei einer anderen Hardwarekonfiguration auch andere Verzögerungswerte entstehen,
z. B. aufgrund eines unterschiedlich großen Framebuffers der Projektoren.
5 1 MB (Megabyte) = 1024 KB (Kilobyte) = 10242 Bytes
40
portieren. Die Aufgaben des Servers sind damit abgeschlossen.
Der Client-PC empfängt die Daten jeweils pro Sensor und übermittelt sie einem sogenannten Oberflächenanbieter. Dieses Objekt ist dafür zuständig, der Benutzeroberfläche dreidimensionale Punktwolken zur Verfügung zu stellen. Die Berechnung der Punktwolken aus
der Phasenkarte wird im nächsten Kapitel eingehend beschrieben und erfolgt unter der Berücksichtigung der intrinsischen und extrinsischen Parameter. Parallel zur Berechnung der
Punktwolken arbeiten sogenannte Oberflächenprozessoren (analog zu den Sequenzprozessoren). Prinzipiell können je nach Leistung des PCs beliebig viele solcher Prozessoren gleichzeitig arbeiten, in der aktuellen Implementierung sind es vier. Ein Objekt zur Berechnung der
Atemkurve, ein Objekt für den Export der aktuell dargestellten Punktwolke, ein Objekt für
die Registrierung über den ICP Algorithmus und ein Objekt für die Registrierung mit Hilfe
des GMM Algorithmus. Die Oberflächenprozessoren sind so in der Software integriert, dass
unabhängig von der Berechnungsdauer der einzelnen Aufgaben immer garantiert ist, dass die
eigentliche Punktwolke kontinuierlich berechnet und dargestellt werden kann - kurz gesagt,
die Darstellung der Punktwolke verzögert sich nicht, wenn einer der Oberflächenprozessoren
länger als einen Zyklus benötigt. Die ermittelten Punktwolken werden an die Benutzeroberfläche übermittelt und direkt in den Speicher der Grafikkarte geschrieben, um unnötige
Kopiervorgänge im Arbeitsspeicher zu vermeiden. Die Ergebnisse der Oberflächenprozessoren werden je nach Verfügung an die Benutzeroberfläche gereicht und dort wenn möglich
angezeigt. Auf die umfangreiche Diagnoseschnittstelle wurde bisher nicht eingegangen. Speziell zum Einrichten des Systems sind dort Methoden verfügbar, um einzelne Standbilder
abwechselnd auf beide Projektoren zu projizieren oder das aktuelle Kamerabild direkt zu
übermitteln. Dafür werden pro Sensoreinheit eigene Kanäle auf der Netzwerkleitung geöffnet.
3.2.3 Schnelle Erstellung der Phasenkarte und Transformation zur
Punktwolke
Um von der Phasenkarte auf die dreidimensionale Punktwolke schließen zu können, müssen
die in Kapitel 2.3.3 hergeleiteten Formeln auf jeden Punkt in der Phasenkarte angewendet
werden. Diese Berechnung muss für jede Phasenkarte pro Sensor alle 100 ms wiederholt
werden, so dass für 640 × 488 × 2 = 624640 Berechnungen maximal die genannten 100 ms
zur Verfügung stehen. Das ist selbst für aktuelle Computer eine beachtenswerte Aufgabe,
vor allem wenn man sich die Komplexität der Berechnung näher betrachtet. Die eigentliche
Problematik besteht in den Korrekturtermen, um die Linsenfehler zu berücksichtigen. In der
Implementierung der TOPOS Software ist es gelungen diese Rechenschritte auf sechs Additionen und sechs Multiplikationen pro Datenwert zu reduzieren. Um das zu erreichen, werden
sämtliche Rechenschritte, die redundant in der Schleife auftauchen würden, in sogenannten
Lookup-Tables während der Initialisierung des Systems vorberechnet und gespeichert. Insgesamt gibt es zwei dieser Lookup-Tables pro Sensor: Jeweils einen für den Projektor und einen
für die Kamera. Für den Projektor werden die Informationen vorberechnet, die benötigt werden, um dessen Linsenfehler zu korrigieren und die korrigierte x-Koordinate des Projektors
41
ũp zu erhalten (im Folgenden bezeichnet ũp die verzerrungskorrigierte x-Koordinate im Projektorkoordinatensystem, k einen ganzzahlig wählbaren Interpolationsfaktor und uc , vc die
(j)
unkorrigierten x- bzw. y-Koordinaten im Kamerakoordinatensystem, Li (uc , vc ) bezeichnet den im Lookup-Table hinterlegten j-ten Koeffizienten für die i-Koordinate an der Stelle
(uc , vc ), Φ(uc , vc ) ist die absolute Phase an der Stelle (uc , vc )):
up
= kΦ(uc , vc )
vp
(2)
= L(1)
vp + Lvp Φ(uc , vc )
⇒ ũp
= L(1)
up (up , vp )
(3.2)
Um die Weltkoordinaten auf Basis von ũp zu erhalten, können die Lösungen aus den Gleichungen 2.25, 2.26 und 2.27 in folgende Form gebracht werden:
x
=
(1)
(2)
(3)
(4)
Lx (uc , vc ) + Lx (uc , vc )ũp
Lx (uc , vc ) + Lx (uc , vc )ũp
y
z
(2)
= L(1)
y (uc , vc ) + Ly (uc , vc )x
=
L(1)
z (uc , vc )
+
L(2)
z (uc , vc )x
(3.3)
(3.4)
(3.5)
Auf die Herleitung der Koeffizienten wird an dieser Stelle bewusst verzichtet, da diese sehr
geradlinig aus den in Kapitel 2.3.3 angegebenen Gleichungen abgeleitet werden können.
Zur Anschauung ist in Abbildung 3.1 ein Ausschnitt aus dem Quellcode zur Berechnung
der Punktwolke dargestellt. Im Prinzip entspricht jede Zeile einem der oben angegebenen
Rechenschritte.
1
// l o o p through each p i x e l i n t h e phasemap
2
f o r ( i n t i = 0 ; i < b u f f e r S i z e ; i ++, phase++, maps++)
3
{
4
// c a l c u l a t e d i s t o r t e d x ( u p i ) v a l u e o f t h e p r o j e c t o r c o o r d i n a t e
5
// system u s i n g b i l i n e a r i n t e r p o l a t i o n
6
i n t u p i = ( i n t ) ( ∗ phase ∗ p r o j e c t o r L o o k u p I n t e r p o l a t i o n F a c t o r ) ;
7
8
// c a l c u l a t e d i s t o r t e d y ( v p i ) v a l u e o f t h e p r o j e c t o r c o o r d i n a t e
9
// system based on p r e c a l c u l a t e d lo oku p t a b l e
10
i n t v p i = ( i n t ) ( maps−>MapVp1 + ( maps−>MapVp2 ∗ ∗ phase ) ) ;
11
12
// c a l c u l a t e u n d i s t o r t e d and i n t e r p o l a t e d x ( up ) v a l u e o f t h e
13
// p r o j e c t o r c o o r d i n a t e system u s i n g p r e c a l c u l a t e d look up t a b l e s
14
// f o r u n d i s t o r t i o n and i n t e r p o l a t i o n
15
f l o a t ∗ up = ( f l o a t ∗ ) ( p r o j e c t o r L o o k u p +
16
( v p i ∗ projectorLookupColumns ) + u p i ) ;
17
18
// c a l c u l a t e a b s o l u t e and u n d i s t o r t e d x v a l u e i n world c o o r d i n a t e
19
// system u s i n g p r e c a l c u l a t e d loo kup t a b l e s
20
f l o a t x = ( maps−>MapX1 + ( maps−>MapX2 ∗ ∗up ) ) /
42
( maps−>MapX3 + ( maps−>MapX4 ∗ ∗up ) ) ;
21
22
23
// c a l c u l a t e a b s o l u t e and u n d i s t o r e d y and z i n world c o o r d i n a t e
24
// system based on t h e x c o o r d i n a t e and loo kup t a b l e s
25
∗p = new V e c t o r 3 (
26
x,
27
maps−>MapY1 + ( maps−>MapY2 ∗ x ) ,
maps−>MapZ1 + ( maps−>MapZ2 ∗ x ) ) ;
28
29
}
Quellcode 3.1: Algorithmus zur Berechnung der Punktwolke aus der Phasenkarte. Alle überflüssigen Berechnungen wurden während der Initialisierung in Lookup-Tables
hinterlegt.
Damit ist es gelungen mit Hilfe weniger elementarer Rechnungen von der absoluten Phasenkarte eine dreidimensionale Punktwolke zu berechnen. Die Berechnung einer gesamten
Oberfläche erfolgt auf den Prototypen im Durchschnitt mit weniger als 30 ms.
3.2.4 Implementierung von Auswertungsalgorithmen
Eine weitere Herausforderung bestand in der Implementierung von Algorithmen, die auf
der berechneten Punktwolke arbeiten. Um diese möglichst effektiv zu integrieren, wurden
diese teilweise am Ende der Schleife des Quellcodeausschnitts 3.1 eingebaut. Zunächst wird
entschieden, ob der berechnete 3D-Punkt für den Algorithmus relevant ist, da nicht jeder
Algorithmus auf die gesamt Punktwolke wirkt. Bei positiver Entscheidung wird dieser Punkt
einem zusätzlichen Puffer im Algorithmus hinzugefügt. Ist die gesamte Punktwolke berechnet, können die jeweiligen Algorithmen mit der Auswertung beginnen. Jeder Algorithmus
wird dazu in einem separaten Thread gestartet, das bei Mehrkernprozessoren eine Auslagerung auf verschiedene Prozessorkerne erlaubt und so eine parallele und deutlich schnellere
Abarbeitung ermöglicht. Abbildung 3.10 stellt eine mögliche Verteilung der Aufgaben auf
Abbildung 3.10: Schematische Darstellung einer möglichen Aufteilung der Aufgaben in einem Computersystem mit Mehrkernprozessor.
einem gängigen PC mit Vierkernprozessor dar. Die Verteilung ist in dieser Abbildung nur
exemplarisch gezeigt, da die Verwaltung der einzelnen Threads dem Betriebssystem überlassen wird und dieses die Prozessorzuordnung je nach Auslastung ändert. Das bedeutet: Ist ein
43
Algorithmus besonders arbeitsintensiv, so ist es wahrscheinlich, dass dieser vom Betriebssystem einen eigenen Prozessor (falls verfügbar) zugeordnet bekommt. Durch diese Architektur
ist das TOPOS System optimiert für Mehrkernprozessoren mit sechs Kernen. Bei Prozessoren mit mehr als sechs Kernen ist nur eine geringe Leistungssteigerung zu erwarten und es
sollte eher auf die Taktrate der einzelnen Kerne geachtet werden.
3.3 Kalibrierung
In diesem Kapitel wird näher auf die verschiedenen Arten der Kalibrierung und deren Implementierung und Durchführung in der TOPOS Software eingegangen. Die Reihenfolge der
Unterkapitel ist so gewählt, wie sie bei der Ersteinrichtung des Systems durchgeführt werden
sollte.
3.3.1 Gamma Kalibrierung
Die phasenmessende Triangulation basiert auf einer einfachen aber nicht trivialen Annahme:
Das projizierte Sinusmuster ist ideal und wird durch die Kamera wieder als solches erkannt
(Abb. 3.12(a)). Offensichtlich ist diese Voraussetzung schon aufgrund des Vorhandenseins
der Hintergrundhelligkeit nicht erfüllt, denn wird der Projektor ausgeschaltet (ein schwarzes Bild projiziert), so detektiert die Kamera einen Grauwert, der der Hintergrundhelligkeit
entspricht. Ähnliches gilt für den Sättigungsbereich der Kamera. Es ist also in keinem Fall
gegeben, dass der projizierte Grauwert gleich dem detektierten Grauwert ist und somit ist
eine Grundvoraussetzung für die phasenmessende Triangulation nicht erfüllt. Eine Messung
(a) 3D-Ansicht der gemessenen
ebenen Fläche ohne Gamma Kalibrierung.
(b) Aufsicht auf die gemessene
Fläche ohne Gamma Kalibrierung.
(c) Querschnitt durch die gemessene Fläche ohne Gamma Kalibrierung.
Abbildung 3.11: Ansichten einer ebenen Fläche, die mit einem System ohne Gamma Kalibrierung gemessen wurden. Deutlich ist eine Art Sinusmuster mit einer
Amplitude von mehr als 2,0 mm zu erkennen, die von den unterschiedlichen Grauwertabbildungen von Projektor und Kamera resultiert.
mit einem nicht gamma-kalibrierten System ist in Abbildung 3.11 gezeigt. Im Querschnitt
(Abb. 3.11(c)) ist ein regelmäßiges Muster mit einer Amplitude von mehr als 2,0 mm deutlich
erkennbar. Dieses Muster resultiert aus der unterschiedlichen Abbildung der Grauwerte von
44
Kamera und Projektor. Zur Kalibrierung müssen diese Unterschiede aufgenommen werden.
Dazu werden Schritt für Schritt alle 256 Graustufen des Projektors projiziert. Die Kamera
mittelt den detektierten Grauwert über eine kleine Fläche im Zentrum des Messbereichs. Auf
diese Weise kann eine Zuordnung zwischen projiziertem Projektorwert und detektiertem Kamerawert erhalten werden (Abb. 3.12(b)). In dieser Kurve ist deutlich der charakteristisch
langsame Anstieg aufgrund der Hintergrundhelligkeit zu erkennen. In diesem Bereich ist die
Hintergrundhelligkeit heller als der projizierte Grauwert des Projektors, so dass sich dieser
gar nicht oder nur sehr wenig auf den detektierten Grauwert auswirkt. Ein Sättigungsbereich ist aufgrund der optimalen Blendeneinstellung der Kamera in dieser Abbildung nicht
vorhanden. Für die Fragestellung bei der phasenmessenden Triangulation ist es von Vorteil,
gleich korrigierte Grauwerte zu projizieren, um während der Messung unnötige Rechenzeit
sparen zu können. Dazu wird die Umkehrfunktion der aufgenommenen Kalibrierkurve wie
in Abbildung 3.12(c) gebildet. Die resultierende Kurve gibt den zu projizierenden Grauwert
in Abhängigkeit des detektierten Grauwerts wider. Mit Hilfe dieser Kurve ist es nunmehr
möglich ein für die Kamera optimales Sinusmuster für die phasenmessende Triangulation
zu projizieren. Wird dieselbe Messung einer ebenen Fläche wie zu Beginn dieses Kapitels
(a) Ideale Gamma-Kalibrierung.
(b) Aufgenomme Grauwerte der
Kamera.
(c) Zuordnung projizierter Grauwert zu detektiertem Grauwert.
Abbildung 3.12: Kurven der Gamma Kalibrierung. Eine ideale Abbildung der Grauwerte ist
bei keinem System gegeben (a). Die aufgenommene Kalibrierkurve (b) wird
zur einfacheren Handhabung invertiert, so dass eine Funktion des zu projizierenden Grauwerts in Abhängigkeit des gewünschten Grauwerts entsteht
(c).
mit Gamma Kalibrierung durchgeführt, ändert sich das Resultat gravierend. Der in Abbildung 3.13 verwendete Maßstab und die eingezeichneten Farben sind analog zu den Farben in
Abbildung 3.11 gewählt, so dass ein optischer Vergleich das Ergebnis gut zeigt. Das aufgrund
der Phasentriangulation in Verbindung mit Ungenauigkeiten bei den Grauwertabbildungen
entstehende Muster konnte deutlich reduziert werden. Die Amplitude des Musters beträgt
nunmehr lediglich 0,2 mm und ist damit in einem vertretbaren Rahmen in Hinblick auf die
geforderte Gesamtgenauigkeit des Systems von weniger als 1 mm (vgl. Kapitel 2.2). Der
Grund für die immer noch vorhandenen Unstimmigkeiten bei der Grauwertabbildung sind
zum einen die wechselnde Hintergrundhelligkeit (je nach Tageszeit und Sonnenlichteinfall),
zum anderen die unterschiedlichen Reflexionswinkel bei der Triangulation. Eine mögliche
Verbesserung könnte implementiert werden, indem nicht nur die Gamma-Kurve in der Mit-
45
(a) 3D-Ansicht der gemessenen
ebenen Fläche mit Gamma Kalibrierung.
(b) Aufsicht auf die gemessene
Fläche mit Gamma Kalibrierung.
(c) Querschnitt durch die gemessene Fläche mit Gamma Kalibrierung.
Abbildung 3.13: Ansichten einer ebenen Fläche, die mit einem System mit Gamma Kalibrierung gemessen wurden. Der Abbildungsfehler der Grauwerte konnte um
einen Faktor 10 verringert werden. Die Amplitude des abgebildeten Musters
beträgt nunmehr lediglich ≈ 0,2 mm.
te des Messbereichs aufgenommen wird, sondern auch an anderen Stellen im Messbereich.
Zwischen den resultierenden Kurven müsste dann interpoliert werden. Eine weitere Methode
wäre ein geeignetes Filter nach Berechnung der Phasenkarte zu applizieren. Aufgrund der
Periodizität des Musters, das konsequenterweise mit der Wellenlänge des projizierten Sinusmusters bei der phasenmessenden Triangulation korreliert, kann ein Frequenzfilter auf Basis
der FFT (Fast Fourier Transform) das Sinusmuster fast vollständig ausblenden (Abb. 3.3.1).
Die Amplituden des verbleibenden Musters sind kleiner als 40 µm. Auf diese Art der Nachbehandlung wurde beim TOPOS System aufgrund von Leistungseinbußen und der geforderten
Genauigkeit verzichtet.
Abbildung 3.14: Anwendung eines Frequenzfilters auf die nach der Gamma Kalibrierung
verbleibenden Artefakte.
46
3.3.2 Intrinsische Kalibrierung
Die Theorie der Kalibrierung wurde in Kapitel 2.3.3 ausführlich betrachtet. In diesem Abschnitt soll auf die Integration in der Software und dem Ablauf der Kalibrierung eingegangen
werden. Die Kalibrierung ist notwendig damit aus der Phasenkarte eine dreidimensionale
Punktwolke berechnet werden kann. Die Kalibrierung wird für jede Kamera und für jeden
Projektor die intrinsischen Parameter, die radialen und tangentialen Verzerrungskorrekturen und die extrinsischen Parameter liefern. Das grundlegende Prinzip der Kalibrierung
ist, den Projektor als inverse Kamera zu betrachten [43]. Die Standardsequenz der Bilder,
die zur Messung projiziert werden müssen, ist in Abbildung 3.5 gezeigt und besteht aus 6
Bildern pro Sensoreinheit. Für die Kalibrierung wird eine spezielle Sequenz (siehe Abbildung 3.16) aus insgesamt 13 Bildern pro Sensor verwendet. Als Kalibriervorlage wird, wie in
Abbildung 3.15(a) gezeigt, ein gleichmäßiges Schachbrettmuster aus blauen Quadraten auf
einem roten Hintergrund verwendet. Die Anzahl der blauen Quadrate pro Zeile und Reihe
des Schachbrettmusters ist in der Software konfigurierbar. Die Größe der Quadrate muss
so genau wie möglich bekannt sein. Die Einheit, die bei Angabe der Größe der Quadrate
gewählt wird, ist gleichzeitig die Einheit der Koordinaten der Vektoren in der resultierenden Punktwolke. Der Vorteil der blauen und roten Farben der Kalibrierplatte ist, dass eine
(a) Platte mit Schachbrettmuster zur Kalibrierung
der TOPOS Sensoren. Fünf blaue Quadrate pro
Reihe, vier pro Spalte. Die Größe der blauen und
roten Quadrate beträgt 30 × 30 mm2 .
(b) Erkennung des Schachbrettmusters aus dem
aufgenommenen Kamerabild. Die rote Fläche markiert den analysierten Bereich, die weißen Punkte
markieren die gefundenen Kreuzungen.
Abbildung 3.15: Platte mit Schachbrettmuster zur Kalibrierung der Sensoren und resultierendes Schachbrettmuster im aufgenommenen Kamerabild.
schwarz/weiß Kamera bei gleichmäßig weißer Ausleuchtung der Kalibrierplatte annähernd
kein Schachbrettmuster erkennt. Wird die Platte dagegen mit einem rötlichen Licht beleuchtet, erscheint ein deutliches Schachbrettmuster, da die blauen Flächen annähernd kein rotes
Licht reflektieren. Um das Schachbrettmuster für die schwarz/weiß Kamera sichtbar zu machen (wie in Abbildung 3.15(b) dargestellt), wird das erste Bild der Sequenz (Abb. 3.16(a)),
ein gleichmäßig rötlich ausgeleuchteter Bereich, verwendet. Zusätzlich sind in dieser Abbildung die automatisch detektierten Kreuzungen des Schachbretts eingezeichnet. Die so
47
(a) Bild 1/13. (b) Bild 2/13. (c) Bild 3/13. (d) Bild 4/13. (e) Bild 5/13. (f) Bild 6/13. (g) Bild 7/13.
(h) Bild 8/13. (i) Bild 9/13. (j) Bild 10/13. (k)
11/13.
Bild (l) Bild 12/13. (m)
13/13.
Bild
Abbildung 3.16: Sequenz der projizierten Bilder bei der Kalibrierung. Das erste Bild
wird zur Kalibrierung der Kamera verwendet, die Bilder 2 bis 13 zur
Projektorkalibrierung.
erhaltenen Pixelkoordinaten der Kreuzungen zusammen mit deren relativen theoretischen
Positionen in Millimeter (Nullpunkt ist die linke obere Ecke) werden als Eingabeparameter
des Kalibrieralgorithmus nach Zhang [44] verwendet. Insgesamt werden für die Kalibrierung
(a) Die horizontale absolute Phasenkarte wird für die Zuordnung
der x-Koordinaten von Projektor
und Kamera benötigt.
(b) Die vertikale absolute Phasenkarte wird für die Zuordnung der
y-Koordinaten von Projektor und
Kamera benötigt.
(c) Umrechnung des detektierten Schachbrettmusters in Abbildung 3.15(b) auf die Sicht des Projektors.
Abbildung 3.17: Arbeitsschritte für die Projektorkalibrierung (Die blauen Bereiche entsprechen Datenpunkten, die als Fehlmessungen identifiziert und deshalb gelöscht wurden).
20 solcher Wertepaare an den Algorithmus übergeben, der daraus die intrinsischen Parameter
und die Verzerrungskorrekturen berechnet. Um den Projektor als inverse Kamera zu verwenden, muss eine Abbildungskarte erstellt werden, die angibt, welches Projektorpixel (up , vp )
auf welches Kamerapixel (uc , vc ) abgebildet wird und umgekehrt. Mit so einer Abbildung
kann die Kamera verwendet werden, um den Projektor „sehen“ lassen zu können. Um diese
Abbildungskarte erstellen zu können, kann wie folgt vorgegangen werden: Die Abbildungen
3.16(b) bis 3.16(g) entsprechen der Standardsequenz, die für normale Messungen verwendet
wird. Aus dieser Sequenz kann eine Zuordnung der x-Koordinate des Projektors up auf die
x-Koordinate der Kamera uc gebildet werden, da zum einen die Position der projizierten
Streifen im Projektorkoordinatensystem und zum anderen, nach Berechnung der absoluten
Phasenkarte (Abb. 3.17(a)), auch die Position des Streifens im Kamerakoordinatensystem
48
bekannt ist. Die Abbildungen 3.16(h) bis 3.16(m) entsprechen einer um 90◦ gedrehten Standardsequenz aus der die Phasenkarte in Abbildung 3.17(b) resultiert, die die Zuordnung der
jeweiligen y-Koordinaten vp und vc erlaubt. Nach Berechnung der horizontalen und vertikalen Phasenkarte kann eine eindeutige Transformation des Kamerakoordinatensystems auf
das Projektorkoordinatensystem angegeben werden. Mit Hilfe dieser Transformation kann
das zuvor von der Kamera detektierte Schachbrettmuster (Abb. 3.15(b)) in das Projektorkoordinatensystem transformiert werden. Das Ergebnis ist ein Schachbrettmuster, wie
es aus Sicht des Projektors erscheinen würde. Die Koordinaten dieses Musters können zusammen mit den relativen theoretischen Koordinaten (analog zur Kamerakalibrierung) dem
Kalibrieralgorithmus übergeben werden, welcher dann die intrinsischen Parameter und die
Verzerrungskorrekturen des Projektors berechnet. In Abbildung 3.18 ist ein Bildschirmfoto
Abbildung 3.18: Bildschirmfoto aus dem Kalibrierassistent der TOPOS Software.
aus dem Kalibrierassistent der TOPOS Software dargestellt. Im oberen Fensterbereich sieht
man den aktuellen Fortschritt der Kalibrierung anhand der Anzahl der aufgenommenen Sequenzen. Die in Abbildung 3.16 gezeigte Sequenz wird kontinuierlich mit einer Frequenz von
4,6 Hz projiziert. Die Berechnung der horizontalen und vertikalen Phasenkarte und die Erkennung der Schachbrettmuster für den Projektor und die Kamera erfolgen automatisch und
ebenfalls kontinuierlich. Da der Kalibrieralgorithmus Aufnahmen des Schachbrettmusters aus
verschiedenen Positionen erfordert, die bestenfalls den gesamten Sichtbereich der Kamera
und Projektionsbereich abdecken, gibt es im Dialog des Assistenten zwei Kontrollfenster.
Das linke Fenster stellt die aktuelle Aufnahme der Kamera mit markierten Muster dar, das
rechte Fenster stellt das bereits in die Projektorkoordinaten transformierte Schachbrett dar.
Erst wenn in beiden Bildern ein gültiges Schachbrettmuster vorhanden ist, kann die Aufnahme zur Kalibrierung verwendet werden. Mit Hilfe einer einfachen Fernbedienung kann
man der Software mitteilen, dass die aktuelle Aufnahme verwendet werden soll. Nach der
zwanzigsten Aufnahme erfolgt die Übergabe der Wertepaare an den Kalibrieralgorithmus.
49
Ein Maß für die Qualität der Kalibrierung kann durch die Rückprojizierung der Schachbrettmuster mit den ermittelten Verzerrungskorrekturen und intrinsischen Parametern erfolgen.
Der Fehler dieser Rückprojektion im Vergleich zu den theoretischen Koordinaten sollte möglichst klein sein. Eine typische Ausgabe des Algorithmus nach der Kalibrierung eines Sensors
ist in Quellcodeausschnitt 3.2 gezeigt. In dieser Ausgabe sind die intrinsischen Parameter
und die Verzerrungskorrekturen von Kamera und Projektor angegeben.
1
INTRINSIC CALIBRATION :
2
Camera c a l i b r a t i o n f o r s e n s o r Right
3
I n t r i n i s c parameters :
4
1809 ,45 0 ,000
5
0 ,000
1804 ,53 258 ,96
0 ,000
0 ,000
6
7
8
9
10
338 ,91
1 ,000
Distortion c o e f f i c i e n t s :
0 ,157
7 ,088
0 ,006
−0 ,007
−97 ,609
Reprojection error :
Avg : 0 , 0 8 3 px , Min : 0 , 0 0 5 px , Max : 0 , 2 8 0 px , StdDev : 0 , 0 5 5 px
11
12
P r o j e c t o r c a l i b r a t i o n f o r s e n s o r Right
13
I n t r i n i s c parameters :
14
1997 ,21 0 ,000
15
0 ,000
1993 ,70 859 ,40
16
0 ,000
0 ,000
17
18
473 ,30
1 ,000
Distortion c o e f f i c i e n t s :
−0 ,093
0 ,105
0 ,000
−0 ,001
0 ,011
19
Reprojection error :
20
Avg : 0 , 1 4 7 px , Min : 0 , 0 1 1 px , Max : 0 , 4 0 5 px , StdDev : 0 , 0 8 2 px
Quellcode 3.2: Ausgabe des Kalibrieralgorithmus
Wie zu erwarten, sind die achsenbezogenen Brennweiten der Kamera (fxc = 1809,45, fyc =
1804,53) und des Projektors (fxp = 1997,21, fyc = 1993,70) ungefähr gleich, also fxc ≈ fyc und
fxp ≈ fyp . Der Erwartungswert der Mittelpunkte der optischen Achse wäre bei einer Kameraauflösung von 640 × 488 entsprechend bei uc0 = 320,5 und v0c = 244,5. Die Abweichung der
tatsächlichen Werte (338,91; 258,96) hiervon ist noch nicht allzu groß und liegt höchstwahrscheinlich an einem nicht ganz parallel zum Objektiv verbauten CCD Chip der Kamera.
Beim Projektor stimmt up0 = 473,30 noch einigermaßen mit dem theoretischen Wert von
512,5 Pixel überein, allerdings liegt v0p = 859,40 schon deutlich vom erwarteten Wert (384,5
Pixel) entfernt. Der Grund hierfür ist, dass die optische Achse des in Projektoren verbauten Objektivs nicht senkrecht zum DMD Chip steht (In der Regel steht ein Projektor auf
Schreibtischhöhe und die Projektion muss schräg nach oben erfolgen, um eine gute Position
des Bildes an der Wand gewährleisten zu können.). Der Fehler der Rückprojektion ist jeweils
in der letzten Zeile eines Abschnitts angezeigt und mit einem durchschnittlichen Fehler von
0,083 Pixel bei der Kamera und 0,147 Pixel beim Projektor in einem sehr guten Bereich. Es
ist zu erwarten, dass der Fehler beim Projektor immer höher ausfällt als bei der Kamera,
50
da für die Kalibrierung des Projektors die Kamera und deren Ungenauigkeiten ebenfalls
beteiligt ist.
3.3.3 Extrinsische Kalibrierung
Die Aufgabe der extrinsischen Kalibrierung ist die Transformation in das gemeinsame Weltkoordinatensystem. Dazu wird dieselbe Kalibrierplatte wie für die intrinsischen Parameter
verwendet. Der Ursprung der Platte ist wie in Abbildung 3.19 gezeigt, durch die linke, obere
Ecke festgelegt, kann aber durch Angabe von Offsetwerten beliebig im Raum verschoben
werden. Da bei den späteren Messungen ein Bezug auf das Isozentrum im Raum benötigt
Abbildung 3.19: Ursprung für die Kalibrierung der extrinsischen Parameter.
wird, muss das Weltkoordinatensystem des TOPOS Systems die gleiche Orientierung wie das
Raumkoordinatensystem haben und der Abstand der beiden Ursprünge bekannt sein. Beispielsweise könnte man die Kalibrierplatte anhand der ortsfesten Laser im Behandlungsraum
ausrichten. Die Kalibrierung der extrinsischen Parameter erfolgt vollkommen analog zu den
intrinsischen Parametern. Die Kalibrierplatte wird mit derselben Bildsequenz beleuchtet, die
auch für die intrinsische Kalibrierung verwendet wird. Dadurch können wieder die Kreuzungen des Schachbrettmusters, sowohl aus Sicht der Kamera als auch aus Sicht des Projektors,
ermittelt werden. Zusammen mit der Information der theoretischen Lage dieser Punkte und
den im vorherigen Kapitel ermittelten intrinsischen Parametern können die extrinsischen
Parameter für Kamera und Projektor, bestehend aus Rotation und Translation, berechnet
werden. Nach Abschluss der Kalibrierung müssen die Lookup-Tabellen (vgl. Kapitel 3.2.3)
neu berechnet werden. Damit ist die Kalibrierung des TOPOS Systems abgeschlossen und
kann durch eine Messung eines Objekts mit bekannten Ausmaßen verifiziert werden.
Bei frühen Experimenten hat sich herausgestellt, dass aufgrund der Forderung des sehr
großen Messbereichs (500 mm × 500 mm × 400 mm) weitere Optimierungen bei der Kalibrierung von Nöten sind. Es hat sich gezeigt, dass es wegen geringer Fehler bei den intrinsischen
und den extrinsischen Parametern an den Messbereichsgrenzen unter Umständen zu großen
Abweichungen der beiden Sensoren kommen kann. Diese Abweichungen zeigen eine große
Abhängigkeit in Bezug auf die Ebene in der die extrinsische Kalibrierung erfolgte. Je weiter
entfernt (in z-Richtung) die Messung erfolgt, desto größer ist die Abweichung der beiden Sensoren. Abbildung 3.20 zeigt einen Querschnitt der Messung eines Zylinders dessen Scheitel
bei z ≈ 280 mm liegt und bei der nur eine extrinsische Kalibrierung bei z = 0 mm erfolgte.
51
Abbildung 3.20: Abweichung zwischen linken und rechten Sensor bei Verwendung nur einer
extrinsischen Kalibrierung.
Deutlich ist das unterschiedliche z-Niveau des linken und rechten Sensors zu erkennen, in
diesem Fall von ∆z = 8,1 mm. Eine erste Verbesserung wäre, die Ebene zur extrinsischen
Kalibrierung nicht bei z = 0 mm (also an der unteren Messbereichsgrenze) zu wählen, sondern in der Mitte des Messbereichs. Dennoch bleibt eine Abweichung an den Rändern von
bis zu 3 mm übrig. Um die Genauigkeit (< 1 mm) auch an den Grenzen des Messbereichs
zu erreichen, kann eine Mischung zwischen Modell-basierter und nicht Modell-basierter Kalibrierung verwendet werden. Dazu ist es möglich mehrere extrinsische Kalibrierungen auf
unterschiedlichen z-Niveaus vorzunehmen und abzuspeichern. Die Daten der dreidimensionalen Punktwolke werden dann durch Interpolation der beiden angrenzenden extrinsischen
Kalibrierungen berechnet. Der in Abbildung 3.21(a) abgebildete Querschnitt eines Zylinders
wurde nach vollständiger Kalibrierung des Systems vorgenommen. Die extrinsische Kalibrierung erfolgte auf insgesamt vier Ebenen bei z1 = 0 mm, z2 = 100 mm, z3 = 200 mm und
z4 = 300 mm. Abbildung 3.21(b) zeigt den berechneten Fehler nach Abzug der Zylinderform.
Der kurzwellige Anteil des Fehlers (blau) ist im Bereich von ±0,32 mm, der langwellige Anteil und damit für die Positioniergenauigkeit ausschlaggebende Teil liegt bei ±0,2 mm. Alle
notwendigen Parameter werden bei der Verwendung mehrerer extrinsischer Kalibrierungen
ebenfalls in Lookup-Tabellen (vgl. Kapitel 3.2.3) hinterlegt, die bei einer Anzahl von vier
Ebenen 125 MB groß sind.
52
(a) Querschnitt durch die Messung eines Zylinders (blau) und Überlagerung mit der Ideallinie (rot).
(b) Formfehler der Messung (der kurzwellige Anteil ist blau markiert, der langwellige Anteil rot).
Abbildung 3.21: Messung eines Zylinders und Berechnung des Formfehlers.
4 Messergebnisse
Inhalt
4.1
Oberflächenmessungen und Messungenauigkeiten . . . . . . . . . . . . .
53
4.2
Messungen der Atemkurve . . . . . . . . . . . . . . . . . . . . . . . . . .
58
4.3
Positionierung mit Hilfe einer Referenzoberfläche . . . . . . . . . . . . .
60
4.1 Oberflächenmessungen und Messungenauigkeiten
Nach der technischen Klärung und der Kalibrierung des Systems sollen in diesem Kapitel
Messergebnisse gezeigt werden. Für die Aufnahmen der Messoberfläche und der Messung der
Leistung des Systems wurde eine Beispielanwendung programmiert, die alle Funktionen der
Sensoren ansprechen kann und die Punktwolke als dreidimensionale Oberfläche in „Echtzeit“
darstellen kann. Beim ersten Start der Anwendung werden die in Kapitel 3.2.3 beschriebenen
Lookup-Tabellen initialisiert. Anschließend ist das System messbereit. Die Sensoren projizieren im Ruhezustand ein schwach dunkelgrünes Licht, um den Messbereich des Systems zu
markieren. Die Messung kann entweder über einen Klick in der Benutzeroberfläche oder
über eine Fernbedienung gestartet und angehalten werden. Momentaufnahmen der Punktwolke können ebenfalls über die Fernbedienung in einer Datei abgespeichert werden. Nach
dem Start der Messung werden die notwendigen Streifenmuster projiziert und die Punktwolke mit 10Hz in der Benutzeroberfläche visualisiert. Der Anwender hat die Möglichkeit
die Oberfläche während der Messung in beliebige Richtungen zu drehen und das Objekt zu
vergrößern oder zu verkleinern. Um ungewollte Objekte ausblenden zu können, kann der
Messbereich manuell über die Eingabe von Messbereichsgrenzen eingeschränkt werden. Für
ein optimales Messergebnis und wegen der in Kapitel 3.3.1 beschriebenen Problematik, ist
es sinnvoll die Gamma-Kalibrierung auf einem vergleichbaren Objekt wie das spätere Messobjekt durchzuführen. Bei zu großen Abweichungen der Reflexionen der Oberflächen kann
es sonst zu Effekten wie in Abbildung 3.11 kommen. Natürlich kann in der Praxis nicht
gewährleistet sein, dass jeder vermessene Patient eine ähnliche Hautfarbe hat. Deshalb ist
in der Software eine automatische Belichtungsregulierung integriert. Dazu wird pro Sensor
und pro Aufnahme ein Helligkeitshistogramm gebildet und iterativ das Projektionsmuster
abgedunkelt oder aufgehellt bis der Peak der Histogrammkurve im helleren Drittel liegt. In
Abbildung 4.1 sind verschiedene Momentaufnahmen von Messungen abgebildet an denen
das erreichbare Messvolumen des Systems gut zu erkennen ist. Es ist zu erwähnen, dass
das erreichbare Messvolumen stark von der Ausrichtung und Lage der Sensoren abhängig
ist und letztendlich nur durch die Leuchtkraft der Projektoren begrenzt ist. Allerdings ver-
54
(a) Gesicht und Oberkörper einer Schaufensterpuppe (b) Gesicht und Oberkörper eines Patienten (Messvo(Messvolumen 600 mm × 350 mm × 310 mm).
lumen 575 mm × 480 mm × 225 mm).
(c) Oberkörper eines auf der rechten Seite liegen- (d) Oberfläche eines Rückens eines Patienten (Messden Patienten (Messvolumen 578 mm × 277 mm × volumen 500 mm × 437 mm × 238 mm).
368 mm).
Abbildung 4.1: Momentaufnahmen von 3D Oberflächen mit dem TOPOS System. Alle Aufnahmen sind während einer mit 10 Hz laufenden Messung entstanden.
55
schlechtert sich bei zunehmendem Messvolumen die Genauigkeit des Systems. Das ist leicht
nachzuvollziehen, da die Auflösung des Systems direkt mit der Wellenlänge des projizierten
Sinusmusters zusammenhängt und damit als Verhältnis von projizierten bzw. detektierten
Pixel zu beleuchteter Fläche ausgedrückt werden kann. Je größer dieses Verhältnis, desto
feiner ist die Auflösung des Systems, da mehr Pixel zur Auswertung pro Quadratmillimeter
zur Verfügung stehen. Vergrößert man das Messvolumen, so verkleinert sich dieses Verhältnis
und die Genauigkeit verschlechtert sich. Es soll im Folgenden gezeigt werden, dass die Messungen bei den in Abbildung 4.1 abgebildeten Volumina im Durchschnitt eine Genauigkeit
von weniger als einem Millimeter aufweisen. Das dargestellte Messvolumen ist groß genug,
um einen menschlichen Oberkörper, zusammen mit Kopf oder Oberschenkeln abzubilden.
Dies ermöglicht aufgrund der größeren Datenmenge eine zuverlässige Registrierung zu einer
Referenzoberfläche und erlaubt auch eine anschaulichere Darstellung in der Benutzeroberfläche.
In Kapitel 2.3.4 wurde die theoretische Auflösung des Systems mit δx = 0,8 mm, δy = 1,0
mm und δz = 0,06 mm bestimmt. Auf dieser Basis wird jetzt die Messgenauigkeit des Systems bestimmt. Dafür wird zunächst eine ebene, glatte Platte vermessen, um das örtliche
Rauschen des Systems zu bestimmen. Abbildung 4.2 zeigt eine Messung des Rauschens eines
Abbildung 4.2: Das mittlere Rauschverhalten eines Sensors über den gesamten Messbereich
wurde zu σz = 0,34 mm bestimmt.
Sensors auf der gesamten Messoberfläche. Die Standardabweichung ergibt hierfür einen Wert
von σz = 0,34 mm. Dieser dient als Richtwert, mit welcher Genauigkeit ein einzelner Messpunkt maximal angegeben werden kann. In der Grafik ist außerdem zu erkennen, dass das
Rauschen mit zunehmendem Abstand (größere x und y Werte) zum Sensor ansteigt. Das ist
mit der Tatsache zu erklären, dass die Intensität des zurückreflektierten Lichts des Projektors bei größerem Abstand schwächer ist, als bei näheren Messpunkten. Wiederholt man die
Messungen auf Platten mit dunklem Hintergrund ist auch eine Zunahme des Rauschens festzustellen. Um das zeitliche Rauschen eines einzelnen Punktes beurteilen zu können, wurde
56
über einen Zeitraum von einer Minute immer derselbe Messpunkt beobachtet. Aus den 600
Messwerten ergeben sich folgende Standardabweichungen: σx = 0,08 mm, σy = 0,13 mm und
σz = 0,17 mm. Es ist nicht weiter verwunderlich, dass die x-Koordinate mit dem geringsten
Rauschen behaftet ist, da diese direkt über die Phasenkarte Φ und den Kamerakoordinaten
uc und vc ermittelt wird (vgl. Gleichung 3.3). Die Berechnung der y-und z-Koordinaten basiert zusätzlich auf der x-Koordinate (vgl. Gleichungen 3.4 und 3.5) und weist deshalb schon
mindestens das Rauschen der x-Koordinate auf.
Bei der Anwendung des Systems interessiert allerdings weniger das Rauschen, beziehungsweise die Genauigkeit einzelner Messpunkte, als die Lokalisierung und die absolute Vermessung von Objekten. Um diese Fähigkeit zu prüfen, wird ein Zylinder mit bekannten
Ausmaßen (r = 59 mm, h = 122,5 mm) systematisch an 168 Stellen im Messbereich vermessen und jeweils dessen Radius und Höhe ermittelt. Der Wert des Radius erlaubt einen
Rückschluss auf die laterale Genauigkeit, der Wert der Höhe steht in direktem Zusammenhang mit der vertikalen Genauigkeit des Messsystems. In Abbildung 4.3 ist das Ergebnis der
(a) Der maximale Radiusfehler beträgt ∆rmax = (b) Der maximale Höhenfehler beträgt ∆hmax =
1,2 mm, die durchschnittliche Abweichung vom Soll- 1,3 mm, die durchschnittliche Abweichung vom Sollwert ∆r = 0,29 mm.
wert ∆h = 0,28 mm.
Abbildung 4.3: Darstellung des absoluten Fehlers von Radius- und Höhenmessung eines Testzylinders im Messbereich. Die Fläche der Kreise ist proportional zum Fehler,
ausgefüllte Kreise markieren eine positive Abweichung vom Sollwert, transparente Kreise eine negative Abweichung. Die Position der Kreise ist durch
den Mittelpunkt (x, y) des Messzylinders bestimmt.
Messung anschaulich dargestellt. Die Position der Kreise entspricht der lateralen Position
des Messzylinders im Messbereich, die Fläche der Kreise ist proportional zur Abweichung
vom Sollwert. Bei einer positiven Abweichung sind die Kreise ausgefüllt, bei einer negativen
Abweichung sind die Kreise transparent gezeichnet. Der durchschnittliche Radius des Messzylinders wird zu r̂ = 59,1 mm (bei einer Standardabweichung von σr = 0,4 mm) ermittelt,
57
die durchschnittliche Höhe des Messzylinders zu ĥ = 122,7 mm (bei einer Standardabweichung von σh = 0,3 mm). Daraus ergeben sich eine durchschnittliche radiale Abweichung
von ∆r = 0,29 mm und eine durchschnittliche vertikale Abweichung von ∆h = 0,28 mm
zu den Sollwerten. Die größte Abweichung beim Radius beträgt ∆rmax = 1,2 mm, bei der
Höhenmessung ∆hmax = 1,3 mm. Der Radius des Zylinders wird somit sehr gut getroffen
und weicht im Mittel nur 0,1 mm vom Sollwert ab, die Höhe wird im Mittel um 0,2 mm
zu hoch gemessen. Wie zu erwarten war, liefert eine Messung im Zentrum des Messbereichs
die zuverlässigsten Ergebnisse, sowohl in lateraler als auch in vertikaler Richtung. Das liegt
vor allem an dem mit dem Abstand zur optischen Achse zunehmenden Linsenfehler der
Objektive von Projektor und Kamera, so dass die Korrektur dieser Fehler mit Hilfe der
Korrekturterme immer schwerer wird. Im klinischen Einsatz sollte demnach darauf geachtet
werden, dass der Bereich um das Isozentrum herum in der Mitte des Messbereichs liegt, um
eine größtmögliche Genauigkeit gewährleisten zu können.
Ein wichtiger Punkt zum Thema Messgenauigkeit ist die benötigte Aufwärmzeit des
Systems. Aufgrund der in den Projektoren verwendeten Lampen, heizen sich diese nach
dem Einschalten relativ schnell auf und bewirken einen leichten Drift der Messergebnisse.
Abbildung 4.4 zeigt das Verhalten des Systems unmittelbar nach dem Einschalten der Pro-
Abbildung 4.4: Darstellung des Verhaltens des Messsystems nach dem Einschalten.
jektoren. Auf der x-Achse ist die vergangene Zeit in Sekunden, auf der y-Achse der gemessene
z-Wert abgetragen. Bis etwa zweieinhalb Minuten nach dem Einschalten ist ein stetiger Drift
des z-Werts zu beobachten, der nach etwa dreieinhalb Minuten in eine Sättigung übergeht.
Um sicherzustellen, dass sich das System außerhalb dieser Aufwärmphase befindet, sollte
nach jedem Einschalten der Projektoren mindestens fünf Minuten vor der ersten Messung
gewartet werden.
Zum Abschluss dieses Abschnitts sei nochmals auf eine nützliche Eigenschaft des Messprinzips hingewiesen. Durch die drei projizierten Sinusmuster pro Sensor, die zur phasenmessenden Triangulation benötigt werden, ist es möglich ein Foto des Objekts zusammenzustellen.
Für jedes Kamerapixel ergibt sich damit nach Gleichung 3.1 ein vom Streifenmuster unabhängiger Helligkeitswert. Das resultierende Bild kann als Textur der dreidimensionalen
58
Punktwolke überlagert werden. Damit erhält die Darstellung des Messobjekts deutlich mehr
Realitätsnähe wie in Abbildung 4.5 leicht zu erkennen ist. Die Schwierigkeit bei dieser Art der
(a) Darstellung der Messung einer Schachtel ohne (b) Darstellung der Messung einer Schachtel mit überüberlagerte Textur.
lagerter Textur.
Abbildung 4.5: Messung einer Schachtel und Vergleich der Darstellungen mit und ohne überlagerter Textur.
Texturbildung mit einem Zwei-Sensor-System besteht darin, dass die Kameras der Sensoren
je nach Lichteinfall und Reflexionen des Messobjekts einen unterschiedlichen Helligkeitswert
für den gleichen Punkt liefern. Dies äußert sich dann in einer „fleckig“ wirkenden Textur,
die abhängig von der Geometrie des Messobjekts einmal der linke Sensor und einmal der
rechte Sensor Messpunkte zur Oberfläche beisteuert. Will man diese Problematik umgehen,
ist der Einsatz einer dritten Kamera notwendig, die allein für die Aufnahme der Texturen
verantwortlich ist und mittig zwischen den beiden Sensoren angebracht werden müsste.
4.2 Messungen der Atemkurve
Die Detektion von Atembewegungen ist in vielen Bereichen der Medizin notwendig, insbesondere bei der Strahlentherapie, da durch diese Bewegung auch die inneren Organe - und
damit ebenfalls ein eventueller Tumor - mitbewegt [20] werden. Um trotzdem eine erfolgreiche Therapie zu gewährleisten, muss das zu bestrahlende Volumen entsprechend vergrößert
werden, um die Ungenauigkeiten, die durch die Atmung induziert werden, zu kompensieren.
Damit entfällt allerdings auch eine höhere Strahlendosis auf gesundes Gewebe oder angrenzende Risikoorgane. Eine Alternative zur Vergrößerung des Bestrahlungsvolumens beschreibt
das sogenannte Respiratory Gating: Bestrahlt wird nur, wenn die Atemkurve des Patienten
durch den unteren Ruhepunkt verläuft, der Patient also hinreichend definiert gelagert ist. Für
weitere Details zur atemgetriggerten Bestrahlung sei auf Keall u. a. [20] verwiesen. Im Rahmen dieser Arbeit wird im Folgenden nur die Detektion der Atembewegungen beschrieben.
Aufgrund der Schnelligkeit der Oberflächenmessungen ist es möglich, die Bewegungen, die
der Patient aufgrund der Atmung macht, aufzuzeichnen. Dazu wird der betreffende Bereich,
59
der kontrolliert werden soll, vor der Messung markiert (vgl. Abbildung 4.6). Aufgezeichnet
Abbildung 4.6: Vorbereitung zur Aufnahme der Atemkurve.
wird dann die Bewegung des Flächenschwerpunkts bezüglich der Richtung des gemittelten
Normalenvektors des markierten Bereichs. Durch diese Art der Berechnung ist es möglich,
die Positionsänderung unabhängig vom absoluten Messkoordinatensystem zuverlässig zu erfassen. Beispielsweise könnte auf diese Art auch die Atmung eines auf der Seite liegenden
Patienten detektiert werden. Abbildung 4.7 zeigt das Ergebnis einer 30-sekündigen Mes-
Abbildung 4.7: Darstellung einer aufgezeichneten Atemkurve mit TOPOS. Die rote Kurve
stellt die Bewegung der Bauchdecke des Patienten dar. Die blaue Kurve zeigt
einen möglichen Puls, der zum Triggern der Bestrahlungseinheit verwendet
werden kann und sich aus den Pausenzeiten (P) zwischen dem Ausatmen
(AA) und dem Einatmen (EA) ergibt.
sung. Auf der y-Achse ist der Messwert in Millimeter abgetragen, auf der x-Achse die Zeit.
Abgetastet wird der Patient mit der Geschwindigkeit des TOPOS Systems, im Falle der
Prototypen also 10 Mal pro Sekunde, so dass für die Abbildung etwa 300 Messwerte zur
Verfügung standen. Beim Einatmen (EA) hebt sich die Bauchdecke, um sich beim Ausatmen (AA) langsam wieder zu senken. Deutlich ist die für Atemkurven charakteristische Form
zu erkennen, mit einer relativ langen Pause (P) nach dem Ausatmen und dem erneuten Ein-
60
atmen. Während dieser Pause befindet sich die Bauchdecke in einer relativ gut definierten
Position. Die blauen Rechteckpulse sind exemplarisch an den Stellen eingezeichnet, an denen
die Atemkurve unter einen bestimmten Schwellwert fällt (gestrichelte Linie). Diese Kurve
könnte als Trigger für die Bestrahlung dienen, so dass nur bestrahlt wird, falls der Patient
hinreichend ruhig und definiert gelagert ist. Die Art der Ermittlung der Triggerkurve ist nur
exemplarisch gezeigt. In der Praxis müssen komplexere Algorithmen eingesetzt werden, um
die Pausenzeiten zu bestimmen. Des Weiteren ist zu beachten, dass die Atemkurve wegen des
Aufnahmeprinzips von TOPOS mit einer Verzögerung von 200 Millisekunden aufgenommen
wird - die angezeigten Werte hinken den realen Werten also um 200 Millisekunden hinterher.
Um die Atembewegung zum Triggern trotzdem verwenden zu können, kann der tatsächliche
Wert, beispielsweise wie von Ren u. a. [31] beschrieben, geschätzt werden.
4.3 Positionierung mit Hilfe einer Referenzoberfläche
In den vorherigen Kapiteln wurde gezeigt, dass eine Messung mit einer Messunsicherheit
von weniger als 1 mm im Messbereich möglich ist. Die Positionierung des Patienten erfolgt
über zwei Methoden die jeweils einzeln oder zusammen eingesetzt werden können. Zum einen
kann der in Kapitel 2.4 beschriebene Algorithmus zur Bestimmung des Translationsvektors
und des Rotationsvektors verwendet werden, um eine bestmögliche Übereinstimmung mit
der Referenz zu erhalten. Zum anderen liefert eine spezielle, farbkodierte Ansicht der Oberfläche dem Benutzer schnell eine optische Rückmeldung wie gut die Übereinstimmung an
den jeweiligen Körperstellen ist. Zunächst wird der Algorithmus zur Lagebestimmung näher
vorgestellt. Um hinreichend schnell arbeiten zu können, basiert der Algorithmus auf relativ
großen Voxeln, deren Position sich jeweils aus den Mittelwerten der im Voxel enthaltenen
Messpunkte ergibt. Um die mittlere Abweichung und Streuung des Algorithmus zu bestim-
(a) Oberflächenmessung, die als (b) Oberflächenmessung im gesam- (c) Messergebnis der absoluten AbReferenzfläche verwendet wird.
ten Messbereich mit rot eingezeich- weichung von der Referenzoberfläneten Datenpunkten für den Regis- che.
trieralgorithmus.
Abbildung 4.8: Messung des mittleren Fehlers und der Streuung des Algorithmus zur Lagebestimmung einer Schaufensterpuppe.
men, wird wie folgt vorgegangen. Als Messobjekt dient eine Schaufensterpuppe, die auf dem
61
Messtisch fixiert wird. Der Oberkörper der Puppe wird vermessen und als Oberflächenreferenz abgespeichert (vgl. Abb. 4.8(a)). Anschließend wird die Messung gestartet und der
gesamte Oberkörper mit Armen und Kopf vermessen und an den Lagebestimmungsalgorithmus übergeben (vgl. Abb. 4.8(b)). Nachdem sich die Lage der Schaufensterpuppe während
der Aufnahme der Referenz und der Messung nicht geändert hat, ist offensichtlich, dass keine Lagekorrektur notwendig ist. Entsprechend soll der Algorithmus auch keine Korrektur
p
berechnen. In Abbildung 4.8(c) sind die absoluten Abweichungen ∆r = x2 + y 2 + z 2 des
Algorithmus über einen Zeitraum von 5 Minuten dargestellt. Daraus ergibt sich eine mittlere
Abweichung von 0,28 mm bei einer Standardabweichung von 0,12 mm. Abbildung 4.9 zeigt
Abbildung 4.9: Grafische Darstellung der Lagekorrektur in der TOPOS Software.
die grafische Darstellung der Lagekorrektur während der Messung. Dazu wurde die Schaufensterpuppe im Vergleich zur Referenz verschoben und verdreht. Grün halbtransparent ist
die Referenzoberfläche eingezeichnet, die tatsächliche Messung ist gräulich mit überlagerter Textur dargestellt. Die Lagekorrektur wird über ein dreidimensionales Achssystem mit
Pfeilen gezeigt. Je größer die Abweichung, desto größer wird der gezeichnete Pfeil. Die Rotationswinkel sind ebenfalls als Pfeile um die jeweilige Achse gezeichnet - auch hier gilt je größer
der Pfeil, desto größer der Winkel. Die Translationspfeile werden versteckt, wenn die Abweichung kleiner als 0,3 mm ist, die Rotationspfeile verschwinden bei einem kleineren Winkel
als 1◦ . Die benötigte Transformation in Abbildung 4.9, um deckungsgleich zur Referenz zu
werden, berechnet der Algorithmus zu ∆x = −141,3 mm, ∆y = −21,7 mm ∆z = −3,0 mm
und ∆α = 0,0◦ , ∆β = −0,2◦ , ∆γ = 8,7◦ , wobei α, β und γ die Rotationswinkel um die
x-, y- und z-Achse sind. Für die Standardabweichung (ebenfalls über einen Zeitraum von
5 Minuten ermittelt) ergibt sich ein Wert von 0,9 mm für die Translation und 0,2◦ für
die Rotation. Durch die ständige Aktualisierung dieser Werte ist es dem Benutzer möglich,
62
die Puppe wieder in den Ausgangszustand zurückzubringen, bis die Pfeile des Achssystems
verschwinden. Diese Koordinaten könnten auch direkt an einen 6-Achsen-Tisch übermittelt
werden, um eine automatische oder halbautomatische Positionierung zu ermöglichen.
(a) Oberflächenmessung, die als Referenzfläche ver- (b) Oberflächenmessung im gesamten Messbereich.
wendet wird.
(c) Messergebnis der absoluten x- (d) Messergebnis der absoluten y- (e) Messergebnis der absoluten zAbweichung von der Referenzober- Abweichung von der Referenzober- Abweichung von der Referenzoberfläche.
fläche.
fläche.
Abbildung 4.10: Messung des mittleren Fehlers und der Streuung des Algorithmus zur Lagebestimmung an einem Patienten.
Um das Verhalten des Algorithmus an einem realen Objekt untersuchen zu können, wurde im Folgenden ein ähnlicher Versuch an einem Patienten getestet. Dazu wurde in einem
ersten Schritt eine Referenzoberfläche des Oberkörpers des Patienten ohne Arme und Kopf
aufgenommen. Anschließend wurde der Patient auf dem Tisch grob positioniert und die
Stabilität des Lagealgorithmus aufgenommen. Abbildung 4.10 zeigt das Ergebnis des Versuchs. In Abbildung 4.10(a) ist die aufgenomme Referenz abgebildet, in Abbildung 4.10(b)
die Kontrollpunkte für den Algorithmus. In diesem Fall werden statt der Gesamtabweichung
∆r die Einzelkomponenten in den Abbildungen 4.10(c), 4.10(d) und 4.10(e) dargestellt. Die
Komponenten ∆x und ∆y zeigen ein ähnliches Verhalten über den Messzeitraum von 70
Sekunden und die Lagekorrektur ändert sich kaum. ∆x hat einen Mittelwert von 0,0 mm
bei einer Standardabweichung von 0,25 mm und ∆y liegt im Mittel bei 0,1 mm bei einer
Standardabweichung von 0,24 mm. ∆z zeigt im Vergleich zu den beiden anderen Komponenten allerdings einen signifikanten Anstieg von 0,0 mm bis etwa 1,3 mm nach 70 Sekunden.
Die um die Regressionsgerade bereinigte Standardabweichung ergibt für ∆z einen Wert von
63
0,29 mm. Der Grund für die fast doppelt so hohe Standardabweichungen wie im Vergleich
zur Messung der Schaufensterpuppe liegt darin begründet, dass der Patient aufgrund von
Atembewegungen niemals vollständig ruhig gelagert ist und der Lagealgorithmus in gewisser Weise versucht die Atembewegungen zu korrigieren. Das Verhalten der z Komponente
lässt sich mit einem allgemeinen Absenken der Körperoberfläche mit der Zeit begründen. Es
ist bekannt, dass der Patient sich mit zunehmender Zeit immer weiter entspannt, was bei
Rückenlage zu einem allgemeinen Absinken der Bauchdecke führt. Dies spiegelt sich hauptsächlich in der z-Komponente der Lagekorrektur wider.
Mit Hilfe des oben beschriebenen Verfahrens, ist es durch Anzeige der Winkel und der halbtransparenten Referenzoberfläche schon sehr schnell möglich den Patienten zu positionieren.
In praktischen Tests stellte sich aber heraus, dass gerade die manuelle Feinabstimmung mit
diesem Verfahren schwierig ist, zum anderen wäre es gut eine optische Rückmeldung über
die Qualität der Lagerung an expliziten Körperstellen zu bekommen. Deshalb wurde eine
zusätzliche Methode zur Patientenpositionierung integriert, basierend auf einer farbkodierten, dreidimensionalen Ansicht. Dazu werden die Datenpunkte der Referenzoberfläche in eine
dreidimensionale Gitterstruktur eingeordnet. Die Größe der Zellen ist frei konfigurierbar und
hängt im Wesentlichen von der Größe des zur Verfügung stehenden Arbeitsspeichers ab (beide Prototypen haben eine Zellgröße von 4×4×4 mm3 voreingestellt). In einem zweiten Schritt
werden die Nachbarzellen jeder gefüllten Zelle mit den Koordinaten des am nächstliegenden
Datenpunktes der Referenzoberfläche gefüllt. Der zweidimensionale Fall ist in Abbildung 4.11
Abbildung 4.11: Population eines zweidimensionalen Gitters zur farbkodierten Darstellung.
Die Inhalte der Zellen sind in unterschiedlichen Farben markiert, um die
Herkunft der Werte der Nachbarzellen zu verdeutlichen.
dargestellt. Anstelle einer Oberfläche wird hier eine Linie in ein zweidimensionales Gitter
eingeordnet, so dass die Punkte auf der Linie entstehen. Im nächsten Schritt werden die
acht direkten Nachbarzellen dieser Punkte mit dem jeweils nächstliegenden Punkt gefüllt,
zu sehen am selben Symbol in der Abbildung. Dieser Schritt wird so oft wiederholt bis der
Bereich des Gitters gefüllt ist, der für die farbkodierte Darstellung verwendet werden soll.
Soll beispielsweise bei einer Abweichung von ±24 mm die Farbkodierung einsetzen, muss der
letzte Schritt bei einer Zellgröße von 4 × 4 × 4 mm3 insgesamt sechs mal wiederholt werden.
64
Mit Hilfe dieses Gitters ist es nun ohne zeitaufwendige Rechnung möglich, zu jedem Datenpunkt der Punktwolke während der Messung den kürzesten Abstand zur Referenzoberfläche
zu bestimmen. Dazu muss lediglich die Gitterposition des Datenpunkts berechnet werden,
denn der darin gespeicherte Wert repräsentiert bereits den nächstliegenden Punkt auf der
Referenzoberfläche, so dass der Abstand zur Referenz als Maß für den Farbwert verwendet
werden kann. Um eine Richtungsdifferenzierung zu erlauben, also um aufgrund der verwendeten Farbe zu sehen, ob der Datenpunkt beispielsweise über oder unter der Referenz liegt,
wird analog zum ersten Gitter ein zweites Gitter mit den entsprechend gemittelten Normalenvektoren erstellt. Mit deren Hilfe ist es möglich einen vorzeichenbehafteten Abstandswert
zu bilden, und so je nach Vorzeichen einen anderen Farbwert darzustellen. Die verwendeten
Farben sind unter Berücksichtigung einer möglichen Rot-Grün-Sehschwäche eines Benutzers
die Grundfarben Rot, Gelb und Blau. Datenpunkte, die innerhalb der Referenzoberfläche
liegen werden rot markiert, Datenpunkte die außerhalb liegen blau und Datenpunkte die auf
der Referenz liegen gelb. Der Toleranzbereich ist frei wählbar und die Farbwerte werden zwischen den Grundfarben entsprechend interpoliert. Im bestmöglichen Fall ist die gemessene
Abbildung 4.12: Farbkodierte Darstellung einer optimal positionierten Schaufensterpuppe
mit überlagerter Textur.
Oberfläche also ausschließlich Gelb gezeichnet. Abbildung 4.12 zeigt den optimalen Fall einer
einheitlich gelb gezeichneten Oberfläche, also einer perfekten Positionierung der Schaufensterpuppe. Liegen die Datenpunkte außerhalb der vorberechneten Werte des Gitters (±24 mm
im obigen Beispiel) werden die Datenwerte wie gewöhnlich in Grauwerten dargestellt. Das
rote, bzw. blaue „Band“ zwischen dem gelben und grauen Bereich ist die Konsequenz einer
kleineren Referenzoberfläche im Vergleich zur gemessenen Oberfläche. Angrenzende Datenpunkte werden bis zu einem Abstand von 24 mm farbkodiert und mit der Referenz korreliert, entsprechend ist die Dicke des „Bandes“ in diesem Fall 24 mm. In Abbildung 4.13 sind
neun Beispielmessungen der Schaufensterpuppe mit eingeschalteter Farbkodierung zu sehen.
Wahlweise hat der Benutzer die Möglichkeit die Referenzoberfläche halbtransparent einzublenden, wie beispielsweise in Abbildung 4.13(d) gut zu erkennen ist. Im Allgemeinen muss
der klinische Alltag zeigen, welche Darstellungsformen für die Benutzer am praktischsten
65
(a) Verschiebung in x-Richtung um (b) Verschiebung in x-Richtung um (c) Verschiebung in x-Richtung um
+5 mm (ohne Referenz).
+5 mm (mit Referenz).
−5 mm (ohne Referenz).
(d) Verschiebung in x-Richtung um (e) Verschiebung in y-Richtung um (f) Verschiebung in y-Richtung um
−5 mm (mit Referenz).
+5 mm (ohne Referenz).
+5 mm (mit Referenz).
(g) Verschiebung in y-Richtung um (h) Verschiebung in y-Richtung um (i) Verschiebung in z-Richtung um
−5 mm (ohne Referenz).
−5 mm (mit Referenz).
−5 mm (ohne Referenz).
Abbildung 4.13: Beispielmessung einer Oberfläche mit farbkodierter Darstellung bei einer
Toleranz von ±5 mm von intensivem Rot zu Blau jeweils mit und ohne
eingeblendeter halbtransparenter Referenzoberfläche.
66
sind.
Der Algorithmus zur farbkodierten Darstellung arbeitet vollkommen unabhängig zum Algorithmus für die Oberflächenregistrierung, so dass ein optisches Kontrollsystem existiert,
um eine Falschmessung sofort erkennen zu können. Der spätere Arbeitsablauf sollte also wie
folgt sein. Die Oberflächenregistrierung schlägt eine Positionskorrektur für einen 6-AchsenTisch vor, die der Benutzer bestätigt und falls notwendig iterativ wiederholt. Bei hinreichend guter Übereinstimmung der beiden Oberflächen wird die Farbkodierung automatisch
zugeschaltet und der Benutzer kann anhand der Farben sehr schnell erkennen, ob einzelne
Körperregionen anders positioniert sind als zur Aufnahme der Referenz. Das ist insbesondere von Vorteil, da die 6-Achsen-Korrektur und der Algorithmus immer von einem starren
Körper ausgehen. Da der Patient und die bestrahlte Oberfläche sich mit der Zeit veränderen
(Relaxation, Gewichtsverlust, etc.) hat der Benutzer mit Hilfe der farbkodierten Oberfläche
immer ein optisches Merkmal für die Qualität der Positionierung. Um einen objektiven Wert
über die Qualität der Messung zu erhalten, wird in dieser Arbeit die normierte, mittlere Abweichung jedes Datenpunkts zur Referenzoberfläche eingeführt. Dazu werden alle Abstände
der Datenpunkte pi zu den jeweils nächstliegenden Referenzpunkten p̂i aufaddiert, durch
die Gesamtanzahl dividiert und auf die eingestellte maximal dargestellte Abweichung σ (hier
24 mm) normiert:
n
1 X
Q = Θ(1 −
(pi − p̂i ))
(4.1)
nσ i
wobei Θ(x) die Heavyside Funktion beschreibt. Q = 0 gilt, falls keine Übereinstimmung
mit der Referenzoberfläche vorhanden ist, Q = 1, falls maximale Übereinstimmung vorliegt. Es ist offensichtlich, dass dieser Wert in der Praxis nicht konstant ist und aufgrund
(a) Darstellung des Qualitätswerts Q über einen Zeitraum von 160 Sekunden.
(b) Farbkodierte Darstellung des
Oberköpers während des Einatmens.
Abbildung 4.14: Zeitlicher Verlauf des Qualitätswerts Q und Momentaufnahme des Oberkörpers während dem Einatmen.
der Atembewegungen eine Art Oszillation beschreiben wird. Dies wird besonders in der
farbkodierten Darstellung deutlich (vgl. Abb. 4.14(b)), wo sich beim Einatmen die Flächen
im Bauchbereich leicht ins Bläuliche verschieben und somit außerhalb der aufgenommenen
67
Referenzoberfläche liegen. Abbildung 4.14(a) zeigt eine Aufnahme des Qualitätswert über
knapp drei Minuten mit der erwarteten Oszillation und einer leicht fallenden Tendenz. Diese
Tendenz wurde indirekt auch schon in Abbildung 4.10(e) beobachtet und hat als Grund die
Entspannung des Körpers mit längerer Liegezeit. Bei Labortests mit den Prototypen hat
sich ein Schwellwert mit Q = 90 % als sehr gut reproduzierbar ergeben, allerdings muss die
Praxis zeigen, ob dieses Niveau auch im klinischen Alltag zu erreichen ist.
5 Integration in klinische
Arbeitsabläufe
Nach Besprechung der Messergebnisse im vorherigen Kapitel, soll hier ein kurzer Ausblick auf
die Integration in den Behandlungsraum und den klinischen Arbeitsablauf gegeben werden.
Wie bereits erwähnt, ist einer der Prototypen bereits in einem Behandlungsraum des Universitätsspitals Zürich installiert, um dort Testergebnisse unter klinischen Bedingungen liefern
zu können. Parallel dazu wird zusammen mit dem dortigen Personal eine Bedieneroberfläche
entwickelt, die es erlaubt, die Patientenpositionierung nahtlos in den klinischen Ablauf einzufügen. Die Entwicklung dieser Software erfolgt in mehreren Schritten. Als erstes wird eine
eigenständige Software entwickelt, in der Patientendatensätze unabhängig vom klinischen
Verwaltungssystem angelegt werden können (vgl. Abb. 5.1(a)). Im nächsten Schritt werden
(a) Anlegen eines neuen Patientendatensatzes.
(b) Fallauswahl vor einer Behand- (c) Ansicht der Fallverwaltung, um neue Fälle hinzuzufügen/zu lölung.
schen oder Referenzoberflächen zuzuordnen.
Abbildung 5.1: Ansicht des integrierten Fallverwaltungssystem der TOPOS Software.
gängige Schnittstellen zu Patientenverwaltungssystemen implementiert, um vorhandene Patientendatensätze in die TOPOS Software importieren zu können. In einem Datensatz sind
sowohl alle persönliche Daten des Patienten, wie Name, Geschlecht, Alter sowie ein Bild des
Patienten gespeichert, um Verwechslungen oder eine falsche Auswahl möglichst ausschließen
zu können, als auch die Behandlungsfälle mit Details zur Bestrahlung, Lagerung und der für
das TOPOS System notwendigen Referenzoberflächen. Letztere können entweder wie zuvor
beschrieben mit dem TOPOS System selbst aufgenommen werden, als auch aus einem be-
69
stehenden CT-Datensatz, der als Grundlage zur Bestrahlung in den meisten Fällen vorliegt,
rekonstruiert werden. Der CT-Datensatz kann mit Hilfe des ITK -Toolkits (vgl. Kapitel 3.2.1
aus Daten im DICOM -Format (Digital Imaging and Communications in Medicine) ausgelesen werden. Von der Genauigkeit betrachtet ist es allerdings sinnvoll die Referenzoberfläche
mit den TOPOS Sensoren aufzunehmen, da sich dadurch die systematischen Fehler des Messsystems gegenseitig aufheben. Welche Genauigkeiten mit CT-Daten als Referenz erreichbar
sind, müssen klinische Studien in den nächsten Monaten zeigen. Der prinzipielle Arbeitsablauf ist in Abbildung 5.2 dargestellt. Der Anwender wählt in der TOPOS Software den zu
Abbildung 5.2: Arbeitsablauf einer Bestrahlung im klinischen Alltag.
behandelnden Fall aus (vgl. Abb. 5.1(b)). Bei Anbindung an das Patientenverwaltungssystem
der Klinik wird der ausgewählte Patient automatisch in der TOPOS Software übernommen,
so dass dieser Schritt im Arbeitsablauf entfällt. Anschließend erfolgt eine grobe Vorpositionierung des Patienten auf dem Behandlungstisch und eventuelle Positionierhilfen werden
eingerichtet. Anschließend werden die Oberflächenmessungen mit dem TOPOS System vom
Behandlungsraum aus gestartet. Ist eine Anbindung an einen 6-Achsen-Tisch vorhanden,
kann die Lagekorrektur automatisch erfolgen: Das TOPOS System schlägt eine Änderung der
Tischposition vor, die der Bediener bestätigen muss, so dass letztendlich immer der Anwender die letzte Verantwortung trägt. Die automatische Positionierung kann sofort und intuitiv
über die unabhängige, farbkodierte Darstellung vom Anwender verifiziert und gegebenenfalls
korrigiert werden. Als Indikator für die Qualität der Lagerung wird fortlaufend die aktuelle
Lagerungsqualität gemäß Gleichung 4.1 angezeigt. Ist die Lage des Patienten hinreichend
gut, kann mit der Bestrahlung begonnen werden. Während der tatsächlichen Bestrahlung
erfolgt eine weiterhin kontinuierliche Vermessung, sowie Lage- und Qualitätsbestimmung des
Patienten. Zum einen kann die Software damit bei plötzlich auftretenden Lageänderungen
des Patienten (z. B. aufgrund von starkem Husten) eine Warnung anzeigen, gegebenenfalls
die Bestrahlung sogar unterbrechen, oder die Atemkurve des Patienten für eine atmungsgetriggerte Bestrahlung (Gating, vgl. Kapitel 4.2) verwenden. Zum anderen kann die gemessene
Lage als Qualitätssicherung und Beurteilung der Behandlung archiviert werden, um auch im
Nachhinein eine Aussage treffen zu können, ob während des gesamten Behandlungszeitraums
70
eine Bestrahlung des gesamten Zielvolumens immer gewährleistet war. In die Darstellung zur
Abbildung 5.3: Darstellung der Oberfläche im Modus Patientenpositionierung. In der Mitte
ist die 3D-Ansicht mit Farbkodierung dargestellt, rechts daneben frei konfigurierbare Schnittbilder.
Patientenpositionierung (Abbildung 5.3) wird nach Programmstart oder nach der Fallauswahl automatisch gewechselt, so dass der Anwender die Messung sofort starten kann. Links
ist der ausgewählte Fall eingeblendet, mittig die farbkodierte 3D-Ansicht der Oberfläche des
Patienten. Rechts daneben sind konfigurierbare Schnittbilder (hier Längs- und Querschnitt)
der Oberfläche dargestellt. Viele Parameter der Darstellungen sind frei konfigurierbar, so
dass der Bediener die Möglichkeit hat, die Anzeige individuell an seine Bedürfnisse anzupassen. Das betrifft sowohl den eingestellten initialen Blickwinkel der 3D-Ansicht, als auch
die Anzahl und die Position der Schnittebenen. Des Weiteren sind die Farben in der farbkodierten Darstellung und die dort eingestellten Toleranzen frei wählbar. Rechts oben ist in
jeder Ansicht der Software der ausgewählte Patient mit Foto (falls vorhanden) abgebildet,
um der Gefahr einer Verwechslung vorzubeugen. Zusammenfassend ist zu betonen, dass die
Software in Zusammenarbeit mit dem Personal so benutzerfreundlich wie möglich konzipiert
wird, um eine schnelle und objektive Patientenpositionierung zu erlauben, so dass Vorteile
sowohl für den Patienten als auch für den Anwender entstehen.
6 Zusammenfassung und Ausblick
In der vorliegenden Arbeit wurde ein neues, auf strukturiertem Licht basierendes Patientenpositionierungssystem für die Strahlentherapie vorgestellt. Das System ermöglicht eine
schnelle und objektive Lagerung des Patienten und ist unkompliziert zu bedienen.
Mit der Verwendung von strukturiertem Licht ist eine nicht-invasive Messmethode entwickelt worden, die mit Hilfe von Standardkomponenten bestehend aus PCs, Kameras und
Projektoren realisiert werden konnte. Durch leistungsfähige Komponenten ist es gelungen
zum einen eine Messgenauigkeit von weniger als 1 mm auf einem Messbereich von 500 ×
500 × 400 mm3 (L × B × H) zu erreichen, zum anderen eine Aktualisierungsrate von 10 Hz
pro Sensoreinheit zu gewährleisten. Mit dieser Messgeschwindigkeit ist es möglich geworden,
neue Darstellungen zur Patientenposition zu entwickeln, die eine intuitive und objektive
Lagekorrektur ermöglichen: Eine farbkodierte 3D-Ansicht und ein Achssystem mit größenveränderlichen Richtungsangaben zu Translation und Rotation. Letzteres basiert auf den
Ergebnissen eines Algorithmus zur Oberflächenregistrierung der kontinuierlich die gemessene Oberfläche mit einer Referenzoberfläche registriert. Die Farbkodierung wird voxelbasiert
berechnet und zeigt je nach Abstand des Punktes auf der gemessenen Oberfläche zum nächstliegenden Punkt auf der Referenzoberfläche einen anderen Farbwert an. Zusätzlich wird unter Zuhilfenahme der Normalenvektoren eine Orientierung dieses Abstands vorgenommen,
so dass unterschiedliche Farben für Punkte innerhalb und außerhalb der Referenzoberfläche
verwendet werden können. Beide Algorithmen zur Darstellung sind voneinander unabhängig und können zur gegenseitigen Verifikation verwendet werden. Im Rahmen dieser Arbeit
wurde ein weiterer Vorteil der schnellen Messgeschwindigkeit gezeigt, die Aufnahme der
Atembewegungen des Patienten. Sowohl die typische Atmungskurve als auch das kontinuierliche Absinken der Bauchdecke aufgrund von Muskelrelaxationen nach längerem Liegen
konnten mit dem Messsystem beobachtet werden.
Die Atemkurve könnte im klinischen Ablauf zur atmungsgesteuerten Bestrahlung verwendet werden und würde somit zum einen Investitionskosten für ein eigenes System sparen,
zum anderen wäre es patientenfreundlicher und schneller anzuwenden, da es ohne konventionelle Marker wie bei herkömmlichen Systemen auskommt. Die Verwendung von CT-Daten
als Referenzoberfläche hätte einen ebenfalls nicht zu unterschätzenden Vorteil, da somit
der zeitaufwendige Schritt der Simulation und die Aufnahme der Referenzoberfläche entfallen kann, da ein CT-Datensatz nahezu bei jeder Strahlenbehandlung vorhanden ist. Durch
die Berechnung der Translations- und Rotationsvektoren besteht die Möglichkeit einen 6Achsen-Tisch direkt anzusprechen und eine halbautomatische Lagekorrektur anzubieten. Es
72
wäre sogar denkbar, bei hinreichender Erprobung des Systems, eine vollautomatische Positionsnachführung auch während der Bestrahlung zu implementieren.
In den nächsten Monaten müssen zunächst klinische Tests durchgeführt werden, um die
Ergebnisse, die in dieser Doktorarbeit erarbeitet wurden, auch im klinischen Alltag zu bestätigen. Wenn diese Tests eine Verbesserung bei der Patientenpositionierung bescheinigen,
steht einer Weiterentwicklung des Systems in unterschiedlichste Richtungen nichts mehr im
Weg.
Literaturverzeichnis
[1] Amaldi, U. ; Kraft, G.: Radiotherapy with beams of carbon ions. In: Reports on
Progress in Physics 68 (2005), S. 1161–1882
[2] Bamberg, M. ; Molls, M. ; Sack, H.: Radioonkologie. Bd. 2. H. Sack, 2009
[3] besl, P. ; McKay, N.: A method for Registration of 3-D Shapes. In: IEEE Transactions
on Pattern Analysis and Machine Intelligence (PAMI) 14 (1992), Nr. 2, S. 239–256
[4] Bradski, Gary ; Kaehler, Adrian: Learning OpenCV. O’Reilly Media, 2008
[5] Bronstein, I. N. ; Semendjajew, K. A. ; Musiol, G. ; Mühlig, H.: Taschenbuch
der Mathematik. Harri Deutsch, 2001
[6] Buck, Ian: Taking the Plunge into GPU Computing. In: Pharr, Matt (Hrsg.) ; Fernando, Randima (Hrsg.): GPU Gems 2: Programming Techniques for High-Performance
Graphics and General-Purpose Computation. Addison-Wesley Professional, 2005, S. 509
– 520
[7] Cloutot, L.: Ein schneller 3D-Sensor nach dem Prinzip der phasenmessenden Triangulation, Universität Erlangen, Dissertation, 1999
[8] DALSA Corporation: CCD vs. CMOS. – URL http://www.dalsa.com/corp/
markets/ccd_vs_cmos.aspx. – Zugriffsdatum: 04.12.2010
[9] Deutsche Krebshilfe e. V.: Expertengespräch zum Thema Strahlentherapie. Oktober 2010. – URL http://www.krebshilfe.de/tv-beitrag-in-vivo-22.html. –
Zugriffsdatum: 05.10.2010
[10] Douglass, Michael R.: DMD reliability: A MEMS success story. In: SPIE Proceedings
4980 (2003), S. 1 – 11
[11] Fitzgibbon, Andrew W.: Robust Registration of 2D and 3D Point Sets. In: Image and
Vision Computing 21 (2003), Nr. 13-14, S. 1145–1153
[12] Ghiglia, Dennis C. ; Pritt, Mark D.: Two-Dimensional Phase Unwrapping: Theory,
Algorithms, and Software. New York : John Wiley & Sons, 1998
[13] Goldstein, R. M. ; Zebker, H. A. ; Werner, C. L.: Satellite radar interferometry:
two-dimensional phase unwrapping. In: Radio Science 23 (1988), Nr. 4, S. 713 – 720
[14] Guan, Dah-Jyh: Generalized Gray Codes with Applications. In: Proc. Natl. Sci. Counc.
Repub. Of China 22 (1998), Nr. 6, S. 841–848
74
[15] Henn, Stefan ; Jarre, Florian ; Witsch, Kristian: Mathematische Bildverarbeitung
- Ein Überblick über verschiedene Modelle und Methoden zur Registrierung digitaler
Bilddaten. In: Jahrbuch der Heinrich-Heine Universität Düsseldorf (2002), S. 177–188
[16] Herráez, Miguel A. ; Burton, David R. ; Lalor, Michael J. ; Clegg, David B.:
Robust, simple, and fast algorithm for phase unwrapping. In: APPLIED OPTICS 35
(1996), Nr. 29, S. 5847 – 5852
[17] Husmann, Gabrielle ; Kaatsch, Peter ; Katalinic, Alexander ; Bertz, Joachim ; Haberland, Jörg ; Kraywinkel, Klaus ; Wolf, Ute: Krebs in Deutschland 2005/2006.
Häufigkeiten und Trends. 2010
[18] Janesick, James R.: Scientific charge-coupled devices. SPIE Press, 2001
[19] Jian, Bing ; Vemuri, Baba: A Robust Algorithm for Point Set Registration Using
Mixture of Gaussians. In: 10th IEEE International Conference on Computer Vision
(ICCV 2005) (2005), S. 1246–1251
[20] Keall, Paul J. ; Mageras, Gig S. ; Balter, James M. ; Emery, Richard S. ; Forster,
Kenneth M. ; Jiang, Steve B. ; Kapatoes, Jeffrey M. ; Low, Danial A. ; Murphy,
Martin J. ; Murray, Brad. R. ; Ramsey, Chester R. ; Herk, Marcel B. V. ; Vedam,
S. S. ; Wong, John W. ; Yorke, Ellen: The Management of Respiratory Motion in
Radiation Oncology. In: Medical Physics 33 (2006), September, Nr. 10, S. 3874–3900
[21] Khronos Group: OpenGL - The Industry’s Foundation for High Performance Graphics. 2010. – URL http://www.opengl.org/. – Zugriffsdatum: 10.10.2010
[22] Kitware, Inc.: ITK - Segmentation and Registration Toolkit. 2010. – URL http:
//www.itk.org/. – Zugriffsdatum: 10.10.2010
[23] Kitware, Inc.: VXL - C++ Libraries for Computer Vision. 2010. – URL http:
//vxl.sourceforge.net/. – Zugriffsdatum: 10.10.2010
[24] Klöck, Stephan: Ein genaues und objektives Lagerungsverfahren für Patientinnen und
Patienten in der Strahlentherapie auf Grundlage der optischen 3D-Abtastung. Erlangen,
Friedrich-Alexander-Universität, Medizinische Fakultät, Dissertation, 2000
[25] LAP of America L.C: Pre-Installation Manual: for Installing the Patient Positioning System. – URL http://www.lap-america.com/pdf_files/primers/CT-4-1%
20Primer.pdf. – Zugriffsdatum: 04.12.2010
[26] Lindl, Bastian: Entwicklung eines phasenmessenden Triangulationssensors zur Positionierung von Patienten bei der Strahlentherapie, Universität Regensburg, Diplomarbeit,
2006
[27] Moreland, Kenneth ; Angel, Edward: The FFT on a GPU. In: SIGGRAPH/Eurographics Workshop on Graphics Hardware 2003, July 2003, S. 112 – 119
75
[28] Mothersill, Ian W. ; Cenusa, Margarethe ; Grunwald, Thomas ; Krämer, Günter:
Visuelle Reflexanfälle. In: Psychiatrie und Neurologie 2 (2008), S. 28–30
[29] NIST Dictinary of Algorithms and Data Structures: Gray code. – URL
http://xw2k.nist.gov/dads//HTML/graycode.html. – Zugriffsdatum: 06.10.2010
[30] Owens, John: Streaming Architectures and Technology Trends. In: Pharr, Matt
(Hrsg.) ; Fernando, Randima (Hrsg.): GPU Gems 2: Programming Techniques for
High-Performance Graphics and General-Purpose Computation. Addison-Wesley Professional, 2005, S. 457 – 470
[31] Ren, Qing ; Nishioka, Seiko ; Shirato, Hiroki ; Berbeco, Ross: Adaptive prediction
of respiratory motion for motion compensation radiotherapy. In: Phys. Med. Biol. 52
(2007), October, S. 6651–6661
[32] Rusinkiewicz, Szymon ; Levoy, Marc: Efficient Variants of the ICP Algorithm.
In: Third International Conference on 3-D Digital Imaging and Modeling (3DIM ’01)
(2001), S. 145–153
[33] Schlegel, Wolfgang ; Mahr, Andreas: 3D Conformal Radiation Therapy: Multimedia
Introduction to Methods and Techniques. Berlin : Springer, 2001
[34] Schneberger, Marc: Spezifikation und Einsatz eines Stereokamerasystems zur videobasierten Patientenpositionierung in der Präzisionsstrahlentherapie. Heidelberg,
Ruprecht-Karls-Universität, Dissertation, 2003
[35] Schofield, Marvin A. ; Zhu, Yimei: Fast phase unwrapping algorithm for interferometric applications. In: OPTICS LETTERS 28 (2003), July, Nr. 14, S. 1194 – 1196
[36] Srinivasan, V. ; Liu, H. C. ; Halioua, M.: Automated phase-measuring profilometry
of 3-D diffuse objects. In: APPLIED OPTICS 23 (1984), Nr. 18, S. 3105 – 3108
[37] Statistische Ämter des Bundes und der Länder: Gemeinsames Datenangebot
der Statistischen Ämter des Bundes und der Länder. Dezember 2008. – URL http://
www.statistik-portal.de/Statistik-Portal/de_jb01_jahrtab1.asp. – Zugriffsdatum: 05.10.2010
[38] Strand, Jarle ; Taxt, Torfinn ; Jain, Anil K.: Two-Dimensional Phase Unwrapping
Using a Block Least-Squares Method. In: IEEE Transactions on Image Processing 8
(1999), March, Nr. 3, S. 375 – 386
[39] Sumanaweera, Thilaka ; Liu, Donald: Medical Image Reconstruction with the FFT.
In: Pharr, Matt (Hrsg.) ; Fernando, Randima (Hrsg.): GPU Gems 2: Programming Techniques for High-Performance Graphics and General-Purpose Computation.
Addison-Wesley Professional, 2005, S. 765 – 784
[40] The Open Toolkit Library: The Open Toolkit Manual. 2010. – URL http://www.
opentk.com/. – Zugriffsdatum: 10.10.2010
76
[41] World Health Organization: Cancer. Februar 2009. – URL http://www.who.
int/mediacentre/factsheets/fs297/en/index.html. – Zugriffsdatum: 05.10.2010
[42] Xing, L. ; Lin, Z. ; Donaldson, S. S. ; Le, Q. T. ; Tate, D. ; Goffinet, D. R. ;
Wolden, S. ; Ma, L. ; Boyer, A. L.: Dosimetric Effects of Patient Displacement and
Collimator and Gantry Angle Misalignment on Intensity Modulated Radiation Therapy.
In: Radiotherapy and Oncology 56 (2000), S. 97 – 108
[43] Zhang, Song ; Huang, Peisen: Novel method for structured light system calibration.
In: Optical Engineering 45 (2006), Nr. 8
[44] Zhang, Zhengyou: A Flexible New Technique for Camera Calibratio. In: IEEE Transactions on Pattern Analysis and Machine Intelligence 22 (2000), Nr. 11, S. 1330–1334
Abkürzungsverzeichnis
2D
3D
API
bzgl.
bzw.
CCD
CMOS
CPU
CT
CTV
DCT
DICOM
DLP
DMD
ECMA
etc.
FFT
GMM
GPU
GPGPU
GTV
i. e.
ICP
ICRU
IP
IPC
KVM
LAN
LCD
LCoS
MOSFET
MRI
MTA
OAR
zweidimensional
dreidimensional
Application Programming Interface
bezüglich
beziehungsweise
Charged-Coupled Device
Complementary Metal Oxide Semiconductor
Central Processing Unit
Computertomographie
Clinical Target Volume
Discrete Cosine Transform
Digital Imaging and Communications in Medicine
Digital Light Processing
Digital Micromirror Device
European Computer Manufacturers Association
et cetera
Fast Fourier Transform
Gaussian Mixture Model (Gauß’sches Mischungsmodell)
Graphic Processing Unit
General Purpose Computation on Graphics Processing Unit
Gross Tumour Volume
id est (lat.: das ist; das heißt)
Iterative Closest Point
International Commission on Radiation Units and Measurements
Internetprotokoll
Inter-process communication
Keyboard-Video-Mouse
Local Aera Network
Liquid Crystal Display
Liquid Crystal on Silicon
Metall Oxid Semiconductor Field Effect Transistor
Magnetic Resonance Imaging
Medizinisch-technische Assistentin
Organs at Risk
78
PBS
PC
PCI
PTV
u. a.
VGA
v. l. n. r.
WHO
z. B.
Polarisation Beam Splitter
Personal Computer
Peripheral Component Interconnect
Planning Target Volume
unter anderem
Video Graphics Adapter
von links nach rechts
World Health Organization
zum Beispiel
Abbildungsverzeichnis
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
2.12
2.13
2.14
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11
3.12
3.13
Reihenfolge der einzelnen Schritte bei der Strahlenbehandlung von Tumoren.
Skizze einer Bestrahlungsanlage in der Strahlentherapie. . . . . . . . . . . . .
Funktionsweise eines Positionierungssystems mit Orientierungslasern. . . . . .
Darstellung des GTV, CTV, PTV und der OAR . . . . . . . . . . . . . . . .
Ausschnitt der Arbeitsabläufe bei der Strahlenbehandlung von Tumoren. . . .
Schematische Darstellung der drei Streifenmuster auf einem quaderförmigen
Objekt bei der phasenmessenden Triangulation. . . . . . . . . . . . . . . . . .
Zusammenhang zwischen Einzelintensitäten und berechneter Phase. . . . . .
Prinzip der Phasenentfaltung (Phase Unwrapping). . . . . . . . . . . . . . . .
Schematische Darstellung dreier Binärmuster zur Kompensation der Mehrdeutigkeit bei der phasenmessenden Triangulation. . . . . . . . . . . . . . . .
Schematische Darstellung einer Gray-Code Sequenz. . . . . . . . . . . . . . .
Schematische Darstellung einer erweiterten Gray-Code Sequenz mit drei Graustufenwerten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Schematische Darstellung des Lochkamera Modells. . . . . . . . . . . . . . . .
Zusammenhang der Koordinatensysteme von Kamera und Projektor. . . . . .
Schematische Darstellung des lateralen und vertikalen Messfehler. . . . . . . .
Darstellung und Funktionsweise eines DMD Chips, wie er in DLP-Projektoren
zum Einsatz kommt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Darstellung des Aufbaus eines TOPOS Systems. . . . . . . . . . . . . . . . .
Projektion eines Grauverlaufs und Aufnahme mit unterschiedlichen Belichtungszeiten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Projizierte Sequenz bestehend aus einer Gray-Code Sequenz (obere Reihe)
und drei phasenverschobenen Sinusmustern (untere Reihe). . . . . . . . . . .
Aufnahmen einer vollständigen Sequenz von einem System mit zwei Sensoren.
Aufbau des ersten Prototyps. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Integration des TOPOS System im Behandlungsraum. . . . . . . . . . . . . .
Architektur der TOPOS Software. . . . . . . . . . . . . . . . . . . . . . . . .
Schematische Darstellung aller beteiligten Framebuffer im System. . . . . . .
Schematische Darstellung einer möglichen Aufteilung der Aufgaben in einem
Computersystem mit Mehrkernprozessor. . . . . . . . . . . . . . . . . . . . .
Ansichten einer ebenen Fläche, gemessen ohne Gamma Kalibrierung. . . . . .
Kurven der Gamma Kalibrierung. . . . . . . . . . . . . . . . . . . . . . . . . .
Ansichten einer ebenen Fläche, gemessen mit Gamma Kalibrierung. . . . . .
7
8
9
10
11
13
14
15
16
17
17
18
20
22
27
28
29
30
31
33
34
38
39
42
43
44
45
80
3.14 Anwendung eines Frequenzfilters auf die nach der Gamma Kalibrierung verbleibenden Artefakte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.15 Platte mit Schachbrettmuster zur Kalibrierung der Sensoren. . . . . . . . . .
3.16 Sequenz der projizierten Bilder bei der Kalibrierung. . . . . . . . . . . . . . .
3.17 Arbeistschritte für die Projektorkalibrierung. . . . . . . . . . . . . . . . . . .
3.18 Bildschirmfoto aus dem Kalibrierassistent der TOPOS Software. . . . . . . .
3.19 Ursprung für die Kalibrierung der extrinsischen Parameter. . . . . . . . . . .
3.20 Abweichung zwischen linken und rechten Sensor bei Verwendung nur einer
extrinsischen Kalibrierung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.21 Messung eines Zylinders und Berechnung des Formfehlers. . . . . . . . . . . .
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
4.11
4.12
4.13
4.14
Momentaufnahmen von 3D Oberflächen. . . . . . . . . . . . . . . . . . . . . .
Darstellung des Rauschverhaltens über den Messbereich. . . . . . . . . . . . .
Darstellung des absoluten Fehlers von Radius- und Höhenmessung eines Testzylinders. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Darstellung des Verhaltens des Messsystems nach dem Einschalten. . . . . . .
Messung einer Schachtel und Vergleich der Darstellungen mit und ohne überlagerter Textur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Vorbereitung zur Aufnahme der Atemkurve. . . . . . . . . . . . . . . . . . . .
Darstellung einer aufgezeichneten Atemkurve mit TOPOS. . . . . . . . . . .
Messung des mittleren Fehlers und der Streuung des Algorithmus zur Lagebestimmung einer Schaufensterpuppe. . . . . . . . . . . . . . . . . . . . . . .
Grafische Darstellung der Lagekorrektur in der TOPOS Software. . . . . . . .
Messung des mittleren Fehlers und der Streuung des Algorithmus zur Lagebestimmung an einem Patienten. . . . . . . . . . . . . . . . . . . . . . . . . .
Population eines zweidimensionalen Gitters zur farbkodierten Darstellung. . .
Farbkodierte Darstellung einer optimal positionierten Schaufensterpuppe mit
überlagerter Textur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Beispielmessung einer Oberfläche mit farbkodierter Darstellung. . . . . . . . .
Zeitlicher Verlauf des Qualitätswerts Q und Momentaufnahme des Oberkörpers während dem Einatmen. . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1
5.2
5.3
Ansicht des integrierten Fallverwaltungssystem der TOPOS Software. . . . .
Arbeitsablauf einer Betstrahlung im klinischen Alltag. . . . . . . . . . . . . .
Darstellung der Oberfläche im Modus Patientenpositionierung. . . . . . . . .
6.1
Hauptfenster der Testanwendung mit gestarteter Oberflächenmessung und
Farbkodierung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dialog zur Kalibrierung der intrinsischen und extrinsischen Parameter, sowie
Gammakalibrierung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dialog zur Einzelansteuerung der Sensoren. . . . . . . . . . . . . . . . . . . .
Dialog zum Einstellen des Messbereichs. . . . . . . . . . . . . . . . . . . . . .
Auszug aus der Konfigurationsdatei Topos.config. . . . . . . . . . . . . . . . .
6.2
6.3
6.4
6.5
45
46
47
47
48
50
51
52
54
55
56
57
58
59
59
60
61
62
63
64
65
66
68
69
70
81
84
85
85
86
Anhang
Bedienungsanleitung TOPOS Testsoftware
Das Hauptfenster Im Rahmen dieser Doktorarbeit wurde sowohl ein Software-Framework
zum Ansprechen und Steuern der Sensorik entwickelt, als auch eine Testsoftware, um das
System zu kalibrieren und alle Komponenten zu testen. Im folgenden Anhang ist eine kurze
Anleitung zur Bedienung zu finden. Das Starten der Software auf dem Client PC setzt voraus, dass auf dem Server PC der entsprechende Service installiert und gestartet ist. Nach
einer kurzen Initialisierungsphase, in der die Projektoren auf die entsprechende Bildwiederholfrequenz geschaltet und die Kameras aktiviert werden, erscheint das in Abbildung 6.1
dargestellte Hauptfenster, das in verschiedene Bereiche aufgeteilt ist. Im oberen Fenster-
Abbildung 6.1: Hauptfenster der Testanwendung mit gestarteter Oberflächenmessung und
Farbkodierung.
bereich befindet sich die Symbolleiste mit allen wichtigen Funktionen, auf der linken Seite
die Steuerleiste, um Belichtung und Helligkeit der einzelnen Oberflächen zu regeln. Auf der
rechten Seite sind zwei in ihrer Größe veränderbare Fensterbereiche, die jeweils eine Direktansicht des aktuellen Kamerabildes erlauben und in der Mitte ist die dreidimensionale
Darstellung der aktuell gemessenen Oberfläche, die in alle drei Raumrichtungen rotiert und
verschoben werden kann.
82
1. Bei laufender Messung kann über den Speichern-Button die aktuelle Oberfläche als
(x, y, z)-Punktwolke in eine beliebige Datei, oder als Referenzoberfläche gesichert werden. Das Abspeichern der Referenzoberfläche ist aufgrund von Filtern zur Optimierung
der Punktwolke recht zeitaufwendig (ca. 30 s).
2. Die Start/Stop-Buttons starten, bzw. beenden die Oberflächenmessung. Im Ruhezustand wird eine dunkelgrünlich schimmernde Fläche projiziert, um den Messbereich
der Sensoren zu markieren.
3. Die Steuerelemente dieses Bereichs der Symbolleiste steuern die beiden rechten Fenster
im Hauptbildschirm. Durch Auswählen des Kamera-Buttons wird das jeweils aktuelle
Bild jeder angeschlossenen Kamera an die beiden Fenster übertragen. Die Auswahlbox
neben dem Kamera-Button steuert welches Bild der Sequenz übertragen werden soll
und kann im Messmodus einen Wert zwischen 1 und 6, im Kalibriermodus einen Wert
zwischen 1 und 13 annehmen.
4. Durch einen Klick auf dieses Symbol wird der Kalibrierdialog geöffnet mit dessen Hilfe
die intrinsischen und extrinsischen Parameter sowie die Gammakalibrierung ermittelt
werden.
5. Das Diagnosefenster kann durch einen Klick auf dieses Symbol geöffnet werden. Im
Diagnosemodus können beliebige Bilder projiziert und von der Kamera mit verschiedenen Einstellungen aufgenommen werden. Dies ist insbesondere bei der Ausrichtung
der Sensoren von Nutzen.
6. Der Volume-Button blendet den Dialog zum Einstellen des Messbereichs ein.
7. Die Buttons in diesem Bereich steuern die Anzeige der verschiedenen Oberflächen (v. l.
n. r.): Farbkodierung ein-/ausschalten, Texturüberlagerung ein-/ausschalten, Anzeige
der Referenzoberfläche ein-/ausschalten, Anzeige der lagekorrigierten Oberfläche ein/ausschalten.
8. Der linke Button in diesem Bereich blendet die Koordinatenachsen ein bzw. aus, der
rechte Button schaltet die Achsen zur Anzeige der Lagekorrektur ein bzw. aus.
9. Anzeige zur Lagekorrektur, um die aktuelle Oberfläche mit der Referenzoberfläche zur
Deckung zu bringen: Am Ende der Achsen befinden sich jeweils bei einer Verschiebung von mehr als 0,3 mm blaue Pfeile, deren Größe ein Maß für die Abweichung in
Achsrichtung ist. Rotationen werden mit grünen, torusförmig um die jeweiligen Achsen
gezeichneten Pfeile dargestellt, deren Größe ein Maß für den jeweiligen Rotationswinkel
ist. Rotationen kleiner als 1◦ werden nicht angezeigt.
10. Farbkodierte Darstellung der Oberfläche: Bläuliche Flächen liegen außerhalb der Referenzoberfläche (in Normalenrichtung), rötliche Flächen innerhalb und gelbe Flächen
auf der Referenzoberfläche. Gräulich/weiß gezeichnete Bereiche liegen außerhalb der
für die Farbkodierung zulässigen Toleranz (hier bei einem Abstand zur Referenz von
mehr als 24 mm).
83
11. Darstellung des in der Symbolleiste eingestellten Bildindex der aktuellen Sequenz der
linken Kamera.
12. Darstellung des in der Symbolleiste eingestellten Bildindex der aktuellen Sequenz der
rechten Kamera.
13. Helligkeitsregelung der Projektoren: Standardmäßig erfolgt die Regelung der Projektionshelligkeit automatisch auf Basis eines fortlaufen berechneten Histogramms, um
Über- bzw. Unterbelichtungen weitestgehend zu vermeiden. Um die Helligkeit manuell
zu regeln, muss die Kontrollbox im unteren Bereich ausgewählt und der Schieberegler
auf den gewünschten Helligkeitswert gestellt werden.
14. Aufhellung der empfangenen Texturen: Unterschiedliche Projektionshelligkeiten je Projektor führen auch zu unterschiedlichen Texturhelligkeiten pro Projektor. Um das zu
kompensieren, können die Texturen mit den beiden Schiebereglern getrennt voneinander in ihrer Helligkeit korrigiert werden.
15. Transparenz der Referenzoberfläche: Mit diesem Schieberegler kann die Transparenz
der Referenzoberfläche gesteuert werden.
16. In der Statusleiste werden aktuelle Parameter zur Oberflächenmessung angezeigt (v.
l. n. r): Bildwiederholfrequenz der Projektoren (Frequenz mit der die Streifenmuster
projiziert werden), Aufnahmefrequenz der beiden Kameras, Verarbeitungszeit zur Datenaufnahme und Übermittlungsvorbereitung auf dem Server PC pro Sensor, Aktualisierungsrate der angezeigten Oberfläche (pro Sensor), Helligkeitswerte der Projektoren
(Werte zwischen 0,0 und 1,0), Belichtungszeit der Kameras, aktuell gemessene Qualität der Objektpositionierung in Prozent, Prozentwert des Deckungsverhältnisses von
gemessener Oberfläche und Referenz.
Kalibrierung Abbildung 6.2 zeigt den Dialog zur Kalibrierung der intrinsischen und extrinsischen Parameter, sowie zur Gammakalibrierung. Der zu kalibrierende Sensor und die
gewünschte Kalibrierart können oben rechts im Dialog in den entsprechenden Steuerelementen ausgewählt werden. Nach einem Klick auf den Start-Button beginnt die Kalibrierung.
Im Beispiel ist die intrinsische Kalibrierung des rechten Sensors gezeigt, für die insgesamt
20 Aufnahmen eines Schachbretts unter unterschiedlichen Blickwinkeln notwendig sind.
Im linken Videofenster ist die aktuelle Aufnahme der Kamera mit den detektierten Kreuzungen des Schachbretts sichtbar, im rechten Videofenster ist das vom Projektor detektierte
Schachbrett abgebildet. Nur wenn beide Videofenster einen gültigen Inhalt haben, kann eine
der 20 Aufnahmen mit einem Klick auf die Fernbedienung aufgenommen werden. Am Ende aller Aufnahmen erfolgt die Berechnung der intrinsischen Parameter und deren Anzeige,
sowie die durchschnittlichen Fehler bei der Rückprojektion der Schachbrettkoordinaten, die
ein Maß für die Qualität der Kalibrierung darstellen (bei den Prototypen hat sich ein durchschnittlicher Rückprojektionsfehler von < 0,1 Pixel bei der Kamera und < 0,2 Pixel beim
Projektor als ausreichend herausgestellt).
84
Abbildung 6.2: Dialog zur Kalibrierung der intrinsischen und extrinsischen Parameter, sowie
Gammakalibrierung.
Die extrinsische Kalibrierung läuft analog zur zuvor beschriebenen Kalibrierung der intrinsischen Parameter mit dem Unterschied, dass das Schachbrett immer unter dem selben
Blickwinkel aufgenommen wird und dessen Position für beide Sensoren gleich bleiben muss.
Am Ende werden wieder die Parameter und der Rückprojektionsfehler ausgegeben.
Für die Gammakalibrierung ist es notwendig, ein farblich homogenes Objekt in die Mitte
des Messbereichs des Sensors zu bringen. Der für die Kalibrierung relevante Bereich wird im
linken Videofenster mit einem weißen Rechteck markiert. Nach dem Starten der Gammakalibrierung werden insgesamt 256 verschiedene Graustufen projiziert und von der Kamera
aufgenommen. Es ist zu empfehlen die Gammakalibrierung auf einem Objekt vorzunehmen,
welches ein ähnliches Reflexionsverhalten wie die späteren Messobjekte haben. Im Fall der
Prototypen hat sich ein gräulicher Karton als sehr geeignet erwiesen.
Der Diagnosedialog Abbildung 6.3 zeigt einen Dialog, der das explizite Ansteuern der
einzelnen Sensoren erlaubt. In der obersten Zeile kann der betreffende Sensor ausgewählt
werden. Im Textfeld „Upload diagnostic image“ kann ein lokal gespeichertes Bild zu den
Projektoren geladen und angezeigt werden. „Exposure Delay“ beschreibt die Verzögerung in
µs, die nach dem Triggerimpuls zur Kamera abgewartet wird, bevor die Kamera mit der
Aufnahme des Bildes beginnt. „Exposure Time“ ist die Belichtungszeit der Kamera für jedes aufzunehmende Bild. Insbesondere bei DLP Projektoren ist die Belichtungszeit nicht
variabel, sondern durch die Bildwiederholrate des Projektors vorgegeben, da bei einer zu
kurzen Belichtungszeit, aufgrund des Projektionsprinzips Artefakte auftreten würden. Das
linke untere Videofenster zeigt das aktuelle Bild der Kamera, rechts daneben ist ein Histo-
85
Abbildung 6.3: Dialog zur Einzelansteuerung der Sensoren.
gramm des links dargestellten Bildes sichtbar. Der Zweck des Diagnosedialogs ist zum einen
die Einrichtung von neuen Hardwarekomponenten, beispielsweise bei neuen Projektoren, Kameras oder Framegrabbern. Gerade das „Exposure Delay“ muss experimentell auf der Basis
der aufgenommenen Bilder für jede Hardwarekonfiguration ermittelt werden. Zum anderen
wird der Diagnosedialog zum Einrichten eines neuen Systems verwendet, um die Kamera
und den Projektor richtig auf den gewünschten Messbereich auszurichten und die jeweiligen
Zoomeinstellungen der Objektive anzupassen. Bei einer nicht automatisch korrigierenden
Blende des Kameraobjektivs kann beispielsweise auf Basis eines projizierten Grauverlaufs
(siehe Abbildung 6.3) und dem resultierenden Histogramm ein optimaler Blendenwert für
das Kameraobjektiv ermittelt werden.
Abbildung 6.4: Dialog zum Einstellen des Messbereichs.
Einstellen des Messbereichs Um den Messbereich einzuschränken, beispielsweise um ungewollte Objekte auszublenden, ist es möglich den in Abbildung 6.4 gezeigten Dialog einzublenden. Über die jeweiligen Schieberegler kann der Messbereich für jede Achse definiert
werden. Der maximal zur Verfügung stehende Bereich ist in der Konfigurationsdatei von
TOPOS definiert und kann nur über das direkte Editieren dieser Datei modifiziert werden.
Aufbau der Konfigurationsdatei Ein zentrales Element bei der Ausführung des TOPOS
Frameworks ist die Konfigurationsdatei Topos.config. In dieser Datei sind alle notwendigen
Hardwareparameter zum Ansteuern der Kameras und der Projektoren, die IP -Adresse und
86
die Ports für die Kommunikation zwischen Server- und Client-PC, die Parameter für intrinsische, extrinsische und Gammakalibrierung sowie das maximal erlaubte Messvolumen
definiert. In Abbildung 6.5 ist ein Auszug aus dieser Datei dargestellt. Die Kalibrierparameter müssen nicht manuell eingetragen werden, sondern werden automatisch über den Kalibrierdialog in der Datei aktualisiert. Die Datei ist hierarchisch aufgebaut, so dass sich durch
Abbildung 6.5: Auszug aus der Konfigurationsdatei Topos.config.
die daraus resultierende Struktur ein intuitives Verständnis vieler Parameter ergibt. Unter
dem Knoten remoteConfiguration befinden sich alle vorhandenen Sensoren. Im Falle der
Prototypen sind zwei Sensoren definiert, einer mit dem Namen „Right“, der andere mit dem
Namen „Left“. Theoretisch unterstützt die Software schon jetzt weitere Sensoren die einfach
durch Ergänzen dieser Datei der Messung hinzugefügt werden können. Im Knoten camera
87
sind Kamera- bzw. Framegrabber-spezifische Parameter gesetzt, driverIndex beschreibt den
Framegrabber an dem die Kamera angeschlossen ist, cameraFile zeigt auf eine Datei mit
den Kameraparametern und connector definiert den Eingang am Framegrabber. Unter dem
Knoten flip kann das Bild der Kamera vertikal und/oder horizontal gespiegelt werden, was
eine flexiblere Montage der Kamera erlaubt. Der Punkt frameDelay gibt die Verzögerung
zwischen Projektion und Aufnahme in einer Anzahl von Frames an. Unter dem Punkt exposure sind die Einstellungen zur Belichtungszeit und Belichtungsverzögerung der Kamera zu
finden. Die Projektoren sind unter dem Knoten projector konfiguriert. position beschreibt
die Position des Projektors (aufsteigend, von links nach rechts), comport den seriellen Port
an dem der Projektor zur Steuerung angeschlossen ist und model das Modell. Unter dem
Knoten communication sind Ports definiert, die für das Übertragen der Kamerabilder und
der Rohdaten vom Server-PC zum Client-PC verwendet werden sollen. Wird eine Firewall
auf dem Client-PC eingesetzt, muss gewährleistet sein, dass eine Verbindung zu diesen Ports
ungehindert aufgebaut werden kann. Der Knoten serverAddress definiert die IP (v4) Adresse
zum Server-PC an dem Kameras und Projektoren angeschlossen sind. Auf die Kalibrierparameter im nächsten Abschnitt der Datei wird nicht näher eingegangen, da eine manuelle
Änderung nicht notwendig ist. Als letzte Einstellung kann unter dem Punkt fieldOfView der
maximal zulässige Messbereich in Millimeter definiert werden.
88
Danksagung
Die vorliegende Arbeit entstand auf Grundlage einer Doktorarbeit aus dem Jahre 1999. Damals waren Herr Prof. Dr. Müller und Herr Dr. Klöck auf die Idee gekommen, ein berührungsloses Messsystem zu entwickeln, das die Positionierung von Patienten bei der Strahlentherapie erheblich verbessern sollte. Durch meine freiberufliche Tätigkeit als Software-Entwickler
bei der Firma cyberTECHNOLOGIES GmbH, die in Kontakt mit Herrn Prof. Dr. Müller
stand, wurde ich auf das Thema aufmerksam und wir planten im Juni 2005 gemeinsam eine
Wiederaufnahme der Forschung zu diesem Thema in Form einer Diplomarbeit in Kooperation mit der Universität Regensburg, in der ich die Machbarkeit des Konzepts des Messsystems
überprüfte und zu dem Schluss kam, dass die heutige Technik, allem voran die notwendige
Computerleistung, ausreichend ist. Dies und der Gedanke, einem tumorerkrankten Menschen
zukünftig bessere Heilungschancen zu ermöglichen, waren die ausschlaggebenden Argumente
für mich, für dieses Thema Zeit zu investieren und sowohl meine Diplom- als auch Doktorarbeit über dieses Thema anzufertigen.
Bedanken möchte ich mich bei Herrn Prof. Dr. Reinhold Müller, ohne ihn wäre mir dieses
Thema wahrscheinlich nie in die Hände geraten, und bei den Geschäftsführern der cyberTECHNOLOGIES GmbH, Herrn Karl Blöchl und Herrn Erwin J. Schimmer, für die gute
Zusammenarbeit der letzten Jahre. Das freundschaftliche Verhältnis hat sich stets positiv
auf die Entwicklung der Arbeit ausgewirkt. Meinen Kollegen danke ich für das angenehme
Arbeitsklima, ihre Unterstützung und ihr Verständnis, dass die alltägliche Arbeit an vielen
Tagen ohne mich erledigt werden musste und dafür, dass sie des Öfteren als Messobjekt herhalten mussten. Bedanken möchte ich mich auch bei Herrn Dr. Klöck für die Realisierung der
Installation des zweiten Prototyps in einem Behandlungsraum des Universitätsspitals Zürich
und bei Thomas Boll, der den Aufbau vor Ort betreute und organisierte. Mein besonderer
Dank gilt ihm für die große Unterstützung bei der Entwicklung der Softwarekomponente zur
3D-Ansicht. Für das angenehme Umfeld in der Strahlenklinik und am Institut für Medizinische Physik sei allen Mitarbeitern stellvertretend durch die Direktoren Prof. Dr. Rainer
Fietkau und Prof. Dr. Willi A. Kalender gedankt.
Abschließend möchte ich meinen Eltern danken für die Unterstützung in vielerlei Hinsicht
während der letzten Jahre. Spezieller Dank geht an meine Mutter und meine Schwester für
das sorgfältige Auffinden von Tippfehlern und sonstigen Imperfektionen, an meinem Vater
für die kreativen Tipps bei technischen Fragen zur Entwicklung der Sensoren. Ebenso herzlichen Dank an Susanne für das Kraftspenden und die Motivation während der Entstehung
dieser Arbeit und das kritische Korrekturlesen des Manuskripts.
89
Lebenslauf
Persönliche Daten
Nachname:
Lindl
Vornamen:
Bastian Lukas
Geburtsdatum:
06. Februar 1980
Geburtsort:
Ingolstadt
Familienstand:
ledig
Nationalität:
deutsch
Schulbildung
1986 - 1990
Pestalozzi-Grundschule Ingolstadt
1990 - 1999
Christoph-Scheiner-Gymnasium Ingolstadt
Wehrpflicht
1999 - 2000
Pionierkaserne Ingolstadt
Hochschulstudium
2000 - 2006
Universität Regensburg, Studium der Physik (Diplom)
2003 - 2004
University of Colorado, USA, Studium der Physik
Berufliche Tätigkeiten
2006 - 2010
Strahlenklinik, Universitätsklinikum Erlangen
seit 2010
Freiberufliche Softwareentwicklung
Herunterladen