Externe Kamerakalibration eines Infrarottrackingsystems. Volker Wiendl Lehrstuhl für Multimediakonzepte und Anwendungen Universität Augsburg

Größe: px
Ab Seite anzeigen:

Download "Externe Kamerakalibration eines Infrarottrackingsystems. Volker Wiendl Lehrstuhl für Multimediakonzepte und Anwendungen Universität Augsburg"

Transkript

1 Externe Kamerakalibration eines Infrarottrackingsystems Volker Wiendl Lehrstuhl für Multimediakonzepte und Anwendungen Universität Augsburg 18. April 2005

2 Kurzfassung Für viele Anwendungen im Bereich Augmented Reality oder Motion Capturing werden heute optische Trackingsysteme verwendet. Gerade Systeme im Bereich Motion Capturing benutzen dabei meist Outside-In Verfahren, bei denen mehrere Kameras ein oder mehrere reale Objekte verfolgen und deren 3-dimensionale Position bestimmen. Für eine möglichst exakte Rekonstruktion dieser Positionen ist eine Kalibration solcher Systeme unerlässlich. Die vorgestellte Bachelorarbeit befasst sich mit der Entwicklung einer benutzerfreundlichen Kalibration der externen Kameraparameter, eines stereoskopischen infraroten Trackingsystems. Bei diesen externen Parametern handelt es sich um die Transformation der Kameras zueinander. Es wird eine initiale Bestimmung der externen Kameraparameter beschrieben, die auch mit normalen USB-Webcams bereits gute Ergebnisse liefert. Unter Verwendung von Kameras mit Infrarotfiltern, wird zudem eine nichtlineare Optimierung der initial bestimmten Transformation mit Hilfe des Levenberg-Marquard Verfahrens vorgestellt, die eine noch genauere Kalibrierung ermöglicht. i

3 Danksagung Mein Dank gilt in erster Linie Dr. Klaus Dorfmüller-Ulhaas. Nicht nur das Thema dieser Arbeit beruht auf seinem Vorschlag, er stand auch während der gesamten Arbeitszeit mit Rat und Tat zur Seite. Des weiteren Danke ich der Firma 3M TM für die zur Verfügungstellung der retroreflektiven Folie sowie der Advanced Realtime Tracking GmbH und der Prophysics AG für die Genehmigung zur Verwendung einiger Abbildungen. Zu guter Letzt danke ich Angelika Vogelhuber und Anna Schoderer für geduldiges Korrekturlesen. ii

4 Inhaltsverzeichnis 1 Einleitung Problemstellung: Lösungsansatz: Datenerfassung Detektion des Kalibrationswinkels Bildanalyse Bestimmung des Doppelverhältnisses Die relative 3D Position der Kameras Homographiebestimmung Transformation der Kamera zum Kalibrationswinkel Detektion des Kalibrationsstabs Bestimmung der Fundamentalmatrix Bewegungserkennung Triangulation Optimierungsprozess Bestimmung der Transformation des Kalibrationsstabs Rückprojektion des Kalibrationsstabs Levenberg-Marquardt Optimierung Einrichten des Weltkoordinatensystems 31 5 Verwendete Hardware und experimentelle Ergebnisse Initiale Transformationsbestimmung Rekonstruktion des Kalibrationsstabs Messgenauigkeit nach erfolgreicher Kalibrierung Zusammenfassung und Ausblick: 42 iii

5 Kapitel 1 Einleitung Bei optischen Trackingsystemen handelt es sich um Systeme, welche mit Hilfe von Kameras die Lage und Position eines Objekts im Raum bestimmen. Durch die Berechnung der 3D Position über das Kamerabild lässt sich auch die Blickrichtung der aufnehmenden Kamera ermitteln. Dies führt zu zwei möglichen Anwendungsgebieten: Einerseits dem so genannten Inside- Out Tracking, bei dem sich die Kameras bewegen können und deren Position verfolgt wird. Zum Anderen das Outside-In Tracking, bei dem die Kameras fest montiert sind und die 3D Koordinaten ein oder mehrerer sich bewegender Objekte verfolgt werden. Abbildung 1.1: Outside-In Tracking: Motion Capture System von Vicon TM mit Infrarotmarkern Abbildung 1.2: Inside-Out Tracking: Augmented Reality Anwendung mit quadratischen Markern Zur Anwendung kommen solche Systeme beispielsweise bei Motion Capture Produkten, die die Bewegung z.b. eines Menschen erfassen um diese anschlie- 1

6 ßend auf einen virtuellen Charakter zu übertragen (siehe Abb ). Weitere Einsatzmöglichkeiten finden sich im Bereich Augmented Reality, indem über optisches Tracking die Blickrichtung des Betrachters mit Hilfe einer Kamera ermittelt wird, um virtuelle Objekte in die reale Umgebung perspektivisch korrekt einzublenden (siehe Abb. 1.2). In der Regel werden für das Tracking die Koordinaten von besonders gestalteten Markern gemessen, die mit Hilfe von Computern und Bildverarbeitungsmethoden im Kamerabild detektiert werden. Da die Erkennung der zu verfolgenden Objekte im Bild schwierig und oft wenig robust ist, verwendet man häufig Kameras mit Infrarotfiltern. Diese bieten den Vorteil, dass sie nur infrarotes Licht zum Sensor durchlassen und somit die Anzahl der Informationen im Bild reduzieren. Die zu detektierenden Marker bestehen dann üblicherweise aus retroreflektierenden Materialien, die aus Richtung der Kamera mit infrarotem Licht bestrahlt werden. Auf diese Art erhält man im optimalen Fall nur die zum Marker gehörenden Merkmale im Kamerabild und erleichtert somit dessen Detektion enorm (siehe Abbildungen 1.3 bzw. 1.4). Allerdings muss dabei sichergestellt werden, dass keine anderen sehr starken Infrarotlichtquellen, wie beispielsweise grelles Sonnenlicht, die aufgenommene Szene beleuchten, da sonst neben den Markern auch wieder die Umgebung im Bild sichtbar wird. Abbildung 1.3: Kamerbild ohne IR Filter Abbildung 1.4: Kamerbild mit IR Filter Verschiedene Firmen, wie beispielsweise A.R.T. [1] oder Vicon [2], bieten heute solche Trackingsysteme an. Dabei werden oft mehrere Kameras eingesetzt, wodurch Bewegungsraum und Genauigkeit vergrößert werden können. Die Basis für solche Systeme bildet das Lochkameramodell. Dabei wird ein realer 3D Punkt über ein Projektionszentrum (dem Brennpunkt) auf eine 2D Bildebene projiziert. Mittels dieses Modells, lässt sich ein Bildpunkt dreidimensional rekonstruieren, wenn mindestens zwei Kameras den gleichen 3D 1 Abbildung mit freundlicher Genehmigung der Prophysics AG 2

7 Punkt auf ihrer Bildebene abgebildet haben. Benutzt man einen Marker, der aus mindestens vier Punkten besteht, die alle in einer Ebene liegen, reicht für die Bestimmung dessen Transformation sogar nur eine Kamera. Für eine möglichst exakte Positions- und Orientierungsmessung ist eine Kalibration solcher Systeme notwendig. Während der Kalibrierung werden die Parameter für interne und externe Kameraparameter bestimmt. Bei den internen Parametern handelt es sich um Parameter wie Brennweite, Bildhauptpunkt oder Linsenverzeichnung, welche für die Projektion eines Objekts auf die Bildebene verantwortlich sind. Die externen Kameraparameter beschreiben die Orientierung der verschiedenen Kameras zueinander bzw. die Transformation der Kamera zu einem Marker. Sie geben also die Position der Kamera an. Mit diesem Wissen lässt sich anschließend die 3-dimensionale Position eines Bildpunktes zurückrechnen. Der Inhalt dieser Arbeit besteht in der Entwicklung eines Verfahrens, das es ermöglicht die externen Parameter eines stereoskopischen Trackingsystems zu kalibrieren. Die internen Kameraparameter können durch die Nutzung von Kamerakalibrationssoftware, wie z.b. die auf der Intel Computer Vision Library basierte Camera Calibration Toolbox von Bouguet[6], als gegeben vorausgesetzt werden. 1.1 Problemstellung: In diesem Abschnitt werden zunächst die nötigen Anforderungen in einem kurzen Überblick dargestellt. Eine detailliertere Beschreibung der Problematiken findet sich zusammen mit den entsprechenden Lösungsansätzen im folgenden Abschnitt 1.2. Grundlage der Kalibrierung eines optischen Trackingsystems ist die Zuordnung von realen 3D Punkten zu den entsprechenden Abbildungen auf der Bildebene. Dabei ist eine genaue Erfassung der Messdaten enorm wichtig. Es sollte zu keinen Verwechslungen von Markerdaten kommen, da diese das Kalibrationsergebnis und damit die spätere Messgenauigkeit stark negativ beeinflussen würden. Somit benötigt das zu entwickelnde System ein robustes Erkennungsverfahren, das eine eindeutige Zuordnung zwischen Bilddaten und Markerdaten gewährleistet. Des weiteren sollte die Menge der Messdaten für eine optimale Bestimmung möglichst groß sein, damit mögliche Ungenauigkeiten, die durch die beschränkte Auflösung der Kameras oder durch Messfehler auftreten können, in einem Optimierungsprozess möglichst gut minimiert werden. Solche Messfehler existieren zum Beispiel bei partiell verdeckten Markern, welche zwar erkannt, deren Positionen dadurch aber nur ungenau ermittelt werden können. Um dies zu vermeiden, ist es auch sinnvoll 3

8 sich Gedanken über die Art der Marker und deren Anordnung zu machen, damit Überlagerungen möglichst selten auftreten. Zudem sind die Ergebnisse der Optimierung umso besser, je genauer die initiale Messung ist. Prinzipiell lässt sich ein System initial mit verhältnismäßig einfachen linearen Verfahren bereits kalibrieren. Hierbei wird versucht aufgrund von algebraischen Bedingungen bestimmte Gleichungssysteme zu lösen. Je nach Art des zu lösenden Problems können solche initial gefundenen Lösungen bereits relativ genau arbeiten. Beispielsweise verwendete das für Augmented Reality Anwendungen recht bekannte ARToolkit [3] anfangs ausschließlich auf diese Weise gefundene Lösungen zur Bestimmung der relativen Kameraposition. Man spricht hierbei von der Minimierung des algebraischen Fehlers, da nur versucht wird, eine bestimmte algebraische Bedingung bestmöglichst zu erfüllen. Sehr viel bessere Ergebnisse erhält man jedoch, wenn auch eine Minimierung des geometrischen Fehlers durchgeführt wird. Als zu minimierenden Wert nutzt man in der Regel den euklidischen Abstand zwischen zwei Punkten. Ein Beispiel für diese Punkte könnten etwa der real gemessene Bildpunkt eines Markerpunktes und dessen Rückprojektion mit Hilfe der initial bestimmten Kameratransformation sein. Ein weiterer wichtiger Punkt ist die Genauigkeit der Bestimmung der internen Kameraparameter, welche die so genannte Kamerakalibrationsmatrix bilden. Diese ist verantwortlich für die Projektion eines 3D Punkts auf die 2D Bildebene. Je exakter man ihre Parameter bestimmen kann, desto genauer wird auch eine mathematische Projektion von Modellkoordinaten eines Markers auf die Bildebene mit der realen Projektion übereinstimmen. Grundlage für die internen Kameraparameter bildet dabei das Lochkameramodell, welches grob die Projektion durch eine Kamera beschreibt (siehe Abb. 1.5). Abbildung 1.5: Lochkameramodell mit Bildebene hinter dem Brennpunkt Abbildung 1.6: Computer Vision Lochkameramodell mit Bildebene vor dem Brennpunkt und verschobener Bildachse Z Damit dieses Modell näher den realen Projektionsbedingungen einer übli- 4

9 cherweise verwendeten CCD Kamera entspricht, muss zusätzlich noch der Bildhauptpunkt und die Linsenverzeichnung berücksichtigt werden. Im Gegensatz zum Lochkameramodell, bei dem der Bildhauptpunkt immer im Mittelpunkt der Bildebene liegt, kann dieser in der Realität teilweise deutlich abweichen (siehe Abb. 1.6). Ebenso erfährt das Bild durch die Krümmung der Kameralinsen - der so genannten Linsenverzeichnung - Verzerrungen, die eine exakte Rekonstruktion von Bildpunkten verhindern. Damit trotzdem eine möglichst gute Kalibration erfolgen kann, werden auch diese internen Parameter annäherungsweise berücksichtigt. 1.2 Lösungsansatz: Wie bereits erwähnt besteht die Kalibration eines optischen Trackingsystems aus der Bestimmung der internen und externen Kameraparameter. Zahlreiche Veröffentlichungen haben sich bereits mit diesem Problem beschäftigt ([12, 13, 16, 17, 6]). Grundlage aller Kalibrationsansätze ist dabei die Relation zwischen bestimmten realen Punkten und den entsprechenden Bildpunkten im Kamerabild. Dabei gibt es zwei verschiedene Ansätze. Aus dem Bereich der Computer Vision ist die so genannte Self-Calibration bekannt, welche versucht mittels einer Sequenz von Kamerabildern ohne spezielle Referenzobjekte alle Kameraparameter gleichzeitig zu bestimmen [12, 13, 16]. Dabei wird angenommen, dass sich die internen Kameraparameter nicht ändern. Mittels Punktkorrespondenzen zwischen den verschiedenen Kamerabildern werden schließlich die internen und externen Kameraparameter bestimmt. Die andere Vorgehensweise leitet sich eher aus der Photogrammetrie ab. Dabei werden die internen Kameraparameter über ein 3D Referenzobjekt ermittelt, dessen Abmessungen vorher bekannt sind [17, 6]. Es ist klar, dass die Notwendigkeit von Referenzobjekten zunächst einen Nachteil darstellt, jedoch bieten die Self-Calibration Ansätze meist keine so hohe Genauigkeit, da alle Parameter ohne Vorwissen bestimmt werden. Oft werden dabei auch bestimmte Parameter nicht berücksichtigt, wie zum Beispiel der Bildhauptpunkt [12] oder die Linsenverzeichnung [13, 16, 14], was die resultierenden Messwerte ebenfalls deutlich ungenauer werden lässt [15]. Da diese Arbeit als Resultat ein möglichst exaktes Ergebnis liefern soll, wird daher ein kombinierter Ansatz verwendet. Die internen Kameraparameter werden zunächst in einem externen Prozess mittels entsprechender Software [6] bestimmt. Anschließend werden mit Hilfe der nun bekannten Kamerakalibrationsmatrizen die externen Kameraparameter errechnet. Das ARTtrack1 System von A.R.T. (Abb ) und verschiedene weitere Sy- 2 Abbildung 1.7 mit freundlicher Genehmigung der Advanced Realtime Tracking GmbH 5

10 steme [4] verwenden für die Kalibrierung kleine Kugeln, die mit einer retroreflektiven Folie überzogen sind. Diese formen einen Kalibrationswinkel für die Festlegung eines Weltkoordinatensystems und einen Kalibrationsstab zum Erstellen einer Punktwolke, die den Kalibrationsraum abdeckt. Da sich diese Abbildung 1.7: Kalibrationswinkel und -stab des ARTtrack1 Systems Abbildung 1.8: Kalibrationsobjekte dieser Arbeit Anordnung bewährt hat, wird auch in dieser Arbeit darauf zurückgegriffen. Im Gegensatz zu der Konstellation von A.R.T. wird das hier entwickelte System jedoch mehr Punkte verwenden. Da zur Kalibration die Zuordnung von 3D Punkten zu ihren entsprechenden Bildpunkten nötig ist, muss zunächst eine Möglichkeit gefunden werden diese eindeutig zu bestimmen. Es bietet sich an das Doppelverhältnis zu nutzen, da dieses eine projektive Invariante darstellt. Im Detail bedeutet dies, dass lineare Anordnungen von vier Punkten auch unter einer perspektivischen Projektion ihr Doppelverhältnis beibehalten [8, Seite 44-45]. Hiermit wird die Zuordnung von Bild- zu Markerpunkten erheblich erleichtert. Aus diesem Grund enthält der Kalibrationswinkel dieser Arbeit jeweils vier Kugeln auf einer Achse (Abb. 1.8), wodurch die eindeutige Zuordnung von Bildpunkt zu Markerkugel bereits gegeben ist. Diese Art der Merkmalserkennung erhöht die Robustheit so enorm, dass auch eine Nutzung eines Kalibrationswinkels im sichtbaren Lichtbereich möglich ist. In Systemen, wie beispielsweise ARTtrack1, könnte dies nicht so einfach erfolgen, da hier nur vier Punkte auf dem gesamten Kalibrationswinkel zur Verfügung stehen. Wie dieses System die Zuordnungen der einzelnen Kugeln bestimmt, ist dem Autor leider nicht bekannt. Neben der Definition des Weltkoordinatensystems kann durch den Kalibrationswinkel auch bereits eine erste initiale Bestimmung der externen Kameraparameter, also Rotation und Translation der Kameras zueinander, erfolgen. Durch die Verwendung von sieben Kugeln auf dem Kalibrationswinkel, die alle in einer Ebene lie- 6

11 gen, kann eine Homographiematrix bestimmt werden, die die Abbildung der Schwerpunkte der Kugeln auf die Bildebene einer Kamera beschreibt. Diese Homographiematrix kann anschließend so zerlegt werden, dass sich daraus Rotation und Translation der Kamera zum Kalibrationswinkel bestimmen lässt. Während die eindeutige Zuordnung der Markerpunkte auf dem Kalibrationswinkel allein durch das Doppelverhältnis und dem gemeinsamen Schnittpunkt der beiden Achsen möglich ist, gelten für den Kalibrationsstab andere Bedingungen. Man könnte zwar auch hier das Doppelverhältnis zur Detektion des Stabs verwenden, da dieser jedoch aus nachfolgenden Gründen bewegt werden muss, kann es leicht passieren, dass die Kugeln im Kamerabild miteinander verschmelzen. Dadurch ist eine Zuordnung der Bildbereiche zu den Kugeln jedoch unmöglich, weshalb die Anzahl der verwendeten Marker minimal sein sollte. Für die Nutzung von zwei statt nur einer Kugel spricht die zusätzliche Information über die Länge des Abstands zwischen beiden Markern. Dieses Wissen kann während des Kalibrationsprozesses zur Optimierung der Kalibration verwendet werden. Wie bereits erwähnt muss der Stab für die Kalibration in verschiedenen Positionen aufgenommen werden. Zu nah beieinander liegende Punkte können das zu optimierende Gleichungssystem numerisch singulär werden lassen, was zu einer schlechten Lösung oder sogar dem Scheitern des Optimierungsalgorithmus führen kann. Um dies zu verhindern, ist eine Bewegung des Kalibrationsstabs durch den Benutzer erforderlich. Diese sollte neben der Sicherstellung von unterschiedlichen Messergebnissen möglichst auch die Bildebene einigermaßen gleichverteilt abdecken. Unter der Annahme eines weißen Rauschens, wird dadurch erreicht, dass sich Fehler, die z.b. durch die Linsenverzeichnung der Kameras entstehen, in der späteren Optimierung im Mittel aufheben. Um zu entscheiden welche Punkte der verschiedenen Kamerabilder zueinander korrespondieren, nutzt man eine mathematische Beziehung zwischen diesen Bildern, die so genannte Fundamentalmatrix. Diese kann bereits mit Hilfe des Kalibrationswinkels bestimmt werden, so dass im folgenden Schritt die Bildpunkte des Kalibrationsstabs in beiden Kamerabildern den jeweiligen Kugeln zugeordnet werden können. Die auf diese Weise erfassten Messdaten dienen anschließend in einem dritten Schritt der Optimierung der initial gefundenen Lösung von Translation und Rotation der beiden Kameras zueinander. Zur Anwendung kommt dabei ein Verfahren auf Basis des Levenberg- Marquardt Algorithmus [9, Seite 683]. Nach Abschluss dieser Optimierung ist das System kalibriert und kann zur Berechnung von 3D Positionen verwendet werden. Damit der durch den Kalibrationswinkel bestimmte Ursprung des Weltkoordinatensystems später auch möglichst gut mit dem gemessenen Ursprung übereinstimmt, muss zum Schluss noch das Koordinatensystem an- 7

12 gepasst werden. Dies ist nötig, da der initial gemessene Ursprung durch den Optimierungsprozess verschoben wird. In Abbildung 1.9 findet sich eine Aufstellung der eben erwähnten Vorgänge mit den entsprechenden Verweisen auf die Kapitel und Abschnitte dieser Arbeit. Zusätzlich findet sich in Kapitel 5 eine Beschreibung der verwendeten Hardware und eine Einschätzung der resultierenden Ergebnisse. Abbildung 1.9: Die Umsetzung der Lösungsansätze untergliedert sich in dieser Arbeit in drei Schritte. In Kapitel 2 wird die Erfassung der initialen Messdaten beschrieben. Dabei widmet sich der erste Abschnitt der Detektion des Kalibrationswinkels. Durch diesen kann mittels der in Abschnitt 2.2 vorgestellten Methoden die initiale Transformation der beiden Kameras bestimmt werden. Mit Hilfe dieser initialen Bestimmung, wird anschließend in Abschnitt 2.3 zunächst die Fundamentalmatrix bestimmt, durch die die Zuordnung der zum Kalibrationsstab gehörenden Punkte erfolgen kann. Nach Erfassung aller nötigen Daten, erklärt Kapitel 3 das verwendete Verfahren zur Optimierung der Initialwerte für die externen Kameraparameter. Durch die Optimierung der initialen Transformation muss schließlich noch das Weltkoordinatensystem an die neuen Werte angepasst werden. Die dazu nötigen Schritte werden in Kapitel 4 erläutert. 8

13 Kapitel 2 Datenerfassung Das folgende Kapitel befasst sich mit der Aufnahme der zur Kalibration nötigen Daten. Dabei wird zunächst die Detektion des Kalibrationswinkels beschrieben und anschließend die initiale Transformation der Kameras zum Kalibrationswinkel über eine Homographiematrixzerlegung bestimmt. Der darauffolgende Abschnitt 2.3 erklärt die Detektion des sich bewegenden Kalibrationsstabs und die Zuordnung der Bildregionen zu den entsprechenden Kugeln mittels der Fundamentalmatrix. Zum Abschluß werden im Unterabschnitt die 3-dimensionalen Koordinaten der Stabenden durch Triangulation rekonstruiert. 2.1 Detektion des Kalibrationswinkels Wie bereits erwähnt, besteht die Basis der Kalibration in der Zuordnung von 3D Punkten zu Bildpunkten. ARToolkit [3] bestimmt dazu zunächst die Transformation zwischen der Kamera und einem quadratischen Marker über dessen vier Eckpunkte. Anschließend wird das Bild aufgrund der ermittelten Transformation entzerrt und die zum Marker gehörende Bildregion analysiert. Durch eine Kreuzkorrelation zwischen der Kamerabildinformation und einem gespeicherten Abbild des Markers erhält man schließlich einen Ähnlichkeitswert, der angibt, ob es sich bei der verwendeten Bildregion tatsächlich um einen Marker handelt. Bei dem vorgeschlagenen Ansatz zur Kalibration eines infraroten Trackingsystems ist diese Form der Inhaltsanalyse nicht nötig. Für die in Abschnitt 1.2 propagierte Lösung mittels eines Kalibrationswinkels muss jedoch ähnlich wie bei der Markererkennung von ARToolkit zunächst der Bereich im Bild gefunden werden, der zu einem Marker bzw. den Kugeln des Kalibrationswinkels gehört. Anschließend kann über das Doppelverhältnis die Zuordnung von Bildpunkten zu den Kugeln des Kalibrati- 9

14 onswinkels erfolgen, um später daraus die Transformation der Kamera zum Winkel zu bestimmen Bildanalyse Um in einem Bild bestimmte Merkmale zu detektieren, muss jenes zunächst vom Computer analysiert werden. Hierfür ist eine Reduktion und Abstraktion der Bildinformationen notwendig. Zunächst werden deshalb die eingehenden Bilder in Schwarz-Weiß Bilder konvertiert. Durch die reflektierende Wirkung der Kugeln erscheinen diese besonders hell im Bild, während dunklere Bereiche nicht für das Tracking relevant sind. Zur Differenzierung wird daher ein fester Schwellwert eingesetzt, der alle über ihm liegenden Helligkeitswerte als Vordergrund klassifiziert, während der Rest als Hintergrund nicht weiter betrachtet wird. Das danach vorliegende Binärbild enthält die Markerkugeln als weiße Bereiche. Alternativ könnte auch auf dynamische Schwellwertverfahren [19, Seite ] zurückgegriffen werden, die dunklere Bereiche in denen sich Marker befinden können, die nur schwach reflektieren, ebenfalls hervorheben. Da jedoch auch ein fester Schwellwert bereits gute Resultate liefert und dynamische Schwellwertverfahren komplexere Algorithmen erfordern, wird dies nicht weiter verfolgt. Damit die gefundenen Vordergrundbereiche von eventuell auftretenden anderen Reflexionen oder hellen Bildinformationen getrennt werden können, wird in einem nächsten Schritt mit Hilfe der Zusammenhangskomponente (ZHK) [5, Seite ] das Bild in disjunkte Segmente unterteilt. Dabei werden mittels einer so genannten 8-connect Maske zusammenhängende Bildregionen mit einem einheitlichen Label versehen. Die Abbildungen 2.1 und 2.2 Abbildung 2.1: Segmentierung eines Binärbilds mit Hilfe einer 8-Connect Maske Abbildung 2.2: Segmente nach abgeschlossener ZHK verdeutlichen an einem Beispiel diesen Vorgang. Alle auf diese Weise gefundenen Segmente werden nun auf bestimmte Eigenschaften überprüft. Ob ein Segment als Kugel in Frage kommt, kann zum Beispiel anhand seiner Größe 10

15 entschieden werden. Mit Hilfe von Schwellwerten für die minimale bzw. maximale Anzahl von Pixeln werden zu kleine oder für eine Markerkugel zu große Segmente aussortiert. Weitere Prüffaktoren sind die Größe der das Objekt umgebenden Boundingbox und das Verhältnis zwischen Boundingbox und Segmentfläche. Liegt das Objekt innerhalb bestimmter Schwellen wird es als mögliche Kugel beibehalten, andernfalls verworfen. Da für die spätere Bestimmung des Doppelverhältnisses beider Achsen mindestens sieben Kugeln benötigt werden, können Bilder in denen nach oben erwähnter Prüfung weniger Segmente übrig bleiben, verworfen werden. In allen Übrigen muss nun nach der Zuordnung zwischen den Bildsegmenten und den Kugeln gesucht werden. Über die Berechnung des Schwerpunkts s mit Hilfe des 0-ten und 1-ten Moments jedes Segments wird dazu zunächst der Mittelpunkt der Kugel bestimmt. I (x, y) = { 1, falls Pixel x, y zum Segment gehört 0, sonst (2.1) 0-te Moment: A = 1-te Moment x: x = 1-te Moment y: ȳ = xmax ymax x=xmin y=ymin xmax x=xmin = I (x, y) (2.2) ymax y=ymin x I (x, y) A ymax xmax y=ymin x=xmin y I (x, y) A (2.3) (2.4) Schwerpunkt s: s = ( x, ȳ) xmin kleinster x-wert des Segments xmax größter x-wert des Segments ymin kleinster y-wert des Segments ymax größter y-wert des Segments Wie bei allen Punktbestimmungen in den Kamerabildern muss auch hier die Linsenverzeichnung berücksichtigt werden, und die bestimmten Schwerpunkte müssen zunächst auf ihre entzerrte Position zurückgerechnet werden. Die zur internen Kamerakalibrierung verwendete Camera Calibration Toolbox [6] liefert die dazu nötigen Linsenverzeichnungsparameter auf Basis des Kameramodells von Heikkilä [7]. Eine Methode zur Entzerrung der Punkte auf Basis dieser Parameter lag bereits vor, weswegen ein solcher Algorithmus nicht extra für diese Arbeit implementiert wurde. Die Abbildung 2.3 zeigt den deutlichen Unterschied zwischen den einfach bestimmten Schwerpunkten und der korrigierten Version, die im Randbereich des Bildes durchaus mehrere Pixel betragen kann. 11

16 Entzerrte Punkte Verzerrte Punkte Abbildung 2.3: verzerrte (cyan) bzw. entzerrte (rot) Schwerpunkte der schwarz markierten Kugelbildregionen Bestimmung des Doppelverhältnisses Nach der Selektion aller Regionen, die zum Kalibrationswinkel gehören könnten,und der perspektivischen Korrektur ihrer Schwerpunkte, gilt es herauszufinden, welches Bildsegment welcher Kugel auf dem Stab entspricht. Grundlage der hier verwendeten Methode bildet das Doppelverhältnis von Geraden im Raum [8, Seite 44-45]. Da sich dieses auch unter projektiven Abbildungen nicht ändert, eignet es sich hervorragend um Merkmale im Bild wiederzufinden (Abb. 2.4). Sind vier Punkte einer Geraden gegeben, erhält man über die Funktion in Gleichung 2.5 das entsprechende Doppelverhältnis. Cross (x 1, x 2, x 3, x 4 ) = x 1x 2 x 3 x 4 x 1 x 3 x 2 x 4 (2.5) wobei x 1 x 2 in diesem Fall den gerichteten Abstand zwischen Punkt x 1 und x 2 angibt Das Doppelverhältnis beider Achsen des Winkels kann durch vorheriges Ausmessen als gegeben vorausgesetzt werden. Zur Detektion des Kalibrationswinkels reicht es deshalb nach sieben Punkten zu suchen, von denen jeweils 12

17 vier auf einer Geraden liegen und einer dieser vier Punkte Teil beider Geraden ist. Entspricht das Doppelverhältnis der Geraden dem zuvor für die Winkelachsen errechneten, so ist die Wahrscheinlichkeit hoch genau die Kugeln des Kalibrationswinkels gefunden zu haben. Man sollte dazu jedoch die Kugeln auf dem Stab asymmetrisch verteilen, da regelmäßige Muster sich in Kamerabildern häufig finden lassen. Dies würde eine irrtümliche Erkennung provozieren. Außerdem müssen sich die Verhältnisse beider Achsen möglichst deutlich unterscheiden, da sich später auf Grund von Pixelrauschen im Kamerabild oder der Linsenverzeichnung kleine Abweichungen ergeben. Probleme gibt es auch, wenn großflächig viele Regionen erkannt werden, wie zum Beispiel auf gemusterten Teppichen. In solchen Fällen kann es passieren, dass die Aufnahmen ebenfalls die oben genannten Bedingungen erfüllen, ohne dass es sich dabei wirklich um den Kalibrationswinkel handelt. Abgesehen von dieser Ausnahme funktioniert das Verfahren jedoch so robust, dass es auch ohne Infrarotfilter zum Beispiel die auf ein Blatt gedruckten Kreise in einer sonst abwechslungsreichen Umgebung wiederfindet (Abb. 2.5). Allerdings steigt bei X 1 X 2 X X 3 4 X 4 X X 3 2 X 1 X X X X Cross( x 1, x 2, x 3, x 4 ) = Cross( x 1, x 2, x 3, x 4 ) = Cross(x, 1 x, 2 x 3, x ) 4 Abbildung 2.4: Doppelverhältniss als projektive Invariante Abbildung 2.5: Erkennung unter normaler Beleuchtung zunehmender Anzahl von möglichen Punkten auch der Rechenaufwand, um die passenden Entsprechungen zu finden, erheblich an. Deshalb ist es bereits hier sinnvoll ein Infrarotsystem zu verwenden. Für die Suche nach möglichen Kandidaten für die jeweiligen Achsen wird zunächst zu jeweils zwei Schwerpunkten (CoG 1, CoG 2 ) eine Gerade bestimmt. Anhand der Geradenparameter (r, α), die sich durch die Gleichung 2.6 ergeben, werden diese anschließend in ein Akkumulatorarray mit den Achsen r und α eingetragen. r = x cos (α) + y sin (α) (2.6) 13

18 wobei α = arctan ( ) y x und x = CoG 1x CoG 2x bzw. y = CoG 1y CoG 2y Anschließend wird über den Abstand der anderen Punkte zur Geraden versucht herauszufinden, ob weitere Punkte auf dieser Geraden liegen. Ist dies der Fall, so werden auch sie an der gleichen Position im Akkumulatorarray abgelegt. Wurden alle Schwerpunkte untersucht, wird dieses durchlaufen und bei allen Einträgen in denen vier oder mehr Punkte gefunden wurden, die jeweiligen Doppelverhältnisse der eingetragenen Schwerpunkte berechnet. Entspricht ein Ergebnis den vorher bestimmten Werten für eine der beiden Winkelachsen, so werden die zugehörigen Schwerpunkte in einer Kandidatenliste für die entsprechende Achse gespeichert. Die Genauigkeit der Übereinstimmung zwischen dem errechneten und gespeicherten Doppelverhältnis ist dabei natürlich durch die Ungenauigkeit bei der Bestimmung der Schwerpunkte beschränkt. In der Praxis hat sich herausgestellt, dass der errechnete Wert bis auf die dritte Nachkommastelle mit dem vorher bestimmten Doppelverhältnis übereinstimmen sollte. Dadurch kommt es sehr selten zu Verwechslungen und der Kalibrationswinkel wird trotzdem zuverlässig erkannt. Über die Bedingung, dass beide Achsen sich in einem gemeinsamen Punkt schneiden, lässt sich letztlich das richtige Kandidatenpaar finden. Sobald dadurch alle Kugeln des Kalibrationswinkels den entsprechenden Bildregionen zugeordnet wurden, kann mit der Bestimmung der relativen Position der Kamera zum Kalibrationswinkel begonnen werden. 2.2 Die relative 3D Position der Kameras Um die Orientierung zwischen zwei oder mehreren Kameras zu berechnen, benutzt man in der Regel den von Longuet-Higgins 1981 vorgestellten 8-Point Algorithmus [10]. Dabei wird ausgehend von 8-Punkt-Korrespondenzen in zwei verschiedenen Bildern die so genannte Fundamentalmatrix berechnet, aus welcher man bei kalibrierten Kameras die Essentialmatrix und damit die Orientierung der Kameras bestimmen kann. Da in dem hier vorgestellten System jedoch nur sieben Punkte vorhanden sind, und jeder weitere Punkt, der im Kamerabild zu sehen sein muss, die Flexibilität weiter einschränken würde, wird dieser hier nicht weiter verfolgt. Ein weiteres Verfahren wäre der von Hartley ([8, Seite 281, ]) vorgestellte Algorithmus zur Bestimmung der Fundamentalmatrix anhand von sieben Punkten. Jedoch erhält man bei diesem drei verschiedene Lösungen, von denen man die jeweils richtige bestimmen muss. Eine einfachere Lösung ergibt sich aus der Tatsache, dass alle sieben Punkte des Kalibrationswinkels in einer Ebene liegen. Mit 14

19 Hilfe dieser Bedingung lässt sich über eine Homographiematrix die relative Position einer Kamera zu dem Winkel bestimmen und schließlich über diese die Transformation der Kameras zueinander Homographiebestimmung Bei einer Homographie handelt es sich um eine Ebenen-Ebenen Transformation. Betrachtet man einen realen Punkt M einer Ebene in homogenen Koordinaten, so lässt er sich mittels der Homographie H auf einen Punkt m der Bildebene transformieren: m =H 3 3 M (2.7) Abbildung 2.6: Abbildung der Punkte M i mit den homogenen Koordinaten (X i, Y i, 1) einer Ebene auf die Punke m i der Bildebene über die Homographie H Da H insgesamt acht Freiheitsgrade hat, lässt sich die Homographiematrix durch mindestens vier Punkte - bis auf einen Skalierungsfaktor - eindeutig bestimmen (Durch die Verwendung von homogenen Koordinaten sind einige angegebene Gleichungen immer nur bis auf einen Skalierungsfaktor bestimmt, was durch ein = gekennzeichnet wird) Für mehr als vier Punkte ist das Gleichungssystem überbestimmt. Die zusätzlichen Informationen können dann zur Fehlerminimierung genutzt werden. 15

20 Zur Lösung von H verwendet man in der Regel die DLT [8, Seite 88](Direct Linear Transformation). Bei dieser handelt es sich um ein mathematisches Verfahren zur Lösung eines linearen Gleichungssystems. Jeder Punkt M und jeder Bildpunkt m trägt mit jeweils seiner X und Y bzw. u und v Koordinate zur Lösung bei. Die Koordinaten der Ebenenpunkte können aufgrund des willkürlichen Skalierungsfaktors prinzipiell beliebig gewählt werden, müssen aber im Verhältnis zueinander korrekt angegeben sein. Es bietet sich an die Abmessungen der Punkte in Millimetern anzugeben, da man so später auch die Transformation der Kamera zum Marker in Millimetern erhält. Da H den Rang zwei hat, und somit die dritte Zeile von den beiden anderen linear abhängig ist, erhält man mit Hilfe von Gleichung 2.7 für jedes Punkt-Bildpunkt-Paar folgendes Gleichungssystem: u (h 31 X + h 32 Y + h 33 ) = h 11 X + h 12 Y + h 13 v (h 31 X + h 32 Y + h 33 ) = h 21 X + h 22 Y + h 23 und somit für 4 Punkte folgende Lineartransformation: X 1 Y u 1 X 1 u 1 Y 1 u X 1 Y 1 1 v 1 X 1 v 1 Y 1 v 1 X 2 Y u 2 X 2 u 2 Y 2 u X 2 Y 2 1 v 2 X 2 v 2 Y 2 v 2 X 3 Y u 3 X 3 u 3 Y 3 u X 3 Y 3 1 v 3 X 3 v 3 Y 3 v 3 X 4 Y u 4 X 4 u 4 Y 4 u X 4 Y 4 1 v 4 X 4 v 4 Y 4 v h 11 h 12 h 13 h 21 h 22 h 23 h 31 h 32 h 33 = 0 oder anders geschrieben: A 9 9 h 9 1 = 0 (2.8) Mit Hilfe der Singulärwertzerlegung lässt sich dieses Gleichungssystem nahezu optimal lösen. Für SV D (A) = UDV T entspricht D einer Diagonalmatrix, welche die Singulärwerte enthält. Die Lösung für h ist der zum kleinsten Singulärwert passende rechte Singulärvektor aus V [8, Seite 91]. Man muss jedoch berücksichtigen, dass die auf diese Weise gefundene Lösung nur eine Minimierung des algebraischen Fehlers darstellt und nicht die optimale Lösung sein muss (siehe Kapitel 3). 16

21 2.2.2 Transformation der Kamera zum Kalibrationswinkel Um von der Homographiematrix auf die Transformation zwischen Kamera und Kalibrationswinkel zu kommen, benötigt man nun noch die internen Kameraparameter in Form der Kamerakalibrationsmatrix. Diese ist definiert durch den Bildhauptpunkt c u, c v, die Brennweite f und einem Faktor a, der das Seitenverhältnis in der Brennweite berücksichtigt. Zusätzlich kann noch der Parameter s angegeben werden, der eine mögliche Verzerrung der Bildsensorelmente angeben würde. Da dieser jedoch von der für die Kamerakalibration verwendeten Toolbox [6] nicht unterstützt wird und bei den meisten der heutigen Kameras ohnehin nahezu 0 ist [8, Seite 157], entfällt er in dieser Arbeit. Kamerakalibrationsmatrix: K = f s = 0 c u 0 a f c v (2.9) Zur Transformation eines 3D Punkts im Weltkoordinatensystem in eine Bildkoordinate der Kamera wird zunächst die Weltkoordinate M w in die Kamerakoordinate M k umgerechnet. Dazu benötigt man die gesuchte Rotation bzw. Translation der Kamera (R, t). M w = [ R t 0 T 1 ] M k M k = [ R T t 0 T 1 ] M w (2.10) Um anschließend den Punkt M k mit den Koordinaten X, Y, Z auf die Bildebene zu projizieren, verwendet man eine 3 4 Identitätsmatrix. u v s = X Y Z 1 (2.11) und schließlich erhält man mit Hilfe der Kamerakalibrationsmatrix die Bildkoordinaten u und v u v 1 = 1 s f 0 c u 0 a f c v u v s (2.12) 17

22 Durch die Verwendung homogener Koordinaten entfällt der Skalierungsfaktor 1, womit sich letztlich folgende Projektionsgleichung ergibt: s X u f 0 c u v = 0 a f c v [ R T t ] Y (2.13) Z } {{ } } {{ } 1 m K } {{ } P } {{ } M m = K [R T t ] = P M (2.14) Die Frage ist nun, wie man die unbekannte Rotation und Transformation bestimmt. Hier hilft die Tatsache, dass alle Punkte des Winkels in einer Ebene liegen. Setzt man jeweils die Z Koordinate dieser Punkte auf 0, so entfällt die dritte Spalte der Projektionsmatrix P [8, Seite 196]. m = P M = [p 1 p 2 p 3 p 4 ] X Y 0 1 X = [p 1 p 2 p 4 ] Y 1 (2.15) Genau diese projektive Transformation [p 1 p 2 p 4 ] ist aber bereits indirekt durch die Homographiematrix H aus Abschnitt 2.8 bestimmt. Jeder Punkt des Kalibrationswinkels ist als ideale Modellkoordinate im 3D Raum gegeben während die Bildpunkte im Kamerabild gemessen wurden. Da insgesamt sieben Punkte zur Verfügung stehen, lässt sich H somit über die DLT [8, Seite 88] bestimmen. H entspricht in diesem Fall der Projektionsmatrix P aus Gleichung 2.14, und setzt sich somit aus der Kamerakalibrationsmatrix K und der gesuchten Rotation R und Translation t zusammen. Um R und t zu bestimmen, muss nun zunächst die Kamerakalibrationsmatrix entfernt werden. H = K [ ] r 1 r 2 t K 1 H = [ ] r 1 r 2 t (2.16) Theoretisch erhält man so bereits die ersten beiden Spalten der Rotationsmatrix. Jedoch ergibt sich hier das Problem, dass H nur bis auf einen Skalierungsfaktor genau bestimmt ist. Da eine Rotationsmatrix jedoch orthonormal ist, kann dieser Skalierungsfaktor durch die Normierung von r 1 und r 2 heraus gerechnet werden. a 1 = r 1 r 1 a 2 = r 2 r 2 (2.17) Die dritte Spalte a 3 ergibt sich aus dem Kreuzprodukt von a 1 und a 2. Allerdings ist es damit allein noch nicht getan, da a 1 und a 2 nicht zwingenderweise aufeinander senkrecht stehen, dies für eine orthonormale Rotationsmatrix 18

23 aber gegeben sein muss. Hier hilft eine Singulärwertzerlegung der 3 3 Matrix A, bestehend aus den drei Vektoren a 1, a 2 und a 3. Dabei wird A zerlegt in die beiden orthonormalen Matrizen U und V, sowie der Diagonalmatrix D. Die gesuchte Rotation ergibt sich schließlich aus dem Produkt von U und V T : R = U V T (2.18) Um die Translation t zu erhalten, muss nun ebenfalls noch der Skalierungsfaktor in H aus t entfernt werden. Dies geschieht, indem man t durch den Mittelwert der Längen von r 1 und r 2 teilt. t = t 0.5 ( r 1 + r 2 ) (2.19) Somit sind alle Parameter bestimmt und die Transformation [R t] der Kamera zum Kalibrationswinkel gegeben. Die resultierenden Ergebnisse lassen sich noch weiter optimieren, indem man die Ebenenkoordinaten des Kalibrationswinkels mit Hilfe der gefundenen Projektionsmatrix auf die Bildebene rückprojiziert und versucht den geometrischen Fehler zwischen Rückprojektion und gemessenen Bildpunkten zu minimieren. Für diese Optimierung stand bereits ein Verfahren auf Basis des Levenberg-Marquardt Algorithmus [9, Seite 683] von Seiten des Lehrstuhls zur Verfügung. Die auf diese Weise berechneten Transformationen der einzelnen Kameras zum Kalibrationswinkel sind die Ausgangsbasis für die Bestimmung der Rotation und Translation der Kameras zueinander. Zwar ließe sich allein damit bereits ein Punkt im Raum über Triangulation rekonstruieren, jedoch sind zur exakten Bestimmung noch mehr Daten nötig, die den Rekonstruktionsraum besser abdecken als nur die Punkte einer Ebene. 2.3 Detektion des Kalibrationsstabs Die Fundamentalmatrix beschreibt die Epipolargeometrie zwischen zwei Kameras. Diese wiederum definiert den Schnitt der beiden Bildebenen mit allen Ebenen, die durch die Gerade zwischen den jeweiligen Kamerabrennpunkten verlaufen. Die Abbildung 2.7 verdeutlicht dies. Um zu einem Bildpunkt m 1 mit den Koordinaten u 1, v 1, 1 aus dem einen Kamerabild den jeweils korrespondierenden Punkt m 2 aus dem anderen Kamerabild zu finden, kann mit Hilfe der 3 3 Fundamentalmatrix F eine 19

24 Abbildung 2.7: Jeder 3D Punkt M bildet zusammen mit den Brennpunkten der Kameras eine Ebene. Alle Ebenen verlaufen dabei durch die gemeinsame Schnittgerade, die durch die Brennpunkte definiert wird. Die Schnittgerade zwischen Bildebene und der Ebene die den Punkt M enthält wird Epipolarlinie genannt. Auf dieser befindet sich die Projektion m von M auf der entsprechenden Bildebene. Gerade l - die Epipolarlinie - bestimmt werden, auf der m 2 liegen muss. Es gilt: l = F m 1 (2.20) wobei l = ( a b c ) T die Geradenparameter für a u1 + b v 1 + c = 0 liefert. Hat man nun die Schwerpunkte der Kugeln des Kalibrationsstabs in einem Kamerabild detektiert, kann man versuchen die entsprechenden Schwerpunkte im anderen Kamerabild über diese Bedingung zu finden. Im optimalen Fall sollte für einen Punkt m 2 des zweiten Kamerabilds und einem Punkt m 1 des ersten Kamerabilds gelten: m 2 F m 1 T = ( u 2 v 2 1 ) F ( u 1 v 1 1 ) T = 0 (2.21) In der Praxis ist es jedoch so gut wie nie gegeben, dass der Abstand zur Epipolarlinie tatsächlich 0 ist. Daher muss auch hier ein gewisser Toleranzwert angegeben werden, in dem die gefundene Korrespondenz als gültig gewertet wird. Probleme bei dieser Art der Zuordnungsbestimmung können auftreten, wenn beide Punkte m 1 und m 2 nahe an der Epipolarlinie des jeweils anderen Punktes liegen. Um Verwechslungen dieser Art zu vermeiden wird im späteren Verlauf zusätzlich noch der Abstand zwischen den sich ergebenden 3D 20

25 Positionen berechnet und mit der vorher bestimmten Stablänge verglichen (siehe Unterabschnitt 2.3.3) Bestimmung der Fundamentalmatrix Die Fundamentalmatrix ist eine Erweiterung der Essentialmatrix. Letztere leitet sich nur aus der Transformation zwischen zwei Kameras ab und nimmt ideale Kamerakalibrationsmatrizen an, die gleich der Identitätsmatrix sind [8, Seite 257]. E = [t] R = 0 t z t y t z 0 t x t y t x 0 R (2.22) wobei R und t die Transformation zwischen den beiden Kameras angeben Da die Rotation und Translation T H1 und T H2 der einzelnen Kameras zum Kalibrationswinkel bereits durch die Homographiezerlegung bekannt ist, lässt sich leicht die entsprechende Transformation T zwischen den Kameras errechnen: T = [R t] = T H2 T 1 H1 Die Fundamentalmatrix F berücksichtigt nun zusätzlich noch die internen Kameraparameter. Der Zusammenhang zwischen Essential- und Fundamentalmatrix ist dabei folgender: E = K 2 T F K 1 daraus ergibt sich: F = K 2 T 1 EK 1 1 (2.23) wobei K 1 bzw. K 2 die Kamerakalibrationsmatrizen der Kameras sind. Damit ist die Fundamentalmatrix bestimmt und kann zur Korrespondenzanalyse verwendet werden Bewegungserkennung Ein weiterer Aspekt bei der Erfassung von Messwerten ist, dass möglichst unterschiedliche Punkte erfasst werden sollten. Versucht man den späteren Optimierungsprozess mit sich häufig wiederholenden Daten durchzuführen, kann es passieren, dass das Gleichungssystem singulär wird und keine oder unendlich viele Lösungen liefert, die jedoch nicht zu gebrauchen sind. Daher 21

26 sollte der Kalibrationsstab nur erfasst werden, wenn er sich bewegt. Allerdings kann es bei billigen Kameras bei zu starker Bewegung passieren, dass das Bild der Kugel sich von einem Kreis zu einer Ellipse verformt, da die Shutterzeit der Kamera zu lange eingestellt ist. Ein möglicher Bewegungsdetektor sollte also sicherstellen, dass sich der Stab von Bild zu Bild innerhalb gewisser Grenzen bewegt. Der erste Versuch einer Bewegungserkennung beschränkte sich auf das Finden von Regionen, die sich im jeweils zurückliegenden Bild gegenüber dem aktuellen Bild in ihren Ausmaßen und Positionen um bestimmte Werte geändert haben. Da sich die Änderung der Größe als nicht sehr praktikabel erwies, wird in der Anwendung nur die minimale und maximale Abweichung der Position verwendet. Je nachdem wie diese Werte gewählt werden, wird der Stab schon bei geringer Bewegung oder erst bei schnelleren Drehungen erkannt. Damit nicht bei groß gewählter maximaler Abweichung jeweils ein anderes Segment fälschlicherweise als neue Position gewertet wird, werden alle Elemente, die im vorherigen Bild zu einem Objekt den Mindestabstand unterschreiten, entfernt. In der Praxis hat sich diese Vorgehensweise als ausreichend erwiesen, weswegen komplexere Methoden wie Kalman Filter [18] oder andere Verfahren nicht weiter betrachtet wurden Triangulation Der letzte wichtige Punkt bei der Messwerterfassung besteht in der Genauigkeit der erfassten Daten. Um später gute Optimierungsergebnisse zu erhalten, sollten auch die initialen Daten bereits möglichst exakt sein. Aus diesem Grund wird bereits bei der Stabdetektion eine dreidimensionale Rekonstruktion der Bildpunkte durchgeführt und überprüft, ob der Abstand der rekonstruierten Punkte etwa der Länge des Stabes und somit den Kugeln des Kalibrationsstabs entspricht. Dadurch ist gewährleistet, dass keine zu großen Ausreißer, welche zum Beispiel durch fehlerhafte Zuordnung der Bildpunkte aus den verschiedenen Kamerabildern entstehen könnten (siehe Abschnitt 2.3), die Kalibration negativ beeinträchtigen. Um die 3D Position M einer Kugel zu bestimmen, benötigt man die in Unterabschnitt bestimmten Transformationen T H1 und T H2 der Kameras zusammen mit den Kamerakalibrationsmatrizen K 1 bzw. K 2 und die jeweils korrespondierenden Bildpunkte m 1 und m 2 der Kugel aus beiden Kamerabildern. Über Triangulation lässt sich mit Hilfe der DLT [8, Seite 88] eine initiale Lösung zur Bestimmung der 3D Position finden. Jedoch sollte diese Methode nur zur schnellen Abschätzung genutzt werden, da sie nur mit der Minimierung des algebraischen Fehlers arbeitet und somit nicht die optimalen 22

27 Ergebnisse erreicht. Unter bestimmten Bedingungen kann der Algorithmus sogar gar keine verwertbaren Ergebnisse liefern (näheres siehe [8, Seite 313]). Für P i = K i T Hi gilt: m 1 = P 1 M; und m 2 = P 2 M (2.24) Ähnlich wie bei der Homographieberechnung werden für die DLT [8, Seite 88] nun alle bekannten Größen in einer Matrix A zusammengefasst, während die unbekannten Koordinaten x, y, z zusammen mit der homogenen Koordinate w durch die Variable M ausgedrückt werden. Die beiden Gleichungen lassen sich anschließend zu AM = 0 zusammenfassen. Um eine Lösung für M über die DLT [8, Seite 88] zu bestimmen wird zunächst der homogene Skalierungsfaktor durch das Kreuzprodukt jedes Bildpunktes m mit dem Produkt der Projektionsmatrix P und der 3D Koordinate M eliminiert: m (P M) = 0 daraus folgt u(p 3T M) (p 1T M) = 0 v(p 3T M) (p 2T M) = 0 u(p 2T M) v(p 1T M) = 0 wobei p it jeweils die i-te Zeile der Projektionsmatrix P angibt. Da nur zwei der drei Gleichungen linear unabhängig sind, gehen jeweils nur zwei in die Matrix A ein. Somit ergibt sich für zwei Bildpunkte: A = u 1 p 1 3T p 1 1T v 1 p 1 3T p 1 2T u 2 p 2 3T p 2 1T v 2 p 2 3T p 2 2T (2.25) wobei u i bzw v i die Bildkoordinaten der Bildpunkte m i sind und p it den Zeilen der Projektionsmatrix P 1 bzw. P 2 entspricht [8, Seite 312]. Somit hat man für vier Unbekannte in M (x, y, z, w) vier Gleichungen. Mittels der DLT [8, Seite 88] erhält man die Lösung für M über die Singulärwertzerlegung von A. Dabei entspricht dem Lösungsvektor M der zum kleinsten Singulärwert gehörende rechte Singulärvektor (siehe Unterabschnitt 2.2.1). Auf diese Weise erhält man eine Rekonstruktion der möglichen Stabenden zur Abschätzung, ob es sich wirklich um den Kalibrationsstab handelt. Ist der euklidische Abstand zwischen den rekonstruierten 3D Punkten innerhalb 23

28 eines gewissen Toleranzbereichs zu dem vorher ausgemessenen Kalibrationsstab, so werden die Daten als Initialwerte der Transformation für die spätere Optimierung gespeichert. Zu beachten ist jedoch, dass die Rekonstruktion nur gut funktioniert, wenn die Kameras möglichst im 90 Winkel zueinander positioniert sind. Da sich die Projektionsstrahlen der Punkte x 1 und x 2 in der Regel nicht wirklich schneiden, wächst bei zunehmender Abweichung von 90 die Ungenauigkeit in der Rekonstruktion [8, Seite 321]. Ein möglicher besserer Rekonstruktionsalgorithmus zur Minimierung des geometrischen Fehlers findet sich in [8] auf Seite

29 Kapitel 3 Optimierungsprozess Wie bei allen Algorithmen zur Fehlerminimierung muss zunächst eine Kostenfunktion aufgestellt werden. Diese Funktion ergibt sich aus der Minimierung des geometrischen Fehlers in Form des euklidischen Abstands zwischen der Rückprojektion der 3D Punkte des Kalibrationsstabs auf die Bildebene und den gemessenen Bildpunkten. Die Minimierung erfolgt dabei durch schrittweise Veränderung der zu optimierenden Parameter. Diese bestehen zunächst aus sechs externen Kameraparametern, in Form von je drei Werten für die Winkelgeschwindigkeit jeder Koordinatenachse und drei Werten für die Translation. Die Bestimmung der Rotationsparameter für die Transformation zwischen den Kameras erfolgt dabei durch die Rodrigues Darstellung. Zusätzlich werden die Transformationen des Kalibrationsstabs jeder Aufnahme mit als zu optimierende Parameter übergeben. Für die Rückprojektion kann dabei das zusätzliche Wissen über die Länge des Stabs genutzt werden. Da diese in allen Aufnahmen gleich ist, genügt es die Translation des Stabursprungs und die Rotation des Stabs zu kennen. Da es sich bei dem Stab nur um ein zweidimensionales Objekt handelt, beschränkt sich die Rotation auf zwei Achsen. Insgesamt besitzt der Kalibrationsstab somit fünf Freiheitsgrade. Für n Aufnahmen hat man somit n Variablen, die es zu optimieren gilt. Für die Initialisierung dieser Variablen stehen im Falle der externen Kameraparameter bereits die über die Homographiezerlegung bestimmten Transformationen T H1 und T H2 zur Verfügung, aus denen sich die Transformation zwischen den Kameras T bestimmen lässt (T = T H2 TH1 1 siehe Unterabschnitt 2.3.1). Um die Variablen des Kalibrationsstabs zu initialisieren, muss jedoch zunächst dessen Transformation aus der Rekonstruktion der Stabenden bestimmt werden. 25

30 3.1 Bestimmung der Transformation des Kalibrationsstabs Wie bereits erwähnt, benötigt man durch das Wissen über die Länge des Kalibrationsstabs nur die Translation des Stabursprungs und die Rotation des Stabs in zwei Achsen. Welcher Punkt des Stabs dabei als Ursprung verwendet wird spielt aufgrund dessen, dass der Stab nur ein 2-dimensionales Objekt darstellt, keine Rolle. Es bietet sich jedoch an eine der Kugeln am Stabende zu verwenden, da deren 3D Koordinaten bereits durch die Triangulation aus Unterabschnitt bestimmt sind. Die Rotation ergibt sich anschließend aus dem Differenzvektor v zwischen erster und zweiter Kugelkoordinate (siehe Abbildung 3.1). Durch die Projektion von v auf die xz-ebene lässt sich die Drehung um Abbildung 3.1: Bestimmung der Rotation Abbildung 3.2: Spezialfall 1: Z-Koordinate der zweiten Kugel negativ Abbildung 3.3: Spezialfall 2: Y-Koordinate der zweiten Kugel negativ die y-achse bestimmen. Dazu wird der Winkel ω 1 zwischen dem projizierten Vektor v und der X-Achse bestimmt. Die Drehung um die z-achse ω 2 ergibt sich aus dem Winkel zwischen v und v. Da man bei der Berechnung des einschließenden Winkels stets den kleineren Winkel erhält - für eine Rotationsmatrix jedoch immer der gleiche Drehsinn benötigt wird - muss bei negativem v y oder v z der jeweilige Rotationswinkel angepasst werden (siehe Abbildungen 3.2 und 3.3). ω 1 bzw. ω 2 berechnen sich somit wie folgt: ω 1 = ω 2 = { vx v 1, falls v z > 0 2π vx v 1, sonst v v v v, falls v y > 0 2π + v v v v, sonst wobei gilt: v = ( ) v x 0.0 v z (3.1) (3.2) 26

31 Somit hat man die 3D Position des Kalibrationsstabs auf insgesamt 6 Parameter beschränkt, wovon 5 variabel sind: Die Translation t x, t y, t z, die Rotation ω 1, ω 2 und die fixe Länge des Stabs l. 3.2 Rückprojektion des Kalibrationsstabs Um nun mit Hilfe dieser Werte die entsprechenden Bildpunkte zu bestimmen, muss zunächst aus den Rotationswinkeln ω 1 und ω 2 des Stabs eine Rotationsmatrix R erstellt werden: R = cos(ω 1 ) 0 sin(ω 1 ) sin(ω 1 ) 0 cos(ω 1 ) cos(ω 2 ) sin(ω 2 ) 0 sin(ω 2 ) cos(ω 2 ) (3.3) Durch die Translation t und die definierte Länge des Stabs ergeben sich zunächst wieder die 3D Koordinaten M 1 und M 2 des Kalibrationsstabs. Diesmal jedoch mit dem garantierten Abstand l. M 1 = t x t y t z M 2 = R l t x t y t z (3.4) Mit Hilfe der Projektionsmatrix P, die sich aus der Kamerakalibrationsmatrix K und der Transformation der Kamera T H zusammensetzt, erhält man schließlich die gesuchte Rückprojektion m von M. m i = P i M i = K i T Hi M i wobei i die jeweilige Kamera angibt (3.5) Um später die Anzahl der zu optimierenden Variablen zu reduzieren, bedient man sich dabei folgender Definition. Anstatt jeweils die Transformationen (T H1, T H2 ) der einzelnen Kameras zum Kalibrationswinkel zu verwenden setzt man sämtliche Punkte in das Koordinatensystem der ersten Kamera und deren Transformationsmatrix gleich der Identitätsmatrix. Die neue Transformation T der zweiten Kamera ergibt sich in diesem Fall durch T H2 T H1 1. Die Differenzen zwischen den auf diese Weise rückprojizierten Bildpunkten und den ursprünglich erfassten Messwerten gilt es nun zu minimieren. 3.3 Levenberg-Marquardt Optimierung Der eigentliche Optimierungsprozess arbeitet auf der Basis des Levenberg- Marquardt (LM) Algorithmus [8, Seite 600], welcher eine Kombination aus 27

32 Gradient-Descent [8, Seite 599] und Newton-Verfahren [8, Seite 597] zur Bestimmung des Optimums einer Funktion darstellt. Dabei wird versucht die Parameter x einer Funktion f so zu wählen, dass das Ergebnis von f bestmöglichst mit einem vorher gemessenen Wert übereinstimmt. Als Funktion dient in diesem Fall die in Abschnitt 3.2 beschriebene Rückprojektionsmethode. Die variablen Parameter sind zum einen die Transformation T der beiden Kameras zueinander, zum anderen die Transformationen des Kalibrationsstabs in den n verschiedenen Aufnahmen. m = f( x) = f(t, ω 11, ω 21, t x1, t y1, t z1,...ω 1i, ω 2i, t xi, t yi, t zi ) (3.6) Als Rückgabewert erhält man die rückprojizierten Bildpunkte ( m), welche zusammen mit den real gemessenen Bildpunkten ( o) den verbleibenden geometrischen Fehler ergeben, den es zu minimieren gilt. Somit erhält man: m = f ( x 0 ) oder anders formuliert e = f ( x 0 ) o (3.7) wobei e der zu minimierende Fehlervektor ist Als Startwerte x 0 dienen dabei die in Kapitel 2 ermittelte initiale Transformation zwischen den Kameras bzw. der in Abschnitt 3.2 ermittelten Werte für die verschiedenen Transformationen der Aufnahmen des Kalibrationsstabs. Die Transformation T wird dabei unterteilt in jeweils die Winkelgeschwindigkeit r i für die Rotation um jede Achse und drei weitere Parameter für die Translation t. Die Zerlegung der Rotationsmatrix in die Parameter r i erfolgt dabei durch die Rodrigues Darstellung. Der Vektor x 0 enthält somit für n Aufnahmen des Kalibrationsstabs: x 0 = ( r 1, r 2, r 3, t x, t y, t z, ω 11, ω 12, t x1, t y1, t z1...ω 1n, ω 2n, t xn, t yn, t zn ) Die Anzahl der Unbekannten in diesem Gleichungsystem beträgt folglich n. Je sechs Werte für die Beschreibung der Transformation T zwischen den Kameras und für jede Aufnahme i des Kalibrationsstabs durch beide Kameras insgesamt fünf Werte zur Beschreibung der Stabtransformation. Damit eine Lösung bestimmt werden kann, müssen also mindestens zwei Aufnahmen des Stabs vorliegen, da jeweils ein Kamerabild vier Parameter (zwei Punkte mit je x- und y-koordinate) liefert. Folglich stehen bei zwei Aufnahmen insgesamt 16 Gleichungen für die Lösung bereit. Da angenommen wird, dass sich der Fehler erst im Mittel aufhebt, sollten für ein gutes Kalibrationsergebnis jedoch weit mehr Aufnahmen verwendet werden. Wie bereits erwähnt, ist das LM-Verfahren eine Variation des Newton Verfahrens. Es variiert, je nachdem ob der zu minimierende Fehler kleiner oder 28

33 größer wird, zwischen Gradient Descent und Newton Verfahren. Zunächst wird angenommen, dass die Funktion f lokal lineare Eigenschaften besitzt, womit f an der Stelle x 0 durch f ( x 0 + ) = f ( x 0 ) + J approximiert werden kann. Dabei ist J die Jacobi-Matrix für f und eine kleine Abweichung. Aus 3.7 ergibt sich für e 0 : e 0 = f ( x 0 ) o (3.8) Gesucht ist nun ein Punkt x 1 der Funktion f, der durch x 1 = x 0 + dargestellt werden kann und f ( x 1 ) o minimiert. Im optimalen Fall gilt: f ( x 1 ) o = f ( x 0 ) + J o = e 0 + J = 0 (3.9) Somit ist es nötig, e 0 + J durch entsprechende Wahl von zu minimieren, was einem linearen Minimierungsproblem entspricht. Den Vektor erhält man durch die Multiplikation der Gleichung J = e 0 mit J T von links auf beiden Seiten. Damit ergibt sich: J T J = J T e 0 (3.10) = J + e 0 (3.11) wobei J + = (J T J) 1 J T die Pseudoinverse Matrix von J ist Den Lösungsvektor x zur Minimierung von e = f ( x) o erhält man schließlich durch schrittweise Anpassung von x i. Dabei gilt: x i+1 = x i + i wobei i = J + e i (3.12) Soweit entspricht der Vorgang noch exakt dem Newton Verfahren. Bei diesem kann es jedoch passieren, dass die Änderungen an den Funktionswerten x i zu groß gewählt werden und somit das Optimum übersprungen wird. Um dies zu verhindern, wird die Gleichung 3.10 nun folgendermaßen umgeformt: ( J T J ) (1 + λ) falls i = j N = J T e wobei N ij ij = ( J T J ) (3.13) sonst ij Dabei ist λ ein Faktor, der zunächst mit einem relativ kleinen Wert (z.b. 10e 3) initialisiert wird. Je kleiner der Wert gewählt wird, desto stärker ähnelt das Vorgehen dem Newton Verfahren, da sich N immer mehr dem dabei eingesetzten Wert J T J annähert. Je nachdem, ob sich der Fehler e nach einer Iteration verbessert oder verschlechtert, wird λ angepasst. Im Falle einer Verschlechterung, also wenn sich e vergrößert, wird λ mit dem Faktor zehn multipliziert. Dadurch nähert sich N mehr und mehr einem Vielfachen der Identitätsmatrix an, wodurch so angepasst wird, dass die Funktionswerte x, ähnlich des Gradient Descent Verfahrens, in absteigender Richtung 29

34 des Gradienten von f verändert werden. Verkleinert sich der Restfehler e wird λ wieder durch zehn dividiert. Somit wechselt der Algorithmus automatisch zwischen dem jeweils passenderen Verfahren. Ändert sich der Restfehler nach einer Iteration nicht mehr, bzw. nur noch minimal, wird davon ausgegangen, dass das Minimum erreicht ist und die Optimierung wird beendet. Durch diese Vorgehensweise erreicht man relativ schnell - im Rahmen dieser Arbeit in der Regel innerhalb weniger als 10 Iterationen - das Optimum der Funktion. Schließlich erhält man die optimal an die gegebenen Messwerte o angepassten Parameter x. Da diese auch die Transformation T der Kameras zueinander enthielten, ist diese somit auch optimal an die gegebenen Messwerte angepasst. Im optimalen Fall sollten nun auch zukünftige Messungen mit Hilfe dieser Transformation möglichst exakt bestimmt sein. Ein Problem bei dieser Art von Optimierung ist jedoch, dass größere Ausreißer in den initialen Messwerten die Optimierung scheitern lassen können, da der LM-Algorithmus versucht die Parameter so zu wählen, dass sie möglichst gut mit den Messwerten übereinstimmen. Ist in den Messungen ein großer Fehler enthalten, werden auch die Parameter fehlerhaft angepasst. Daher ist es auch so wichtig die initialen Werte für x 0 möglichst genau zu bestimmen, andernfalls müsste man Verfahren integrieren, die mögliche Fehler bereits vorab detektieren und entfernen. Ein weiteres Problem kann auftreten, wenn die Optimierung in einem lokalen Minimum der Funktion zum Stehen kommt. Auch hier hilft eine möglichst gute Bestimmung der Initialwerte [8, Seite 598]. 30

35 Kapitel 4 Einrichten des Weltkoordinatensystems Während der Optimierung wurden alle Koordinaten in das Koordinatensystem der ersten Kamera transformiert. Um folgende Messungen wieder im Weltkoordinatensystem zu erhalten, müssen nun noch die neuen Transformationen T 1 und T 2 der Kameras zum Kalibrationswinkel bestimmt werden. Durch die Optimierung mittels des Levenberg-Marquardt Verfahrens sind diese verändert worden, weswegen der Ursprung des Koordinatensystems nicht mehr mit dem zuvor über T H1 bzw. T H2 bestimmten Ursprung des Kalibrationswinkels übereinstimmt. Um dieses Problem zu beheben, muss nun noch die Transformation T x zwischen den Modellkoordinaten und der Rekonstruktion der gemessenen Bildpunkte des Kalibrationswinkels über die optimierte Transformation T ermittelt werden. Diese wird anschließend mit der bisherigen Transformation der ersten Kamera T H1 multipliziert. Aus dem Ergebnis und T ergibt sich schließlich T 2. Zunächst werden dazu die Modellkoordinaten M m der Kugeln des Kalibrationswinkels durch die initiale Transformation T H1 der ersten Kamera in deren Koordinatensystem transformiert. M k = T H1 M m (4.1) Diese Transformation führt man für alle sieben Kugeln des Kalibrationswinkels durch und bildet aus den resultierenden Koordinaten einen Vektor p, der alle idealen 3D Koordinaten des Kalibrationswinkels in den Koordinaten der ersten Kamera enthält. p = (x 1, y 1, z 1, x 2, y 2, z 2,..., x 7, y 7, z 7 ) wobei x i, y i, z i jeweils die 3D Koordinaten einer Kugel des Kalibrationswinkels angeben 31

36 Abbildung 4.1: Die Punkte p geben die Koordinaten der Kugeln des Kalibrationswinkels in den Koordinaten der ersten Kamera mit der Transformation T H1 an. In p sind die über die Transformation T rekonstruierten Koordinaten ebenfalls im Koordinatensystem der ersten Kamera enthalten. Gesucht ist nun die Transformation T x zwischen den beiden Punktmengen, aus der sich schließlich mit Hilfe von T und T H1 die Transformationen T 1 und T 2 bestimmen lassen. Durch Triangulation (siehe Unterabschnitt 2.3.3) der Bildpunkte des Kalibrationswinkels in den jeweiligen Kamerabildern mittels der neuen optimierten Transformation T zwischen den Kameras wird nun ein zweiter Vektor p gebildet. Dieser enthält die 3D Koordinaten ebenfalls im Koordinatensystem der ersten Kamera, da zur Rekonstruktion einerseits für die erste Kamera die Identitätsmatrix und andererseits für die zweite Kamera die Transformation T verwendet wird, welche die Transformation zwischen den beiden Kameras angibt. Damit der globale Ursprung wieder im Ursprung des Kalibrationswinkels liegt, wird nun versucht die idealen 3D Punkte des Modells p bestmöglichst an die Rekonstruktion p anzupassen. Arun et al. [11] beschreiben für dieses Problem eine einfache Möglichkeit um die Transformation zwischen den beiden Punktmengen zu bestimmen. Man versucht dazu folgende Gleichung zu 32

37 minimieren: 2 N = p i (Rp i + t) 2 (4.2) i=1 Dabei ist N die Anzahl der 3D Punkte in p bzw. p und R und t die gesuchte Rotation bzw. Translation zwischen den zwei Punktsets. Man berechnet nun zunächst die Schwerpunkte (s bzw. s ) beider Kalibrationswinkel durch die Bildung des Mittelwerts der jeweiligen 3D Punkte. s = 1 N N i=1 p i s = 1 N N p i (4.3) i=1 Anschließend bestimmt man die Varianz zwischen dem Schwerpunkt und jedem einzelnen 3D Punkt. q i = p i s q = p i s (4.4) Aus allen einzelnen Varianzen lässt sich nun eine Kovarianzmatrix C bilden. C = N i=1 q i q i T (4.5) Führt man auf dieser eine Singulärwertzerlegung durch, so erhält man die Rotationsmatrix R durch Multiplikation der beiden orthogonalen Matrizen V und U. SV D (C) = UDV T R = V U T (4.6) Dies gilt jedoch nur, wenn die Determinante von R gleich 1 ist. Im Fall det(r) = 1 kann es sein, dass R eine Spiegelung der gesuchten Rotation ist. Um dies zu korrigieren, wird zunächst untersucht, ob einer der Singulärwerte gleich 0 ist. Dies müsste der Fall sein, da alle Punkte in einer Ebene liegen. Zur Bestimmung der korrekten Rotation negiert man den zu diesem Singulärwert gehörenden Singulärvektor der Matrix V und erhält wiederum die Rotationsmatrix durch R = V U T (wobei V die angepasste Matrix V darstellt). Ist keiner der Singulärwerte 0 und die Determinante von R gleich 1 schlägt der Algorithmus fehl. Jedoch tritt dieser Fall in der Regel nur ein, wenn die Ausgangsdaten große Fehler enthalten. Die noch fehlende Transformation t errechnet sich schließlich durch die Differenz zwischen dem Schwerpunkt s der rekonstruierten Punkte p und dem Schwerpunkt s der Modellkoordinaten p, multipliziert mit der soeben bestimmten Rotation R: t = s Rs (4.7) 33

38 Zusammen ergibt sich aus R und t die Transformation zwischen den beiden Kalibrationswinkeln T x. Eine ausführlichere Beschreibung und einen Beweis dieses Verfahrens findet sich in [11]. Damit zukünftige Rekonstruktionen nun die Punkte im Weltkoordinatensystem berechnen, müssen im letzten Schritt die Transformation der Kameras wieder entsprechend angepasst werden. Statt die erste Kamera im Ursprung zu platzieren wird nun die soeben berechnete Transformation T x zur ursprünglich über die Homographie bestimmten Kameratransformation T H1 (siehe Unterabschnitt 2.2.2) hinzu multipliziert. Man erhält T 1. Die entsprechende Transformationsmatrix T 2 der zweiten Kamera ergibt sich, indem man die aus der Kalibration resultierende Transformationsmatrix T zwischen den Kameras mit T 1 erweitert. T 1 = T H1 T x (4.8) T 2 = T T 1 (4.9) Da der verwendete Algorithmus versucht das Modell des Kalibrationswinkels nur durch Minimierung des algebraischen Fehlers möglichst gut in die Rekonstruktion der gemessenen Bildpunkte einzupassen, verbleibt ein gewisser Restfehler. Eine mögliche Verbesserung wäre auch hier die Verwendung einer Optimierungsmethode. Da sich der Fehler jedoch nur durch eine Verschiebung der absoluten Position auswirkt und auf die Bestimmung von relativen Positionsänderungen keinen Einfluss hat, wird dies in dieser Arbeit nicht mehr weiter verfolgt. 34

39 Kapitel 5 Verwendete Hardware und experimentelle Ergebnisse Bei der für die Bildverarbeitung in dieser Arbeit eingesetzten Hardware handelt es sich um Bildverarbeitungskameras des Modells DMP60H13 von TheImagingSource TM mit einer Brennweite von 4,7 mm und einer Auflösung von 640x488 Bildpunkten. Zusätzlich sind diese mit infraroten LEDs und einem IR Filter ausgestattet, um retroreflektive Marker detektieren zu können (siehe Abbildung 5.1). Insgesamt zwei dieser Kameras sind an einen DFG-BW1 Framegrabber derselben Firma angeschlossen. Als Testrechner wurde ein Standard PC mit einem 2 GHz Pentium 4 Prozessor verwendet. Die Implementierung erfolgte in C++. Abbildung 5.1: Kamera mit IR-LEDs und IR-Filter Der in Abschnitt 1.2 vorgestellte Kalibrationswinkel und -stab wurde extra für diese Arbeit zusammengebaut. Zum Einsatz kamen dabei aus Kostengründen handelsübliche Aluprofile, die auf einem Blechwinkel verschraubt wurden. Bei den zu detektierenden Kugeln handelt es sich um einfache Holzkugeln, die es in jedem Bastelladen zu kaufen gibt. Damit diese für infrarotes Tracking verwendet werden können, wurden sie mit retroreflektierender Folie von 3M TM beklebt. Auf den Aluprofilen aufgeschraubte Holzdübel befestigen die Kugeln. Auch wenn diese Lösung als Vorteil sehr preiswert war, muss jedoch leider die geringe Genauigkeit dieser Konstruktion bemängelt werden. Aufgrund dessen sind die experimentellen Ergebnisse immer auch unter dem Aspekt zu sehen, dass die Referenzobjekte nicht mit der Präzision wie in 35

40 Systemen von beispielsweise A.R.T. [1] oder Vicon TM ausgemessen sind. Bisher gibt es noch keine standardisierten Verfahren zur Bestimmung der Genauigkeit von Trackingsystemen. Die möglichen Störfaktoren in einem solchen System sind allerdings sehr vielfältig. Geht man die Verarbeitungskette nacheinander durch, treten die ersten Messungenauigkeiten bereits bei der Bestimmung der internen Kameraparameter auf. So sind die Parameter zur Bestimmung der Linsenverzeichnung nicht sehr exakt. Man bemerkt bereits bei der Bestimmung der Rekonstruktion des Kalibrationswinkels anhand der initialen Transformationsbestimmung über die Homographie, dass bessere Ergebnisse erzielt werden können. Befinden sich die Kugeln des Kalibrationswinkels relativ zentral im Kamerabild, ist der Fehler bei der initialen Bestimmung der externen Kameraparameter bedeutend kleiner, da sich dort die Linsenverzeichnung nicht so stark auswirkt. Der nächste Punkt, bei dem Ungenauigkeiten auftreten, ist die initiale Bestimmung der Kameratransformation über den Kalibrationswinkel. Zwar ließen sich durch den verwendeten Algorithmus durchaus sehr präzise Resultate berechnen, jedoch müssen dazu auch die Referenzdaten des Kalibrationswinkels sehr exakt bestimmt sein. Dies war jedoch durch die preiswerte Bauweise nur sehr eingeschränkt möglich. Ebenso spielt die Länge des Kalibrationsstabs, der im Optimierungsprozess als feste Größe zur Verbesserung mitverwendet wird, eine wichtige Rolle. Auch hier muss für ein optimales Ergebnis die Länge des Stabs exakt gemessen werden, was jedoch mit Hilfe der zur Verfügung stehenden Mittel nur beschränkt möglich war. Man sieht also neben Ungenauigkeiten in den Algorithmen sind vielmehr Probleme in der präzisen Bestimmung der für die Kalibrierung nötigen Referenzobjekte entscheidend für die spätere Exaktheit des Trackingsystems. Im Folgenden wird trotzdem versucht mit Hilfe von einfachen Versuchsaufbauten eine gewisse Messgenauigkeit des Systems zu ermitteln. Für alle nachfolgenden Experimente wurde der in Abbildung 5.2 dargestellte Versuchsaufbau verwendet: 5.1 Initiale Transformationsbestimmung Der erste Messwert, der für die Bestimmung der Genauigkeit mitentscheidend ist, entsteht bei der Berechnung der Homographie. Man betrachtet dazu den geometrischen Fehler, also den Abstand zwischen gemessenen Bildpunkten und Rückprojektion der Modellkoordinaten. Die in Unterabschnitt vorgestellte Minimierung des algebraischen Fehlers führt noch zu einer relativ großen Abweichung. Nach einer Optimierung anhand des geometrischen 36

41 Kamera 1 T Kamera 2 T1 T2 Abbildung 5.2: Die Kameras wurden für die Messreihen in einem Abstand von ca. 2,6m (T 1 ) bzw. 3,2m (T 2 ) zum Kalibrationswinkel aufgestellt. Zwischen den Kameras betrug die Translation T ca. 3m in der X-Achse, ca. 0,1m in der Y-Achse und 0,3m in der Z-Achse Fehlers reduziert sich diese deutlich. Verwendet wurde dafür eine Funktion, die bereits vom Lehrstuhl bereitgestellt wurde. Diese arbeitet ähnlich wie das in Kapitel 3 vorgestellte Verfahren, in dem sie mit Hilfe des Levenberg- Marquardt Algorithmus versucht die aus der Homographiezerlegung bezogene Translation und Rotation so zu variieren, dass der geometrische Fehler minimal wird. Bei einem Testlauf mit ca. 200 Aufnahmen des Kalibrationswinkels, erhält man durch lineare Bestimmung eine Abweichung der rückprojizierten Punkte zu den gemessenen Bildpunkten von durchschnittlich 1 Pixel auf der X- und 0.7 Pixel auf der Y-Achse. Diese Ergebnisse beruhen jedoch zunächst nur auf der initialen Lösung des Gleichungssystems durch die DLT [8, Seite 88]. Nach der Optimierung des geometrischen Fehlers über ein LM-Verfahren kann die durchschnittliche Abweichung auf 0.26 bzw Pixel reduziert werden. Interessant ist nun wie genau die Rekonstruktion des Kalibrationswinkels aufgrund dieser initialen Transformationsbestimmung erfolgen kann. Wie in Abbildung 5.7 zu sehen, weichen die über Triangulation (siehe Unterabschnitt 2.3.3) rekonstruierten 3D Positionen des Kalibrationswinkels dabei bereits nur sehr wenig von den idealen Modellkoordinaten ab. Hierbei ist zu beachten, dass das Verfahren der Triangulation aus Unterabschnitt noch relativ ungenaue Lösungen liefert. Somit könnte durch die Verwendung eines 37

42 Abbildung 5.3: Durchschnittliche Abweichung über DLT, x-achse Abbildung 5.4: Durchschnittliche Abweichung über DLT, y-achse Abbildung 5.5: Durchschnittliche Abweichung nach LM, x-achse Abbildung 5.6: Durchschnittliche Abweichung nach LM, y-achse besseren Rekonstruktionsalgorithmus [8, Seite 318] noch eine weitere Verbesserung der Rekonstruktion erzielt werden. Zu berücksichtigen ist allerdings, dass die Transformationen der Kameras anhand der idealen Modellkoordinaten optimiert wurde, weshalb die Rekonstruktion des Kalibrationswinkels über die Bildpunkte, die zur Bestimmung der Transformation genutzt wurden, natürlich sehr genau ist. Da in der Regel die idealen 3D Koordinaten nicht bekannt sind, ist eine mögliche Rekonstruktion nur über die initial bestimmte Transformation der Kameras normalerweise nicht so genau. Dies ist auch in den späteren Abweichungen der initialen Rekonstruktion des Kalibrationsstabs zu sehen. 38

43 Abbildung 5.7: Abweichung zwischen idealem Modellpunkt und Rekonstruktion des Kalibrationswinkels mittels der initial bestimmten Homographie 5.2 Rekonstruktion des Kalibrationsstabs Der in dieser Arbeit verwendete Kalibrationsstab sollte, vom Mittelpunkt der jeweiligen Kugeln gemessen, eine Länge von 900 mm haben. Nach mehrmaligem Ausmessen und der Annahme, dass sich der Messfehler einigermaßen mitteln würde, wurde schließlich ein Abstand von 902 mm an das System übergeben. Nach je 116 Aufnahmen des Kalibrationswinkels im Abstand von zwei bis drei Metern von beiden Kameras, ergaben sich mit Hilfe der initialen Rekonstruktion durch die in Unterabschnitt beschriebene Triangulation eine durchschnittliche Abweichung von dieser Länge von 3,8 mm (siehe Abb. 5.8). Dieser Wert hängt dabei natürlich stark davon ab wie genau der Kalibrationswinkel erkannt und damit bereits die initiale Transformation der Kameras zueinander bestimmt wurde. In Fällen, bei denen der Winkel am Rand der Kamerabilder zu sehen war, waren die Abweichungen durch die stärkere Linsenverzeichnung bedeutend größer, da trotz der Korrekturfunktion ein gewisser Restfehler bestehen bleibt. Der geometrische Fehler zwischen der Rückprojektion der initial bestimmten Transformationen des Kalibrationsstabs und den real gemessenen Bildpunkten betrug vor der Optimierung durchschnittlich 0.47 Pixel. Nach der Anwendung des in Kapitel 3 beschriebenen Levenberg-Marquardt Verfahrens, konnte der Wert für die durchschnittliche Pixelabweichung auf 0,14 Pixel gesenkt werden. Rekonstruiert man die 3D Punkte des Kalibrationswinkels mit Hilfe der resultierenden optimierten Transformation der Kameras und den real gemessenen Bildpunkten, so be- 39

44 trägt die Abweichung von den gemessenen 902 mm im Durchschnitt nur noch 1,3 mm (siehe Abb. 5.9). Abbildung 5.8: Abweichung der initialen Rekonstruktion des Kalibrationsstabs von der korrekten Länge Abbildung 5.9: Abweichung der optimierten Rekonstruktion des Kalibrationsstabs von der korrekten Länge 5.3 Messgenauigkeit nach erfolgreicher Kalibrierung Für die Bestimmung der relativen Messgenauigkeit wurde erneut der Kalibrationsstab detektiert. Durch die vorherige Kalibrierung des Systems, sollten die Werte für die Länge des Stabs nun deutlich besser sein als bei der initialen Rekonstruktion bei der die externen Parameterwerte der Kameras noch nicht optimiert wurden (siehe Abb. 5.10). Diesmal wurden dem System keinerlei Informationen über die Abmessungen des zu rekonstruierenden Objekts übermittelt, wodurch mögliche Ausreißer durch den Vergleich der rekonstruierten Länge mit einem gespeicherten Wert nicht herausgefiltert werden konnten. Für die Rekonstruktion wurde auch hier wieder die Triangulation aus Unterabschnitt verwendet, was zwar keine sehr genauen Messungen ergibt, aber dafür einen Vergleich mit den Werten aus Abbildung 5.10 ermöglicht. Ebenfalls etwa gleich war der Abstand des Kalibrationsstabs zu den Kameras, der zwischen zwei und drei Metern lag. Wie in Abbildung 5.11 zu sehen, ist die maximale Abweichung der Rekonstruktion zu der Länge von 902 mm mit 4,5 mm bereits deutlich kleiner, als in der Initialisierung der Optimierungsfunktion, bei der die maximale Abweichung noch 12,8 mm betrug. Und dies obwohl die Anzahl der Aufnahmen des Kalibrationsstabs mit 285 bedeutend 40

45 größer war als die 116 Aufnahmen der Initialisierung. Die durchschnittliche Abweichung verbesserte sich ebenfalls von 3,8 mm auf nur noch 1,3 mm (siehe Abb. 5.11). Abbildung 5.10: Abweichung der initialen Rekonstruktion des Kalibrationsstabs ohne Optimierung der externen Kameraparameter. Anzahl der Aufnahmen: 116 (Wdh. der Abbildung 5.8) Abbildung 5.11: Abweichung der Rekonstruktion durch neue Aufnahmen des Kalibrationsstabs mit den durch die Optimierung ermittelten externen Kameraparametern. Anzahl der Aufnahmen: 285 Man sieht also, dass durch die vorgestellte Kalibration eine gute Genauigkeit erzielt werden kann. Für einen Vergleich stand leider kein anderes optisches Trackingsystem zur Verfügung, weshalb ein abschließender Kommentar über die Güte des hier vorgestellten Verfahrens erst in zukünftigen Anwendungen erfolgen kann. 41