Schriftliche Ausarbeitung herunterladen
Schriftliche Ausarbeitung herunterladen
Schriftliche Ausarbeitung herunterladen
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
22 KAPITEL 3. LÖSUNGSENTWURF<br />
d = arctan Φ<br />
; (3.2)<br />
2<br />
Es ergibt sich, über den Ortsvektor�s zum Zentrum der Bildebene, der Vektor �f zum Fokuspunkt.<br />
�f =�s −�v ∗ d, �v : Blickrichtung (3.3)<br />
Die Zusammenhänge zwischen den Abständen und Vektoren, welche zur Berechnung eines Strahls<br />
durch die Szene verwendet werden, sind in Abbildung 3.4 dargestellt. Für den Richtungsvektor �l, der<br />
die Strahlrichtung vom Fokuspunkt zum Durchstoßpunkt in der Bildebene bei den Koordinaten (x,y)<br />
angibt, lässt sich folgender Zusammenhang herleiten:<br />
�l =�v ∗ d +�r ∗ x +�u ∗ y, �r,�u : Right/U p −Vektor der Kamera (3.4)<br />
Die Verlängerung der so gewonnenen Richtung �l ergibt einen Strahl durch die Szene, dessen erster<br />
Schnittpunkt �sp mit der gerenderten Szene den zu messenden Abstand bestimmt.<br />
zvirtuell = |�sp − �f | (3.5)<br />
Anhand der in Absatz 2.1.4 vorgestellten Gleichung 2.9 lässt sich die Distanz zreal eines Punktes im<br />
Kamerabild aus dem Disparitätswert des Tiefenbildes berechnen. Diese kann mit der Distanz im Modell<br />
zvirtuell verglichen werden. Um die Positionsvarianten effizient miteinander vergleichen zu können, wird<br />
die Summe der Abstandsdifferenzen zwischen Messpunkten in Modell und Realität für jede Variante i<br />
in einem Differenzvektor gespeichert:<br />
�di = ∑ j<br />
|zreal − zvirtuell|, j : 1..Anzahl der Messpunkte (3.6)<br />
Für Fälle, in denen die virtuelle Kamera direkt vor einer Tür positioniert ist, werden alle virtuellen<br />
Distanzen zusätzlich für eine offene Tür berechnet und der kleinere Differenzvektor ausgewählt.<br />
Aktualisierung der Position<br />
Durch den Vergleich der Differenzvektoren �di aller Varianten i ergibt sich die beste Positionsvariante<br />
als die Variante mit den kleinsten Differenzen. Für die in Abbildung 3.3 (c) dargestellte Situation<br />
stellt Position 1 die beste Lösung dar. Anhand dieser Information wird die Kameraposition im Modell<br />
aktualisiert.<br />
Über eine Translation wird die virtuelle Kamera in Richtung der besten Positionsvariante verschoben.<br />
Hierbei muss nicht zwingend derselbe Abstand verwendet werden, wie er zur Berechnung der Varianten<br />
angenommen wurde. Dieser kann, abhängig von der Größe des Fehlers, dynamisch bestimmt werden,<br />
um die Positionsfindung bei großen Differenzen zu beschleunigen und bei kleinen zu verfeinern. Auf<br />
diese Weise führt das Verfahren auch bei größeren Positionsabweichungen nach wenigen Schritten zu<br />
guten Ergebnissen.