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