Optimierte automatische Kameraorientierung auf Basis projektiver Beziehungen

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Optimierte automatische Kameraorientierung auf Basis projektiver Beziehungen"

Transkript

1 Fakultät für Geowissenschaften, Geotechnik und Bergbau Institut für Markscheidewesen und Geodäsie Diplomarbeit Optimierte automatische Kameraorientierung auf Basis projektiver Beziehungen David Matthus Geoinformatik Matrikel: Oktober 2013 Betreuer/1. Korrektor: PD Dr.-Ing. habil. Ralf Donner 2. Korrektor: M. Sc. Dipl.Ing. Martin Floth

2 Eidesstattliche Erklärung Ich versichere, dass ich diese Arbeit selbstständig verfasst und keine anderen Hilfsmittel als die angegebenen benutzt habe. Die Stellen der Arbeit, die anderen Werken dem Wortlaut oder dem Sinn nach entnommen sind, habe ich in jedem einzelnen Fall unter Angabe der Quelle als Entlehnung kenntlich gemacht. Diese Versicherung bezieht sich auch auf die bildlichen Darstellungen. 01. Oktober 2013 David Matthus

3 3 Danksagung Für die Anregung zu dieser interessanten Arbeit und die Betreuung derselben, möchte ich mich bei Herrn Dr. habil. Donner und Herrn Floth bedanken. Weiterer Dank geht an all diejenigen, die mir in der letzten Phase meines Studiums mit hilfreichen Hinweisen zur Seite standen. Besonderer Dank geht dabei an Stephanie. Auÿerdem danke ich meinen Eltern für ihre Unterstützung während des Studiums, sowie meinen Geschwistern und allen Freunden, die mich in dieser Zeit begleitet haben.

4 4 Kurzreferat Mit den Fortschritten in der Computer Vision, wurden neue Verfahren zur automatischen Kameraorientierung auf Basis der projektiven Geometrie entwickelt. In dieser Arbeit werden die zu Grunde liegenden Methoden auf ihre Anwendbarkeit in der Photogrammetrie untersucht. Dafür wurde das Tool Apero ausgewählt, welches durch vielfältige Kongurationsmöglichkeiten eine gute Basis für weitere Forschung bietet. Um ein ezienteres Arbeiten zu ermöglichen, wurde im Rahmen dieser Arbeit die grasche Oberäche Apero GUI entwickelt. Mit dieser konnte in einer ersten Auswertung, eine höhere Genauigkeit als mit der Vergleichssoftware Agisoft PhotoScan erreicht werden.

5 Inhaltsverzeichnis 5 Inhaltsverzeichnis 1 Einleitung Motivation Aufbau der Arbeit Grundlagen Das Kameramodell Verzeichnung Kalibrierung Geometrische Zusammenhänge zwischen mehreren Bildern Die Epipolargeometrie eines Bildpaares Projektive Beziehungen zwischen mehr als zwei Bildern Automatische Detektion von Verknüpfungspunkten RANSAC D-Rekonstruktion und Kameraorientierung mit Structure from Motion Vorgehensweise zur Rekonstruktion einer Szene Rekonstruktion bei geringer Kamerabewegung Weitere Methoden Software zur automatischen Orientierung von Kameras Überblick über existierende Software Das Softwarepaket MicMac Vorgehensweise zur 3D-Rekonstruktion einer Szene Grasche Oberächen für MicMac Apero Funktionsweise von Apero Verzeichnungsmodelle in Apero Steuerung von Apero mit XML-Dateien Aufbau der XML-Datei zur Konguration der Ausgleichung XML-Datei der Kameraparameter Aufbau der XML-Datei der Äuÿeren Orientierung Kommandozeilenausgabe von Apero Programmierung einer grafischen Oberfläche für Apero Programmbibliotheken für grasche Oberächen Wichtige Konzepte bei der Programmierung grascher Oberächen Signale und Slots Model/View-Programmierung Übersetzung in andere Sprachen

6 Inhaltsverzeichnis Benutzerfreundlichkeit Aufbau des Quellcodes Item-Klassen Manager-Klassen Apero GUI Laden und Verwalten von Bildern Verwalten der Kameras Ablauf der Bündelblockausgleichung kongurieren Apero ausführen Ergebnisse der Ausgleichung Auswertung Ergebnisse eines Beispieldatensatzes Vergleich mit den Ergebnissen von Agisoft PhotoScan Zusammenfassung und Ausblick 60 Abbildungsverzeichnis 62 Tabellenverzeichnis 64 Quellcodeverzeichnis 65 Literatur 66

7 1 Einleitung 7 1 Einleitung 1.1 Motivation Im Bereich der automatische Kameraorientierung wurden durch den Einuss der Computer Vision groÿe Fortschritte erzielt. So ist seit der Entwicklung des SIFT-Algorithmus eine sehr genaue automatische Detektion von Verknüpfungspunkten zwischen zwei Bildern möglich [Low04]. Verschiedene Algorithmen wurden entwickelt, um mit Hilfe der Verknüpfungspunkte eine Orientierung der Kameras zu berechnen [HZ03]. Dazu gehören unter anderem der 8- Punkte-Algorithmus zur Berechnung der Fundamentalmatrix und der RANSAC-Algorithmus zur Detektion von Ausreiÿern. Die Computer Vision hat auch den Nutzen der Bündelblockausgleichung zur Verbesserung der Ergebnisse erkannt [Tri+00]. Dabei stellt sich die Frage, ob diese Fortschritte auch im Bereich der Photogrammetrie nutzbar sind. In einer vorangegangen Arbeit ([Mat13]) wurde festgestellt, dass die automatische Orientierung von 2 Bildern mit Hilfe der projektiven Geometrie, speziell der Fundamentalmatrix, groÿen Ungenauigkeiten unterliegt. Auch eine direkte Einbeziehung der radialen Verzeichnung bei der Berechnung der Fundamentalmatrix, führt mit realen Daten zu starken Abweichungen von den korrekten Werten [DFM13]. Daraus ergibt sich für diese Arbeit die Frage, ob unter Einbeziehung mehrerer Bilder, die Ergebnisse verbessert werden können. Auÿerdem, ob durch die Verwendung alternativer Algorithmen und die Durchführung einer Bündelblockausgleichung, eine Verbesserung der Genauigkeit erreicht werden kann. Das Ziel dieser Arbeit ist eine automatische Kameraorientierung mit Hilfe der projektiven Geometrie zu bestimmen, die auch photogrammetrischen Genauigkeitsansprüchen genügt. 1.2 Aufbau der Arbeit Der Inhalt dieser Arbeit ist folgendermaÿen strukturiert: In Kapitel 2 werden zunächst die Grundlagen des Kameramodells und der projektiven Geometrie zwischen mehreren Bildern erklärt. Weiterhin werden Verfahren vorgestellt, welche zur initialen Bestimmung der relativen Position zweier Kameras, die Essential- Matrix statt der Fundamentalmatrix verwenden und die Ergebnisse mit Hilfe einer Bündelblockausgleichung verbessern. Das darauf folgende Kapitel 3 stellt eine Auswahl von Softwarelösungen vor, die eine automatische Kameraorientierung durchführen können. Aus diesen wird das Softwarepaket MicMac ausgewählt und näher vorgestellt, da dieses eine hohe Genauigkeit bietet und zusätzlich viele Möglichkeiten den Ablauf des Algorithmus zu steuern. Kapitel 4 stellt das zu MicMac gehörende Tool Apero näher vor. Dabei wird sowohl dessen Funktionsweise erläutert, als auch gezeigt, wie der Anwender den Ablauf des Programms kongurieren kann.

8 1 Einleitung 8 Den Hauptteil dieser Arbeit, stellt die Programmierung einer graschen Oberäche für das Tool Apero dar. Mit dieser kann ein Anwender auf einfache Weise, mit einem Satz von Bildern eine automatische Kameraorientierung durchführen lassen. Die Vorgehensweise bei der Programmierung der graschen Oberäche, sowie die Strukturierung des Quellcodes, wird in Kapitel 5 ausgeführt. Die fertige Oberäche Apero GUI, wird in Kapitel 6 vorgestellt. Dabei werden alle Funktionen für den Anwender beschrieben. Kapitel 7 zeigt die Genauigkeit der Ergebnisse einer automatischen Kameraorientierung mit Apero anhand eines Beispieldatensatzes. Zusätzlich wird ein Vergleich mit den Ergebnissen des Programms Agisoft PhotoScan durchgeführt. Zum Abschluss wird in Kapitel 8 eine Zusammenfassung dieser Arbeit gegeben, sowie ein Ausblick auf mögliche Folgearbeiten.

9 2 Grundlagen 9 2 Grundlagen In diesem Kapitel werden die Grundlagen erklärt, die für eine automatische Kameraorientierung auf Basis projektiver Beziehungen nötig sind. Dafür wird zunächst das Modell einer Kamera beschrieben und wie damit die Projektion von 3D-Punkten eines Objekts auf die Bildebene durchgeführt werden kann. Danach werden im Abschnitt 2.2 die projektiven Beziehungen zwischen mehreren Aufnahmen hergestellt. Wie die dafür nötigen Verknüpfungspunkte automatisch gefunden werden, zeigt Abschnitt 2.3. Da dabei auch fehlerhafte Verknüpfungen auftreten können, wird im danach folgenden Abschnitt ein Algorithmus zum Erkennen dieser Fehler vorgestellt. Der letzte Abschnitt dieses Kapitels gibt einen Einblick in Funktionsweise der automatischen Kameraorientierung, bei der gleichzeitig eine Rekonstruktion der 3D Punkte einer Szene erfolgt. 2.1 Das Kameramodell Um die Abbildung von 3D-Punkten eines Objektes auf 2D-Punkte eine Bildes nachzuvollziehen, werden mathematische Modelle der Kameras verwendet. Die Parameter eines solchen Modells sind in Abbildung 2.1 dargestellt und werden im folgenden erläutert. Die Parameter Abb. 2.1: Ein Objektpunkt X(X, Y, Z) wird auf den Bildpunkt x(x, y) abgebildet. Die äuÿere Orientierung der Kamera wird durch die Lage des Projektionszentrums C und die Rotation R(ω, φ, κ) bestimmt. Zur inneren Orientierung gehören die Lage des Bildhauptpunktes p und die Kamerakonstante c. (Nach [Luh10, S. 49]) lassen sich in die äuÿere und die innere Orientierung unterteilen. Die äuÿere Orientierung beschreibt die Position der Kamera im Objektkoordinatensystem [Luh03, S. 235 f.], welche durch

10 2 Grundlagen 10 das Projektionszentrum C = [X 0, Y 0, Z 0 ] T bestimmt wird und die Rotation R = R ω R φ R κ der Kamera um die X-,Y- und Z-Achse. Die innere Orientierung beschreibt den inneren Aufbau der Kamera [Luh03, S. 118 f.]. Dazu gehören die Koordinaten des Bildhauptpunktes p = [x 0, y 0 ] T, welcher den Durchstoÿpunkt der optischen Achse durch die Bildebene beschreibt. Weiterhin die Kamerakonstante c, welche den Abstand des Bildhauptpunktes zum Projektionszentrum angibt. Bei Digitalkameras kann der Fall auftreten, dass die Pixel in x- und y-richtung unterschiedlich groÿ sind. Dies wird über die Parameter m x und m y ausgedrückt, welche die Anzahl der Pixel pro Längeneinheit angeben. Falls die Bildachsen nicht genau orthogonal aufeinander stehen, wird dies mit der Scherung s berücksichtigt. Die innere Orientierung lässt sich in Form einer Kalibriermatrix K ausdrücken [HZ03, S. 157]. cm x s x 0 K = 0 cm y y 0 (2.1) Diese lässt sich in einer 3 4 Projektionsmatrix P um die äuÿere Orientierung erweitern, wobei I die 3 3 Einheitsmatrix ist [HZ03, S. 156]. P = KR[I C] (2.2) Ein Punkt X = [X, Y, Z, 1] T in homogenen Objektkoordinaten, kann mit Hilfe der Projektionsmatrix auf den Punkt x = [x, y, 1] T in homogenen Bildkoordinaten abgebildet werden [HZ03, S. 154]. x = P X (2.3) Eine bekannte Projektionsmatrix kann in K, R und C zerlegt werden. Dafür wird P in Abhängigkeit einer Matrix M geschrieben. Diese kann über RQ-Zerlegung in eine obere Dreiecksmatrix und eine orthogonale Matrix zerlegt werden. Erstere entspricht einer Kalibriermatrix K, letztere einer Rotationsmatrix R. Da die Elemente auf der Diagonalen von K positiv sein müssen, wird die ansonsten mehrdeutige Zerlegung eindeutig [HZ03, S. 163 f.]. P = [M M C] M = KR (2.4) Verzeichnung Bei einer Verzeichnung handelt es sich um Abbildungsfehler, welche die im Bild gemessenen Koordinaten beeinussen. Wenn eine hohe Genauigkeit gefordert ist oder eine Kamera mit groÿen Verzeichnungen zum Einsatz kommt, sollten diese im Modell beachtet werden. Dafür können die Bildkoordinaten mit Korrekturfunktionen x bzw. y versehen werden. Die Bestimmung der Parameter dieser Korrekturfunktionen sollte während einer Bündelblockausgleichung durchgeführt werden [Luh10, S. 59]. Bei den aufgenommenen Bildern können verschiedene Arten von Verzeichnungen auftreten [Luh03, S. 120.]. Die wichtigsten werden

11 2 Grundlagen 11 hier kurz aufgeführt. Radial-symmetrische Verzeichnung Diese Verzeichnung hat den gröÿten Einuss auf das Bild. Sie entsteht durch die Brechungsänderungen an den Linsen des Objektives und wächst mit dem Abstand zum Bildhauptpunkt. In Abhängigkeit vom Auftrepunkt des Projektionsstrahls auf die Linse, können unterschiedliche Arten der radial-symmetrischen Verzeichnung auftreten (Abb 2.2). Bei einer tonnenförmigen Verzeichnung werden Punkte in Richtung Verzeichnungszentrum verschoben. Bei einer kissenförmigen Verzeichnung tritt der umgekehrte Fall ein. Die Stärke der Verschiebung ist dabei vom Abstand des Punktes zum Verzeichnungszentrum abhängig. Mit einer Reihenentwicklung Abb. 2.2: Radial-symmetrische Verzeichnung in Abhängigkeit von der Blendlage. Die Stärke der Verschiebung ist vom Abstand des jeweiligen Punktes zum Verzeichnungszentrum abhängig. Die Punkte werden entweder zum Verzeichnungszentrum hin verschoben (oben) oder von diesem weg (unten). [Luh10, S. 40] kann eine Näherungslösung für die Verzeichnung bestimmt werden, mit den Verzeichnungsparametern A 1 bis A n [Luh03, S. 121]: r rad = A 1 r 3 + A 2 r 5 + A 3 r x rad = x r rad r y rad = y r rad r (2.5) Radial-assymetrische und tangentiale Verzeichnung Durch eine Schiefstellung und Dezentrierung der Linsen im Objektiv, kommt es zu einer asymmetrischen Verzeichnung im Bild. Dieser Eekt ist bei hochwertigen Kameras meist vernachlässigbar, sollte jedoch bei Amateurkameras beachtet werden [Luh10, S. 45]. Die Verzeichnung kann auf folgende Weise modelliert werden [Luh03, S. 123]: x tan = B 1 (r 2 + 2x 2 ) + 2B 2 x y y tan = 2B 1 x y + B 2 (r 2 + 2y 2 ) (2.6)

12 2 Grundlagen 12 Affine Verzeichnung Bei Digitalkameras treten ane Verzeichnungen auf, wenn die Maÿe der einzelnen Sensorelemente in x- und y-richtung unterschiedlich sind. Auÿerdem führen nicht orthogonal aufeinander stehenden Koordinatenachsen zu Scherung im Bildkoordinatensystem. Diese Art der Verzeichnung kann zum einen in der Kalibriermatrix (Gleichung 2.1) erfasst werden, zum anderen lässt sich diese auch wie folgt modellieren [Luh03, S. 123]. x aff = C 1 x + C 2 y y aff = 0 (2.7) Sonstige Einflüsse Weitere Abweichungen der Bildkoordinaten können durch eine Schieage des Sensors oder einer unebenen Sensoräche verursacht werden [Luh10, S. 46 f.]. Auÿerdem können Abbildungsfehler durch chromatische und sphärische Aberration entstehen [Luh10, S. 41 f.] Kalibrierung Die Bestimmung der Parameter der inneren Orientierung einer Kamera wird Kalibrierung genannt [Luh03, S. 133]. Werden die Parameter der inneren und äuÿeren Orientierung gleichzeitig während einer Bündelblockausgleichung bestimmt, wird dabei auch von Simultankalibrierung gesprochen. Wenn zur Kalibrierung nur gemessene Bildkoordinaten verwendet werden, wird diese als Selbstkalibrierung bezeichnet [Luh03, S. 281]. Die Kalibrierung der Kamera kann mit Hilfe von Testfeldern bzw. Testkörpern erfolgen. Auf diesen können Passpunkte gemessen werden, deren Positionen auch in den Bildern bestimmt werden können. Die Parameter können mit den Kollinearitätsgleichungen ([Luh03, S. 237 f.]) oder über projektive Zusammenhänge (Gleichung 2.3) berechnet werden. Bei guter räumlicher Verteilung der Passpunkte, ist dies mit einem Einzelbild möglich [Luh03, S. 511]. Das Standardverfahren mit der höchsten Genauigkeit, ist eine Bündelblockausgleichung mit Selbstkalibrierung [Luh10, S. 62]. Eine Möglichkeit für eine sehr genaue Kalibrierung von Kameras auf Basis projektiver Beziehungen, bei der sowohl die Verzeichnung in Abhängigkeit des Abstands zum Objekt bestimmt wird, als auch Eekte durch Aberration beachtet werden, wird in [Han11] behandelt. 2.2 Geometrische Zusammenhänge zwischen mehreren Bildern Um eine Bestimmung der inneren und relativen Orientierung einer Kamera auf Basis mehrerer Bilder durchzuführen, müssen die geometrischen Zusammenhänge zwischen den Bildern betrachtet werden. Diese können dafür als projektive Ebenen im projektiven Raum angesehen werden. Wie die Beziehung zwischen den Bildern mit einer Matrix beschrieben werden kann, wird in diesem Abschnitt ausgeführt.

13 2 Grundlagen Die Epipolargeometrie eines Bildpaares Die geometrischen Zusammenhänge zwischen 3D Punkten und deren Abbildungen in zwei Bildern, werden mit der Epipolargeometrie beschrieben [HZ03, S. 239.] [Sch05, S. 65.]. Beide Aufnahmen bilden einen Punkt X im Raum ab (Abb. 2.3). In Bild I wird dieser durch den Punkt x abgebildet. In Bild I liegt dieser Punkt an der Position x. Die 3 Punkte liegen alle auf einer Epipolarebene π. Die Schnittgeraden von π mit den Bildern I und I werden als Epipolarlinien l und l bezeichnet. Alle Epipolarlinien von I schneiden sich im Epipol ẽ, von I in ẽ. Die Epipole stellen auch die Abbildung des Projektionszentrums der jeweils anderen Kamera dar. Gleichzeitig sind sie die Schnittpunkte der Basis B mit I und I. Die Basis ist die Verbindungsgerade zwischen den Projektionszentren C und C. Die relative Position der Projektionszentren zueinander, kann über eine Rotation R und eine Translation t beschrieben werden. Abb. 2.3: Abbildung eines 3D Punktes X auf die Bildpunkte x und x. Die Basis B zwischen den beiden Projektionszentren C und C, schneidet die Bildebenen I und I in den Epipolen ẽ und ẽ. Epipole, Bildpunkte und der 3D Punkt, liegen auf einer Epipolarebene π. (Nach [Sch05, S. 69]) Eine Beziehung zwischen den beiden Bildern kann über die Fundamentalmatrix F hergestellt werden. Diese kann mit Hilfe der Projektionsmatrizen (Gleichung 2.2) P und P der beiden Kameras bestimmt werden [HZ03, S. 244]. F = [P C] P P + (2.8) Die Matrix P + ist die Pseudoinverse von P. Der Vektor C ist das Projektionszentrum der ersten Kamera in homogenen Koordinaten [HZ03, S. 244]. [ ] K P + 1 = 0 T [ ] C C = 1 (2.9) Der Term [P C] in Gleichung 2.8, beschreibt eine schiefsymmetrische Matrix [s], die aus dem Vektor s des Produktes aus P C gebildet wird. Diese Matrix wird folgendermaÿen auf-

14 2 Grundlagen 14 gebaut [Sch05, S. 71]: 0 s 3 s 2 [s] = s 3 0 s 1 (2.10) s 2 s 1 0 Mit der Fundamentalmatrix kann einem Punkt x in einem Bild, eine Epipolarlinie l im anderen Bild zugeordnet werden. Auÿerdem gehören die Epipole der Bilder zum Nullraum von F bzw. F T [HZ03, S. 246]. l = F x l = F T x (2.11) F T e = 0 F e = 0 (2.12) Zwei korrespondierende Punkte x und x müssen mit der zugehörigen Fundamentalmatrix die Epipolargleichung erfüllen [HZ03, S. 279]: x T F x = 0 (2.13) Eine Berechnung der Fundamentalmatrix kann mit Hilfe von Punktkorrespondenzen durchgeführt werden. Die Matrix besitzt nur 7 Freiheitsgrade, da F nur bis auf einen Faktor genau bestimmt ist und die Bedingung det F = 0 erfüllt sein muss. Die Berechnung kann unter anderem mit dem 8-Punkte-Algorithmus durchgeführt werden (siehe [HZ03, S. 281.] oder [Sch05, S. 80.]). Eine Sonderform der Fundamentalmatrix ist die Essential-Matrix E [HZ03, S. 257]. Diese beschreibt die relative Orientierung zwischen 2 Kameras P = [I 0] und P = [R t], welche sich nur durch eine Rotation R und eine Translation t voneinander unterscheiden. Wenn die Fundamentalmatrix bekannt ist, lassen sich aus dieser beliebig viele Projektionsmatrizen der Kameras herleiten. Auf diese Weise kann über eine Bestimmung von F und mit Hilfe der Epipolargleichung, eine Kamerakalibrierung durchgeführt werden [HZ03, S. 256]. P = [I 0] P = [[e ] F + e v T λe ] (2.14) Gewöhnlich wird dafür eine der Kameras in den Koordinatenursprung verschoben. Die andere wird mit einem beliebigen Vektor v und einem Faktor λ 0 bestimmt. Mit v = [0, 0, 0] T und λ = 1 lässt die Gleichung zu P = [[e ] F e ] vereinfachen. Die Fundamentalmatrix ist nur bis auf einen Skalierungsfaktor genau bestimmt. Damit ist nur eine projektive Kalibrierung des Gesamtsystems bekannt. Die korrekten metrischen Projektionsmatrizen der Kameras sind nicht eindeutig bestimmt. Deshalb lässt sich mit der Fundamentalmatrix nur die projektive Geometrie der Szene rekonstruieren. Um die Mehrdeutigkeit aufzulösen, sind weitere Informationen nötig. Diese können entweder über Fluchtpunkte, durch Abbildungen von parallelen Linien in den Bildern oder über bekannte Passpunkte in Objektkoordinaten gewonnen werden. Dafür genügen die Koordinaten von 5 Punkten, von denen keine 4 koplanar sein dürfen (Abb. 2.4).

15 2 Grundlagen 15 Abb. 2.4: (a) Aufgenommenes Bild mit 5 Passpunkten. (b) Mit Hilfe der Fundamentalmatrix lässt sich nur eine projektive Geometrie einer Szene rekonstruieren. (c) Unter Verwendung der 5 Passpunkte lässt sich eine metrische Rekonstruktion durchführen. [HZ03, S. 276] Projektive Beziehungen zwischen mehr als zwei Bildern Für die geometrischen Zusammenhänge zwischen mehr als zwei Bildern, kann die Epipolargeometrie erweitert werden. Im Falle von drei Aufnahmen einer Szene können die Beziehungen mit Hilfe des trifokalen Tensors T = [T 1, T 2, T 3 ] dargestellt werden [HZ03, S. 365.] [Sch05, S. 185.]. Dieser kann aus mindestens 6 Punktkorrespondenzen zwischen allen drei Bildern berechnet werden [HZ03, S. 393.] [Sch05, S. 198.]. Aus dem trifokalen Tensors lassen sich Projektionsmatrizen der drei Kameras herleiten [HZ03, S. 375]. Eine Kamera wird dafür zunächst in den Koordinatenursprung verschoben (P = [I 0]). Die Projektionsmatrix P der zweiten Kamera wird mit P = [[T 1, T 2, T 3 ]e e ] berechnet. Für die dritte Kamera gilt P = [(e e T I)[T T 1, T T 2, T T 3 ]e e ]. Es ist auÿerdem möglich, die Fundamentalmatrizen zwischen jeweils zwei der Bilder aus dem trifokalen Tensor zu bestimmten [HZ03, S. 374]. Wie schon mit der Fundamentalmatrix, kann auch mit dem trifokalen Tensor nur die projektive Geometrie der Szene rekonstruiert werden. Für eine metrische Rekonstruktion sind weitere Informationen nötig. Die projektiven Beziehungen zwischen vier Bildern, können mit einem quadrifokalen Tensor beschrieben werden [HZ03, S. 411.]. Auch hier gelten die gleichen Einschränkungen wie für die Fundamentalmatrix und den trifokalen Tensor. 2.3 Automatische Detektion von Verknüpfungspunkten Über Verknüpfungspunkte wird eine Beziehung zwischen 2 Bildern hergestellt. Diese können zum einen manuell mit Hilfe eines Stereokomparators bzw. eines digitalen Stereoauswertesystems bestimmt werden [Luh03, S. 452.]. Zum anderen können die Verknüpfungspunkte in digitalen Bildern auch mit Methoden zur automatischen Extraktion von Bildmerkmalen gewonnen werden. Im folgenden wird letztere Variante näher vorgestellt. Ein lokales Bildmerkmal ist dadurch deniert, dass es sich in Helligkeit, Farbe oder Textur von seinen unmittelbaren Nachbarn unterscheidet [TM08]. Für eine Suche von Verknüpfungspunkten sind dabei vor allem Merkmale von Bedeutung, deren Position sehr genau bestimmt werden kann. Um eine eindeutige Zuordnung der Punkte zueinander festlegen zu können, sollten deren Eigenschaften sich stark unterscheiden. Diese werden als sogenannte Deskrip-

16 2 Grundlagen 16 toren gespeichert. Merkmale mit den gleichen Deskriptoren können damit an anderen Positionen wiedergefunden werden. Wie die Suche nach Bildmerkmalen, sowie die Verknüpfung zweier Merkmale über Deskriptoren funktioniert, soll hier anhand des häug genutzten SIFT- Algorithmus gezeigt werden. Dieser ist invariant gegenüber einer Skalierung und Rotation der Bildmerkmale, weshalb er gut geeignet ist um Merkmale in Bildern wiederzunden, die aus anderen Perspektive aufgenommen wurden. Der Algorithmus wird in [Low04] vorgestellt und wendet zu Beginn einen Gauÿ-Filter auf ein Bild an. Bei diesem handelt es sich um einen Tiefpasslter, welcher das Bild mit Hilfe einer Gauÿ-Verteilung glättet. Das bedeutet, der Wert eines Pixels im Bild wird mit Hilfe der Werte der benachbarten Pixel berechnet. Mit welchem Gewicht der Wert der umliegenden Pixel dabei in die Berechnung eingeht, hängt von deren Abstand zum aktuell zu berechnenden Pixel ab. Diese Gewichte werden durch die Gauÿ-Verteilung bestimmt. Es werden mehrere Bilder mit unterschiedlich starker Filterung erstellt. Um die Bereiche mit markanten Ecken und Kanten hervorzuheben, wird nun die Dierenz zwischen 2 gelterten Bildern gebildet (siehe Abb. 2.5 links). Mit den unterschiedlich stark Abb. 2.5: Links: Anwendung eines Gauÿ-Filters mit verschiedenen Filter-Werten auf die oberen Bilder. Das Dierenzbild der gelterten Bilder ist darunter zu sehen. Rechts: Unterteilung der Umgebung eines Merkmals in Teilgebiete. Darstellung der lokalen Helligkeitsänderungen in den Teilgebieten mit Vektoren. Anhand von Orientierung und Länge diese Vektoren, kann das Merkmal in anderen Bildern wiedergefunden werden. gelterten Bildern, werden mehrere Dierenzbilder erstellt. Diese werden sortiert und auf lokalen Extremstellen untersucht. Dabei wird jedes Pixel mit seinen 8 umliegenden Nachbarn, so wie den jeweils 9 nächsten Pixeln im vorherigen bzw. folgenden Bild, verglichen. Wenn der Wert des Pixels gröÿer oder kleiner als der Wert aller benachbarten Pixel ist, kommt es als markantes Bildmerkmal in Frage. Merkmale die auf einer Kante liegen oder deren Kontrast zur Umgebung zu gering ist, werden verworfen. Um eine auf Subpixel genaue Position des

17 2 Grundlagen 17 Merkmals zu erhalten, wird die Position der Extremstelle anhand der Helligkeitsänderungen im Umfeld des Pixels bestimmt. Nachdem die Positionen der markanten Merkmale bestimmt wurden, müssen diese anhand ihrer Eigenschaften beschrieben werden. Damit lassen sich diese in anderen Bildern wieder- nden. Damit sie invariant gegenüber Rotationen sind, wird zunächst die Orientierung der gröÿten Helligkeitsänderung berechnet. Danach wird die Umgebung des Merkmals in mehrere Gebiete unterteilt, für die jeweils ein Vektor mit der Richtung und Stärke der gröÿten Helligkeitsänderung berechnet wird (Abb. 2.5 rechts). Alle Vektoren werden zu einem Vektor, dem Deskriptor, zusammengefasst. Anhand dieser Deskriptoren kann ein Bildmerkmal in anderen Bildern wiedergefunden werden. Auf diese Weise können die Verknüpfungspunkte zwischen den Bildern automatisch bestimmen werden. 2.4 RANSAC Bei der automatischen Detektion von Verknüpfungspunkten, kann es zu fehlerhaften Zuordnungen kommen. Da diese das Ergebnis damit durchgeführter Berechnungen stark verfälschen können, sollten die falschen Verknüpfungen gefunden und entfernt werden. Solche Fehler können während einer Bündelblockausgleichung an hohen Residuen erkannt werden. Eine andere Möglichkeit, bei der die Ausreiÿer schon bei der Berechnung der Orientierung gefunden werden, bietet RANSAC. Das Ziel des Algorithmus ist es, eine möglichst gute Lösung für ein Modell aus einer gegebenen Datenmenge zu nden [HZ03, S. 117.] [Sch05, S. 87.]. Dazu werden zunächst zufällig s Punkte aus der Menge von S Punkten ausgewählt. Die Teilmenge s enthält mindestens so viele Punkte, wie zur Berechnung des Modells nötig sind. Das berechnete Ergebnis wird auf alle Punkte angewendet. Wenn ein Punkt nicht innerhalb eines bestimmten Abstands t zur Lösung liegt, wird er als Ausreiÿer gewertet. Es werden so lange neue Teilmengen ausgewählt, bis die Anzahl der Ausreiÿer einen bestimmten Grenzwert unterschreitet oder eine genügend groÿe Anzahl an Modellen N berechnet wurden. Das Ergebnis ist das Modell mit den wenigsten Ausreiÿern. Da es sehr rechenaufwändig wäre, alle möglichen Kombinationen an Teilmengen zu berücksichtigen, wird die Anzahl der Durchläufe N begrenzt. Diese Begrenzung wird so gewählt, dass mit einer Wahrscheinlichkeit p mindestens eine Teilmenge s keine Ausreiÿer enthält [HZ03, S. 119]. N = log(1 p)/ log(1 (1 ɛ) s ) (2.15) Der Wert für ɛ wird aus dem Verhältnis von Ausreiÿern zur Gesamtzahl der Punkte berechnet D-Rekonstruktion und Kameraorientierung mit Structure from Motion Wenn mehrere Bilder einer Szene vorliegen, ist es möglich, damit die innere und relative Orientierung der Aufnahmekameras zu bestimmen. Zusätzlich kann auch eine Punktwolke zur Visualisierung der Szene erstellt werden (Abb. 2.7). Da durch eine Positionsänderung der Kamera eine grobe Struktur der Szene mit den 3D Punkten rekonstruiert werden kann, wird

18 2 Grundlagen 18 in der Computer Vision auch der Begri Structure from Motion (SfM ) verwendet. Im folgenden Abschnitt wird eine geeignete Vorgehensweise zur Rekonstruktion der 3D Punkte bei gleichzeitiger Bestimmung der Kameraorientierung vorgestellt. Im Abschnitt wird eine Methode gezeigt, die eine Szene aus mehreren Bildern gleichzeitig rekonstruiert, wenn die Verknüpfungspunkte in allen Bildern sichtbar sind. Weitere Methoden werden im Abschnitt erwähnt Vorgehensweise zur Rekonstruktion einer Szene Eine Möglichkeit zur automatischen Kameraorientierung aus mehreren Bilder, wird in [SSS07] beschrieben und soll in diesem Abschnitt vorgestellt werden. Bei dieser Methode wird zunächst eine Initialisierung mit zwei Bildern und der Essential-Matrix vorgenommen. Danach werden Stück für Stück die weiteren Bilder hinzugefügt. Dafür wird auf projektive Beziehungen zwischen 3D Punkten und Kameras zurückgegrien. Die Zwischenergebnisse werden mit einer Bündelblockausgleichung verbessert. Zum Erkennen von Ausreiÿern kommt der RANSAC- Algorithmus zum Einsatz. Zu Beginn wird das Bildpaar mit den meisten gemeinsamen Verknüpfungspunkten bei möglichst groÿer Basis gesucht. Dieses kann mit Hilfe einer Homographie gefunden werden. Eine Homographie H beschreibt die Abbildung von Punkten x i einer projektiven Ebene, auf Punkte x i einer anderen Ebene (Abb. 2.6). Die Homographie wird durch eine 3 3 Matrix Abb. 2.6: Die Punkte x i der projektiven Ebene I 1 werden auf die Punkte x i der Ebene I 2 abgebildet. Diese Abbildung kann mit einer Homographie beschrieben werden. (Nach [Sch05, S. 17]) beschrieben und Stellt die Beziehung zwischen den Punkten auf folgende her [HZ03, S. 88]: x i = Hx i (2.16)

19 2 Grundlagen 19 Je unterschiedlicher die Aufnahmeposition der beiden Kameras ist, desto schlechter lassen sich die Verknüpfungspunkte mit einer Homographie von einem Bild auf das andere abbilden. Zwischen allen Bildpaaren eine Homographie berechnet. Mit Hilfe des RANSAC Algorithmus werden dabei die Verknüpfungspunkte in Ausreiÿer und gültige Punkte unterteilt. Die Berechnung einer Homographie unter Verwendung von RANSAC wird in [HZ03, S. 123] näher beschrieben. Aus allen berechneten Homographien wird das Bildpaar ausgewählt, welches eine Mindestanzahl gültiger Punkte nicht unterschreitet und das schlechteste Verhältnis zwischen gültigen Punkten und Ausreiÿern hat. Für das so ermittelte Bildpaar wird die relative Orientierung mit Hilfe der Essential-Matrix E berechnet. Diese stellt eine spezielle Form der Fundamentalmatrix dar und wird aus der Translation t und der Rotation R zwischen den beiden Kameras, mit E = [t] R gebildet [HZ03, S. 257]. Zur Berechnung von E kann ein 5-Punkte-Algorithmus zusammen mit RAN- SAC verwendet werden. Die Vorgehensweise dafür wird in [Nis04] vorgestellt und im folgenden erläutert. Die Grundlage zur Berechnung von E wird durch die Epipolargleichung (Gleichung 2.13) gegeben, welche auch für die Essential-Matrix gilt: x T Ex = 0. Auÿerdem hat die Essential- Matrix den Rang 2 und ihre beiden Singulärwerte sind identisch. Zur Bestimmung von E kann die Epipolargleichung mit Direkter Linearer Transformation (DLT) in die Form eines homogenen linearen Gleichungssystems Ah = 0 gebracht werden [HZ03, S. 88.]. Die 5 9 Matrix A wird über A i = x T i x T i mit i = aus fünf Verknüpfungspunkten x i = (x i, y i, 1), x i = (x i, y i, 1) gebildet: x 1 x 1 x 1 y 1 x 1 y 1 x 1 y 1 y 1 y 1 x 1 y 1 1 A = x 5 x 5 x 5 y 5 x 5 y 5 x 5 y 5 y 5 y 8 x 5 y 5 1 (2.17) Die Lösung des Gleichungssystems kann mit Hilfe einer Singulärwertzerlegung ([Gra04, S. 94.]) oder mit einer QR-Zerlegung gefunden werden. Das Gleichungssystem hat unendlich viele Lösungen, welche durch den aus vier Vektoren bestehenden rechten Nullraum von A dargestellt werden. Bei einer Singulärwertzerlegung A = UDV T, sind diese vier Vektoren die letzten vier Spalten von V T. Die Vektoren können in Form von vier 3 3 Matrizen X, Y, Z und W dargestellt werden. Eine Essential-Matrix kann damit auf folgende Weise gebildet werden: E = xx + yy + zz + ww (2.18) Da die vier Skalare nur bis auf einen Skalierungsfaktor genau bestimmt werden können, wird w = 1 angenommen. Zusammen mit der Bedingung, dass E den Rang 2 haben muss und beide Singulärwerte identisch sind, lässt sich daraus eine Lösung für die Essential-Matrix herleiten. Aus der E-Matrix kann die Translation t und die Rotation R zwischen den beiden Kameras abgeleitet werden [HZ03, S. 258 f.]. Dafür wird eine Kamera mit P = [I 0] initialisiert. Für

20 2 Grundlagen 20 die andere Kamera muss E in die Matrizen [t] und R zerlegt werden. Dies ist mit einer Singulärwertzerlegung in E = U diag(1, 1, 0)V T möglich. Zusätzlich werden zwei Hilfsmatrizen W und Z verwendet: W = Z = (2.19) Zusammen mit den Matrizen aus der Singulärwertzerlegung können so folgende Ergebnisse hergeleitet werden: [t] = UZU T und R = UW V T oder R = UW T V T. Da [t] t = 0 gilt, ist der Translationsvektor t = u 3. Der Vektor hat die Länge 1. Das Vorzeichen der Essential-Matrix ist unbekannt. Dies gilt damit auch für das Vorzeichen von t. Zusammen mit den zwei Lösungen für R gibt es vier Möglichkeiten für die Projektionsmatrix der zweiten Kamera: P = [UW V T + u 3 ], P = [UW V T u 3 ], P = [UW T V T + u 3 ] oder P = [UW T V T u 3 ]. Nur eine der Lösungen ist geometrisch sinnvoll. Bei drei der Lösungen sind eine oder beide Kameras um 180 verdreht, so dass die 3D Punkte hinter der Kamera liegen würden. Die richtige Lösung kann damit durch Berechnung eines 3D Punktes gefunden werden. Wenn die beiden Kameras initialisiert wurden, werden die 3D Punkte X i aus den Verknüpfungspunkten x i, x i und den Projektionsmatrizen P, P berechnet. Dies geschieht mit einer Triangulation [HZ03, S. 312]. Dafür wird für jeden Punkt, aus den Gleichungen x = P X und x = P X, ein Gleichungssystem AX = 0 gebildet. Die Matrix A hat folgenden Aufbau: xp 3T p 1T yp 3T p 2T A = x p 3T p 1T y p 3T p 2T (2.20) Dabei ist p it die i-te Reihe von P. Mit der Lösung des Gleichungssystem werden die Koordinaten des jeweiligen 3D Punktes ermittelt. Zur Verbesserung der Genauigkeit der berechneten Werte, wird eine Bündelblockausgleichung durchgeführt. Dafür werden die Strahlenbündel zwischen den Projektionszentren der Kameras und einem Satz von 3D- bzw. Verknüpfungspunkten solange verschoben und gedreht, bis diese sich möglichst gut in diesen Punkten schneiden [Kra04, S. 300]. Das bedeutet, die Distanz d zwischen den mit P i X j zurück projizierten Punkten und den im Bild gemessenen Punkten x i j soll für alle j Punkte in i Bildern minimiert werden [HZ03, S. 434]: min d(p i X j, x i j) 2 (2.21) P i,x j ij Danach wird das nächste Bild hinzugefügt. Dafür wird das Bild gewählt, auf welchem die meisten der bisher berechneten 3D Punkte abgebildet sind. Die relative Orientierung der Auf-

21 2 Grundlagen 21 nahmekamera kann über die 3D Punkte und die Verknüpfungspunkte im Bild bestimmt werden [HZ03, S. 178.]. Dafür wird ein lineares Gleichungssystem genutzt, wobei mit RANSAC Ausreiÿer entfernt werden. Mit der Lösung des Gleichungssystem wird auch eine Initialisierung der Kalibriermatrix K vorgenommen. Diese wird für die Bestimmung der Brennweite f 1 = 1 2 (K 11 + K 22 ) genutzt. Auÿerdem wird aus den EXIF-Daten des Bildes die angegebenen Brennweite f 2 ausgelesen. Ist f 2 nicht vorhanden oder liegt deren Wert nicht im Bereich 0.75f 1 < f 2 < 1.4f 1, wird die Brennweite f 1 verwendet. Um die Parameter der hinzugefügten Kamera zu verbessern, wird erneut eine Bündelblockausgleichung durchgeführt. Dabei können sowohl die Kameraparameter, als auch die von dieser Kamera abgebildeten 3D Punkte verändert werden. Die anderen Kameras und Punkte werden xiert. Danach werden die 3D Positionen der hinzugekommen Verknüpfungspunkte berechnet, wenn diese von mindestens einer weiteren der bisher hinzugefügten Kameras abgebildet wurden. Punkt die nur unter einem schlechten Winkel aufgenommen wurden, werden dabei nicht beachtet. Bei der jetzt folgenden Bündelblockausgleichung, werden die Parameter aller Kameras freigegeben, sowie die Positionen aller Punkte. Auf die gleiche Weise werden alle weiteren Bilder hinzugefügt. Dabei kann der Algorithmus noch optimiert werden, indem nach jeder Bündelblockausgleichung die 3D Punkte, die einen hohen Rückprojektionsfehler verursachen, entfernt werden. Auÿerdem ist es möglich, während der Ausgleichung die Verzeichnungsparamter der Kameras mitzubestimmen. Ein Ergebnis der vorgestellten Methode ist in Abbildung 2.7 zu sehen Rekonstruktion bei geringer Kamerabewegung Wenn mehrere Bilder einer Szene aus einer ähnlichen Perspektive aufgenommen wurden, wie dies beispielsweise bei den aufeinander folgenden Einzelbildern einer Videoaufnahme der Fall ist, kann die Struktur einer Szene auch mit mehr als nur 2 Bildern gleichzeitig rekonstruiert werden. Die verwendeten Verknüpfungspunkte müssen dafür in allen Bildern zu sehen sein. Die Methode wurde von Tomasi und Kanade entwickelt und in [Tom92] vorgestellt. Die Rekonstruktion der aufgenommenen Szene wird dabei folgendermaÿen durchgeführt [HZ03, S. 436.]: Ein Bildpunkt x = (x, y) T, kann auf einen 3D-Punkt X = (X, Y, Z) T, mit Hilfe der 2x3 Matrix einer anen Kamera M und einer Translation t abgebildet werden. Es gilt x = M X + t. Für die Minimierung des Fehlers zwischen geschätztem Wert ˆ x i und gemessenem Wert x i, gilt damit [HZ03, S. 436]: min x i M i,t i, X j ˆ x i j 2 = j ij min x i M i,t i, X j (M i Xj + t i ) 2 (2.22) j Der Translationsvektor verschwindet, wenn der Koordinatenursprung in den Schwerpunkt der 3D-Punkte gesetzt wird. Dieser wird mit jeder Kamera auf den Schwerpunkt der jeweiligen Bildpunkte projiziert. Der Schwerpunkt für die 3D-Punkte X, bzw. für die Bildpunkte x i, ij

22 2 Grundlagen 22 Abb. 2.7: Rekonstruktion einer Szene durch eine Wolke aus 3D Punkten. Zusätzlich wird die Orientierung der Aufnahmekameras in Form von Pyramiden dargestellt. [SSS06] wird folgendermaÿen berechnet [HZ03, S. 437]: X = 1 n j X j x i = 1 n j x i j (2.23) Die Koordinaten jedes Bildpunktes werden so verschoben, dass der Schwerpunkt im Koordinatenursprung liegt. Die ursprünglichen Koordinaten x i j werden damit durch x i j xi ersetzt. Im Minimierungsproblem aus Gleichung 2.22 verschwindet die Abhängigkeit von der Translation t i. Dadurch können alle Bildpunkte in Form einer 2m n Matrix W geschrieben werden. Diese wird auch measurement matrix genannt und wie in Gleichung 2.24 gebildet [HZ03, S. 438]. x 1 1 x x 1 n M 1 x 2 1 x x 2 n M 2 [ ] W = = X1 X2... Xn (2.24) x m 1 x m 2... x m n M m Die Matrix [M 1,..., M m ] T kann auch als 2m 3 Matrix ˆM geschrieben werden und wird als motion matrix bezeichnet. Analog dazu kann die Matrix [ X 1,..., X n ] als 3 n Matrix ˆ X geschrieben, welche auch als structure matrix bezeichnet wird. Da in den Werten der Punktkoordinaten Abweichungen auftreten können, gibt es keine Eindeutige Lösung. Es soll daher

23 2 Grundlagen 23 die Lösung gefunden werden, deren geometrischer Fehler minimal ist. Dies ist äquivalent mit der Suche nach einer Matrix Ŵ = ˆM ˆX, welche die Frobeniusnorm W Ŵ 2 F minimiert. Eine solche Matrix kann mit Hilfe einer Singulärwertzerlegung gefunden werden. Da Ŵ aus dem Produkt einer 2m 3 und einer 3 n Matrix gebildet wird, muss Ŵ den Rang 3 haben. Der Rang einer Matrix kann anhand der Anzahl der Singulärwerte die ungleich Null sind, auf der Diagonalen der Matrix D abgelesen werden [Gra04, S. 94]. Umgekehrt kann mit einer Singulärwertzerlegung der Rang r einer Matrix erzwungen werden, indem alle bis auf die r gröÿten Elemente der Diagonalmatrix D auf Null gesetzt werden. Eine so erstellte Matrix erfüllt automatisch die Frobeniusnorm [ZK98, S. 194]. Daraus folgt, dass die Singulärwertzerlegung W = UDV T mit Ŵ = U 2m 3D 3 3 V T 3 n zur gewünschten Ergebnismatrix führt [HZ03, S. 438]. Dabei besteht U 2m 3 aus den ersten 3 Spalten von U, V T 3 n aus den ersten 3 Reihen von V T und D 3 3 ist eine Diagonalmatrix mit den ersten 3 Singulärwerten aus D. Die so erhaltenen Ergebnisse sind nicht eindeutig. Zum einen können die Matrizen ˆM und ˆ X entweder mit ˆM = U 2m 3 D 3 3 und ˆX = V T 3 n oder mit ˆM = U 2m 3 und ˆ X = D3 3 V T 3 n bestimmt werden. Zum anderen können die Kameramatrizen M i und die 3D Punkte X j nur auf einen Faktor genau bestimmt werden. Damit eine Rekonstruktion der Szene mit diesem Verfahren durchgeführt werden kann, müssen die verwendeten Verknüpfungspunkte in allen Bildern zu sehen sein. Die Positionen von Punkten die in einzelnen Bildern verdeckt sind, kann durch Triangulation und Rückprojektion berechnet werden [HZ03, S. 439 f.] Weitere Methoden Neben den bisher vorgestellten Vorgehensweisen zur automatischen Kameraorientierung, existieren auch noch weitere Methoden. In [Del+00] wird eine Möglichkeit vorgestellt, eine Szene mi Hilfe gemessener Bildpunkte zu rekonstruieren, ohne dass dabei Informationen zu den Verknüpfungen zwischen den Punkten bekannt sind. Dafür wird jeder gemessene Bildpunkt mit einer Indikatorvariable versehen, die angibt welcher 3D Punkt mit diesem verknüpft ist. Zu Beginn werden die 3D Punkte zufällig im Raum initialisiert. Die Kameras werden alle in den Koordinatenursprung gesetzt. Für jeden Bildpunkt wird nun die Wahrscheinlichkeit berechnet, mit der er mit einem bestimmten 3D Punkt verknüpft ist. Diese ergibt sich durch die Abweichung des 3D Punktes, zur Projektion des Bildpunktes. Anhand der Wahrscheinlichkeiten wird jedem Bildpunkt, mit der Indikatorvariable der wahrscheinlichste 3D Punkt zugeordnet. Nach der Neuzuordnung wird eine Bündelblockausgleichung durchgeführt und damit die Position der 3D Punkte und der Kameras verändert. Daraufhin werden die Wahrscheinlichkeiten der Punktzuordnungen neu berechnet. Dieser Vorgehensweise nähert sich nach einigen Iterationen dem korrekten Ergebnis an. Eine Möglichkeit zur Verbesserung der Kamerakalibrierung wird in [Rod04] gezeigt. Dafür wird nach der Rekonstruktion der Szene eine erneute Kamerakalibrierung durchgeführt. Dazu werden die nun bekannten 3D Punkte verwendet, um das Absolutgebilde der projektiven Geo-

24 2 Grundlagen 24 metrie zu bestimmen. Ist dieses bekannt, werden die Kameras mit dessen Hilfe neu kalibriert. Ein weiterer Unterschied zu den bisher vorgestellten Methoden, ist eine volumetrische 3D- Modellierung. Dafür wird das Modell nicht aus einer Punktwolke aufgebaut, sondern dessen Oberäche aus den abgebildeten Konturen des Objektes erstellt. Eine Methode, bei der direkt eine metrische Rekonstruktion mit Hilfe einer Bündelblockausgleichung durchgeführt wird, ohne vorher eine projektive Rekonstruktion vorzunehmen, wird in [BL05] beschrieben.

25 3 Software zur automatischen Orientierung von Kameras 25 3 Software zur automatischen Orientierung von Kameras In diesem Kapitel wird eine Auswahl von Programmen zur automatische Orientierung von Kameras vorgestellt. Mit dem Ziel dafür möglichst viel Steuerungsmöglichkeiten zu haben, wird ein geeignetes Tool als Basis für die weiteren Untersuchungen dieser Arbeit ausgewählt und im zweiten Teil des Kapitels näher beleuchtet. 3.1 Überblick über existierende Software Durch den Einuss der Computer Vision existiert heute eine Vielzahl von Tools zur automatischen Orientierung von Kameras. Diese dienen vor allem der Erstellung von 3D-Modellen aus Punktwolken. Um ein Tool auszuwählen, welches eine möglichst genaue Rekonstruktion der Kameraorientierung erlaubt, werden hier zunächst einige existierende Programme vorgestellt. Bundler Bundler wurde von Noah Snavely am Institut für Informatik der Cornell University entwickelt und ermöglicht eine Rekonstruktion von 3D-Punkten einer Szene aus einem Satz von Bildern [Sna13]. Dafür kommt der in Kapitel vorgestellte Structure from Motion-Algorithmus zur Anwendung. Ursprünglich wurde Bundler für das Tool Photo Tourism entwickelt, welches eine Punktwolke zur Visualisierung und Verwaltung von Photos erstellt und eine objektbasierte Photosuche ermöglichen soll [SSS06]. Der Quellcode von Bundler ist frei verfügbar und kann damit für eigene Zwecke angepasst werden. Mit VisualSFM existiert auch eine graphische Oberäche, welche zudem weitere Tools, wie beispielsweise PMVS enthält. Elcovision 10 Bei Elcovision 10 handelt es sich um ein Produkt der Firma PMS AG für die photogrammetrische Auswertung von Bildern [13d]. Nach der Rekonstruktion der Kameraorientierung und einer Punktwolke, ist es auch möglich die Daten in ein CAD-Programm zu exportieren und dort weiter zu verarbeiten. Die Software ist nur für Windows-Systeme verfügbar und richtet sich vor allem an professionelle Anwender. Dabei wurde darauf Wert gelegt, dass alle Prozesse möglichst automatisiert ohne Eingreifen des Benutzer ablaufen. Zur Kontrolle der Berechnung werden auch die Genauigkeiten jedes Zwischenschrittes ausgegeben. Die am Ende erreichbaren Messgenauigkeiten werden auf der Website in Abhängigkeit der verwendeten Kamera angegeben. Mit Amateurkameras kann ein natürlicher Punkt an einem 10m groÿen, Bildformat füllenden Objekt, mit einer Abweichung 15 mm bestimmt werden. Für Messkameras beträgt diese Abweichung 1 mm. Agisoft PhotoScan Die Software PhotoScan von Agisoft kann in einer Standardversion und einer Version für den professionellen Einsatz erworben werden [13a]. Nur in der professionellen Version ist möglich, Orthobilder und digitale Geländemodelle zu generieren, sowie eine Georeferenzierung der Ergebnisse vorzunehmen. In beiden Versionen kann anhand von Bildern eine Punktwolke rekonstruiert werden. Dafür lassen sich bekannte Kameraparameter angegeben. Nach der Be-

26 3 Software zur automatischen Orientierung von Kameras 26 rechnung der Kameraorientierung, können die Parameter der kalibrierten Kameras angezeigt werden. Aus der Punktwolke lässt sich ein Polygonmodell erstellen. Die Ergebnisse können in verschiedenen Formaten exportiert werden. Agisoft PhotoScan ist für Windows, Linux und MacOS erhältlich. MicMac MicMac wurde von Marc Pierrot-Deseilligny am Institut national de l'information géographique et forestière (IGN ) entwickelt [12]. Das Softwarepaket enthält eine Reihe von Tools, mit denen eine automatische Kameraorientierung und die 3D-Rekonstruktion einer Szene möglich ist. Die Parameter zur Steuerung der Tools, werden mit Hilfe von XML-Dateien festgelegt. Dabei kann der Ablauf der automatischen Kameraorientierung sehr detailliert konguriert werden. Der Quellcode der Tools ist frei verfügbar. Das Programm kann für Windows, Linux und MacOS heruntergeladen werden. In Tabelle 3.1 werden die Programme noch einmal gegenüber gestellt. Da es sich bei PhotoScan und Elcovision um kommerzielle Software handelt, kann bei diesen nur mit den exportierten Ergebnissen weiter gearbeitet werden. Eine so detaillierte Steuerung wie in MicMac ist nicht möglich. PhotoScan bietet allerdings die Möglichkeit Python-Skripte innerhalb des Programms auszuführen. Bei Bundler und MicMac ist der Quellcode frei verfügbar und damit modizierbar. Der groÿe Vorteil von MicMac liegt in dessen Unterteilung in kleinere Tools und deren detaillierte Kongurationsmöglichkeiten. Auÿerdem wurde das Softwarepaket speziell für eine photogrammetrische Auswertung entwickelt. Mit diesen Vorteilen ist MicMac am besten für weitere Untersuchungen zur automatischen Kameraorientierung geeignet. Betriebssystem Lizenz Bundler Windows, Linux, MacOS 1 open source Elcovision 10 Windows kostenpichtig Agisoft PhotoScan Windows, Linux, MacOS kostenpichtig MicMac Windows, Linux, MacOS open source 1 Der Quellcode muss selber für das gewünschte Betriebssystem kompiliert werden Tab. 3.1: Vergleich von Programmen zur automatischen Kameraorientierung hinsichtlich der verfügbaren Betriebssysteme und der Lizenz. 3.2 Das Softwarepaket MicMac Nachdem MicMac die beste Grundlage für weitere Untersuchungen zur automatischen Kameraorientierung bietet, wird das Softwarepaket im folgenden näher vorgestellt. MicMac ist seit 2005 in Entwicklung und wurde ursprünglich nur für Linux programmiert. In der Zwischenzeit existieren auch Versionen für Windows und MacOS. Die Dokumentation [Pie13] beinhaltet eine Anleitung zur Bedienung der Tools. Allerdings ist diese noch sehr lückenhaft und nicht vollständig aus dem französischen in englische übersetzt. Laut Inhalts-

27 3 Software zur automatischen Orientierung von Kameras 27 verzeichnis sollen noch Informationen zu den verwendeten Algorithmen und dem Aufbau des Quellcodes ergänzt werden Vorgehensweise zur 3D-Rekonstruktion einer Szene Um eine 3D-Rekonstruktion einer Szene durchzuführen, werden folgende Tools nacheinander ausgeführt: Tapioca Mit Tapioca werden die Verknüpfungspunkte zwischen den Bildern gesucht. Das Tool kann entweder zwischen allen Bildern, oder nur in vom Benutzer spezizierten Bildpaaren die Verknüpfungspunkte suchen. Dazu wird das Tool Pastis verwendet, welches eine Umsetzung des in Kapitel 2.3 vorgestellten SIFT-Algorithmus darstellt. Apero Die Grundlage für die automatische Kameraorientierung stellt Apero dar. Dieses Tool berechnet auf Basis der vorher bestimmten Verknüpfungspunkte, die Lage der zugehörigen Bilder und die Parameter der inneren Orientierung der Aufnahmekameras. Die Arbeitsweise von Apero wird in Kapitel 4 näher beschrieben. MicMac Mit diesem Tool kann aus den Bildern und mit den von Apero bestimmten Orientierungen, ein 3D-Modell in Form einer verdichteten Punktwolke erstellt werden. Weitere Tools ermöglichen unter anderem die Berechnung von Orthophotos (Porto) oder die Umwandlung einer Tiefenkarte in eine Punktwolke (Nuage2Ply) Grafische Oberflächen für MicMac Da die Steuerung der Tools mit Hilfe von XML-Dateien zwar eine detaillierte Konguration erlaubt, jedoch für den Benutzer recht umständlich ist, wurden bisher 3 graphische Oberächen entwickelt, welche die Bedienung vereinfachen sollen [PDR11]. Dazu gehört das Plugin Nubes Forma für die 3D-Modellierungssoftware Maya, welches die 3D-Rekonstruktion eines Objektes aus Bildern ermöglicht. Auÿerdem der webbasierte Bildbetrachter Nubes Visum, welcher eine 3D-Navigation durch eine Bildsammlung ermöglicht und dafür auch eine 3D- Punktwolke darstellen kann. Als drittes existiert die grasche Oberäche MicMac Interface für Linux, welche die wichtigste Features von MicMac zur Verfügung stellen soll [CP11]. Die ersten beiden Oberäche legen den Schwerpunkt auf das 3D-Modell bzw. die Bildverwaltung und sind deshalb zur automatischen Bestimmung der Kameraorientierung ungeeignet. Die dritte Oberäche wurde mit der Softwarebibliothek Qt für Linux entwickelt. Da der Quellcode frei verfügbar ist, wäre er auch auf Windows portierbar. Allerdings stellt die Oberäche nur die nötigsten Einstellungsmöglichkeiten für die Erstellung des 3D-Modells zur Verfügung. So ist es nicht möglich, auf die einzelnen Schritte der Bündelblockausgleichung zur automatischen Kameraorientierung, Einuss zu nehmen. Um diese sinnvoll einzubauen, wären groÿe Änderungen am Quellcode nötig. Daher ist es einfacher, selbst eine auf die eigenen Wünsche zugeschnittene Oberäche zu entwickeln.

28 4 Apero 28 4 Apero In diesem Kapitel wird die Funktionsweise des Tools Apero, sowie dessen Möglichkeiten zur Steuerung der Kameraorientierung, näher beschrieben. Mit Hilfe der Benutzerdokumentation [Pie13] und den XML-Dateien aus Beispieldatensätzen [13c], wird damit die nötige Grundlage zur Entwicklung einer graschen Oberäche für Apero beschrieben. 4.1 Funktionsweise von Apero Bei Apero handelt es sich um ein Tool zur Berechnung der Orientierung eines Satzes von Bildern [PC11][CP11]. Dabei wird auch eine Kalibrierung der beteiligten Kameras durchgeführt. Als Ausgangsdaten dienen bereits bestimmte Verknüpfungspunkte zwischen den jeweiligen Bildern. Zur Berechnung der unbekannten Parameter müssen diese zunächst mit einem Startwert initialisiert werden [Pie13, S.109 f.]. Der Bildhauptpunkt und das Verzeichnungszentrum können dafür in der Bildmitte liegen. Die Koezienten der Verzeichnung können mit Null initialisiert werden. Für die Brennweite sollte der Benutzer einen möglichst genauen Wert angeben. Weicht dieser zu sehr von der realen Brennweite ab, kann es bei der Kalibrierung zu fehlerhaften Ergebnissen kommen oder die Berechnung bricht ab (vgl. Kapitel 7). Im Falle von unbekannten Positionen der Bilder, müssen diese anhand der Verknüpfungspunkte initialisiert werden. Apero kann die Bilder sortieren und ein geeignetes Bildpaar für die Initialisierung bestimmen (vgl. Kapitel 2.5.1). Eines der beiden Bilder wird in den Koordinatenursprung versetzt und dessen Rotation mit der Einheitsmatrix festgelegt. Mit Hilfe der Verknüpfungspunkte und über eine Bestimmung der Essential-Matrix, kann die relative Position des benachbarten Bildes bestimmt werden. Fehlerhafte Verknüpfungspunkte werden mit RANSAC erkannt (vgl. Kapitel 2.4). Mittels Triangulation werden zu den Verknüpfungspunkten 3D-Punkte berechnet. Eine Bündelblockausgleichung soll die Abweichungen minimieren (siehe Kapitel 2.5.1, Gleichung 2.21). Als Residuum wird der Abstand zwischen dem Verknüpfungspunkt und dem zurück projizierten 3D-Punkt berechnet. Die Berechnung erfolgt mit der bisher berechneten Projektionsmatrix der Kamera. Wie stark die einzelnen Punkte das Gesamtergebnis E der Ausgleichung beeinussen, wird mit einer Gewichtsfunktion p(r) bestimmt [Pie13, S. 114]: E = p(r) r 2 (4.1) r Der Wert der Gewichtsfunktion wird von den Parametern B und σ beeinusst. Punkte mit Residuen über dem Wert von B werden ignoriert. Mit σ wird der Einuss der Punkte in Abhängigkeit ihrer Residuen bestimmt. 0 wenn r > B p(r) B,σ = 1 1+( rσ ) 2 sonst (4.2)

29 4 Apero 29 Schritt für Schritt werden alle weiteren Bilder hinzugefügt. Um zu verhindern, dass sich Fehler aufsummieren, wird nach jedem neu hinzugefügten Bild eine Bündelblockausgleichung durchgeführt. Wurde für alle Bilder eine Position bestimmt, kann die Genauigkeit der Ergebnisse mit weiteren Bündelblockausgleichungen verbessert werden. Für jede Iteration einer Ausgleichung, können die freigegebenen Positionen und Kameraparameter festgelegt werden. 4.2 Verzeichnungsmodelle in Apero In Apero stehen verschiedene Modelle zur Verfügung, mit denen die Verzeichnung der Kamera modelliert werden kann [Pie13, S. 169.]. Diese werden im folgenden vorgestellt. Radiales Modell Das einfachste Modell bestimmt die Verzeichnung an der Position (x, y) in Abhängigkeit von der Position des Verzeichnungszentrms (c x, c y ) und drei Koezienten K 1 - K 3 für die radiale Verzeichnung [Pie13, S. 170]: D R (x) = c x + (1 + K 1 ρ 2 + K 2 ρ 4 + K 3 ρ 6 ) x D R (y) = c y + (1 + K 1 ρ 2 + K 2 ρ 4 + K 3 ρ 6 ) y (4.3) x = x c x y = y c y ρ 2 = x 2 + y 2 Photogrammetrisches Standardmodell Am häugsten wird in den Beispieldatensätzen das photogrammetrische Standardmodell für Digitalkameras nach Fraser [Fra97] verwendet. Dieses baut auf dem radialen Modell auf und erweitert es um die Parameter P 1 und P 2, welche die tangentiale und asymmetrische radiale Verzeichnung modellieren, sowie die Parameter b 1 und b 2 welche die ane Verzeichnung modellieren [Pie13, S. 170]: D P (x) = D R (x) + P 1 (2 x 2 + ρ 2 ) + P 2 (2 x y) + b 1 x + b 2 y D P (y) = D R (y) + P 1 (2 x y) + P 2 (2 y 2 + ρ 2 ) (4.4) Polynom-Modell Bei diesem Modell wird die Verzeichnung anhand eines Polynoms vom Grad 2-7 bestimmt. Das Polynom-Modell wird für die Berechnung der Verzeichnung von Fischaugenkameras benötigt. Die Polynome bauen aufeinander auf, so dass sich die Anzahl der Parameter p von 6 für den Grad 2 auf 66 für Grad 7 aufsummiert. Die Gleichungen für Grad 2 und 3 sehen

30 4 Apero 30 folgendermaÿen aus [Pie13, S. 171 f.]: P 2 (x) = x + p 1 x + p 2 y 2p 3 x 2 + p 4 xy + p 5 y 2 P 2 (y) = y P 1 y + p 2 x + p x xy 2p 4 y 2 + p 6 x 2 P 3 (x) = P 2 (x) + p 7 x 3 + p 8 x 2 y + p 9 xy 2 + p 10 y 3 P 3 (y) = P 2 (y) + p 11 y 3 + p 12 x 2 y + p 13 xy 2 + p 1 4y 3 (4.5) Fischaugen-Modell Das Fischaugen-Modell ist eine Kombination aus dem Polynom-Modell dem photogrammetrischen Standardmodell. In Apero können zwar bis zu 10 Koezienten K 1 - K 10 und P 1 - P 10 für die Modellierung von Fischaugenkameras genutzt werden, allerdings sind für die radiale Verzeichnung maximal 5 und für die tangentiale Verzeichnung nur 1 Parameter sinnvoll [Pie13, S. 172]. Die Verzeichnung von Fischaugenkameras kann auf folgende Weise modelliert werden [Pie13, S. 173]: D F (x) = c x + F D pol (a) (4.6) D F (y) = c y + F D pol (b) D pol (a) = (1 + K 1 ρ 2 + K 2 ρ )a + P 1 (ρ 2 + 2a 2 ) + 2P 2 ab + l 1 a + l 2 b D pol (b) = (1 + K 1 ρ 2 + K 2 ρ )b + 2P 1 ab + 2P 2 (ρ 2 + 2b 2 ) + l 2 a ρ = a 2 + b 2 a = λa b = λb λ = arctan(r) R A = x c x F B = y c y F R = A 2 + B 2 K n sind die Koezienten der radialen Verzeichnung P 1 und P 2 die der radial asymmetrischen und tangentialen Verzeichnung, l 1 und l 2 die der anen Verzeichnung, F ist die Brennweite der Kamera und (c x, c y ) das Verzeichnungszentrum. Auch für den Sonderfall einer Fischaugenkamera mit ächentreuer Abbildung existiert in Apero ein Modell. In diesem wird nur die Berechnung des Parameters λ verändert zu λ = 4.3 Steuerung von Apero mit XML-Dateien 2 sin(0.5 arctan(r)) R. Um den genauen Ablauf der Bündelblockausgleichung in Apero zu steuern, werden XML- Dateien verwendet. Der Aufbau dieser Dateien wird in diesem Abschnitt erläutert. Einige Beispiele nden sich auch in [Pie13, S. 110.] Aufbau der XML-Datei zur Konfiguration der Ausgleichung Beim Aufruf von Apero wird eine XML-Datei übergeben, die alle Anweisungen zur Steuerung des Programms enthält. In den kommenden Quellcode-Beispielen dienen die blauen Bezeichnungen zur Strukturierung der Datei. Diese können beispielsweise denieren, an welcher Position ein bestimmter Parameter steht (gut zu sehen in Quellcode 4.8). Die schwarzen Elemente geben die Werte dieser Parameter an. Mit Hilfe dieser Strukturierung wird bestimmt, wann

31 4 Apero 31 eine gewählte Aktion durchgeführt werden soll. So kann der Code in Quellcode 4.6 mehrmals nacheinander geschrieben werden, um mehrere Ausgleichungen nacheinander durchzuführen. Das grobe Skelett der XML-Datei zur Konguration von Apero ist in Quellcode 4.1 dargestellt. 1 <Global> 2 <ParamApero> 3 <SectionBDD_Observation>... </SectionBDD_Observation> 4 <SectionInconnues>... </SectionInconnues> 5 <SectionChantier> 6 <DirectoryChantier>ThisDir</DirectoryChantier> 7 </SectionChantier> 8 <SectionSolveur> 9 <ModeResolution>eSysL2BlocSym</ModeResolution> 10 </SectionSolveur> 11 <SectionCompensation>... </SectionCompensation> 12 </ParamApero> 13 </Global> Quellcode 4.1: Grobes Skelett der XML-Datei zur Steuerung von Apero. Dieses enthält unter anderem einen Sektion zur Denition der Verzeichnisstruktur, eine Sektion zum Laden von Bildern und Kameras und eine Sektion zur Beschreibung der Bündelblockausgleichung. Die Parameter in den Zeilen 6 und 9 sollten nicht verändert werden. Alternative Einstellungen sind für interne Testzwecke gedacht und nicht näher dokumentiert [Pie13, S. 111]. Der Inhalt der Zeilen 3, 4 und 11 wird im Folgenden näher erläutert. SectionBDD_Observation In dieser Sektion wird die Verzeichnisstruktur zu den gegeben Passpunkten und Orientierungen deniert (Quellcode 4.2). Dabei gibt es eine Unterteilung in BDD_PtsLiaisons (Zeile 1-5) und BDD_Orient (Zeile 6-10). Im ersten Teil wird der Pfad zu den Verknüpfungspunkten beschrieben, im zweiten Teil der zu den bekannten Orientierungen. Dafür wird zunächst in Zeile 2 und 7 eine Name angegeben, über den später auf die jeweilige Einstellung zurückgegrien werden kann. 1 <BDD_PtsLiaisons> 2 <Id>Id_Pastis_Hom</Id> 3 <KeySet>NKS Set 4 <KeyAssoc>NKS Assoc 5 </BDD_PtsLiaisons> 6 <BDD_Orient> 7 <Id>Id_Ori_From_File</Id> 8 <KeySet>NKS Set Init</KeySet> 9 <KeyAssoc>NKS Assoc Init</KeyAssoc> 10 </BDD_Orient> Quellcode 4.2: Aufbau von SectionBDD_Observation. In den Zeilen 1-5 wird die Verzeichnisstruktur der Verknüpfungspunkte deniert. In den restlichen Zeilen die Verzeichnisstruktur bekannter Orientierungen. Nach KeySet in Zeile 3 wird deniert, welche Daten geladen werden sollen in [Pie13, S. 112]. Dafür wird die Verzeichnisstruktur mit einem Schlüssel beschrieben. Hinter kann ein Parameter angegeben werden. In Zeile 3 kann der Name des Unterordners für die

32 4 Apero 32 Verknüpfungspunkte geändert werden. Der Ordnername beginnt immer mit Homol und wird um die Zeichenkette hinter dem erweitert. Nach dem wird das Datei-Format der Verknüpfungspunkte angegeben. Im angegebenen Beispiel benden sich die Verknüpfungspunkte im Unterordner Homol und haben die Endung.txt. Hinter KeyAssoc wird beschrieben, wie die zu Ladenden Dateien mit den Dateinamen der Bilder zusammenhängen. Hier müssen in Zeile 4 die gleichen Parameter hinter stehen, wie in Zeile 3. Apero sucht mit den in Quellcode 4.2 angegebenen Einstellungen nach Verknüpfungspunkten im Unterordner Homol. Für jedes Bild existiert in diesem Ordner ein weiterer Unterordner mit der Bezeichnung Pastis und dem Namen des Bildes. In diesem Ordner benden sich die Verknüpfungspunkte dieses Bildes zu allen anderen Bildern in einer Textdatei mit dem Namen des jeweiligen Bildes. Die Verknüpfungspunkte zwischen einem Bild Bild1.jpg und einem Bild Bild2.jpg würden sich in einer Textdatei unter /Homol/PastisBild1.jpg/Bild2.jpg.txt benden. Apero biete auch die Möglichkeit eigene Verzeichnisstrukturen zu denieren. Dafür muss die Datei DefautChantierDescripteur.xml im Mic- Mac-Unterordner include/xml_gen modiziert werden. Dies kann sinnvoll sein, wenn die Verknüpfungspunkte mit einem anderen Programm bestimmt wurden, welches eine andere Ordnerstruktur verwendet. Die Einstellungen in den Zeilen 8 und 9 von Quellcode 4.2 funktionieren auf ähnliche Weise. Hier bedeutet die Angabe, dass sich die bekannten Orientierungen in einem Unterordner mit der Bezeichnung Ori-Init benden. Die Dateinamen der Orientierungen richten sich nach den Bildnamen. Die Orientierung eines Bildes Bild1.jpg wäre in der Datei Ori-Init/Orientation- Bild1.jpg.xml gespeichert. 1 <CalibrationCameraInc> 2 <Name>Camera_1</Name> 3 <CalValueInit> 4 <CalFromFileExtern> 5 <NameFile>Camera_1.xml</NameFile> 6 <NameTag>CalibrationInternConique</NameTag> 7 </CalFromFileExtern> 8 </CalValueInit> 9 </CalibrationCameraInc> 10 <PoseCameraInc> 11 <PatternName>IMG_5565.tif</PatternName> 12 <CalcNameCalib>Camera_1</CalcNameCalib> 13 <PosValueInit> 14 <PosId>###</PosId> 15 </PosValueInit> 16 </PoseCameraInc> Quellcode 4.3: Aufbau von SectionInconnues. Im Beispiel wird eine Kamera aus einer XML-Datei geladen (Zeile 5) und die Position des ersten Bildes in den Koordinatenursprung gesetzt (Zeile 11-15). SectionInconnues Diese Sektion behandelt das Einlesen der Bilder und Kameras und ist in Quellcode 4.3 dargestellt. Für jede Kamera gibt es ein Abschnitt CalibrationCameraInc (Zeile 1-9), in welchem zunächst ein Name für Kamera angegeben wird (Zeile 2). Dieser kann später als Referenz

33 4 Apero 33 verwendet werden. In Zeile 5 wird die XML-Datei angegeben, in der die innere Orientierung der Kamera gespeichert wird (siehe auch Abschnitt 4.3.2). In Zeile 6 wird die Bezeichnung angegeben, unter der diese Kamera in der XML-Datei gespeichert ist. Für jedes Bild wird ein Abschnitt PoseCameraInc angelegt. In diesem wird zunächst der Dateiname des Bildes angegeben (Zeile 11 und 18) und danach die Kamera, mit der das Bild aufgenommen wurde (Zeile 12 und 19). Das zuerst geladene Bild wird im Koordinatenursprung initialisiert (Zeile 14). Für alle weiteren Bilder soll die Position mit Hilfe der Verknüpfungspunkte initialisiert werden. Dafür wird zunächst in Zeile 2 von Quellcode 4.4 angegeben, dass die Position nicht sofort initialisiert wird. Dies ist bei der Verwendung von Verknüpfungspunkten zur Initialisierung nicht möglich. In Zeile 28 wird die ID des Datensatzes der Verknüpfungspunkte angegeben (vgl. SectionBDD_Obersvation). 1 <PoseCameraInc> 2 <PatternName>IMG_5566.tif</PatternName> 3 <CalcNameCalib>Camera_1</CalcNameCalib> 4 <InitNow>false</InitNow> 5 <MEP_SPEC_MST> 6 <Show>true</Show> 7 </MEP_SPEC_MST> 8 <PosValueInit> 9 <PoseFromLiaisons> 10 <LiaisonsInit> 11 <NameCam>####</NameCam> 12 <IdBD>Id_Pastis_Hom</IdBD> 13 </LiaisonsInit> 14 </PoseFromLiaisons> 15 </PosValueInit> 16 </PoseCameraInc> Quellcode 4.4: Laden eines Bildes innerhalb von SectionInconnues. Die Position des Bildes ist unbekannt und soll mit Hilfe der Verknüpfungspunkte bestimmt werden. SectionCompensation In dieser Sektion wird der Ablauf der Bündelblockausgleichung festgelegt (Quellcode 4.5 und 4.6). Für jede Ausgleichung gibt es einen Abschnitt EtapeComensation, welcher mehrere Iterationen IterationCompensation enthalten kann. Zu Beginn werden alle freien Parameter der inneren Orientierung eingefroren (Zeile 5 in Quellcode 4.5). Danach wird die Position der einzelnen Bilder initialisiert (Zeile 8-11). Für jeden Schritt der Ausgleichung, müssen die Parameter der Gewichtsfunktion (Gleichung 4.2, Kapitel 6.3) angegeben werden. Der Wert für B steht in Zeile 18, der für σ in Zeile 19 [Pie13, S. 115 f.]. Nach der Initialisierung der Bildpositionen, werden mehrere Ausgleichungen der unbekannten Parameter durchgeführt. Dafür können im Abschnitt SectionContraintes die freigegebenen Parameter bestimmt werden. In Quellcode 4.6 werden die Positionen der Bilder in Zeile 5 und 6, innerhalb von ContraintesPoses freigegeben. Apero bietet auch die Möglichkeit, mit ecentre- Fige die Koordinaten des Projektionszentrums dabei festzuhalten, so dass nur die Rotation verändert werden kann. Die Parameter der Kameras können innerhalb von ContraintesCamerasInc freigegeben werden. In den Zeilen 9 und 10 wird die Brennweite für Camera_1 freigegeben. Mit Messages in Zeile 13, kann der Benutzer nach der Sektion SectionContrain-

34 4 Apero 34 1 <EtapeCompensation> 2 <IterationsCompensation> 3 <SectionContraintes> 4 <ContraintesCamerasInc> 5 <Val>eAllParamFiges</Val> 6 </ContraintesCamerasInc> 7 </SectionContraintes> 8 <Pose2Init> 9 <ProfMin>[2,4,6]</ProfMin> 10 <Show>true</Show> 11 </Pose2Init> 12 </IterationsCompensation> 13 <SectionObservations> 14 <ObsLiaisons> 15 <NameRef>Id_Pastis_Hom</NameRef> 16 <Pond> 17 <Show>eNSM_Paquet</Show> 18 <EcartMax>100</EcartMax> 19 <SigmaPond>5</SigmaPond> 20 <ModePonderation>eL1Secured</ModePonderation> 21 </Pond> 22 </ObsLiaisons> 23 </SectionObservations> 24 </EtapeCompensation> Quellcode 4.5: Ausschnitt zur Initialisierung der Bildpositionen aus SectionCompensation. Dabei handelt es sich um die zuerst ausgeführte Ausgleichung. Befehl freigegebener Parameter elibertefocale_1 Brennweite elib_pp_cd_10 X-Koordinate des Bildhauptpunktes elib_pp_cd_11 Y-Koordinate des Bildhauptpunktes elib_pp_cd_00 X-Koordinate des Verzeichnungszentrums elib_pp_cd_01 Y-Koordinate des Verzeichnungszentrums elib_drn Koezienten der radialen Verzeichnung (n = 0-2) eliberte_phgr_std_dec Radial asymmetrische und tangentiale Verzeichnung eliberte_phgr_std_a Ane Verzeichnung Tab. 4.1: Befehle zum freigeben der Kameraparameter in einer Iteration einer Ausgleichung. Die Befehle können in SectionCompensation der XML-Datei verwendet werden. 1 <EtapeCompensation> 2 <IterationsCompensation> 3 <SectionContraintes> 4 <ContraintesPoses> 5 <NamePose>IMG_5565.tif</NamePose> 6 <Val>ePoseLibre</Val> 7 </ContraintesPoses> 8 <ContraintesCamerasInc> 9 <Val>eLiberteFocale_1</Val> 10 <PatternNameApply>Camera_1</PatternNameApply> 11 </ContraintesCamerasInc> 12 </SectionContraintes> 13 <Messages>Camera_1: free focal length</messages> 14 </IterationsCompensation> 15 <SectionExport>... </SectionExport> 16 </EtapeCompensation> Quellcode 4.6: Konguration einer Ausgleichung in SectionCompensation. Dieser Schritt kann beliebig oft mit veränderten Parametern wiederholt werden.

35 4 Apero 35 tes, beliebige Nachrichten ausgeben lassen. Die Befehle zum Freigeben der Kameraparameter sind in Tabelle 4.1 aufgelistet. Mit eallparamfiges können alle Parameter eingefroren werden. SectionExport Um die von Apero berechneten Orientierungen nutzen zu können, müssen diese in einer XML- Datei gespeichert werden. Dafür gibt es am Ende jeder Ausgleichung die Möglichkeit eine Sektion SectionExport anzulegen und in dieser anzugeben, welche Daten gespeichert werden sollen (Zeile 15, Quellcode 4.6). Der Aufbau dieser Sektion ist in Quellcode 4.7 zu sehen. Zunächst wird die Positionen der Bilder exportiert. Der Name des jeweiligen Bildes wird in 1 <ExportPose> 2 <PatternSel>IMG_5565.tif</PatternSel> 3 <KeyAssoc>NKS Assoc 4 <AddCalib>true</AddCalib> 5 <FileExtern>Camera_1_calibrated.xml</FileExtern> 6 <FileExternIsKey>false</FileExternIsKey> 7 </ExportPose> 8 <ExportCalib> 9 <PatternSel>Camera_1</PatternSel> 10 <KeyAssoc>Ori/Camera_1_calibrated.xml</KeyAssoc> 11 <KeyIsName>true</KeyIsName> 12 </ExportCalib> Quellcode 4.7: Aufbau der SectionExport zum Speichern der aktuellen Werte in einer XML-Datei. In Zeile 1-7 wird die Position des Bildes exportiert, in Zeile 8-12 die Parameter der Kamera. Zeile 2 angegeben. Die Ordnerstruktur wird dabei wie in SectionBDD_Observation festgelegt (Zeile 3). In Zeile 5 steht der Name der Datei, welche die innere Orientierung der Aufnahmekamera enthält. Die Parameter dieser Kamera können in ExportCalib (Zeile 8-12) gespeichert werden. Dafür wird in Zeile 9 die Bezeichnung der Kamera angegeben und in 10 der Dateiname festgelegt. Wie die erstellte XML-Datei für die Positionen der Bilder aussieht wird in Abschnitt beschrieben. Den Aufbau der XML-Datei mit den Kameraparametern zeigt der folgende Abschnitt XML-Datei der Kameraparameter Für die automatische Kameraorientierung mit Apero müssen die Parameter der beteiligten Kameras initialisiert werden [Pie13, S. 158]. Dafür ist es notwendig XML-Dateien mit den Kameraparametern zu schreiben. Der Aufbaue so einer Datei ist in Quellcode 4.8 dargestellt. In Zeile 3 wird die eingestellte Brennweite der Kamera in Pixeln angeben. Für die Umrechnung in Pixel wird das sogenannte 35 mm equivalent verwendet, welches die Bildbreite eines 35mm- Films als Referenz verwendet. Diese beträgt 36 mm und wird folgendermaÿen zur Berechnung der Brennweite f P in P ixel aus einer Brennweite f in mm eingesetzt [Pie13, S. 118]: f P (P ixel) = f (mm) Bildbreite (P ixel) 36 (mm) (4.7)

36 4 Apero 36 1 <ExportAPERO> 2 <CalibrationInternConique> 3 <F> </F> 4 <PP> </PP> 5 <SzIm> </SzIm> 6 <CalibDistortion> 7 <ModPhgrStd> 8 <RadialePart> 9 <CDist> </CDist> 10 <CoeDist>0</CoeDist> 11 <CoeDist>0</CoeDist> 12 <CoeDist>0</CoeDist> 13 </RadialePart> 14 <P1>0</P1> 15 <P2>0</P2> 16 <b1>0</b1> 17 <b2>0</b2> 18 </ModPhgrStd> 19 </CalibDistortion> 20 </CalibrationInternConique> 21 </ExportAPERO> Quellcode 4.8: Aufbau der XML-Datei aus der die Parameter der Kamera ausgelesen werden. Zur Berechnung der Verzeichnung wird das photogrammetrische Standardmodell verwendet. Die Lage des Bildhauptpunktes in Pixelkoordinaten, wird in Zeile 4 angeben. Zeile 5 enthält die Breite und Höhe des Bildsensors in Pixeln. Danach erfolgt die Initialisierung der Verzeichnungsparameter. Mit ModPhgrStd wird in Zeile 7 festgelegt, dass das photogrammetrische Standardmodell für die Verzeichnung verwendet wird (siehe Abschnitt 4.2). Dieses beinhaltet die Koordinaten des Verzeichnungszentrums in Zeile 9, die Koezienten für die radiale Verzeichnung in Zeile 10-12, zwei Werte P 1 und P 2 für die radiale asymmetrische und tangentiale Verzeichnung (Zeile 14 und 15), sowie die Parameter b1 und b2 für die ane Verzeichnung (Zeile 18 und 19) Aufbau der XML-Datei der Äußeren Orientierung Falls von einem aufgenommenen Bild die Position des Projektionszentrums der Aufnahmekamera, sowie deren Rotation bekannt sind, können diese aus einer XML-Datei ausgelesen werden [Pie13, S. 158]. Ebenso wird von Apero berechnete äuÿere Orientierung in einer derartigen XML-Datei gespeichert. Der Aufbau der Datei ist in Quellcode 4.9 zu sehen. Zeile 3 gibt an, in welcher Datei die innere Orientierung der Aufnahmekamera gespeichert ist. In Zeile 6 wird die Position des Projektionszentrums angegeben. Die Winkel der Rotationen Kamera werden in Zeile 8 festgelegt. Alternativ kann die Rotation auch in Matrix-Form angegeben (Quellcode 4.10) 4.4 Kommandozeilenausgabe von Apero Apero kann aus der Kommandozeile mit dem Befehl Apero.exe Pfad/zur/Datei.xml aufgerufen werden. Dabei wird die in Abschnitt erstellte XML-Datei angegeben. Beim Ausführen werden die Ergebnisse der aktuellen Ausgleichung direkt in der Kommandozeile ausgegeben

37 4 Apero 37 1 <ExportAPERO> 2 <OrientationConique> 3 <FileInterne>Camera_1.xml</FileInterne> 4 <RelativeNameFI>true</RelativeNameFI> 5 <Externe> 6 <Centre> </Centre> 7 <ParamRotation> 8 <CodageAngulaire> </CodageAngulaire> 9 </ParamRotation> 10 </Externe> 11 </OrientationConique> 12 <ExportAPERO> Quellcode 4.9: Aufbau der XML-Datei der äuÿeren Orientierung. Es wird das Projektionszentrum, die Rotation um 3 Achsen und die XML-Datei der Aufnahmekamera angegeben. 1 <ParamRotation> 2 <CodageMatr> 3 <L1> </L1> 4 <L2> </L2> 5 <L3> </L3> 6 </CodageMatr> 7 </ParamRotation> Quellcode 4.10: Angabe der Rotation einer Kamera in Form einer Rotationsmatrix. (Abb. 4.1). Die Ausgabe enthält Informationen zur Genauigkeit der Ergebnisse und gibt Aufschluss darüber, ob die Konguration der Ausgleichung angepasst werden sollte. Folgende Werte werden ausgegeben [Pie13, S. 116]: Abb. 4.1: Ausgabe von Apero in der Kommandozeile. Die Ausgabe der Werte erfolgt nach jeder Iteration und gibt Informationen zur Genauigkeit der berechneten Werte. RES: Der Name des jeweiligen Bildes. ER2: Die Wurzel des durchschnittlichen gewichteten quadratischen Residuums. Nn: Der prozentuale Anteil von Punkten mit Residuen unter dem Wert von B der Gewichtsfunktion aus Gleichung 4.2. Der Wert sollte über 95% liegen, ansonsten wurden die Werte zu vieler Punkte ignoriert. Of: Die Anzahl der Verknüpfungspunkte im jeweiligen Bild. Mul: Die Anzahl multipler Verknüpfungspunkte, welche in diesem und mindestens 2 weiteren Bildern gefunden wurden.

38 4 Apero 38 Mul-NN: Die Anzahl multipler Verknüpfungspunkte mit Residuen unter dem Wert von B der Gleichung 4.2. Time: Die benötigte Rechenzeit. Nach RESIDU LIAISON MOYEN wird der Mittelwert aller Residuen ausgegeben. Die aktuelle Iteration steht nach Iter, die jeweilige Ausgleichung nach ETAPE. Die Zählung beginnt jeweils bei 0.

39 5 Programmierung einer grafischen Oberfläche für Apero 39 5 Programmierung einer grafischen Oberfläche für Apero Auf Basis der Erkenntnisse zur Funktionsweise und Steuerung von Apero aus Kapitel 4, wird in diesem Kapitel die Entwicklung einer graschen Oberäche für das Tool beschrieben. Eine grasche Benutzeroberäche (kurz GUI für Graphical User Interface), dient als Schnittstelle zur Interaktion eines Anwenders mit einem Programm. Die grasche Oberäche soll dabei die Bedienung des Programms vereinfachen. Der Benutzer braucht keine weiteren Informationen über die interne Funktionsweise des Programms. Für die Entwicklung einer graschen Oberäche, muss zunächst eine geeignete Programmbibliothek ausgewählt werden (Abschnitt 5.1). Danach werden einige wichtige Konzepte bei der Programmierung grascher Oberächen vorgestellt. In Abschnitt 5.3 wird eine Übersicht über die programmierten Klassen gegeben. 5.1 Programmbibliotheken für grafische Oberflächen Für die Entwicklung einer graschen Oberäche stehen verschiedene Programmbibliotheken zur Auswahl. Daher muss zunächst ermittelt werden, welche davon am Sinnvollsten eingesetzt werden kann, um die Anforderungen an die grasche Oberäche für Apero zu erfüllen. Eine Grundvoraussetzung an das GUI ist dessen Lauähigkeit auf Windows-Systemen. Die Auswahl einer geeigneten Bibliothek wird damit auf grasche Oberächen für Windows eingeschränkt. Die wichtigsten, dafür in Frage kommenden Bibliotheken sind.net, Qt, Java und GTK +..NET Bei.NET [Mic13] handelt es sich um Programmbibliotheken von Microsoft, mit denen die Entwicklung sogenannter Windows Forms Anwendungen möglich ist. Zur Entwicklung können die Programmiersprachen C++, C# und Visual Basic eingesetzt werden. Um die Programme ausführen zu können, muss die.net-laufzeitumgebung installiert sein. Ab Windows 7 ist diese standardmäÿig im Betriebssystem enthalten. Eine bekannte Windows Forms Anwendung ist Visual Studio Mit der kostenfreien Entwicklungsumgebung Mono ist es möglich, Windows Forms Anwendungen auch für Linux und MacOS umzusetzen. Qt Qt [Dig13b] ist eine von Trolltech entwickelte Bibliothek zur plattformübergreifenden Programmierung grascher Oberächen. Diese können unter anderem für Windows, Linux und MacOS erstellt werden. Die erste Version dieser Bibliothek wurde bereits 1995 veröentlicht [BSL08, S. 21]. Als Programmiersprache kommt C++ zum Einsatz. Da die Qt-Bibliotheken unter einer Open Source-Lizenz stehen, gibt es auch Entwicklungsumgebungen die eine andere Programmiersprache zulassen (unter anderem PyQt für Python und Qyoto für C#). Die zur Ausführung der mit Qt erstellten Anwendungen benötigten Bibliotheken, können mit dieser gleich mitgeliefert werden. Damit muss der Benutzer nicht erst eine Laufzeitumgebung installieren. Ein bekanntes, auf Qt basierendes Programm ist Mathematica.

40 5 Programmierung einer grafischen Oberfläche für Apero 40 Java Die von Orcale entwickelte Programmiersprache Java [Ora13] enthält die Bibliotheken Swing und AWT zur Entwicklung grascher Oberächen. Java-Programme können auf allen Plattformen, für die eine Java-Laufzeitumgebung existiert, ausgeführt werden. Dies ist unter anderem für Windows, Linux und MacOS der Fall. Die Sprache zur Entwicklung einer Ober- äche ist auf Java beschränkt. Um die Anwendung zu starten, muss der Benutzer vorher die Java-Laufzeitumgebung installiert haben. Ein Beispiel für eine bekannte Java-Anwendung ist Netbeans. GTK+ Eine Bibliothek zur Entwicklung grascher Oberächen, die vor allem auf Linux-Systemen zum Einsatz kommt, ist GTK+ [13e]. Allerdings ist damit auch die Entwicklung von Ober- ächen für Windows und MacOS möglich. Die zur Ausführung von Programmen benötigten Bibliotheken können mit der jeweiligen Anwendung mitgeliefert werden. Programme die GTK+ nutzen werden in C++ geschrieben. Allerdings gibt es auch modizierte Bibliotheken, die andere Programmiersprachen zulassen (unter anderem PyGTK für Python und GTK # für C#). Eine bekannte, mit GTK+ erstellte Anwendung, ist GIMP. Betriebssystem Programmiersprachen LU 1.NET Windows 2 C++, VB, C# nein 3 Qt Windows, Linux, MacOS C++ 4 nein Java Windows, Linux, MacOS Java ja GTK+ Windows, Linux, MacOS C++ 4 nein 1 Benutzer muss zum Ausführen eine Laufzeitumgebung (LU) installieren. 2 Mit Mono auch für Linux und MacOS verfügbar 3 Laufzeitumgebung ist ab Windows 7 vorinstalliert 4 Modizierte Bibliotheken für andere Sprachen verfügbar Tab. 5.1: Vergleich von Programmbibliotheken zur Entwicklung grascher Oberächen hinsichtlich des Betriebssystems, der Programmiersprachen und benötigter Laufzeitumgebungen. Ein Überblick über die vorgestellten Bibliotheken wird in Tabelle 5.1 gegeben. Da die Toolsammlung MicMac ursprünglich nur für Linux programmiert wurde, ist es sinnvoll, eine Bibliothek zu nutzen, mit der auch eine Portierung auf dieses Betriebssystem möglich ist. Dies ist bei Qt, Java und GTK+ der Fall. Für den Benutzer ist es einfacher, wenn er zur Ausführung des Programms keine zusätzliche Laufzeitumgebung installieren muss. Dies trit noch auf Qt und GTK+ zu. Da Qt schon sehr lange entwickelt wird, ist die Bibliothek sehr ausgereift und umfasst viele nützliche Funktionen. Mit QtCreator wird zudem auch eine Entwicklungsumgebung mitgeliefert. Durch die weite Verbreitung von Qt existiert auÿerdem eine groÿe Auswahl an Literatur über die Entwicklung grascher Oberächen mit Qt. Dies gilt für GTK+ nicht in diesem Ausmaÿ, weshalb letztendlich Qt für die Entwicklung der graschen Oberäche Apero GUI verwendet wurde. Für Qt gibt es ein duales Lizenzierungssystem. Zum einen steht Qt unter der Open Source

41 5 Programmierung einer grafischen Oberfläche für Apero 41 Lizenz LGPL 2.1 zur Verfügung [13b]. Um Support bei der Entwicklung proprietärer Anwendungen zu erhalten, kann auch eine kommerzielle Lizenz erworben werden [Dig13a]. Zur Programmierung wurde die Version 5.02 der Qt-Bibliotheken eingesetzt. 5.2 Wichtige Konzepte bei der Programmierung grafischer Oberflächen Bei der Programmierung der graschen Oberäche für Apero mit Qt gibt es grundlegende Konzepte, die im Folgenden näher erläutert werden sollen Signale und Slots Bei graphischen Oberächen soll ein Objekt auf Statusänderungen von anderen Objekten reagieren. Eine bestimmte Funktion im Programm wird beispielsweise nur ausgeführt, wenn der Anwender auf den dafür vorgesehenen Button klickt. Damit ein Objekt auf Statusänderungen reagieren kann, gibt es ein System aus Signalen und Slots. Signale sind Nachrichten, die ein Objekt innerhalb des Programmes verschickt, sobald ein bestimmter Status aufgetreten ist. So sendet ein Button nach dem Anklicken ein entsprechendes Signal. Um diese Signale zu verarbeiten existieren Slots. Diese führen eine vorgegebene Aktion aus, wenn sie das dafür notwendige Signal empfangen. Ein Slot kann so die vom Benutzer gewünschte Funktion starten, sobald das entsprechende Signal empfangen wurde. Damit ein Slot weiÿ, auf welche Signale er reagieren soll, werden im Programm Verknüpfungen zwischen Signalen und Slots erstellt. Dabei ist es auch möglich, dass ein Signal an mehrere Slots gesendet wird und ein Slot verschiedene Signale empfangen kann. In Abb. 5.1 ist das System schematisch dargestellt. Abb. 5.1: Funktionsweise von Signalen und Slots [Dig13c]. Ein Signal wird mit einem Slot verbunden, welcher eine bestimmte Aktion ausführt wenn das Signal gesendet wird.

42 5 Programmierung einer grafischen Oberfläche für Apero 42 In Qt können alle Klassen deren Basisklasse QObject ist, Signale senden und mit Slots empfangen [Dig13c] [Wol10, S.31.]. Dies ist unter anderem für alle graschen Steuerelemente, wie Buttons und Textfelder der Fall. Mit der Funktion connect() können Signale und Slots mit einander verbunden werden (siehe Abb. 5.1). Selbst denierte Signale können mit der Funktion emit() gesendet werden. Dabei ist es auch möglich, Variablen zu übergeben, um dem Slot genauere Informationen über die Statusänderung mitzuteilen. Ein Beispiel aus Apero GUI : Der Anwender hat die Möglichkeit, im Kamera-Manager die ausgewählte Kamera umzubenennen. Ist dies geschehen, wird ein Signal ausgegeben, dass eine Kamera umbenannt wurde. Zusätzlich überträgt das Signal den alten und den neuen Namen der Kamera. Der Programmteil zum Verwalten der Bilder besitzt einen Slot zur Verarbeitung dieses Signals. Wenn das Signal empfangen wird, überprüft das Programm jedes der Bilder auf den Kameranamen der Aufnahmekamera. Ist dieser gleich dem alten Namen der umbenannten Kamera, wird dieser mit dem neuen Namen ersetzt Model/View-Programmierung Das Konzept der Model/View-Programmierung besagt, dass die Daten innerhalb eines Programms, unabhängig von deren Darstellung auf dem Bildschirm vorliegen. Das bedeutet, ein Datenmodell kann auf verschiedene Arten dargestellt werden, beispielsweise als Liste, Tabelle oder in einer Baumansicht. Damit die Daten im Programm nicht nur angezeigt werden, sondern auch vom Anwender editiert werden können, kommen sogenannte Delegates zum Einsatz. Ein Delegate stellt dem Benutzer in Abhängigkeit von den angezeigten Daten einen passenden Editor zur Verfügung. Der Zusammenhang wird in Abb. 5.2 verdeutlicht. Abb. 5.2: Schematische Darstellung der Model/View-Programmierung [Dig13e]. Das Modell stellt die Daten so zur Verfügung, dass diese auf verschieden Weisen angezeigt werden können. Mit Hilfe eines Delegates werden Schnittstellen zum Editieren der Daten zur Verfügung gestellt. Auch in Qt stehen Klassen für die Model/View-Programmierung zur Verfügung [Dig13e] [Wol10, S.302.]. Das Datenmodell kann dabei mit Hilfe der Klasse QStandardItemModel aufgebaut werden, wobei die einzelnen Elemente aus Objekten der Klasse QStandardItem bestehen. Als Möglichkeiten zur Darstellung der Daten, bietet Qt die Klassen QListView,

43 5 Programmierung einer grafischen Oberfläche für Apero 43 QTableView und QTreeView für Listen, Tabellen und Baumansichten an. Auch Delegates können mit QItemDelegate umgesetzt werden. Der Programmierer hat die Möglichkeit, eigene Klassen zur Verwirklichung des Model/View-Konzeptes zu erstellen. In Apero GUI werden alle Daten in von QStandardItem abgeleiteten Klassen gespeichert. Darauf wird in Abschnitt näher eingegangen. Im Reiter zum Verwalten der Bilder ist die Umsetzung einer View-Klasse zur Darstellung als Baumansicht zu sehen. Hier kann auch das Konzept der Delegates verdeutlicht werden: Für jedes Bild kann die zugewiesene Kamera, die Koordinaten des Projektionszentrums und die Rotation um ihre Achsen editiert werden. Um die Aufnahmekamera zu ändern, stellt das Delegate ein Drop-Down-Menü zur Verfügung. Zur Änderung der Koordinaten und der Rotation wird ein Fenster zur Eingabe von jeweils 3 Werten geönet Übersetzung in andere Sprachen Damit ein Programm nicht für jede Sprache neu kompiliert werden muss, gibt es in Qt die Möglichkeit im Quellcode anzugeben, welche Zeichenketten übersetzbar sein sollen. Dies geschieht mit der Methode tr(), bzw. bei Klassen die nicht von QObject abgeleitet wurden mit QObject::tr(). Mit Hilfe des Tools QLinguist können alle im Quellcode markierten Zeichenketten übersetzt werden [Dig13d]. Der Übersetzer muss dafür nicht programmieren können. Die fertigen Übersetzungen werden in eine Datei mit der Endung.qm gespeichert und können zusammen mit dem Programm ausgeliefert werden. Apero GUI überprüft beim Starten die Systemsprachen und lädt, falls vorhanden, automatisch die passende Übersetzung. Die richtige Sprache der qm-datei erkennt das Programm anhand der Zeichen vor der Endung. Die deutsche qm-datei lautet apero_gui_de.qm. Für die französische Sprachausgabe muss eine Datei mit dem Namen apero_gui_fr.qm erstellt werden. Da Englisch die Standardsprache des Programms ist, wird dafür keine qm-datei benötigt Benutzerfreundlichkeit Vor der Programmierung einer graschen Oberäche, sollte zunächst überlegt werden, wie diese möglichst benutzerfreundlich gestaltet werden kann. Die Aufgabe der Oberäche ist es, dem Anwender die Arbeit zu erleichtern. Dafür ist es unter anderem nötig, dass die Oberäche übersichtlich und verständlich strukturiert ist. Dies wurde in Apero GUI beispielsweise durch die Unterteilung in thematisch von einander abgegrenzte Reiter verwirklicht. Weiterhin sollte für den Benutzer klar erkennbar sein, mit welchen Teilen der Programms er momentan weitere Aktionen durchführen kann. In Apero GUI werden dafür alle Steuerelemente, die gerade nicht sinnvoll eingesetzt werden können, ausgeblendet. Die Ausgabe von Fehlermeldungen sollte möglichst so gestaltet werden, dass der Anwender weiÿ, wie er darauf reagieren kann. So wird in Apero GUI beim Kongurieren der Ausgleichung angezeigt, warum er in manchen Fällen für bestimmte Parameter die freigegeben werden sollen, keine Kamera auswählen kann. Eine Behandlung häug auftretender Fehler beim Design grascher Oberächen, sowie Vor-

44 5 Programmierung einer grafischen Oberfläche für Apero 44 schläge wie diese zu vermeiden sind, ndet sich in [Joh08]. 5.3 Aufbau des Quellcodes Bei der Programmierung der graschen Oberäche für Apero wurde Wert darauf gelegt, das Programm in sinnvolle Klassen zu unterteilen. Damit wird eine möglichst gute Erweiterbarkeit gewährleistet. Für jede Klasse existiert eine Header-Datei zur Beschreibung der Methoden und eine cpp-datei in welcher diese umgesetzt werden. Den Kern des Programms bildet die Klasse MainWindow. Weiterhin gibt es die Item-Klassen, welche die zur Laufzeit anfallenden Daten enthalten (Abschnitt 5.3.1). Auÿerdem die Manager-Klassen, welche sich um die Darstellung und Modizierung von Daten kümmern (Abschnitt 5.3.2). Die Manager-Klassen nutzen zur Darstellung auch die Delegate-Klasse ItemDelegate, mit den dazugehörigen Editoren ItemSelector und MultipleSpinBoxEditor. Der Zusammenhang zwischen den Klassen wird in Abb. 5.3 verdeutlicht. Abb. 5.3: Übersicht über alle für AperoGUI erstellen Klassen und deren Verbindung zueinander. Die Klasse MainWindow enthält Objekte der Manager-Klassen, welche Funktionen zur Ein- und Ausgabe der Daten zur Verfügungen stellen. Diese Daten werden in den Item-Klassen gespeichert. MainWindow Die Klasse MainWindow erstellt das Hauptfenster und kümmert sich um die Kommunikation zwischen den Manager-Klassen. So wird die Information über neu hinzugefügte Bilder und Kameras, in dieser Klasse an die Klassen weitergegeben, die diese Informationen benötigen. Auÿerdem wird in MainWindow die XML-Datei zum Ausführen von Apero erstellt. ItemDelegate Abgeleitet von QItemDelegate soll diese Klasse Möglichkeiten zum Editieren von Werten zur Verfügung stellen. Dazu gehören unter anderem ein Feld zum Editieren von Zahlen und ein Drop-Down-Menü zum selektieren verschiedener Werte. Auÿerdem Objekte der noch folgenden beiden Klassen. ItemSelector Diese Klasse stellt ein Fenster mit Checkboxen zum Auswählen von Objekten für das Item- Delegate zur Verfügung. Sie wird verwendet um bei der Konguration der Ausgleichung, die

45 5 Programmierung einer grafischen Oberfläche für Apero 45 Bilder und Kameras auswählen zu können. MultipleSpinBoxEditor In dem von dieser Klasse erstellen Fenster, können bis zu 3 Zahlenwerte eingegeben werden. Dies wird zur Eingabe von Koordinaten und Rotationen der Aufnahmekamera im Reiter Images genutzt Item-Klassen Die Item-Klassen dienen zur Speicherung von Daten zur Laufzeit des Programms. Alle Klassen sind Ableitungen der Klasse QStandardItem. Damit können Objekte dieser Klassen direkt mit Hilfe von View-Klassen wie QTableView oder QTreeView angezeigt werden. Alternativ wurden für alle Daten auch entsprechende Methoden erstellt, mit denen diese unabhängig von QStandardItem abgerufen oder verändert werden können. ImageItem Diese Klasse enthält alle Informationen zu einer Bilddatei. Dafür wurde eine Funktion implementiert, mit der die Bilder zunächst geladen werden können. Um Speicherplatz im Arbeitsspeicher zu sparen, wird das Bild nur in verringerter Auösung geladen und auf Icon- Gröÿe herunter gerechnet. Ein direktes Laden des Bildes in der Auösung des Icons, würde zu einer verpixelten Darstellung führen. Die Informationen zu Lage und Rotation der Aufnahmekamera, können mit einer dafür erstellten Methode, in eine XML-Datei geschrieben werden. CameraItem In dieser Klasse sind alle Informationen enthalten, die zu einer Kamera gespeichert werden können. Um die Kameraparameter in der Ausgleichung verwenden zu können, gibt es eine Methode, mit der diese in einer XML-Datei gespeichert werden. Zusätzlich enthält die Klasse eine Methode, mit der die Parameter der Kamera aus einer XML-Datei geladen werden können. Diese wird benötigt, um nach der Durchführung der Ausgleichung mit Apero, die Werte der kalibrierten Kameras auszulesen. AdjustmentItem Die Daten dieser Klasse enthalten die Parameter der Gewichtsfunktion, sowie alle freigegebenen Bilder und Kameras in jeder Iteration. OrientationItem Diese Klasse enthält die äuÿere Orientierung der Aufnahmekamera eines bestimmten Bildes. Diese kann aus einer XML-Datei geladen werden. Gespeichert wird dabei die Lage des Kamerazentrums und die Rotationsmatrix der Kamera.

46 5 Programmierung einer grafischen Oberfläche für Apero Manager-Klassen Die Manager-Klassen dienen zur Darstellung von Informationen in Apero GUI. Alle Klassen wurden von QWidget abgeleitet. Dadurch sind diese exibel einsetzbar und können sowohl innerhalb eines Fensters, als auch in einem separaten Fenster angezeigt werden. ImageManager Die Darstellung der Informationen im Reiter Images wird von dieser Klasse übernommen. Für jedes Bild wird dazu ein neues Objekt der Klasse ImageItem angelegt. CameraManager Diese Klasse stellt eine Eingabemaske zum Editieren der Kameraparameter zur Verfügung. Für jede Kamera wird ein Objekt der Klasse CameraItem angelegt. AdjustmentManager Mit dieser Klasse wird die Konguration der Bündelblockausgleichung ermöglicht. Für jede hinzugefügte Ausgleichung wird ein neues Objekt der Klasse AdjustmentItem angelegt. ResultManager Die Ausgabe der Ergebnisse erfolgt mit dieser Klasse. Für jede kalibrierte Kamera wird ein Objekt der Klasse CameraItem angelegt. Für jedes Bild wird ein neues Objekt der Klasse OrientationItem erstellt. ProcessManager Die Steuerung und Ausgabe von Informationen externer Prozesse, wird mit dieser Klasse vorgenommen. Dazu gehört neben Apero auch Tapioca, womit Verknüpfungspunkte zwischen zwei Bildern gefunden werden können. Die Klasse enthält eine Methode zum Hinzufügen der Prozesse. Damit können auf einfache Weise auch weitere externe Prozesse verwendet werden, wie beispielsweise Apero2PMVS.

47 6 Apero GUI 47 6 Apero GUI Nachdem im vorherigen Kapitel die Programmierung eine graschen Oberäche für Apero beschrieben wurde, widmet sich dieses Kapitel deren Aufbau aus Sicht des Anwenders. Mit der graschen Oberäche Apero GUI hat dieser die Möglichkeit, die wesentlichen Funktionen von Apero zu nutzen, ohne dafür die zu Steuerung benötigten XML-Dateien selber schreiben zu müssen. Mit dem Programm können zu einem Satz von Bildern die einzelnen Schritte einer Ausgleichung festgelegt werden, um als Ergebnis die Orientierung der Bilder und die Werte der kalibrierten Kameras zu erhalten. Da Apero mit Leerzeichen in Dateinamen nicht zurecht kommt, darf der Pfad zu Apero GUI keine Leerzeichen enthalten. Dies wird bei Programmstart überprüft und im entsprechenden Fall eine Fehlermeldung ausgegeben. Weiterhin müssen die zu MiacMac gehörenden Tools in einem Unterordner micmac liegen. Beim Ausführen des Programmes wird die Sprache des Betriebssystems ausgelesen. Ist diese deutsch, so wird das Programm in deutscher Sprache dargestellt. Ansonsten werden alle Optionen auf Englisch angezeigt. Nach dem Starten des Programms Apero GUI, ist zunächst das Hauptfenster mit den folgenden Bereichen zu sehen (Abb. 6.1): Abb. 6.1: Das Hauptfenster von Apero GUI nach dem Start des Programms. Zu Beginn ist nur der Reiter Images aktiviert, da für die weiteren Schritte zunächst Bilder geladen werden müssen. Images Hier können Bilder geladen und bekannte Informationen zu deren Orientierung eingetragen werden. (Abschnitt 6.1)

48 6 Apero GUI 48 Bundle Adjustment Unter diesem Reiter kann die Konguration der Bündelblockausgleichung vorgenommen werden. (Abschnitt 6.3) Results Die Anzeige der Ergebnisse erfolgt unter diesem Reiter. (Abschnitt 6.5) Camera Manager Dieser Button önet das Fenster des Kamera-Managers, welcher zur Verwaltung und Konguration der verwendeten Kameras dient. (Abschnitt 6.2) Run Apero Die automatische Kameraorientierung mit Apero wird mit diesem Button gestartet. (Abschnitt 6.4) Tapioca/Apero Unter diesen beiden Reitern werden die Ausgaben der Tools Tapioca bzw. Apero angezeigt. (Abschnitt 6.4) Die einzelnen Komponenten von Apero GUI werden in den folgenden Abschnitten näher beschrieben. 6.1 Laden und Verwalten von Bildern Im Reiter Images werden die geladenen Bilder aufgelistet (Abb. 6.2). Neben jedem Bild wird ein kleines Vorschaubild als Icon angezeigt. Mit einem Häkchen ausgewählte Bilder werden in der Bündelblockausgleichung verwendet. Auÿerdem lassen sich zu jedem Bild noch weitere Informationen ausklappen. Abb. 6.2: Verwalten von Bildern in Apero GUI. Es kann die Position und Rotation der Aufnahmen angegeben werden, sowie deren Aufnahmekamera. Nur die selektierten Bilder werden in der Bündelblockausgleichung verwendet. Add Image Mit diesem Button können Bilder im tif -,jpg- oder bmp-format hinzugefügt werden. Mit dem Halten der Umschalt- oder Steuerungs-Taste im Lade-Dialog, können auch mehrere Bilder gleichzeitig ausgewählt werden.

49 6 Apero GUI 49 Remove Image Das aktuell selektierte Bild wird aus der Liste entfernt. Path Hier wird der absolute Pfad zur Bilddatei angezeigt. Dimensions Die Auösung des Bildes in Pixeln. Camera Für jedes Bild muss die Kamera ausgewählt werden, mit der die Aufnahme gemacht wurde. Dabei gilt es zu beachten, dass für jede Brennweite eine neue Kamera angelegt werden sollte, auch wenn es sich ansonsten um die gleiche Kamera handelt. Mit einem Doppelklick auf die Kamera, wird die Menü zur Auswahl einer Kamera geönet. Neue Kameras werden mit dem Kamera-Manager hinzugefügt (siehe Abschnitt 6.2). Center Wenn die Position des Projektionszentrums der Aufnahmekamera bekannt ist, kann diese mit dem Häkchen aktiviert werden. Mit einem Doppelklick in das Feld der Koordinaten, wird ein Editor zur Änderung derselben geönet. Rotation Analog zur Einstellung bei Center, kann hier eine bekannte Rotation der Aufnahmekamera angegeben werden. 6.2 Verwalten der Kameras Das Fenster zur Verwaltung der Kameras (Abb. 6.3) lässt sich über den Button Camera Manager im Hauptfenster önen. Jede verwendete Kamera wird hier hinzugefügt. Alle Werte die mit der Ausgleichung verbessert werden sollen, können hier initialisiert werden. Abb. 6.3: Kamera-Manager zur Verwaltung von Kameras in Apero GUI. Hier können die Parameter der Kameras festgelegt werden. Camera Hier kann aus allen Kameras, die zu bearbeitende ausgewählt werden. Camera Name Der Anwender kann hier die Bezeichnung der Kamera ändern. Leerzeichen im Namen werden automatisch durch Unterstriche ersetzt.

50 6 Apero GUI 50 Focal Length Die Brennweite des Objektives in mm. Der Wert wird zunächst mit 50mm initialisiert. Der eingetragene Wert sollte möglichst nah am realen Wert liegen, da es sonst zu Fehlern in der Ausgleichung kommen kann. Dimensions Der Wert für die Auösung (Breite x Höhe) des Bildsensors in Pixeln. Als initialer Wert wird die Auösung des zuletzt hinzugefügten Bildes verwendet. Principal Point Hier werden die Koordinaten des Bildhauptpunktes in Pixeln angegeben. Zu Beginn wird dieser im Zentrum des Bildes initialisiert.. Distortion Center Analog zum Bildhauptpunkt, können hier die Pixelkoordinaten des Verzeichnungszentrums verändert werden. Distortion Center =... Ist das Häkchen gesetzt, so haben das Verzeichnugngszentrum und der Bildhauptpunkt dieselben Koordinaten. Radial Distortion Hier kann bestimmt werden, ob die radiale Verzeichnung der Kamera beachtet werden soll. Wenn das Kästchen aktiviert ist, können in den Feldern K1 bis K3 die Werte der Koezienten eingetragen werden. Dabei können sehr kleine Werte mit Hilfe des Exponenten, hinter e angegeben werden. Decentering Distortion Falls auch eine radiale asymmetrische und tangentiale Verzeichnung beachtet werden soll, kann das Häkchen gesetzt und den beiden Koezienten ein Wert zugewiesen werden. Auch hier ist eine Angabe mit Exponenten möglich. Affine Distortion Analog zu radialer und tangentialer Verzeichnung, kann hier die ane Verzeichnung aktiviert und deren Koezienten eingetragen werden. Add Camera Mit diesem Button wird eine neue Kamera hinzugefügt. Als Ausgangswert für die Brennweite wird automatisch 50mm eingetragen. Für die Auösung werden die Maÿe des zuletzt hinzugefügten Bildes verwendet. Der Bildhauptpunkt wird in der Bildmitte initialisiert. Das Verzeichnungszentrum ist gleich dem Bildhauptpunkt. Es ist sinnvoll, vor dem Hinzufügen einer neuen Kamera, zunächst die damit aufgenommenen Bilder zu laden. Remove Camera Die aktuell ausgewählte Kamera wird entfernt. Allen Bildern denen diese Kamera zugeordnet war, wird stattdessen die zuletzt hinzugefügte Kamera zugewiesen. Close Sclieÿt das Fenster des Kamera Managers. Alle geänderten Werte wurden schon vorher, direkt nach dem editieren des jeweiligen Feldes gespeichert. 6.3 Ablauf der Bündelblockausgleichung konfigurieren Unter dem Reiter Bundle Adjustment, lässt sich der Ablauf der Bündelblockausgleichung genau festlegen (Abb. 6.4). Alle Werte lassen sich mit einem Doppelklick in das jeweilige Feld

51 6 Apero GUI 51 editieren. In der ersten Iteration der ersten Ausgleichung werden nach und nach die Ausgangspositionen der einzelnen Bilder berechnet. Daher können hier keine Bilder ausgewählt werden der Position freigegeben werden soll. Diese sind automatisch freigegeben. Wenn eine Kamera mit unbekannter Brennweite eingesetzt wird, sollte diese in der ersten Iteration freigegeben werden. Abb. 6.4: Kongurieren der Ausgleichung in Apero GUI unter dem Reiter Bundle Adjustment. Hier können die Gewichte für die Ausgleichung festgelegt werden und die freizugebenden Parameter der Kameras und Bilder ausgewählt werden. Add Adjustment Es wird eine neue Ausgleichung am Ende hinzugefügt. Die Werte für B und σ werden von der vorherigen Ausgleichung übernommen. Jede Ausgleichung enthält auÿerdem mindestens eine Iteration. Remove Adjustment Die aktuell ausgewählte Ausgleichung wird entfernt. Add Iteration Zur gerade selektierten Ausgleichung wird eine Iteration hinzugefügt. Die freigegebenen Parameter werden aus der vorherigen Iteration übernommen. Remove Iteration Die ausgewählte Iteration wird entfernt, solange mindestens eine Iteration pro Ausgleichung bestehen bleibt. Weighting Function: B Alle Punkte mit Residuen, deren Wert über B liegt, werden ignoriert. In der ersten Ausgleichung sollte B einen hohen Wert haben, da hier temporär hohe Residuen beim hinzufügen neuer Bilder auftreten können, die sich jedoch im weiteren Verlauf normalisieren. Danach sollte der Wert weiter verringert werden, solange dadurch nicht zu viele Punkte ignoriert werden (siehe Abschnitt 6.4). Weighting Function: Sigma Der Parameter σ gehört zu einer Gewichtsfunktion, mit der die Ergebnisse der Ausgleichung in Abhängigkeit von den erhaltenen Residuen gewichtet

52 6 Apero GUI 52 werden (siehe Kapitel 4, Gleichung 4.2). Ein groÿer Wert bedeutet, dass Punkte mit hohen Residuen nur ein sehr kleines Gewicht bekommen. Der Wert des Parameters sollte im weiteren Verlauf verringert werden. Ein zu kleiner Wert führt allerdings zu fehlerhaften Ergebnissen, da Punkte mit gröÿeren Abweichungen zu viel Gewicht bekommen. Free Pose Die Position der hier ausgewählten Bilder kann während der Ausgleichung verändert werden. Frozen Center Von den unter Free Pose ausgewählten Bildern kann hier das Projektionszentrum eingefroren werden. Damit wird in der Ausgleichung nur noch die Rotation der Aufnahme verändert. Free Focal Length Hier werden die Kameras ausgewählt, deren Brennweite in dieser Iteration freigegeben werden soll. Free Principal Point Freigabe der Koordinaten des Bildhauptpunktes. Free Distortion Center Für Kameras, deren Verzeichnungszentrum nicht gleich dem Bildhauptpunkt ist, kann dieses hier freigegeben werden. Free Radial Dist. K1-K3 Die einzelnen Koezienten der radialen Verzeichnung werden von den ausgewählten Kameras freigegeben. Free Decentering Dist. Die beiden Koezienten der radialen asymmetrischen und der tangentialen Verzeichnung werden freigegeben. Free Affine Distortion Die beiden Koezienten der anen Verzeichnung werden freigegeben. In der ersten Ausgleichung sollten zunächst nur die Positionen freigegeben werden und bei unbekannten Kameras auch die Brennweite. Danach sollte eine Ausgleichung der Positionen durchgeführt werden. Im Anschluss werden bei unbekannten Kameras die Kameraparameter mit einbezogen. Dafür wird in jeder Iteration ein weiterer Parameter freigegeben, angefangen bei Brennweite, über Bildhauptpunkt und Verzeichnungszentrum zu den Koezienten der Verzeichnungen. Anhand der Ausgabe von Apero (Abschnitt 6.4) lässt sich erkennen, ob der Ablauf der Ausgleichung noch modiziert werden sollte. 6.4 Apero ausführen Mit dem Button Run Apero, wird Apero mit den vorher gewählten Einstellungen gestartet. Falls von einem der geladenen Bilder noch keine Verknüpfungspunkte vorliegen, werden diese zunächst mit Tapioca für alle Bilder gesucht. Im Reiter Tapioca bzw. Apero wird dabei die Ausgabe der beiden Programme angezeigt. Nachdem die Berechnung beendet ist, kann Anhand der Ausgabe von Apero überprüft werden, ob am Ablauf der Ausgleichung Änderungen vorgenommen werden sollten. Dafür sind folgende Parameter wichtig (Abb. 6.5):

53 6 Apero GUI 53 Abb. 6.5: Ausgabe von Apero in Apero GUI. Mit Hilfe der ausgegebenen Werte kann ide Konguration der Ausgleichung optimiert werden. RES Hinter diesem Parameter steht der Name des jeweiligen Bildes. ER2 Dieser Wert gibt die Wurzel des durchschnittlichen quadratischen Residuums an. Nn Dieser Wert gibt den prozentualen Anteil der Residuen an, die unter dem Wert von B liegen. Nach dem Ende jeder Iteration wird in der Ausgabe End Iter x ETAPE y angezeigt. Dabei ist x die Nummer der Iteration und y die Nummer der dazugehörigen Ausgleichung. Die Zählung beginnt hier allerdings bei 0. Die erste Iteration der ersten Ausgleichung dient dazu, die Positionen der Bilder zu initialisieren (Iter 0 ETAPE 0). Wenn bei der Bestimmung der Bildpositionen schon in der ersten Ausgleichung Fehler auftreten, d.h. hinter der Ausgabe ER2 steht IND#, liegt dies häug an einem Startwert für die Brennweite, der zu weit vom realen Wert entfernt liegt. Es sollte darauf geachtet werden, dass der Wert hinter Nn nicht unter 95% fällt. Falls dies auftritt, sollten der Parameter B erhöht werden. Wenn der Wert hinter Nn sehr hoch ist, kann ein geringerer Wert für die Parameter der Gewichtsfunktion verwendet werden. 6.5 Ergebnisse der Ausgleichung Unter dem Reiter Results werden die Ergebnisse der Orientierung mit Apero angezeigt. Nach dem Aufklappen des Punktes Cameras, werden alle verwendeten Kameras aufgelistet. Zu jeder Kamera können die kalibrierten Parameter angezeigt werden. Unter Images werden alle verwendeten Bilder angezeigt. Zu jedem Bild werden die Lage des Projektionszentrums und die Elemente der Rotationsmatrix ausgegeben. Aller Ergebnisse sind auch im Unterordner temp/ori in Form von XML-Dateien gespeichert. Damit bei der Arbeit mit mehreren Datensätzen nicht jedes mal eine neue Bestimmung der Verknüpfungspunkte durchgeführt werden muss, kann der Unterordner temp vor der Arbeit mit einem neuen Datensatz umbenannt werden. Soll mit diesen Daten weiter gearbeitet werden, muss der Ordner zuvor wieder in temp umbenannt werden.

54 7 Auswertung 54 7 Auswertung Die im Rahmen dieser Arbeit entwickelte grasche Oberäche Apero GUI wird in diesem Kapitel für die automatische Bestimmung der Kameraorientierung eines Beispieldatensatzes verwendet, um die Genauigkeit der Ergebnisse von Apero zu überprüfen. Im zweiten Teil des Kapitels werden die Ergebnisse mit denen von Agisoft PhotoScan verglichen. 7.1 Ergebnisse eines Beispieldatensatzes Für die Auswertung wurde der Beispieldatensatz Boudha verwendet, welcher neben anderen Beispielen unter [13c] heruntergeladen werden kann. Der Datensatz beinhaltet 25 Bilder einer Buddha-Statue (Abb. 7.1). Zusätzlich sind die kalibrierten Parameter der Aufnahmekamera gegeben (Tab. 7.1). Die 25 Bilder wurden in Apero GUI geladen, um die automatische Ka- Abb. 7.1: Die 25 Einzelbilder einer Buddha-Statue aus dem Beispieldatensatz Boudha. Mit den, aus verschiedenen Blickwinkeln aufgenommenen Bildern, kann eine automatische Kameraorientierung durchgeführt werden. librierung einer unbekannten Kamera zu testen. Zunächst wurde untersucht, wie genau die Brennweite einer unbekannten Kamera bestimmt werden kann. Dafür wurden im Kamera- Manager Ausgangswerte von 10 mm bis 80 mm für die Brennweite angegeben. Die Lage des Bildhauptpunktes wurde auf dem Bildmittelpunkt belassen. Das Verzeichnungszentrum war gleich dem Bildhauptpunkt. Die Verzeichnung wurde deaktiviert. Im Reiter Bündelblockausgleichung wurde die Standardeinstellung der ersten Ausgleichung mit B = 100 und σ = 5 belassen. Diese Werte werden in den meisten Beispiel-XML-Dateien für die erste Ausgleichung verwendet und sollten daher gute Startwerte sein. Mit dem hohen Wert für B wird verhindert, dass Werte mit temporär hohen Residuen ignoriert werden, welche bei der Bestimmung der Ausgangsposition der Bilder auftreten können. Es wurde eine Iteration durchgeführt, bei der

55 7 Auswertung 55 die Brennweite der Kamera freigegeben war, um groÿe Abweichungen der Positionen durch eine falsche, eingefrorene Brennweite zu vermeiden. Dieser Versuch wurde für eine Teilmenge von 5, 10 und 15 Bildern wiederholt. Damit sollte festgestellt werden, wie stark die Genauigkeit durch eine geringere Anzahl von Bildern beeinträchtigt wird. Die Abhängigkeit der so berechneten Brennweite vom Ausgangswert ist in Abbildung 7.2 für die Teilmenge von 5, 10 und 15 Bildern zu sehen. Abb. 7.2: Abhängigkeit der berechneten Brennweite vom eingestellten Startwert für das Beispiel des Buddha- Datensatzes. Für Startwerte von 10 mm bzw. 80 mm konnte kein Ergebnis berechnet werden. Die gestrichelten Linien dienen zur besseren Visualisierung der Schwankungen. Die durchgezogene Linie zeigt die tatsächliche Brennweite von 55.8 mm an. Im Ergebnis zeigt sich, dass die berechnete Brennweite unabhängig vom Startwert gegen einen bestimmt Wert konvergiert, wenn mindestens 10 der 25 Bilder zur Berechnung genutzt werden. Bei nur 5 Bildern unterliegt das Ergebnis gröÿeren Schwankungen. Die Ursache liegt in der geringeren Überbestimmung, wodurch Abweichungen in Teilergebnissen nicht so gut ausgeglichen werden. Lag der Startwert der Brennweite unter 20 mm oder über 70 mm, konnte Apero in den meisten Fällen keine Berechnung mehr durchführen. Durch die Abweichung des Startwertes der Brennweite vom tatsächlichen Wert von 55.8 mm, konvergieren die Ergebnisse der Berechnung nicht mehr, so dass nicht für alle Bilder eine Position ermittelt werden kann. Für Startwerte zwischen 20 mm und 70 mm lag die berechnete Brennweite bei mehr als 10 Bildern meist ca. 1.5 mm über der tatsächlichen Brennweite und sollte daher weiter verbessert werden. Um eine Verbesserung der Brennweite zu erreichen, wurde die Bündelblockausgleichung um weitere Schritte ergänzt. Als Startwert wurden die voreingestellten 50 mm gewählt. Das Verzeichnungszentrum wurde vom Bildhauptpunkt entkoppelt, damit eine genauere Berechnung der Verzeichnung möglich ist. Alle anderen Kameraparameter wurden nicht verändert. Dabei hat sich herausgestellt, das es sinnvoll ist, zunächst in der ersten Ausgleichung die Brennweite zusammen mit den Kamerapositionen auszugleichen um danach eine Ausgleichung der

56 7 Auswertung 56 Positionen bei fester Brennweite durchzuführen. Dies ist sinnvoll, da die Brennweite zunächst unbekannt ist und deren berechneter Wert von den Positionen abhängig ist. Bei einer Ausgleichung mit eingefrorener Brennweite, werden die Abweichungen in den Positionen nur auf diese verteilt. Nach der alleinigen Ausgleichung der Positionen unterliegen deren Werte in weiteren Ausgleichungen geringeren Schwankungen. Daher wurden in einer dritten Ausgleichung die Positionen frei gelassen und zusätzlich pro Iteration ein weiterer Kameraparameter freigegeben, angefangen bei der Brennweite, danach der Bildhauptpunkt, das Verzeichnungszentrum und im Anschluss je einer der Verzeichnungskoezienten K 1 bis K 3. Die Werte der Parameter B und σ waren dabei in den Ausgleichungen 1-3 B 1 = 100, σ 1 = 5, B 2 = 10, σ 2 = 5 und B 3 = 5, σ 3 = 4. Diese Einstellung wurde in mehreren Beispiel-XML-Dateien verwendet und kam daher auch hier zum Einsatz. Zur Verbesserung der Werte wurden in den ersten beiden Ausgleichungen je 3 Iterationen mit gleicher Einstellung durchgeführt und in der dritten Ausgleichung eine Iteration pro freigegebenen Kameraparameter. Die resultierende Brennweite weicht mit mm nur um mm von der tatsächlichen Brennweite mit mm ab und ist damit wesentlich genauer als der Wert nach der Initialisierung mit nur einer Ausgleichung. Der Bildhauptpunkt hat in der X-Koordinate eine Abweichung von 33.6 P ixel und in der Y-Koordinate von 1.7 P ixel zum korrekten Wert. Das Verzeichnungszentrum hat eine Abweichung von 60.2 P ixel in X-Richtung und 17.0 P ixel in Y-Richtung. Die Bestimmung dieser Koordinaten ist damit trotz mehrerer Ausgleichungen noch sehr ungenau. Der Verzeichnungskoezient weicht mit K 1 = e 08 nur geringfügig vom tatsächlichen Wert von K 1 = ab. Bei den anderen beiden Koezienten hat K 2 das falsche Vorzeichen und ist um eine Zehnerpotenz zu groÿ, während der Wert für K 3 nur mit 0 bestimmt werden konnte (Tabelle 7.1). F F p P P C D K 1 K 2 K , , e e e , , e e-15 0 Tab. 7.1: Die Kameraparameter der Aufnahmekamera des Beispieldatensatzes Boudha. In der unteren Zeile werden die mit Apero ermittelten Werte nach mehreren Ausgleichungen dargestellt. F... Brennweite in mm, F p... Brennweite in Pixel, P P... Bildhauptpunkte in Pixel, C D... Verzeichnungszentrum in Pixel, K 1-K 3... Koezienten der radialen Verzeichnung Die Ergebnisse zeigen, dass zumindest teilweise eine automatische Kamerakalibrierung ohne weitere Informationen zum Aufbau der Szene möglich ist. Die Brennweite kann mit einem veränderten Wert für σ bei der Ausgleichung auch noch genauer bestimmt werden. Allerdings ist der beste Werte für sigma normalerweise unbekannt. Im Beispiel bewegte sich die berechnete Brennweite für einen Wert von 3.5 < σ < 4.5 immer um 55.8x mm. Wurde das Verzeichnungszentrum bei der Ausgleichung nicht freigegeben, waren die Schwankungen etwas gröÿer, da sich Abweichungen in der Verzeichnung auf weniger Parametern verteilen. Um verlässliche Aussagen zur Genauigkeit der Kamerakalibrierung mit Apero machen zu können, sind weitere Untersuchgen mit mehreren Datensätzen nötig. Diese sollten sich in der Überdeckung zwi-

57 7 Auswertung 57 schen den Bildern, der Distanz zum Objekt, der Basis zwischen den Kameras, dem Typ der Aufnahmekameras, der Anzahl verschiedener Kameras und der Art der aufgenommenen Szene unterscheiden, um für möglichst viele verschiedene Bedingungen die optimalen Parameter zu nden. In einem weiteren Versuch wurde die Auswirkung einer teilweisen Verwendung von kalibrierten Kameras untersucht. Ziel dabei war es herauszunden, ob die Parameter einer unbekannten Kamera mit Hilfe von Bildern einer kalibrierten Kamera verbessert werden können. Dafür wurden die Parameter aus Tabelle 7.1 für die kalibrierte Kamera genutzt. Zusätzlich wurde eine neue Kamera angelegt, deren Parameter auf den Standardeinstellungen belassen wurden. Von den 25 Bildern des Boudha-Datensatzes wurden einem variablen Anteil von 1-12 Bildern die unbekannte Kamera zugewiesen, den restlichen Bildern die bekannte Kamera. Damit alle Bilder der unbekannten Kamera genügen Verknüpfungspunkte mit Bildern der kalibrierten Kamera habe, wurde auf eine gute Verteilung der beiden Kameras geachtet. Wie schon im ersten Versuch dieses Kapitels, wurde eine Iteration der Ausgleichung 1 mit den Werten von B = 100 und σ = 5 durchgeführt. Die Brennweite der unbekannten Kamera wurde freigegeben. Da die Parameter der kalibrierten Kamera bekannt sind, wurden diese eingefroren. Die resultierende Brennweite in Abhängigkeit der Anzahl der Bilder mit der unbekannten Kamera, ist in Abbildung 7.3 zu sehen. Abb. 7.3: Berechnete Brennweite in Abhängigkeit von der Anzahl der Bilder mit unbekannter Kamera. Die Gerade zeigt die tatsächliche Brennweite von mm an. Einem Teil der 25 Bilder des Boudha-Datensatzes wurde dafür die eine Kamera mit korrekter Kalibrierung zugewiesen, dem anderen eine unbekannte Kamera. Das Ergebnis zeigt, dass die Werte der Brennweite nach einem Ausgleichungsschritt, wesentlich näher am tatsächlichen Wert von mm liegen, als dies der Fall ist, wenn allen Bildern eine unbekannte Kamera zugewiesen wird (vgl. Abb. 7.2). Der Durchschnittswert der Brennweite von 5-10 Bildern mit unbekannter Kamera, beträgt mm und hat damit nur eine Abweichung von 0.14 mm vom korrekten Wert. Dies ist im Vergleich zu den 1.5 mm des

58 7 Auswertung 58 ersten Versuches ein wesentlich besserer Wert. Bei weniger als 5 Bildern von der unbekannten Kamera, können deren Parameter noch nicht sehr genau bestimmt werden und unterliegen daher noch einigen Schwankungen. Bei mehr als 10 Bildern, kommt es zu einer leichten Verschlechterung der Ergebnisse, da durch das ausgeglichenere Verhältnis zwischen der Anzahl der Bilder der kalibrierten und der unbekannten Kamera, der positive Einuss durch die bekannte Kalibrierung verringert wird. Anhand dieses Beispiels, lässt sich noch keine genaue Aussage treen, wie das relative Verhältnis zwischen kalibrierten und unbekannten Kameras aussehen muss, damit eine gute Kalibrierung der nicht bekannten Parameter durchgeführt werden kann. Auÿerdem muss untersucht werden, ob die Ergebnisse durch zusätzliche Ausgleichungen, auch so weit verbessert werden können wie im vorherigen Beispiel. Die bisher erhaltenen Ergebnisse können durch das Einbeziehen zusätzlicher Informationen noch weiter verbessert werden. Dafür bietet Apero die Möglichkeit, mit der Maskierung eines Bildes eine horizontale Ebene anzugeben, sowie eine Gerade die darauf senkrecht steht [Pie13, S. 121.]. Die daraus erhaltenen Informationen zur Orientierung der Szene kann auch die Genauigkeit der Kameraorientierung verbessern. Weiterhin kann in Apero mit einer Maskierung die bekannte Gröÿe eines Objektes genutzt werden, um eine Skalierung der Szene durchzuführen. Zusätzlich ist auch der Einsatz bekannter Passpunkte zur Steigerung der Genauigkeit möglich [Pie13, S. 124.]. Die genannten Vorgehensweisen müssen allerdings noch in Apero GUI implementiert werden, um diese komfortabel nutzen zu können. 7.2 Vergleich mit den Ergebnissen von Agisoft PhotoScan Zum Vergleich der Ergebnisse von Apero wurde der im letzten Abschnitt verwendete Beispieldatensatz Boudha mit der in Kapitel 3.1 vorgestellten Software Agisoft PhotoScan bearbeitet. Damit ist ein Vergleich zu den Ergebnissen von Apero möglich. Die Kameraparameter wurden in den Standardeinstellungen belassen. PhotoScan wählt dafür eine Brennweite von 50 mm (siehe auch PhotoScan-Hilfe, Abschnitt Camera calibration). Für die Berechnung wurde bei der Option Accuracy die höchste Genauigkeit ausgewählt. Als Ergebnis können die ermittelten Kameraparameter angezeigt werden. Zusätzlich wird die Szene als Punktwolke visualisiert und die Aufnahmeposition der Bilder angezeigt (Abb. 7.4). Bei der Durchführung der Berechnung sind trotz identischer Ausgangsbedingungen, leichte Schwankungen in den Ergebnissen aufgetreten (siehe Tab. 7.2). Bei der Brennweite gab es Unterschiede von mm und bei der Lage des Bildhauptpunktes von P ixel. Die Ursache für die Schwankungen kann im verwendeten RANSAC-Algorithmus liegen. Dieser bricht ab wenn mit einer bestimmten Wahrscheinlichkeit eine gewünschte Genauigkeit erreicht wurde (vgl. Kapitel 2.4). Die in PhotoScan verwendete Genauigkeit ist möglicherweise nicht hoch genug, um leichte Schwankungen in den Ergebnissen zu vermeiden. Die Ergebnisse werden in Tabelle 7.2 aufgelistet. Die berechnete Brennweite weicht um 0.05 mm vom korrekten Wert ab und ist damit etwas ungenauer als das Ergebnis von Apero mit einer

59 7 Auswertung 59 F F p P P K 1 K 2 K , , , , e e e-21 Tab. 7.2: Von Agisoft PhotoScan ermittelte Kameraparameter. F... Brennweite in mm, F p... Brennweite in Pixel, P P... Bildhauptpunkte in Pixel, K 1-K 3... Koezienten der radialen Verzeichnung. Die drei obersten Zeilen zeigen die unterschiedlichen Ergebnisse der Software trotz identischer Ausgangsparameter. In der untersten Zeile werden die tatsächlichen Werte der Kamera angegeben. Abweichung von mm nach mehreren Ausgleichungen (vgl. Tab. 7.1). Die Lage des Bildhauptpunktes wurde mit PhotoScan weicht um 5.7 P ixel in X- und 9.9 P ixel in Y-Richtung vom tatsächlichen Wert ab. Der von Apero ermittelte Bildhauptpunkt hatte in X-Richtung eine gröÿere Abweichung von 33.6 P ixel und in Y-Richtung eine geringere Abweichung von 1.7 P ixel. Die Ergebnisse der Verzeichnungsparameter sind in PhotoScan wesentlich ungenauer in Apero. Während das Ergbenis von Apero für den ersten Verzeichnungskoezienten nur eine Abweichung von 0.13 vom tatsächlichen Wert aufweist, ist der Wert bei PhotoScan um 6 Zehnerpotenzen zu groÿ. Um genauere Aussagen zu den Unterschieden zwischen den Ergebnissen von Agisoft PhotoScan und Apero treen zu können, sind weitere Untersuchungen mit unterschiedlichen Beispieldaten nötig. Mit Bundler oder Elcovision können auch weitere Programme in den Vergleich einbezogen werden. Abb. 7.4: Darstellung der Buddha-Statue als Punktwolke und Anzeige der Kamerapositionen in Agisoft PhotoScan.

Computer Vision: 3D-Geometrie. D. Schlesinger () Computer Vision: 3D-Geometrie 1 / 17

Computer Vision: 3D-Geometrie. D. Schlesinger () Computer Vision: 3D-Geometrie 1 / 17 Computer Vision: 3D-Geometrie D. Schlesinger () Computer Vision: 3D-Geometrie 1 / 17 Lochkamera Modell C Projektionszentrum, Optische Achse, Bildebene, P Hauptpunkt (optische Achse kreuzt die Bildebene),

Mehr

Computer Vision I. Nikos Canterakis. Lehrstuhl für Mustererkennung, Universität Freiburg

Computer Vision I. Nikos Canterakis. Lehrstuhl für Mustererkennung, Universität Freiburg Nikos Canterakis Lehrstuhl für Mustererkennung, Universität Freiburg Gliederung 8 Projektive Invarianz und das kanonische Kamerapaar Kanonisches Kamerapaar aus gegebener Fundamentalmatrix Freiheitsgrade

Mehr

Bildverarbeitung: 3D-Geometrie. D. Schlesinger () Bildverarbeitung: 3D-Geometrie 1 / 13

Bildverarbeitung: 3D-Geometrie. D. Schlesinger () Bildverarbeitung: 3D-Geometrie 1 / 13 Bildverarbeitung: 3D-Geometrie D. Schlesinger () Bildverarbeitung: 3D-Geometrie 1 / 13 Lochkamera Modell C Projektionszentrum, Optische Achse, Bildebene, P Hauptpunkt (optische Achse kreuzt die Bildebene),

Mehr

Computer Vision I. Nikos Canterakis. Lehrstuhl für Mustererkennung, Universität Freiburg

Computer Vision I. Nikos Canterakis. Lehrstuhl für Mustererkennung, Universität Freiburg Nikos Canterakis Lehrstuhl für Mustererkennung, Universität Freiburg Gliederung 6 Endliche Kameras Die Lochkamera Die Projektive Kamera Die projektive Kamera Spalten von P Zeilen von P Hauptpunkt und Hauptachse

Mehr

3D-Model Reconstruction using Vanishing Points

3D-Model Reconstruction using Vanishing Points 3D-Model Reconstruction using Vanishing Points Seminar: Ausgewä hlte Themen zu "Bildverstehen und Mustererkennung" Dozenten: Prof. Dr. Xiaoyi Jiang, Dr. Da-Chuan Cheng, Steffen Wachenfeld, Kai Rothaus

Mehr

Computer Vision I. Nikos Canterakis. Lehrstuhl für Mustererkennung, Universität Freiburg

Computer Vision I. Nikos Canterakis. Lehrstuhl für Mustererkennung, Universität Freiburg Nikos Canterakis Lehrstuhl für Mustererkennung, Universität Freiburg Gliederung 8 Epipolargeometrie Die Fundamentalmatrix Korrelation Schätzung der Fundamentalmatrix Homographie infolge einer Ebene Sonderfälle

Mehr

Computer Vision I. Nikos Canterakis. Lehrstuhl für Mustererkennung, Universität Freiburg

Computer Vision I. Nikos Canterakis. Lehrstuhl für Mustererkennung, Universität Freiburg Nikos Canterakis Lehrstuhl für Mustererkennung, Universität Freiburg Gliederung 7 Projektionen und Rückprojektionen Der Punkt Die Gerade Die Quadrik Die Ebene Zusammenhang Kalibriermatrix - Bild des absoluten

Mehr

2.2 Projektionen und Kameramodelle

2.2 Projektionen und Kameramodelle Graphikprog. GRUNDLEGENDE VERFAHREN UND TECHNIKEN. Projektionen und Kameramodelle Nachdem alle Objekte einer Szenerie mittels der besprochenen Transformationen im D-Weltkoordinatensystem platziert sind,

Mehr

Inhalte. Photogram. Aufnahmesysteme. HS BO Lab. für Photogrammetrie: Metrische Kameras und Innere Orientierung 1

Inhalte. Photogram. Aufnahmesysteme. HS BO Lab. für Photogrammetrie: Metrische Kameras und Innere Orientierung 1 Inhalte Photogram. Aufnahmesysteme Metrische Kameras (Definition der Inneren Orientierung) Analoge Messkameras Fotografische Aspekte Digitalisierung analoger Bilder Digitale Messkameras HS BO Lab. für

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Brückenkurs Mathematik TU Dresden 2015 Lineare Gleichungssysteme Schwerpunkte: Modellbildung geometrische Interpretation Lösungsmethoden Prof. Dr. F. Schuricht TU Dresden, Fachbereich Mathematik auf der

Mehr

Kapitel 15. Lösung linearer Gleichungssysteme

Kapitel 15. Lösung linearer Gleichungssysteme Kapitel 15. Lösung linearer Gleichungssysteme Lineare Gleichungssysteme Wir befassen uns nun mit der Lösung im allgemeinen nichthomogener linearer Gleichungssysteme in zweifacher Hinsicht. Wir studieren

Mehr

Symplifying the Reconstruction of 3D Models using Parameter Elimination

Symplifying the Reconstruction of 3D Models using Parameter Elimination Seminar 3D Rekonstruktion, Priehn, Hannes Priehn, Jens Symplifying the Reconstruction of 3D Models using Parameter Elimination SS2011 Hannes Priehn Jens Priehn Koordinatensysteme Titel, Datum,... 2 Weltkoordinaten

Mehr

Technische Universität

Technische Universität Technische Universität München Fakultät für Informatik Forschungs- und Lehreinheit Informatik IX Stereo Vision: Epipolargeometrie Proseminar: Grundlagen Bildverarbeitung/Bildverstehen Alexander Sahm Betreuer:

Mehr

3. Analyse der Kamerabewegung Video - Inhaltsanalyse

3. Analyse der Kamerabewegung Video - Inhaltsanalyse 3. Analyse der Kamerabewegung Video - Inhaltsanalyse Stephan Kopf Bewegungen in Videos Objektbewegungen (object motion) Kameraoperationen bzw. Kamerabewegungen (camera motion) Semantische Informationen

Mehr

Über den Zusammenhang zwischen geometrischer Parallaxe und der Entfernung des Mondes

Über den Zusammenhang zwischen geometrischer Parallaxe und der Entfernung des Mondes Über den Zusammenhang zwischen geometrischer Parallaxe und der Entfernung des Mondes U. Backhaus Universität Duisburg-Essen Wenn man ein entferntes Objekt von verschiedenen Orten aus anpeilt, dann unterscheiden

Mehr

Hinweise zur Kalibrierung von Kameras mit einer AICON Kalibriertafel

Hinweise zur Kalibrierung von Kameras mit einer AICON Kalibriertafel Hinweise zur Kalibrierung von Kameras mit einer AICON Kalibriertafel AICON 3D Systems GmbH Celler Straße 32 D-38114 Braunschweig Telefon: +49 (0) 5 31 58 000 58 Fax: +49 (0) 5 31 58 000 60 Email: info@aicon.de

Mehr

geschlossene Schachtel mit einem kleinen Loch

geschlossene Schachtel mit einem kleinen Loch Kameramodellierung Lochkamera Kamerakonstante Kamerazentrum geschlossene Schachtel mit einem kleinen Loch ideale Kamera: Loch hat keine Ausdehnung die Strahlen sind ein Büschel von Geraden Abbildung erfolgt

Mehr

Praktikumsversuch. Kamerakalibrierung. S. Rahmann und H. Burkhardt

Praktikumsversuch. Kamerakalibrierung. S. Rahmann und H. Burkhardt Praktikumsversuch Kamerakalibrierung S. Rahmann und H. Burkhardt . Inhaltsverzeichnis 1 Kamerakalibrierung 5 1.1 Einleitung............................... 5 1.2 Projektive Geometrie.........................

Mehr

Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen?

Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen? Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen können zwei Ebenen (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen? Wie heiÿt

Mehr

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen Gleichungen Lösen Was bedeutet es, eine Gleichung zu lösen? Was ist überhaupt eine Gleichung? Eine Gleichung ist, grundsätzlich eine Aussage über zwei mathematische Terme, dass sie gleich sind. Ein Term

Mehr

Prof. J. Zhang zhang@informatik.uni-hamburg.de. Universität Hamburg. AB Technische Aspekte Multimodaler Systeme. 6. Januar 2004

Prof. J. Zhang zhang@informatik.uni-hamburg.de. Universität Hamburg. AB Technische Aspekte Multimodaler Systeme. 6. Januar 2004 zhang@informatik.uni-hamburg.de Universität Hamburg AB Technische Aspekte Multimodaler Systeme zhang@informatik.uni-hamburg.de Inhaltsverzeichnis Kalibrierung einer Kamera: Grundkonzept...............344

Mehr

Computer Vision I. Nikos Canterakis. Lehrstuhl für Mustererkennung, Universität Freiburg,

Computer Vision I. Nikos Canterakis. Lehrstuhl für Mustererkennung, Universität Freiburg, Nikos Canterakis Lehrstuhl für Mustererkennung, Universität Freiburg, Literatur Richard Hartle and Andrew Zisserman. Multiple View Geometr in computer vision, Cambridge Universit Press, 2 nd Ed., 23. O.D.

Mehr

Internal Report 06 01. Inkrementelle Akquisition von 3D-Objektmodellen

Internal Report 06 01. Inkrementelle Akquisition von 3D-Objektmodellen Internal Report 06 01 Inkrementelle Akquisition von 3D-Objektmodellen by Lars Heyden Ruhr-Universität Bochum Institut für Neuroinformatik 44780 Bochum IR-INI 06 01 April 2006 ISSN 0943-2752 c 2006 Institut

Mehr

P1-41 AUSWERTUNG VERSUCH GEOMETRISCHE OPTIK

P1-41 AUSWERTUNG VERSUCH GEOMETRISCHE OPTIK P1-41 AUSWERTUNG VERSUCH GEOMETRISCHE OPTIK GRUPPE 19 - SASKIA MEIßNER, ARNOLD SEILER 1 Bestimmung der Brennweite 11 Naives Verfahren zur Bestimmung der Brennweite Es soll nur mit Maÿstab und Schirm die

Mehr

5 Eigenwerte und die Jordansche Normalform

5 Eigenwerte und die Jordansche Normalform Mathematik für Physiker II, SS Mittwoch 8.6 $Id: jordan.tex,v.6 /6/7 8:5:3 hk Exp hk $ 5 Eigenwerte und die Jordansche Normalform 5.4 Die Jordansche Normalform Wir hatten bereits erwähnt, dass eine n n

Mehr

Bildtransformationen. Geometrische Transformationen Grauwert-Interpolation

Bildtransformationen. Geometrische Transformationen Grauwert-Interpolation Bildtransformationen Geometrische Transformationen Grauwert-Interpolation Transformation Transformation zwei Schritte geometrische Transformation (Trafo der Koordinaten) Neuberechnung der Pielwerte an

Mehr

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

Externe Kamerakalibration eines Infrarottrackingsystems. Volker Wiendl Lehrstuhl für Multimediakonzepte und Anwendungen Universität Augsburg Externe Kamerakalibration eines Infrarottrackingsystems Volker Wiendl Lehrstuhl für Multimediakonzepte und Anwendungen Universität Augsburg 18. April 2005 Kurzfassung Für viele Anwendungen im Bereich Augmented

Mehr

Scannen ohne Scanner: Bildbasierte 3D Punktwolken Grundlagen, Anwendungen und Erfahrungen

Scannen ohne Scanner: Bildbasierte 3D Punktwolken Grundlagen, Anwendungen und Erfahrungen Scannen ohne Scanner: Bildbasierte 3D Punktwolken Grundlagen, Anwendungen und Erfahrungen Heinz Jürgen Przybilla Gliederung Einleitung Grundlagen Dense Image Matching / Structure from Motion Systeme Anwendungen

Mehr

NÜTZLICHE TIPPS FÜR OPTIMALE SCANS

NÜTZLICHE TIPPS FÜR OPTIMALE SCANS Bedingungen, um gute Scans zu erhalten Die Faktoren, von denen das Ergebnis eines Scans abhängt, sind einerseits die Umgebung sowie die Konfiguration und Kalibrierung des Scanners, aber auch das zu scannende

Mehr

Lineare Funktionen. 1 Proportionale Funktionen 3 1.1 Definition... 3 1.2 Eigenschaften... 3. 2 Steigungsdreieck 3

Lineare Funktionen. 1 Proportionale Funktionen 3 1.1 Definition... 3 1.2 Eigenschaften... 3. 2 Steigungsdreieck 3 Lineare Funktionen Inhaltsverzeichnis 1 Proportionale Funktionen 3 1.1 Definition............................... 3 1.2 Eigenschaften............................. 3 2 Steigungsdreieck 3 3 Lineare Funktionen

Mehr

Bestimmung der relativen Kameraorientierung aus Bildpaaren

Bestimmung der relativen Kameraorientierung aus Bildpaaren Bestimmung der relativen Kameraorientierung aus Bildpaaren Bachelorarbeit an der Fakultät für Informations-, Medien und Elektrotechnik der Fachhochschule Köln im Institut für Medien- und Phototechnik Autor

Mehr

Grundlagen der Computer-Tomographie

Grundlagen der Computer-Tomographie Grundlagen der Computer-Tomographie Quellenangabe Die folgenden Folien sind zum Teil dem Übersichtsvortrag: imbie.meb.uni-bonn.de/epileptologie/staff/lehnertz/ct1.pdf entnommen. Als Quelle für die mathematischen

Mehr

Digitale Bildverarbeitung Einheit 12 3D-Rekonstruktion

Digitale Bildverarbeitung Einheit 12 3D-Rekonstruktion Digitale Bildverarbeitung Einheit 12 3D-Rekonstruktion Lehrauftrag SS 2008 Fachbereich M+I der FH-Offenburg Dr. Bernard Haasdonk Albert-Ludwigs-Universität Freiburg Ziele der Einheit Einen Eindruck davon

Mehr

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen Austausch- bzw. Übergangsrozesse und Gleichgewichtsverteilungen Wir betrachten ein System mit verschiedenen Zuständen, zwischen denen ein Austausch stattfinden kann. Etwa soziale Schichten in einer Gesellschaft:

Mehr

Nachhilfe-Kurs Mathematik Klasse 13 Freie Waldorfschule Mitte

Nachhilfe-Kurs Mathematik Klasse 13 Freie Waldorfschule Mitte Nachhilfe-Kurs Mathematik Klasse 13 Freie Waldorfschule Mitte März 2008 Zusammenfassung IB 1. Lagebeziehungen zwischen geometrischen Objekten 1.1 Punkt-Gerade Ein Punkt kann entweder auf einer gegebenen

Mehr

In ein quadratisches Blech werden Löcher gestanzt. Insgesamt sind es 85 Löcher. Wie viele Löcher sind in der untersten Reihe?

In ein quadratisches Blech werden Löcher gestanzt. Insgesamt sind es 85 Löcher. Wie viele Löcher sind in der untersten Reihe? Aufgabe 1: Das Stanzblech: Löcher In ein quadratisches Blech werden Löcher gestanzt. Insgesamt sind es 85 Löcher. Wie viele Löcher sind in der untersten Reihe? Bei dieser Aufgabe kann rückwärts gearbeitet

Mehr

Nichtlineare Optimierung ohne Nebenbedingungen

Nichtlineare Optimierung ohne Nebenbedingungen Kapitel 2 Nichtlineare Optimierung ohne Nebenbedingungen In diesem Abschnitt sollen im wesentlichen Verfahren zur Bestimmung des Minimums von nichtglatten Funktionen in einer Variablen im Detail vorgestellt

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Neue Bilder, neue Möglichkeiten Chancen für die Ägyptologie durch das 3D-Design

Neue Bilder, neue Möglichkeiten Chancen für die Ägyptologie durch das 3D-Design Neue Bilder, neue Möglichkeiten Chancen für die Ägyptologie durch das 3D-Design Seit einiger Zeit wird in Film und Fernsehen verstärkt auf CGI-Effekte gesetzt. Dies betraf in verstärktem Maße auch größere

Mehr

Bestimmung einer ersten

Bestimmung einer ersten Kapitel 6 Bestimmung einer ersten zulässigen Basislösung Ein Problem, was man für die Durchführung der Simplexmethode lösen muss, ist die Bestimmung einer ersten zulässigen Basislösung. Wie gut das geht,

Mehr

3D-Rekonstruktion von Schiffen aus kalibrierten und unkalibrierten Aufnahmen

3D-Rekonstruktion von Schiffen aus kalibrierten und unkalibrierten Aufnahmen Allgemeine Nachrichtentechnik Prof. Dr.-Ing. Udo Zölzer 3D-Rekonstruktion von Schiffen aus kalibrierten und unkalibrierten Aufnahmen Christian Ruwwe & Udo Zölzer 4. Tagung Optik und Optronik in der Wehrtechnik

Mehr

DRESDEN. Ermitteln von Sprunghöhen mit einem Windows Phone. ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht.

DRESDEN. Ermitteln von Sprunghöhen mit einem Windows Phone. ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht. ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht DRESDEN Ermitteln von Sprunghöhen mit einem Windows Phone Felix Guttbier Schule: Gymnasium Brandis Jugend forscht 2014 ERMITTELN VON SPRUNGHÖHEN

Mehr

(1) Problemstellung. (2) Kalman Filter

(1) Problemstellung. (2) Kalman Filter Inhaltsverzeichnis (1) Problemstellung...2 (2) Kalman Filter...2 Funktionsweise... 2 Gleichungen im mehrdimensionalen Fall...3 Schätzung des Systemzustands...3 Vermuteter Schätzfehler... 3 Aktualisierung

Mehr

Anwendungsdokumentation: Update Sticker

Anwendungsdokumentation: Update Sticker Anwendungsdokumentation: Update Sticker Copyright und Warenzeichen Windows und Microsoft Office sind registrierte Warenzeichen der Microsoft Corporation in den Vereinigten Staaten und anderen Ländern.

Mehr

Visualisierung der Eidolon Auswertung. VisEiA. Graphischer Client für das Emailspiel Eidolon

Visualisierung der Eidolon Auswertung. VisEiA. Graphischer Client für das Emailspiel Eidolon Visualisierung der Eidolon Auswertung VisEiA Graphischer Client für das Emailspiel Eidolon Entstanden im Ramen einer Seminararbeit in Informatik Universität Fribourg, Schweiz david.buchmann@gmx.net http://getit.at/viseia/

Mehr

Kurzpräsentation Fiat Export Programm

Kurzpräsentation Fiat Export Programm Kurzpräsentation Fiat Export Programm 1. Allgemein 2. Fiat Export Das Importieren der Tempariodaten in ein Autohaus- Terminverwaltungsprogramm (z.bsp. TKP) 3. Fiat Export Das Importieren der Tempariodaten

Mehr

Produktentwicklung damit sollten Sie rechnen

Produktentwicklung damit sollten Sie rechnen Produktentwicklung damit sollten Sie rechnen 0. Zusammenfassung Wer Produktentwicklung betreiben will, muss in erster Linie sehr viel lesen: Dokumente aus unterschiedlichsten Quellen und in vielen Formaten.

Mehr

Integration geometrischer und fotogrammetrischer Information zum Wiederfinden von Bildern

Integration geometrischer und fotogrammetrischer Information zum Wiederfinden von Bildern Integration geometrischer und fotogrammetrischer Information zum Wiederfinden von Bildern Björn Burow SE Mustererkennung in Bildern und 3D-Daten Lehrstuhl Graphische Systeme BTU Cottbus Inhaltsübersicht

Mehr

TEILWEISE ASYNCHRONE ALGORITHMEN

TEILWEISE ASYNCHRONE ALGORITHMEN TEILWEISE ASYNCHRONE ALGORITHMEN FRANK LANGBEIN Literatur: D. Berseas, J. Tsitsilis: Parallel and distributed computatoin, pp. 48 489 URI: http://www.langbein.org/research/parallel/ Modell teilweiser asynchroner

Mehr

PROSEMINAR ONLINE ALGORITHMEN

PROSEMINAR ONLINE ALGORITHMEN PROSEMINAR ONLINE ALGORITHMEN im Wintersemester 2000/2001 Prof. Dr. Rolf Klein, Dr. Elmar Langetepe, Dipl. Inform. Thomas Kamphans (Betreuer) Vortrag vom 15.11.2000 von Jan Schmitt Thema : Finden eines

Mehr

Betragsgleichungen und die Methode der Fallunterscheidungen

Betragsgleichungen und die Methode der Fallunterscheidungen mathe online Skripten http://www.mathe-online.at/skripten/ Betragsgleichungen und die Methode der Fallunterscheidungen Franz Embacher Fakultät für Mathematik der Universität Wien E-mail: franz.embacher@univie.ac.at

Mehr

3D-Rekonstruktion von Kanalschächten aus Videosequenzen

3D-Rekonstruktion von Kanalschächten aus Videosequenzen 3D-Rekonstruktion von Kanalschächten aus Videosequenzen Dipl. Inf. Sandro Esquivel Prof. Dr.-Ing. Reinhard Koch Arbeitsgruppe Multimediale Informationsverarbeitung Christian-Albrechts-Universität Kiel

Mehr

Das "Softwarepaket für Falcon und Eagle Framegrabber"

Das Softwarepaket für Falcon und Eagle Framegrabber Windows Treiber für IDS Falcon und Eagle 26.07.2011 Page 1/6 Einleitung IDS bietet für die der Falcon und Eagle Serie zwei unterschiedliche Windows-Treiber an. Zum einen das "Softwarepaket für Falcon und

Mehr

Aufgabe 1. Zunächst wird die allgemeine Tangentengleichung in Abhängigkeit von a aufgestellt:

Aufgabe 1. Zunächst wird die allgemeine Tangentengleichung in Abhängigkeit von a aufgestellt: Aufgabe 1 1.1. Bestimmung von D max : 1. Bedingung: x >0 ; da ln(x) nur für x > 0 definiert ist. 2. Bedingung: Somit ist die Funktion f a nur für x > 0 definiert und sie besitzt eine Definitionslücke an

Mehr

BL Brennweite von Linsen

BL Brennweite von Linsen BL Brennweite von Linsen Blockpraktikum Frühjahr 2007 25. April 2007 Inhaltsverzeichnis 1 Einführung 2 2 Theoretische Grundlagen 2 2.1 Geometrische Optik................... 2 2.2 Dünne Linse........................

Mehr

Seminar Seminarname SS 2003

Seminar Seminarname SS 2003 Universität Karlsruhe (TH) Institut für Rechnerentwurf und Fehlertoleranz (IRF) Lehrstuhl Prof. Dr.-Ing. Dillmann Seminar Seminarname SS 2003 Beitragstitel Eva Muster Kaiserstraße 1 76133 Karlsruhe eva@muster.de

Mehr

Vermessung und Photogrammetrie mit dem Trimble V10 Multi-Kamera Rover. Martin Köhler

Vermessung und Photogrammetrie mit dem Trimble V10 Multi-Kamera Rover. Martin Köhler Vermessung und Photogrammetrie mit dem Trimble V10 Multi-Kamera Rover Martin Köhler Inhalt Zielstellung Grundlagen der Photogrammetrie Der V10 Multi-Kamera Rover Konfigurationen in der Feldarbeit Photogrammetrische

Mehr

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte 50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien

Mehr

Mathematik I für Wirtschaftswissenschaftler

Mathematik I für Wirtschaftswissenschaftler 1 Mathematik I für Wirtschaftswissenschaftler Lösungsvorschläge zur Klausur am 01.08.2003. Bitte unbedingt beachten: a) Verlangt und gewertet werden alle vier gestellten Aufgaben. Alle Aufgaben sind gleichwertig.

Mehr

Maik Eckardt CINEMA 4D R12. Prime und Studio. Inklusive DVD-ROM

Maik Eckardt CINEMA 4D R12. Prime und Studio. Inklusive DVD-ROM Maik Eckardt CINEMA 4D R12 Prime und Studio Inklusive DVD-ROM Cinema_4D R12.book Seite 9 Dienstag, 12. Oktober 2010 7:51 07 Bevor es losgeht... 9 Cinema_4D R12.book Seite 10 Dienstag, 12. Oktober 2010

Mehr

Evaluierung der UltraCamX

Evaluierung der UltraCamX Evaluierung der UltraCamX Magdalena Linkiewicz Michael Breuer Beuth Hochschule für Technik Berlin 1 Gliederung Einleitung Problemstellung Untersuchungsmethode Ergebnisse Zusammenfassung Dank 2 Einleitung

Mehr

Projektion. Ebene geometrische Projektionen

Projektion. Ebene geometrische Projektionen Projektion - 1 - Ebene geometrische Projektionen Die ebenen geometrischen Projektionen sind dadurch charakterisiert, daß mit Projektionsstrahlen konstanter Richtung, d.h. entlang von Geraden, auf Ebenen

Mehr

Übungen zur Experimentalphysik 3

Übungen zur Experimentalphysik 3 Übungen zur Experimentalphysik 3 Prof. Dr. L. Oberauer Wintersemester 2010/2011 7. Übungsblatt - 6.Dezember 2010 Musterlösung Franziska Konitzer (franziska.konitzer@tum.de) Aufgabe 1 ( ) (8 Punkte) Optische

Mehr

KODAK PROFESSIONAL DCS Pro SLR/c Digitalkamera

KODAK PROFESSIONAL DCS Pro SLR/c Digitalkamera KODAK PROFESSIONAL DCS Pro SLR/c Digitalkamera Benutzerhandbuch Abschnitt Objektivoptimierung Teilenr. 4J1534_de Inhaltsverzeichnis Objektivoptimierung Überblick...5-31 Auswählen des Verfahrens zur Objektivoptimierung...5-32

Mehr

2 Darstellung von Zahlen und Zeichen

2 Darstellung von Zahlen und Zeichen 2.1 Analoge und digitale Darstellung von Werten 79 2 Darstellung von Zahlen und Zeichen Computer- bzw. Prozessorsysteme führen Transformationen durch, die Eingaben X auf Ausgaben Y abbilden, d.h. Y = f

Mehr

TechTipp. Bildbearbeitung mit Lookup-Tabellen (LUT): Machen Sie das (fast) Unsichtbare sichtbar. Hintergrund

TechTipp. Bildbearbeitung mit Lookup-Tabellen (LUT): Machen Sie das (fast) Unsichtbare sichtbar. Hintergrund Bildbearbeitung mit Lookup-Tabellen (LUT): Machen Sie das (fast) Unsichtbare sichtbar Die IDS Software Suite erlaubt Ihnen für alle ueye-kameramodelle softwareseitig mittels Lookup-Tabellen eine Kennlinie

Mehr

Algorithmen II Vorlesung am 15.11.2012

Algorithmen II Vorlesung am 15.11.2012 Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales

Mehr

Lineare Algebra und Lösung linearer zeitinvarianter Differentialgleichungssysteme

Lineare Algebra und Lösung linearer zeitinvarianter Differentialgleichungssysteme Übung Lineare Algebra und Lösung linearer zeitinvarianter Differentialgleichungssysteme Diese Übung beschäftigt sich mit Grundbegriffen der linearen Algebra. Im Speziellen werden lineare Abbildungen, sowie

Mehr

PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN

PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN Karlsruhe, April 2015 Verwendung dichte-basierter Teilrouten Stellen Sie sich vor, in einem belebten Gebäude,

Mehr

Anwendung einer Monokularen Kamera als Bewegungs-Sensor für Mobile Roboter p.1

Anwendung einer Monokularen Kamera als Bewegungs-Sensor für Mobile Roboter p.1 Anwendung einer Monokularen Kamera als Bewegungs-Sensor für Mobile Roboter Tobias Pietzsch Anwendung einer Monokularen Kamera als Bewegungs-Sensor für Mobile Roboter p.1 Zielstellung Kamera als Sensor

Mehr

Stapelverarbeitung Skalieren von Bildern

Stapelverarbeitung Skalieren von Bildern Stapelverarbeitung Skalieren von Bildern Frage Ich möchte mehrere Bilder im RAW-(NEF)-Format gleichzeitig für die Verwendung auf einer Website verkleinern und in das JPEG-Format konvertieren. Antwort Verwenden

Mehr

Wirtschaftsrechnen. Leseprobe

Wirtschaftsrechnen. Leseprobe Wirtschaftsrechnen Kapitel 1 Darstellung von Größen 1.1 Größen im Koordinatensystem 1.2 Diagramme und Ihre Verwendung 1.2.1 Säulendiagramm 1.2.2 Balkendiagramm 1.2.3 Punktdiagramm (Streudiagramm) 1.2.4

Mehr

Handbuch zum Tierart-Modul für Rotbauchunken

Handbuch zum Tierart-Modul für Rotbauchunken Handbuch zum Tierart-Modul für Rotbauchunken Maximilian Matthe Einleitung Dieses Handbuch führt Sie in die Benutzung des Rotbauchunken-Moduls für AmphIdent ein. Mit Hilfe dieses Moduls können Sie Bauchfleckenmuster

Mehr

Rasterpunkte und Rasterdichte (Knoten/km)

Rasterpunkte und Rasterdichte (Knoten/km) Rasterpunkte und Rasterdichte (Knoten/km) Von den meisten Anwendern unbemerkt schlummern diese Teile in den unbekannten Tiefen von EEP und beweisen ihre Daseinsberechtigung hemmungslos und brutal meistens

Mehr

7.1 Matrizen und Vektore

7.1 Matrizen und Vektore 7.1 Matrizen und Vektore Lineare Gleichungssysteme bestehen aus einer Gruppe von Gleichungen, in denen alle Variablen nur in der 1. Potenz vorkommen. Beispiel Seite 340 oben: 6 x 2 = -1 + 3x 2 = 4 mit

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Lineare Gleichungssysteme Sei K ein Körper, a ij K für 1 i m, 1 j n. Weiters seien b 1,..., b m K. Dann heißt a 11 x 1 + a 12 x 2 +... + a 1n x n = b 1 a 21 x 1 + a 22 x 2 +... + a 2n x n = b 2... a m1

Mehr

Konsolidieren von Daten in EXCEL

Konsolidieren von Daten in EXCEL Konsolidieren von Daten in EXCEL Der Begriff der (auch Konsolidation) besitzt in den einzelnen Fachbereichen (Finanzmathematik, Geologie, Medizin usw.) unterschiedliche Bedeutung. Im Sinne dieses Beitrages

Mehr

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt - 17 - Die Frage ist hier also: Für welche x R gilt x = x + 1? Das ist eine quadratische Gleichung für x. Es gilt x = x + 1 x x 3 = 0, und man kann quadratische Ergänzung machen:... ( ) ( ) x x + = 3 +

Mehr

Protokollbuch. Friedrich-Schiller-Universität Jena. Physikalisch-Astronomische Fakultät SS 2008. Messtechnikpraktikum

Protokollbuch. Friedrich-Schiller-Universität Jena. Physikalisch-Astronomische Fakultät SS 2008. Messtechnikpraktikum Friedrich-Schiller-Universität Jena Physikalisch-Astronomische Fakultät SS 2008 Protokollbuch Messtechnikpraktikum Erstellt von: Christian Vetter (89114) Helena Kämmer (92376) Christian.Vetter@Uni-Jena.de

Mehr

Darstellende Geometrie Übungen. Tutorial. Übungsblatt: Perspektive - Rekonstruktion

Darstellende Geometrie Übungen. Tutorial. Übungsblatt: Perspektive - Rekonstruktion Darstellende Geometrie Übungen Institut für Architektur und Medien Tutorial Übungsblatt: Perspektive - Rekonstruktion Gegeben sind ein Foto von einem quaderförmigen Objekt sowie die Abmessungen des Basisrechteckes.

Mehr

S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine

S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine PhotoLine S/W mit PhotoLine Erstellt mit Version 16.11 Ich liebe Schwarzweiß-Bilder und schaue mir neidisch die Meisterwerke an, die andere Fotografen zustande bringen. Schon lange versuche ich, auch so

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

1.9 Eigenwerte und Eigenvektoren

1.9 Eigenwerte und Eigenvektoren .9. EIGENWERTE UND EIGENVEKTOREN 0.9 Eigenwerte und Eigenvektoren Alles in diesem Abschnitt bezieht sich auf quadratische reelle oder komplexe n n-matrizen. Statt E n (n n-einheitsmatrix) wird kurz E geschrieben..

Mehr

Lineare Funktionen. Aufgabe 1. Sei f R 2 R definiert durch. x 1 + 3x Beweisen Sie ausführlich, dass f linear ist.

Lineare Funktionen. Aufgabe 1. Sei f R 2 R definiert durch. x 1 + 3x Beweisen Sie ausführlich, dass f linear ist. Lineare Funktionen Aufgabe. Sei f R R definiert durch x f = x x + 3x. Beweisen Sie ausführlich, dass f linear ist. Aufgabe. Die Funktionen (nicht erschrecken sind definiert durch + ( (R n R m (R n R m

Mehr

Kassa-Abschluss buchen. DirectCASH. Dokumentation. DirectCASH Tagesabschluss buchen www.directsoft.at Seite 1 von 16

Kassa-Abschluss buchen. DirectCASH. Dokumentation. DirectCASH Tagesabschluss buchen www.directsoft.at Seite 1 von 16 Kassa-Abschluss buchen DirectCASH Dokumentation DirectCASH Tagesabschluss buchen www.directsoft.at Seite 1 von 16 Inhaltsverzeichnis 1. Einleitung... 3 2. Abschlussarten... 3 2.1. Tägliche Übergabe...

Mehr

PhoToPlan 6.0 Was ist neu?

PhoToPlan 6.0 Was ist neu? PhoToPlan 6.0 Was ist neu? Seit Mai 2010 gibt es die wesentlich erweiterte, neue Version 6.0 der Bildentzerrungssoftware PhoToPlan. Die Neuerungen sind: Kompatibilität zu AutoCAD 2011 und AutoCAD LT 2011

Mehr

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen. Zusätze zum Gelben Rechenbuch LU-Zerlegung Peter Furlan Verlag Martina Furlan Inhaltsverzeichnis Definitionen 2 (Allgemeine) LU-Zerlegung 2 3 Vereinfachte LU-Zerlegung 3 4 Lösung eines linearen Gleichungssystems

Mehr

4 Vorlesung: 21.11. 2005 Matrix und Determinante

4 Vorlesung: 21.11. 2005 Matrix und Determinante 4 Vorlesung: 2111 2005 Matrix und Determinante 41 Matrix und Determinante Zur Lösung von m Gleichungen mit n Unbekannten kann man alle Parameter der Gleichungen in einem rechteckigen Zahlenschema, einer

Mehr

Structure-from-Motion. Christina Mundhenk Leo Sylvio Rüdian Marcel Kliemannel

Structure-from-Motion. Christina Mundhenk Leo Sylvio Rüdian Marcel Kliemannel Structure-from-Motion Christina Mundhenk Leo Sylvio Rüdian Marcel Kliemannel Fahrplan Structure-from Motion Workflow mit SIFT & Bundle Adjustment mit SURE Probleme/ Grenzen Technik Metrik und Vergleich

Mehr

Technische Universität München. Fakultät für Informatik

Technische Universität München. Fakultät für Informatik Technische Universität München Fakultät für Informatik Forschungs- und Lehreinheit Informatik IX Thema: Kameramodelle und Kamerakalibrierung Proseminar: Grundlagen Bildverstehen/Bildgestaltung Michaela

Mehr

Lange Nacht der Wissenschaft. Ein Klassiker. Die Mathematik der Kürzesten Wege

Lange Nacht der Wissenschaft. Ein Klassiker. Die Mathematik der Kürzesten Wege Lange Nacht der Wissenschaft Ein Klassiker Die Mathematik der Kürzesten Wege 09.06.2007 schlechte@zib.de Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) http://www.zib.de/schlechte 2 Überblick

Mehr

Wechselspannung. Zeigerdiagramme

Wechselspannung. Zeigerdiagramme niversity of Applied Sciences ologne ampus Gummersbach Dipl.-ng. (FH Dipl.-Wirt. ng. (FH D-0 Stand: 9.03.006; 0 Wie bereits im Kapitel an,, beschrieben, ist die Darstellung von Wechselgrößen in reellen

Mehr

Vektoren mit GeoGebra

Vektoren mit GeoGebra Vektoren mit GeoGebra Eine Kurzanleitung mit Beispielen Markus Hohenwarter, 2005 In GeoGebra kann mit Vektoren und Punkten konstruiert und gerechnet werden. Diese Kurzanleitung gibt einen Überblick über

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

H. Gruber, R. Neumann. Erfolg im Mathe-Abi. Basiswissen Rheinland-Pfalz. Übungsbuch für den Grund- und Leistungskurs mit Tipps und Lösungen

H. Gruber, R. Neumann. Erfolg im Mathe-Abi. Basiswissen Rheinland-Pfalz. Übungsbuch für den Grund- und Leistungskurs mit Tipps und Lösungen H. Gruber, R. Neumann Erfolg im Mathe-Abi Basiswissen Rheinland-Pfalz Übungsbuch für den Grund- und Leistungskurs mit Tipps und Lösungen Vorwort Vorwort Erfolg von Anfang an Dieses Übungsbuch ist auf die

Mehr

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 Referentin: Dr. Kelly Neudorfer Universität Hohenheim Was wir jetzt besprechen werden ist eine Frage, mit denen viele

Mehr

Basis. Schritt 1 Anmelden am Projess Testserver

Basis. Schritt 1 Anmelden am Projess Testserver Basis 2 Schritt 1 Anmelden am Projess Testserver 2 Schritt 2 Arbeitsstunden auf die bereits erfassten Projekte buchen 3 Schritt 3 Kostenaufwand auf die bereits erfassten Projekte buchen 4 Schritt 4 Gebuchte

Mehr

u + v = v + u. u + (v + w) = (u + v) + w. 0 V + v = v + 0 V = v v + u = u + v = 0 V. t (u + v) = t u + t v, (t + s) u = t u + s u.

u + v = v + u. u + (v + w) = (u + v) + w. 0 V + v = v + 0 V = v v + u = u + v = 0 V. t (u + v) = t u + t v, (t + s) u = t u + s u. Universität Stuttgart Fachbereich Mathematik Prof. Dr. C. Hesse PD Dr. P. H. Lesky Dipl. Math. D. Zimmermann Msc. J. Köllner FAQ 3 Höhere Mathematik I 4..03 el, kyb, mecha, phys Vektorräume Vektorräume

Mehr

Mandant in den einzelnen Anwendungen löschen

Mandant in den einzelnen Anwendungen löschen Mandant in den einzelnen Anwendungen löschen Bereich: ALLGEMEIN - Info für Anwender Nr. 6056 Inhaltsverzeichnis 1. Allgemein 2. FIBU/ANLAG/ZAHLUNG/BILANZ/LOHN/BELEGTRANSFER 3. DMS 4. STEUERN 5. FRISTEN

Mehr

37 Gauß-Algorithmus und lineare Gleichungssysteme

37 Gauß-Algorithmus und lineare Gleichungssysteme 37 Gauß-Algorithmus und lineare Gleichungssysteme 37 Motivation Lineare Gleichungssysteme treten in einer Vielzahl von Anwendungen auf und müssen gelöst werden In Abschnitt 355 haben wir gesehen, dass

Mehr