trackingsystem auf GPS Basis - Online
Transcription
trackingsystem auf GPS Basis - Online
Ein hochflexibles Multikameratrackingsystem auf GPS Basis Miriam Schneider DIPLOMARBEIT eingereicht am Fachhochschul-Masterstudiengang Digitale Medien in Hagenberg im November 2007 © Copyright 2007 Miriam Schneider Alle Rechte vorbehalten ii Erklärung Hiermit erkläre ich an Eides statt, dass ich die vorliegende Arbeit selbstständig und ohne fremde Hilfe verfasst, andere als die angegebenen Quellen und Hilfsmittel nicht benutzt und die aus anderen Quellen entnommenen Stellen als solche gekennzeichnet habe. Hagenberg, am 8. November 2007 Miriam Schneider iii Inhaltsverzeichnis Erklärung iii Vorwort vii Kurzfassung viii Abstract ix 1 Einleitung 1.1 Problemstellung und Zielsetzung . . . . . . . . . . . . . . . . 1.2 Gliederung der Arbeit . . . . . . . . . . . . . . . . . . . . . . 1 1 3 2 Methoden der Positionsbestimmung 2.1 Grundlagen zur Triangulation . . . . . . . 2.2 Methoden . . . . . . . . . . . . . . . . . . 2.2.1 GPS . . . . . . . . . . . . . . . . . 2.2.2 ARToolkit . . . . . . . . . . . . . . 2.2.3 Vermessung mit Theodoliten . . . 2.2.4 Stereokamera . . . . . . . . . . . . 2.2.5 Photogrammetrie . . . . . . . . . . 2.3 Verwandte Arbeiten . . . . . . . . . . . . 2.3.1 Unterwasser Positionsbestimmung 2.3.2 Positionsbestimmung mit Infrarot . 2.3.3 Positionsbestimmung in Videos . . 2.4 Vergleich der Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 6 6 9 9 10 11 13 13 15 18 19 3 Grundlagen 3.1 GPS . . . . . . . . . . . . . . . . . . . 3.1.1 Allgemeines . . . . . . . . . . . 3.1.2 WGS84 versus ECEF . . . . . 3.1.3 GPS auf portablen Computern 3.2 Objekterkennung . . . . . . . . . . . . 3.2.1 Computer Vision . . . . . . . . 3.2.2 Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 23 23 24 28 29 29 29 iv . . . . . . . . . . . . . . v INHALTSVERZEICHNIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 32 33 33 38 42 42 4 System 4.1 Aufbau . . . . . . . . . . . . . . . . . . . . . 4.1.1 Auflistung benötigter Hardware . . . 4.1.2 Aufstellung im Raum . . . . . . . . 4.1.3 Flexible Positionierung der Clients . 4.1.4 Testaufbau . . . . . . . . . . . . . . 4.1.5 Kosten . . . . . . . . . . . . . . . . . 4.2 Implementierung . . . . . . . . . . . . . . . 4.2.1 Übersicht der Aufgaben des Systems 4.2.2 Klassendiagramme . . . . . . . . . . 4.2.3 Video-input . . . . . . . . . . . . . . 4.2.4 Bildverarbeitung . . . . . . . . . . . 4.2.5 Berechnungen . . . . . . . . . . . . . 4.2.6 Kommunikationsmodell . . . . . . . 4.2.7 Darstellung . . . . . . . . . . . . . . 4.2.8 Bibliotheken . . . . . . . . . . . . . . 4.3 Diskussion . . . . . . . . . . . . . . . . . . . 4.3.1 GPS Ungenauigkeiten . . . . . . . . 4.3.2 Objekterkennung . . . . . . . . . . . 4.3.3 Schnittpunktberechnung . . . . . . . 4.3.4 Andere Ansätze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 45 45 46 48 50 51 52 52 53 53 54 55 56 60 62 62 62 65 70 73 5 Anwendungen 5.1 Positionsbestimmung unter Wasser 5.2 Sicherheitstechnik . . . . . . . . . . 5.2.1 Datenschutz . . . . . . . . . 5.3 Computergestützte Reality-Spiele . 5.4 Kollisionswarnsysteme . . . . . . . 5.5 Verhaltensstudien . . . . . . . . . . 5.5.1 Konsumverhalten . . . . . . 5.5.2 Gruppenverhalten . . . . . 5.5.3 Arbeitsverhalten . . . . . . 5.6 Strömungstechnik . . . . . . . . . . 5.6.1 Windkanal . . . . . . . . . 5.7 Sport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 79 80 80 81 81 82 82 82 83 83 84 84 3.3 3.2.3 Schwerpunktberechnung 3.2.4 Vektor im Kameraraum Mathematische Grundlagen . . 3.3.1 Optik . . . . . . . . . . 3.3.2 Schnittpunktberechnung 3.3.3 Field of View . . . . . . 3.3.4 Koordinatensysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi INHALTSVERZEICHNIS 6 Zusammenfassung 6.1 Erreichte Ziele . . . . . . . . . . . 6.2 Probleme . . . . . . . . . . . . . 6.2.1 Echtzeit . . . . . . . . . . 6.2.2 Ungenauigkeiten . . . . . 6.3 Weiterentwicklungen . . . . . . . 6.3.1 Unterwasser GPS . . . . . 6.3.2 Aufbereitung der Daten . 6.3.3 Tracken multipler Objekte 6.4 Resümee . . . . . . . . . . . . . . A Definitionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 85 85 86 86 88 88 91 92 93 95 B Inhalt der DVD 97 B.1 Diplomarbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 B.2 Trackingsystem . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Literaturverzeichnis 99 Vorwort Ich danke allen die mir bei der Erstellung dieser Arbeit geholfen haben. Im Besonderen der University of Waikato, für die Bereitstellung eines Arbeitsplatzes während meines Austausches in Neuseeland. Außerdem meinen Eltern für ihre großartige Unterstützung jeglicher Art, meinem Betreuer Volker Christian für die guten Ideen und unterstützenden Worte, Andreas Tairych, Elisabeth Pauza und Georg Wittenburg fürs Korrekturlesen, Matt Jervis und Marcus Prebble für die Motivation in antriebslosen Stunden, sowie natürlich den Firmen Arnott’s und Nestle ohne deren TimTams bzw. Milo ich die Arbeit nicht fertigstellen hätte können. vii Kurzfassung Tracking von Objekten im 3D Raum ist ein Thema im Bereich der Computerwissenschaften für das es viele Anwendungen gibt. Es existieren schon Systeme, welche die Position eines Objektes tracken können, wobei das bekannteste Beispiel das globale Positionierungssystem GPS ist. Positionsdaten von diesen Systemen erhält man in Regel durch einen Empfänger, demnach muss an dem zu trackenden Objekt ein Empfänger angebracht sein. Das kann in einigen Fällen eine bedeutende Einschränkung darstellen, z. B. wenn Objekte unbemerkt oder mehrere Objekte mit einem System getrackt werden sollen. In dieser Arbeit wird ein System vorgestellt, welches diese Einschränkungen überwindet, indem es Objekte trackt, welche keine spezielle Hardware bei sich tragen müssen. Stattdessen werden diese durch eine Gruppierung von, zum Objekt gerichteten, Kameras getrackt, deren Position und Orientierung bekannt ist. Für jede Kamera, welche das Objekt erkennt, wird ein Strahl von der Kamera zum Objekt berechnet. Durch Position und Orientierung der Kamera wird dieser Strahl in ein Weltkoordinatensystem umgerechnet. Der Schnittpunkt dieser Strahlen kann anschließend berechnet werden um die Position des Objektes in Weltkoordinaten zu bestimmen. Das vorgestellte System beinhaltet mehrere Clients und einen zentralen Server. Die Clients sind für die Strahlberechnung zuständig, während der Server deren Schnittpunkt und damit die Objektposition berechnet. Jeder Client besteht aus einer Kamera, Hardware um ihre Position und Orientierung zu bestimmen, sowie einem portablen PC um die Daten der Kamera auszuwerten und den Strahl zu berechnen. Da die Position und Orientierung dynamisch von der Hardware ermittelt wird und nicht manuell eingegeben werden muss, ist das Setup neuer Clients einfach und schnell, außerdem ist es möglich die Kameras während des Trackings zu bewegen. Einige Anwendungen dieses Systems wären mit normalem GPS nicht zu realisieren. Es könnte z. B. verwendet werden zum Tracken von Tauchern unter Wasser durch die Verwendung von abwärts gerichteten Kameras, welche an der Wasseroberfläche schwimmen, zum Tracken von Personen auf öffentlichen Plätzen aus sicherheitstechnischen Gründen oder auch zum Tracken von Spielern in Echtzeitspielen. viii Abstract Tracking objects in 3D space is a topic of computer science that has many applications. Systems already exist which can track the position of an object, a well known example of is the Global Positioning System (GPS). However, position data from these systems typically comes from a receiver of some sort; thus to track an object requires that it has a receiver attached to it. This can be a significant limitation in a number of cases, for example when tracking objects discreetly or tracking multiple objects with a single system. In this thesis a system is proposed that overcomes this limitation by tracking objects without requiring them to have attached any specific hardware. Instead, objects are tracked by an arrangement of cameras whose position and orientation are known, directed over the space in which the tracking occurs. For each camera to which the object is visible, a ray is calculated from the camera to the object; using the position and orientation of the camera, this ray is then converted into world co-ordinates. The intersection of these rays can then be calculated to give the position of the object in world space. The system proposed comprises a number of clients and a central server. The clients are responsible for calculation of the rays, while the server calculates the intersection of these, thus giving the position of the object. Each client consists of a camera, hardware to get its position and orientation, and a mobile PC to process data from the camera and generate the ray. As the position and orientation data is generated dynamically by hardware, rather than set statically, setup of new clients is fast and simple, and it is also possible to move cameras during tracking. There are a number of applications for this system that would have been impossible with GPS. It could be used to track divers underwater, through the use of downward facing cameras on the water surface; to track people within spaces for surveillance purposes; or to track players within reality games. ix Kapitel 1 Einleitung 1.1 Problemstellung und Zielsetzung Objektpositionen zu ermitteln ist ein wichtiges Thema im Bereich der Computerwissenschaften, speziell im Bereich der Mensch-Maschine-Kommunikation, und es gibt verschiedenste Vorgehensweisen für diese Problemstellung. Bei bereits bestehenden Systemen müssen zur Erfassung der Position des Zielobjekts Hilfseinrichtungen wie GPS-Empfänger, Marker, magnetische Tracker oder Ähnliches angebracht werden. Andere Systeme benötigen zwar keine zusätzliche Hardware, jedoch Kalibrierungsschritte wie z. B. die Photogrammetrie (siehe Abschnitt 2.2.5). Im hier vorgestellten System wird beim Tracking mit Kameras aus den Kameradaten die Position eines Objekts im Weltkoordinatensystem ermittelt. Die entscheidenden Vorteile dieses Systems sind die Anwendung bereits ausgereifter und erprobter Komponenten, sowie die Einsparung zur Positionsbestimmung benötigter signalgebender Einrichtungen am Zielobjekt. Das Objekt soll also unbemerkt, ohne lästige Hardware oder Marker, und auch ohne langwieriges Setup des Systems, getrackt werden. Das im Rahmen dieser Diplomarbeit ausgearbeitete System beruht auf folgendem Prinzip: Das zu überwachende Gebiet wird von Kameras erfasst, deren Position und Orientierung im globalen Weltkoordinatensystem bekannt sind. Als globales Koordinatensystem wird das für GPS übliche WGS84 verwendet, welches Breiten- und Längengrade sowie die Höhe über dem Meeresspiegel angibt. Diese Kameras filmen das Gebiet aus unterschiedlichen Perspektiven und suchen im jeweiligen Bild das Zielobjekt. Ist dieses gefunden, wird der Zentralstrahl vom optischen Zentrum der Kamera aus, deren Optik bekannt ist, in Richtung des Objektes berechnet. Anschließend werden diese Daten an einen Server übermittelt, welcher daraus die Objektposition, mittels Schnittpunktberechnung aller Zentralstrahlen im Weltkoordinatensystem, bestimmt. Da aufgrund der Ungenauigkeiten der Anordnung die Berechnung eines echten Schnittpunktes nicht möglich ist, wird der Punkt mit 1 2 KAPITEL 1. EINLEITUNG N W O S Abbildung 1.1: Die generelle Idee dieses Projektes besteht darin, Objektpositionen zu ermitteln, ohne dass diese Objekte Hardware oder Marker bei sich tragen müssen. Wenn sich das Objekt (grüner Stern) im Blickfeld mehrerer Kameras, deren Position und Orientierung bekannt sind, befindet, werden mit Hilfe dieser Informationen Strahlen von jeder Kamera zu dem Objekt berechnet. Im Schnittpunkt dieser Strahlen befindet sich das Objekt. dem minimalen Abstand der Kamerastrahlen zueinander als „Schnittpunkt“ für die weiteren Berechnungen herangezogen. Die optischen Zentren der Objektive bilden jeweils den Ursprung eines lokalen Koordinatensystems, in dem die durch ~x und ~y aufgespannte Ebene parallel zur Sensorebene und ~z in Richtung der optischen Achse ausgerichtet ist. Die X-Achse entspricht der Breite des Sensors, die Y -Achse entspricht der Höhe des Sensors. Die Lage dieser Koordinatensysteme im Weltkoordinatensystem sind natürlich von Kamera zu Kamera je nach Position und Orientierung unterschiedlich und müssen für weitere Berechnungen in ein globales Koordinatensystem transformiert werden. Die zentralen Aufgaben des hier vorgestellten Systems bestehen also in der Objekterkennung, Strahlberechnung für jedes Bild, sowie der Erfassung der Position und Orientierung der Kameras und der anschließenden Schnittpunktberechnung am Server. Anwendung kann das MultikameraTrackingsystem vor allem in Bereichen finden, in denen normale GPS-Empfänger nicht verwendet werden können oder nicht verwendet werden wollen. Die Vorteile liegen darin, dass das Objekt nichts Spezielles bei sich tragen muss, also eine erhebliche Flexibilität in seiner Bewegung erfährt bzw. auch nicht wissen muss, dass es getrackt wird. Zusätzlich ist das System so aufgebaut, dass es keiner manuellen Konfiguration bedarf. Es können so viele Kameras wie notwendig (mindestens jedoch zwei) in jeder gewünschten Posi- KAPITEL 1. EINLEITUNG 3 tion angebracht werden ohne Einstellungen im Programm ändern zu müssen, da das System Position und Orientierung mittels GPS-Empfänger, Kompass und Neigungssensor an der Kamera von selbst erkennt. Die oben erwähnte Photogrammetrie verwendet auch das Prinzip der Triangulation (Schneidung der Strahlen) zur Positionsbestimmung. Durch bekannte Referenzpunkte im Raum wird zuerst durch die Bündelblockausgleichung (siehe Abschnitt 2.2.5) die innere und äußere Orientierung der Kameras ermittelt, bevor mit der eigentlichen Objektpositionsbestimmung begonnen wird. Im Gegensatz zum beschriebenen Multikameratrackingsystem, bei dem die äußere Orientierung durch Hardware ermittelt wird, und die innere Orientierung bekannt sein muss. Die Ergebnisse der Photogrammetrie sind sehr genau, und die Fehler der errechneten Objektpositionen damit sehr gering, jedoch ist sie nicht so flexibel wie das hier vorgestellte System. Nachdem die Kalibrierung durchgeführt wurde, läßt sich das Setup nicht mehr verändern, die Kameras können nicht mehr bewegt werden. 1.2 Gliederung der Arbeit In dieser Arbeit werden die Funktionsweise dieses Systems sowie die Grundlagen für die verwendeten Techniken beschrieben, und die Schwierigkeiten, die bei diesem Projekt entstanden sind, erläutert. Zusätzlich wird auf ähnliche Systeme sowie deren Vor- und Nachteile eingegangen und ein Ausblick in die Zukunft des Projektes gegeben. Kapitel 2: Dieses Kapitel beschäftigt sich mit den Methoden der Positionsbestimmung. Die Grundlagen zur Triangulation, sowie Anwendungen, welche diese Methode verwenden, werden beschrieben. Kapitel 3: In diesem Kapitel werden die Prinzipien, die zur Realisierung des Systems angewendet worden sind, erklärt. Es handelt sich dabei um das Globale Positionierungssystem GPS, Techniken zur Objekterkennung und die mathematischen Grundlagen zur Triangulation. Probleme, die GPS mit sich bringt sowie Verbesserungs- bzw. Lösungsansätze werden hier vorgestellt. Kapitel 4: Die Realisierung des Systems wird in diesem Kapitel vorgestellt. Diese umfasst den technischen Aufbau und die Implementierung. Es wird der Testaufbau beschrieben und auf Besonderheiten bei der Aufstellung der Clients eingegangen. Außerdem werden die zur Realisierung verwendeten Technologien sowie die Funktionalität und Struktur des Programms erläutert. Es folgt eine Diskussion der verwendeten Techniken und eine Vorstellung anderer gängiger Techniken zur 3D Rekonstruktion. Kapitel 5: Hier werden dem System verwandte Arbeiten unter anderem in den Bereichen Unterwasser-Positionsbestimmung, Sicherheitstechnik und Photogrammetrie vorgestellt. Es wird auf die verschiedenen Ansätze und auf die Unterschiede zu dem hier vorgestellten Multikamera-Trackingsystem KAPITEL 1. EINLEITUNG 4 eingegangen. Kapitel 6: Abschließend wird auf die bei der Realisierung aufgetretenen Probleme eingegangen und ein Ausblick auf mögliche Weiterentwicklungen gegeben. Ein Resümee über das Projekt beendet schließlich die Arbeit. Kapitel 2 Methoden der Positionsbestimmung In diesem Kapitel wird auf Theorie und Anwendungen der Positionsbestimmung eingegangen. Es gibt viele verschiedene Ansätze, um Positionswerte zu errechnen. Die in diesem Projekt verwendete Methode nennt sich Triangulation und verwendet vorwiegend Trigonometrie zur Bestimmung von Objektpositionen durch Entfernungen und Winkel. 2.1 Grundlagen zur Triangulation Trigonometrie ist die Lehre von den Relationen zwischen Winkeln und Seiten von Dreiecken. Durch Messungen mehrerer in Bezug stehender Dreiecke, können Positionen im Raum ermittelt werden. Diese Ermittlungen werden mit Hilfe von Winkelfunktionen durchgeführt. GPS, Stereokameras, die Photogrammetrie und andere Methoden verwenden die Triangulation (siehe Abbildung 2.1) zur Positionsbestimmung. Bei diesem Verfahren werden Objektpositionen durch das Schneiden von Strahlen im Raum ermittelt. Bekannt sind mehrere Positionen, von denen aus ein Objekt geortet und ein Strahl zu diesem berechnet wird. Durch Positionen und Richtungsstrahlen zum Objekt läßt sich im Schnittpunkt dieser Strahlen die gesuchte Objektposition bestimmen. Die Strahlen können durch verschiedene Methoden ermittelt werden. Zum Beispiel optisch, durch Fotografieren eines Objektes, durch magnetisches Tracking oder auch durch Ultraschall und Nutzung von Laufzeitunterschieden. Im folgenden Abschnitt 2.2 werden werden einige Beispiele der Positionsbestimmung vorgestellt, bei denen Triangulation verwendet wird. In [14] stellten Richard Hartley und Peter Sturm eine Methode der Triagulation vor, welche für affine und projektive Rekonstruktionen von dreidimensionalen Punkten im Raum verwendet werden kann. Zusätzlich wird eine Untersuchung anderer Triangulationsmethoden vorgestellt. Dabei wer5 KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG 6 y O(x,y) b a b P2(x2,y2) a P1 (x1,y1) x Abbildung 2.1: Mit Hilfe der Trigonometrie, der Lehre von den Relationen zwischen Winkeln und Seiten von Dreiecken, kann bei der Triangulation der Schnittpunkt zwischen den Strahlen a und b berechnet werden. Sind die Positionen P1 und P2 sowie die Winkel α und β bekannt, läßt sich die Objektposition O bestimmen. Aus der Länge der Strahlen und deren Startpositionen läßt sich genauso die Objektposition ermitteln. den die, hier im Projekt verwendete, Mid-Point Methode, sowie lineare, iterative und nicht-iterative Ansätze, und zwei polynomische Methoden bezüglich ihrer Genauigkeit und Geschwindigkeit verglichen. Mid-Point ist ein linearer Ansatz, bei welchem zur Positionsbestimmung, der Mittelpunkt des kleinsten Abstandes verwendet wird, da durch Rauschen und Ungenauigkeiten kein exakter Schnittpunkt zustande kommt. Untersuchungsgegenstand waren die Zeit und die Genauigkeit der Positionsbestimmung. Die polynomischen Methoden für Werte aus maximal zwei Bildern waren in der Untersuchung mit Abstand die genauesten, jedoch auch die langsamsten (7 - 15 mal langsamer als lineare oder Mid-Point Methoden). Iterative, lineare und Mid-Point Methoden verarbeiten die Punkte erheblich schneller und können auch Daten von mehr als zwei Kameras behandeln. 2.2 Methoden In den folgenden Absätzen werden Methoden vorgestellt, die unterschiedliche trigonometrische Ansätze zur Positionsbestimmung verwenden. 2.2.1 GPS Zuerst wird auf die Grundlagen und die Funktionsweise des globalen Positionierungssystems GPS eingegangen. Besonders wird die Triangulation und anschließend Anwendungsbeispiele zu GPS beschrieben. KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG 7 Funktionsweise Die Funktionsweise von GPS beruht auf der Messung von Laufzeitunterschieden von Signalen verschiedener Satelliten an einem bestimmten Punkt. Da sich das Signal mit Lichtgeschwindigkeit1 ausbreitet, braucht es bei einer Höhe der Umlaufbahn der Satelliten von 20183 km gerade einmal 0,067 Sekunden vom Sender zum Empfänger, wenn sich der Empfänger in direkter Linie zum Erdmittelpunkt befindet. Schon geringste Zeitunterschiede wirken sich stark auf die Position aus. Um diese Laufzeiten messen zu können, sind hochgenaue Uhren nötig, welche normale GPS-Empfänger nicht besitzen. Die Zeit muss daher exakt aus den GPS-Signalen ermittelt werden. Neben den Raumkoordinaten X, Y und Z ist daher die Zeit auch noch eine Unbekannte im System. Um die vier Unbekannten zu bestimmen sind Signale von mindestens vier Satelliten notwendig. Zeit und Ort werden dabei unabhängig voneinander bestimmt. Triangulation Jeder Satellit sendet ein Signal, das seine genaue Position und die Sendezeit enthält, zu einem Empfänger. Dieser ermittelt mit der Sende- und Empfangszeit die Laufzeit des Signals. Zusätzlich werden die Laufzeitunterschiede zwischen allen Satelliten bestimmt. Das Signal eines Einzelnen ist nicht aussagekräftig, da sich der Empfänger überall auf einer, den Satelliten umgebenden Kugel, mit dem Radius der Distanz zwischen Sender und Empfänger, befinden könnte. Durch zwei Satelliten kann die Position auf einen Kreis eingeschränkt werden, und zwar auf den Schnittkreis der zwei Kugeln. Durch einen dritten Satelliten kann die Position auf zwei Möglichkeiten eingeschränkt werden. Auf die Schnittpunkte des Schnittkreises mit der Kugel des dritten Satelliten. Erst durch die Bestimmung der Laufzeiten von vier Satelliten kann die Empfangsposition genau bestimmt werden. Abbildung 2.2 zeigt das Grundprinzip der Triangulation im zweidimensionalen Raum. Die roten Kreise symbolisieren die Umkreise der Laufzeit. Im grünen Punkt, im Schnittpunkt der Kreise, befindet sich die Objektposition. Ein Vorteil von GPS für dieses Projekt wäre die Tatsache, dass sich durch den Dopplereffekt bzw. die numerische Differenzierung des Ortes nach der Zeit die Geschwindigkeit ermitteln läßt, und GPS damit als Kompass verwendet werden kann. Das funktioniert jedoch nur, wenn der GPS-Empfänger bewegt wird. Durch seine Konstruktion funktioniert GPS nur über Wasser, also bis zur Erdoberfläche auf Seehöhe Null. Andere Systeme, die GPS unter Wasser bereitstellen, werden weiter unten beschrieben. 1 Lichtgeschwindigkeit = 299.792.458 m/s KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG 8 Abbildung 2.2: Diese Abbildung zeigt das zweidimensionale Grundprinzip der Triangulation. Die roten Kreise stellen den Umkreis der Laufzeit dar. Je größer diese Kreise sind, desto länger ist die Laufzeit, also die Entfernung zwischen Satellit und Empfänger. Im Schnittpunkt aller drei Laufzeitkreise befindet sich der GPS-Empfänger. Zwei Satelliten schränken die mögliche Objektposition nur auf die Positionen in den zwei Schnittpunkten ihrer Umkreise ein. Im dreidimensionalen Raum wird, da eine Dimension mehr bestimmt werden muss, auch ein Satellit mehr, also vier insgesamt, benötigt um die Objektposition eindeutig zu ermitteln. Anwendung Obwohl NAVSTAR GPS eigentlich für militärische Anwendungen entwickelt wurde, gibt es heutzutage eine große Anzahl von zivilen Anwendungen. Die Bekannteste ist vermutlich die Autonavigation, wobei dem System eine Straßenkarte bekannt ist und mit Hilfe von GPS die aktuelle Position bestimmt wird um damit eine Route vom aktuellen Standpunkt zu einem gewählten Zielpunkt zu berechnen. Der größte Vorteil ergibt sich jedoch für die zivile Luftfahrt, bei der die Navigationssysteme mittlerweile alle GPS-gestützt sind. Bei Verwendung des genaueren P/Y Codes und der Verwendung von Differential GPS sind sogar automatische Landungen möglich. Genau wie Flugzeuge verwenden auch Schiffe immer häufiger GPS zur Navigation. Es ist jedoch jegliche Art von Navigation möglich. GPS Navigation hat sich z. B. in unerforschtem Gelände als hilfreich erwiesen. Auch Freizeitaktivitäten wie GPS unterstützte Schatzsuchen, auch Geocoaching genannt, sind heute beliebte Anwendungen von GPS. Es hat sich rund um diesen „Sport“ eine große Fangemeinschaft gebildet. KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG 2.2.2 9 ARToolkit Bei der Augmented Reality (AR) werden computergenerierte Objekte in die reale Welt eingespielt. Es können also z. B. dreidimensionale Modelle einem Live-Videostream hinzugefügt werden. Das Endergebnis, also die Kombination aus Realität und computergenerierten Objekten, kann entweder auf einem Monitor, durch ein Head Mounted Display, also eine Brille, deren Gläser ein Video abspielen, oder auch auf einem portablen Computer betrachtet werden. Die Schwierigkeit dabei ist die Platzierung der Objekte an der richtigen Stelle im dreidimensionalen Raum. Das Weltkoordinatensystem wird also vom Betrachter aus ermittelt. Dr. Hirokazu Kato von der Osaka University entwickelte ein System, welches durch optisches Tracking von Markern Positionen im Raum ermittelt. Dabei handelt es sich um die ARToolKit Bibliothek für Open GL in C++. Verwendet werden spezielle ARToolKit Marker, die aus schwarzen, nicht ausgefüllten, Quadraten bestehen. Diese haben je nach Größe einen Rand von ca. zwei Zentimetern und besitzen je ein einzigartiges, schwarzes Symbol im Zentrum des Quadrates. Die prinzipielle Funktionsweise des Systems besteht darin, in jedem Videobild nach quadratischen Objekten zu suchen. Sobald eine solche Region gefunden wird, führen die Bildverarbeitungsoperationen ein Template Matching zwischen dem Symbol des Videos und allen, dem System bekannten, Symbolen durch. Bei erfolgreichem Vergleich wird die Position des Markers anhand seiner Größe und Rotation relativ zum Betrachter, also der Kamera, durch Winkelfunktionen berechnet. An dieser Position befindet sich dann standardmäßig der Ursprung des Weltkoordinatensystems und durch OpenGL können nun Objekte in Relation zum Koordinatensystem gezeichnet werden [18]. Dieser Ansatz benötigt nur eine Kamera zur Positionsbestimmung, jedoch ist nur die Relation zwischen Kamera und Marker errechenbar und nicht eine absolute Position in der Welt. Das Projekt ist unter der GNU General Public License veröffentlicht und wird neben der Osaka University auch vom Human Interface Technology Laboratory (HITLab) der University of Washington und vom HIT Lab NZ der University of Canterbury in Neuseeland unterstützt und weiterentwickelt. 2.2.3 Vermessung mit Theodoliten Theodolite sind Messinstrumente, die vorwiegend in der Landvermessung und Kartographie verwendet werden. Zusätzliche Anwendungsgebiete umfassen das Ingenieurwesen, Überwachungstechnik und sogar spezielle Anwendungen wie Meteorologie oder Raketenstarttechnik. Mit Theodoliten kann man die Abweichung vom horizontalen und vertikalen Winkel von der eigenen Position zu einem Objekt erfassen. Das Messgerät wird zunächst an seiner Position mit einem Lot in vertikaler Richtung genau zur lokalen Erdan- KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG Vertikale Achse Objektiv V Horizontale Achse 10 H el nk Wi r e l ka O ti Ver S Sichtachse Vertikaler Kreis 00 0, 0 go n inkel ztaler W Horizontaler Kreis Horizon Abbildung 2.3: Hier wird der Aufbau eines Theodoliten beschrieben. Die Sichtachse stellt mit Sucher und Objektiv das Zielfernrohr dar. Die vertikale Achse muss mit der Erdanziehung im Lot sein und die Differenzwinkel zum Objekt können an den Kreisen abgelesen werden. ziehung ausgerichtet. Außerdem besitzt jeder Theodolit ein Fernrohr, welches in zwei zueinander senkrecht stehenden Achsen schwenkbar ist. Dieses wird auf das zu messende Objekt ausgerichtet und die vertikale und horizontale Abweichung gemessen. Der horizontale Winkel gibt dann die Ausrichtung in Himmelsrichtung wieder, der Vertikale bestimmt die Höhe. Durch die bekannte Größe (z. B. Zollstöcke bei der Landvermessung) des Objektes kann die Entfernung mit Hilfe der Trigonometrie errechnet werden. Bei der Landvermessung muss ein Ausgangspunkt bekannt sein um weitere Punkte zu bestimmen. Diese sind dem Katasteramt bekannt und z. B. durch Grenzsteine im ländlichen Gebiet markiert. Sind zwei dieser Punkte bekannt, muss kein Kompass verwendet werden um den horizontalen Winkel zu bestimmen, sondern sie ist durch die Ausrichtung der Punkte zueinander bestimmt. Abbildung 2.3 zeigt den theoretischen Aufbau eines Theodoliten mit seinen Achsen, den Winkeln und dem Fernrohr. 2.2.4 Stereokamera Eine Möglichkeit um Tiefenbilder zu errechnen ist die Verwendung von Stereokameras. Sie bestehen aus zwei optischen Systemen, die starr miteinander KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG 11 Abbildung 2.4: Diese Abbildung zeigt die Funktionsweise einer Stereokamera. Sie besitzt zwei optische Systeme, bei welchen alle Einstellungen ident sind. Es werden also zeitgleich zwei versetzte Bilder aufgenommen. Wenn der Abstand zwischen den Linsen bekannt ist, kann durch Trigonometrie der Abstand zwischen Kamera und aufgenommenen Objekten berechnet werden. Es können also Tiefenbilder erstellt oder dreidimensionale Abbildungen der Umgebung erzeugt werden. Durch ein Stereoskop betrachtet, ergeben die beiden Bilder einen Raumeindruck. verbunden sind bzw. deren Abstände und Ausrichtungen zueinander bekannt sind. Die beiden optischen Systeme lösen zeitgleich mit der gleichen Schärfeeinstellung und den gleichen Belichtungswerten aus und ergeben damit zwei stereoskopische Halbbilder. Die beiden Objektive haben normalerweise einen Abstand, der dem durchschnittlichen Augenabstand eines Menschen entspricht (60 bis 70mm). Werden die beiden Bilder in einem Stereoskop betrachtet, entsteht ein Tiefeneindruck, der dem menschlichen Sehen gleicht. Ein Stereoskop ist ein Apparat, mit welchem zwei Bilder gleichzeitig, jeweils mit nur einem Auge angesehen werden können. Das menschliche Gehirn fügt diese beiden zweidimensionalen Bilder durch trigonometrische Funktionen zu einem dreidimensionalen Bild zusammen. Durch die bekannten Proportionen zwischen den Kameras kann, sofern auch die Optik der Kameras bekannt ist, die Tiefe von gleichen Punkten im Bild berechnet werden. Ergebnis könnte damit z. B. ein Z-Buffer Bild sein, welches Tiefe in Helligkeitswerten darstellt, oder aber auch ein Profil der Umgebung als dreidimensionales Modell der Punkte. Um dieses Ergebnis zu erhalten müssen diverse Bildverarbeitungsschritte durchgeführt werden. Die gleichen Punkte lassen sich z. B. durch Erkennen gleicher Muster ermitteln. Die Verknüpfung der Punkte beider Bilder und die Bestimmung der Tiefe erfordert wieder Triangulation. 2.2.5 Photogrammetrie Photogrammetrie ist eine Technik zur Bestimmung der geometrischen Beschaffenheit von Objekten durch die Untersuchung von Fotos. Es können dreidimensionale Koordinaten eines Objektes durch Messungen von mehreren Bildern aus verschiedenen Richtungen ermittelt werden. Vor der Messung KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG 12 werden die verschiedenen Parameter der optischen Systeme durch Rückrechnung von genau im Raum bekannten Positionen berechnet. Diese Parameter sind: 1. Die äußere Orientierung der Kamera 2. Die innere Orientierung der Kamera Ad 1. Unter der äußeren Orientierung einer Kamera versteht man deren Position (X, Y und Z-Koordinaten) und Orientierung (α, β und γ). Ad 2. Die innere Orientierung einer Kamera entspricht ihrer Sensorgröße, dem Abstand zwischen Sensor und optischem Zentrum sowie den Abbildungseigenschaften ihres optischen Systems. Dabei werden auch Abbildungsfehler miteinberechnet und haben somit keine negativen Auswirkungen auf das Ergebnis. Zur Ermittlung der Parameter (Kalibrierung) wird die Bündelblock-Ausgleichsrechnung verwendet. Sind diese Parameter bekannt, können alle beliebigen Objekte dreidimensional erfasst werden. Die Triangulation erfolgt von den Kameras zu den Punkten des Objektes, wobei die Schnittpunkte der berechneten Strahlen die Objektpunkte ergeben. Photogrammetrie wird in verschiedensten Bereichen eingesetzt wie z. B. in der Kartographierung, in der Architektur, Geologie und bei polizeilichen Ermittlungen. Schon 1851 entwickelte der französische Offizier Aime Laussedat die ersten photogrammetrischen Apparate und Methoden. Er wird als Erfinder der Photogrammetrie angesehen [10] [16]. Bündelblock-Ausgleichsrechnung Bei der Bündelblock-Ausgleichsrechnung kann nicht nur ein Bildpaar, sondern es können beliebig viele zusammenhängende Bilder (Block) ausgewertet werden. Bündel deshalb, weil jeder Objektpunkt durch Strahlen von den Kameras zu ihm definiert ist, und diese sich im Objektpunkt schneiden (bündeln). Jeder Objektpunkt muss von mindestens zwei Kameras erfasst worden sein um in die Berechnung einfließen zu können. Ansonsten könnte kein Schnittpunkt berechnet werden. Die Erkennung der Objektpunkte in den Bildern geschieht normalerweise automatisch durch Mustererkennung. Es werden für jeden Punkt und jede Kamera Gleichungen aufgestellt, welche ein Gleichungssystem ergeben, dessen Lösung die Koordinaten der Objektpunkte im dreidimensionalen Raum ergibt. Zuerst wird zur Kalibrierung die Bündelblockausgleichung durchgeführt. Durch Fotografieren bekannter Objekte werden die innere und äußere Orientierung der Kameras berechnet. Im Anschluss an die Ausgleichungsberechnung kann, da alle Freiheitsgrade des Systems bekannt sind, jedes beliebige Objekt dreidimensional erfasst werden [37]. KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG 2.3 13 Verwandte Arbeiten Dieser Abschnitt beschäftigt sich mit vorhandenen Arbeiten und allgemeinen Entwicklungen in den Bereichen Positionsbestimmung und optisches Tracking. Gesondert wird auf die Positionsbestimmung unter Wasser durch Ultraschall eingegangen. 2.3.1 Unterwasser Positionsbestimmung Unter Wasser haben sich bis jetzt akustische Systeme zur Positionsbestimmung durchgesetzt. Da Schall gute Ausbreitungseigenschaften im Wasser besitzt, können Distanzen durch genau berechnete Laufzeitunterschiede exakt ermittelt werden. Durch diese Distanzen zu bekannten Objekten, ist es mit Hilfe von Triangulation möglich, die gesuchte Objektposition zu bestimmen. Underwater geopositioning methods and apparatus Maurice Green et al. haben in [11] im April 2005 ein System unter dem Namen Underwater geopositioning methods and apparatus entwickelt, welches ermöglicht, Positionen unter Wasser zu ermitteln. Es besteht aus dem Basissystem mit Signalgeber, dessen genaue Position und Orientierung bekannt sind, sowie einem autonomen System, von welchem die Position bestimmt werden soll. Durch Kommunikation zwischen den beiden Systemen über Ultraschall wird die Objektposition ermittelt. Das autonome System besitzt einen Empfänger und eine, mit dem Basissystem, synchronisierte Systemzeit, durch die die Laufzeit des gesendeten Signals ermittelt wird. Mit der bekannten Ausbreitungsgeschwindigkeit von Ultraschall in Wasser von rund 1500 m/s wird die Distanz zwischen beiden Systemen errechnet. Die Tiefe des autonomen Systems wird durch einen Tiefenmesser ermittelt. Durch den, mit dem Signal des Signalgebers der Basisstation übermittelten, Abstrahlwinkel, kann der Empfänger seine eigene Position ermitteln. In einer Untersuchung wurde auf Verfahren bei der Positionsbestimmung unter Wasser näher eingegangen, wobei die vier üblichsten beschrieben wurden: • Doppler Velocity Logs (DVL): Bei diesem Verfahren wird der Meeresboden vom Objekt aus gefilmt und durch die errechnete Bewegung und einen Tiefenmesser die Position bestimmt. Grundvoraussetzung ist jedoch, dass der Boden von den Kameras erfasst werden kann. Damit ist der Einsatz dieser Systeme auf Anwendungen in Meeresbodennähe beschränkt. • Long Baseline (LBL): Hier sind Positionen von Basisstationen bekannt, welche mit dem Objekt (Empfänger) über Ultraschall kommunizieren. KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG 14 Durch Laufzeiten werden die Distanzen zwischen Sender und Empfänger berechnet und durch trigonometrische Funktionen die Position des Empfängers berechnet. Es handelt sich dabei um eine sehr genaue Methode, welche jedoch aufwändige Vorbereitungen (z. B. die exakte Positionsbestimmung der Basisstationen) voraussetzt. Dieses Verfahren wurde in dem von Maurice et al. vorgestellten System verwendet. • Inertial Navigation: Mit einer bekannten Startposition wird durch ständiges Beobachten von Beschleunigung und Rotation des autonomen Systems der Bewegungsfluss berechnet. Ohne zusätzlichen Ausgleich durch andere Systeme wie DVL oder LBL addieren sich auch geringste Fehler merkbar auf. • GPS Surface Fix : An der Wasseroberfläche befindliche Clients mit GPS-Empfänger und einem Sender oder einer Kamera verwenden das Prinzip der Triangulation um die Position des Objektes unter Wasser zu bestimmen. Das Ergebnis ist bei diesem Verfahren vom Seegang abhängig und bei starken Wellen kein zuverlässiges Ergebnis möglich. GIBT M -PLUS GIBT M -PLUS2 der Firma ACSA ist ein weiteres System, welches akustische Signale in Verbindung mit Triangulation zur Positionsbestimmung unter Wasser verwendet. Es benutzt jedoch den umgekehrten Ansatz. Bei diesem System werden vier Bojen eingesetzt, an denen Empfänger angebracht sind. Diese empfangen jede Sekunde zwei Signale vom zu trackenden UnterwasserObjekt durch einen Pinger (Sender). Das erste Signal ist synchron zur GPSZeit und das andere proportional zur Tiefe verzögert. Durch die bekannte Geschwindigkeit des akustischen Signals unter Wasser wird die Laufzeit und somit die Distanz zwischen Boje und Objekt berechnet. Die Position der Bojen ist dem System in Koordinaten mit D-GPS3 -Genauigkeit bekannt und durch Triangulation berechnet ein Server die Position des Objekts unter Wasser. Die Koordinaten werden in WGS844 Koordinaten (Längen-, Breitengrade und Höhe) berechnet [1]. Fazit Die oben beschriebenen Systeme benutzen alle die Methode der Triangulation. Entweder von einer bekannten Position zu dem zu trackenden Objekt (durch Empfänger am Objekt) oder vom Objekt zu bekannten Positionen (Sender am Objekt). Die erste Methode ermöglicht die Navigation, da die 2 GIB: GPS Intelligent Buoy D-GPS: Differential GPS, siehe Abschnitt 4.3.1 4 WGS84: World Geodetic System 1984, siehe Abschnitt 3.1.2 3 KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG 15 GIB Concept GPS Support Ship Control & Display Unit D-GPS Local Radio Network Accoustic Link Abbildung 2.5: Das GIBT M -PLUS Unterwasser GPS-System der Firma ACSA verwendet Ultraschall und dessen Laufzeitunterschiede vom Sender zum Empfänger für die Positionsbestimmung unter Wasser. Mit Hilfe dieser Laufzeitunterschiede werden Distanzen berechnet und durch Triangulation der (bekannten) Stützpunkte zum Objekt dessen Position berechnet [1]. Positionsdaten unter Wasser vorhanden sind. Die akustischen Signale sind, mit der entsprechenden Hardware, sehr genau und liefern gute Ergebnisse. Jedoch sind die Systeme durch diese Hardware relativ teuer. Zusätzlich ist zu erwähnen, dass Tiere wie Delphine, welche im Meer leben, einen höheren Frequenzbereich als Menschen wahrnehmen können und durch regelmäßige Signale in ihrer natürlichen Umgebung erheblich gestört werden. 2.3.2 Positionsbestimmung mit Infrarot Infrarotstrahlen sind elektromagnetische Wellen, welche im Spektralbereich zwischen sichtbarem Licht und Mikrowellen liegen. Sie haben einen Wellenlängenbereich von ca. 780 nm bis 1mm. Durch spezielle Infrarotkameras können diese sichtbar gemacht und damit auch für Tracking verwendet werden. In den folgenden Abschnitten werden Projekte im Bereich Infrarottracking vorgestellt. KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG 16 Optisches Infrarottracking Seit 2005 arbeiten Hannes Kaufmann und Thomas Pintaric von der Interactive Media Systems Group der Technischen Universität Wien an einem optischen Infrarottrackingsystem, welches auf der VR2007 in den USA unter dem Namen Affordable Infrared-Optical Pose-Tracking for Virtual and Augmented Reality vorgestellt wurde [25]. Das Hauptaugenmerk wird dabei auf die Realisierung eines preislich günstigen, also z. B. auch für Schulen ohne großes Budget, leistbaren Systems gelegt. Das Tracking soll für einen ca. raumgroßen Bereich möglich gemacht werden und zur Zeit sind vier bis acht Kameras einsetzbar und bis zu zehn unabhängige Ziele (Marker) gleichzeitig erkennbar. Es sollen in Zukunft bis zu zwanzig verwendbar sein. Die Genauigkeit der Positionsbestimmung liegt bei ±0, 5cm. Um die Kosten niedrig zu halten wurden standardisierte Elemente wie Firewire-Schnittstellen und herkömmliche PC’s verwendet. Auch die Marker zum optischen Tracking wurden selbst hergestellt und bestehen aus einem starren Aufbau von je vier, mit reflektierendem Material (3M ScotchLite Silver Transfer Film) ummantelten, Nylonkugeln verschiedener Durchmesser (von zwölf bis zwanzig Millimeter). Die bei der aktuellen Version des Systems verwendeten Kameras, die auf einem L-förmigen Gerüst angebracht werden, haben einen 1/3“ CMOS-Sensor mit einer Graustufenauflösung von 640 × 480 Pixeln und sechzig Frames pro Sekunde. Zusätzlich besitzen sie einen Infrarot Bandpassfilter und ein 60-Chip LED-Array, welches als Stroboskop zum Sichtbarmachen der Marker dient. Die Kameras sind untereinander und mit dem Stoboskob synchronisiert. Die Implementierung erfolgte fast ausschließlich in C++. Das System verwendet eine getrennte Kalibrierung der internen und externen Parameter der Kameras. Die inneren Parameter werden durch JeanYves Bouguet’s Camera Calibration Toolbox for MATLAB ermittelt, die äußeren hingegen werden durch Tracken eines frei im Raum bewegten Markers ermittelt. Es wurden Teile eines Selbstkalibrations-Algorithmus von Svoboda et al. [33] nachimplementiert. Die perspektivische Punktwolkenstruktur wird durch Vollrang-Zerlegung berechnet und mit Hilfe des Bündelausgleiches verfeinert. Anschließend werden die Daten in ein reales Weltkoordinatensystem umgerechnet. Diese Kalibrierung dauert bei sechs verwendeten Kameras bis zu fünf Minuten. Der Ablauf der eigentlichen Erkennung und Positionsbestimmung ist in Abbildung 2.6 dargestellt. Jeder Video-Frame wird als Erstes durch Schwellwertfunktionen, helligkeitsabhängige Schwerpunktberechnungen und HoughKreistransformationen nach Markern durchsucht (Feature Detection). Anschließend werden die aus unterschiedlichen Perspektiven gefundenen Marker möglichen Kameras zugeordnet (Mulitple-View Feature Correlation) und mit Hilfe von Triangultion (Perspective Reconstruction) die beste Zuordnung der möglichen Markerpaare durch Reihung der Ergebnisse auf jeweils KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG 17 Abbildung 2.6: Laufzeit-Flussdiagramm der Bildverarbeitungsprozesse im Projekt Affordable Infrared-Optical Pose-Tracking for Virtual and Augmented Reality [25]. einen gefunden Marker beschränkt. Model Fitting beschreibt das Problem der Möglichkeiten der Kombinationen der Punkte zu Markern in jeder Lage im Raum. Werden mehrere Möglichkeiten mit wenigen Punkten gefunden, wird hier das beste Ergebnis, d.h. jene, mir der minimalen Quadratsumme der Fehler, aus allen möglichen gewählt. Um Jitter zu reduzieren wird schlussendlich, bevor die Positionsdaten übermittelt werden, ein prädikativer Filter (Predictive Filtering) angewendet. Das System hat also den Vorteil, schnell sehr genaue Positionen bestimmen zu können, benötigt jedoch zum Tracken Marker, die am Objekt angebracht werden müssen. Die Handhabung wird durch das große Rig und die mit Kabeln zum Computer verbundenen Kameras erschwert. Es ist ein Setup sowie eine Kalibrierung der Kameras nötig, bevor Tracking möglich ist. Die Genauigkeit spricht jedoch für sich, ebenso die relativ geringen Kosten von 6000 bis 8000e. Optisches VR/AR Tracking In einem früheren Verfahren (2001) wurde von Miguel Ribo et al. in [28] ein ähnliches optisches Trackingsystem entwickelt. Es verwendet wie die oben dargestellte Methode reflektierende Marker und an die Kameras gekoppelte Infrarot-Stroboskope. Bis zu 25 verschiedene reflektierende Marker können mit einer Geschwindigkeit von bis zu 30 Frames pro Sekunde getrackt werden KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG 18 (im Vergleich dazu 60 beim Projekt im Abschnitt 2.3.2). Zur Montage der Kameras wird ein Stereo-Rig mit einer maximalen Höhe von zwei Metern verwendet. Zur Kalibrierung wird hier der Ansatz von Zhang [42] verwendet und die Markererkennung im Bild erfolgt durch Schwellwertoperationen. Diese ist durch die gute Erkennbarkeit der reflektierenden Marker im behandelten Bild ausreichend um eine gute Unterscheidung zwischen Marker und Hintergrund gewährleisten zu können. Durch das Stereo-Rig ist die Beweglichkeit dieses Systems genauso wie beim oben erwähnten eher eingeschränkt. Die Ziele dieses Projektes waren jedoch Robustheit gegenüber Fehlern und hohe Genauigkeit der Positionsbestimmung in Echtzeit. Die erreichte Bildbearbeitungsgeschwindigkeit von 30fps war zum damaligen Zeitpunkt sicher eine technische Herausforderung. Fazit Die vorgestellten Systeme verwenden Infrarot zum Sichtbarmachen der (reflektierenden) Marker. Dieser Ansatz erlaubt robustes Auffinden der zu trackenden Positionen. Da Infrarotlicht für Menschen nicht sichtbar ist, wird das Verhalten nicht beeinflusst. Die Systeme erlauben das Tracken von mulitplen Objekten in Echtzeit mit 30-60 Frames pro Sekunde. Der Aufbau dieser Systeme ist starr, dafür aber die Genauigkeit sehr hoch. Einsatzgebiet dieser Systeme ist also genaues Echtzeittracking in einer fixen Umgebung. Es kann z. B. zur Bewegungsanalyse für Animationsfilme verwendet werden. 2.3.3 Positionsbestimmung in Videos Chen et al. haben in [7] eine Studie mit dem Titel Object Tracking and Positioning on Video Images zum automatischen Verfolgen und zur Positionsermittlung von bewegungslosen Objekten in Videobildern, welche von einer bewegten Kamera (aus einem Hubschrauber) aufgenommen werden, angestellt. Zur Positionsbestimmung des Objektes sind drei Schritte nötig: • Ermitteln von Position und Orientierung der Kamera • Bestimmung der Bildkoordinaten des Objektes • Berechnung der Objektkoordinaten Das erste Ziel dieses Projekts ist die Aufnahme der Videobilder synchron zur Ermittlung der Kameraposition und -orientierung. Für diese Ermittlung wurde die Kamera mit einem GPS-Empfänger zur Positionsbestimmung, einem digitalen Kompass und einem Neigungssensor zur Ermittlung der Orientierung verbunden. KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG 19 Nachdem diese Daten bestimmt und das Videobild aufgezeichnet wurden, wird dieses Bild auf vorhandene Objekte untersucht. Da sich der Hintergrund wegen der bewegten Kameraposition stark ändert, wird keine Vordergrundextraktion verwendet, sondern auf Farb- und anschließend auf Formerkennung aufbauende Trackingmethoden. Die Farbauswahl erfolgt durch eine ungefähre Auswahl des Objekts im ersten Bild des Videos und zur Formerkennung wird das Active Contour Model verwendet. Die Form des Objektes verändert sich in jedem Bild, weshalb sie mit dem Shape Matrix Algorithm (SMA) in einer formunabhängigen Matrix gespeichert wird. Der Schwerpunkt der Region wird als Ursprung definiert und die Hauptachse des Objektes ermittelt. Die Bestimmung der Objektposition erfolgt über ein Gleichungssystem mit drei Gleichungen, die aus den Bild- und Kameradaten ermittelt werden. Prinzipiell wird der Strahl von der Kamera zum Objekt mit geodätischen Informationen verknüpft und so mit mit der Erdoberfläche „geschnitten“. Das bedeutet, es können nur Objektepositionen von am Boden befindlichen Objekten ermittelt werden. Zum Testen des Systems wurde ein ca. 100 m langes Schiff in Küstennähe in einem Testvideo mit 320 × 240 Pixel aufgenommen. Der entwickelte Algorithmus berechnet die Positionen mit einer Geschwindigkeit von 10fps und einer Genauigkeit von 35 m. Fazit Der erste Schritt, also die Ermittlung von Position und Orientierung der Kamera, ist dem Ansatz des hier vorgestellten Multikamera-Trackingsystems sehr ähnlich. Durch die Verwendung von mehreren Kameras, können beim vorgestellten System jedoch auch Objektpositionen berechnet werden, die sich nicht auf dem geodätischen Referenzellipsoid befinden. 2.4 Vergleich der Systeme In diesem Abschnitt wird ein Vergleich der oben beschriebenen Positionierungssysteme sowie dem, in der Arbeit vorgestellten, Multikamera-Trackingsystem angestellt. Es wurden alle verfügbaren Daten in die Untersuchung eingebunden. Untersucht wurden folgende Punkte: • Setup des Systems (Handhabung, Zeitaufwand) • Kalibrierung (erforderlich/nicht erforderlich, wie aufwändig) • Anwendungsgebiete (Standardanwendungen) • Geschwindigkeit (in Frames oder Signalen pro Sekunde) • Genauigkeit (Abweichung von der wirklichen Position) KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG 20 • Mobilität (Aufwand bei der Verlegung des Systems an einen anderen Ort) • Verwendete Techniken (wichtigste Methoden) • Marker oder Sensor am Objekt (nötig/nicht nötig) • Ungefähre Kosten Multikamera Trackingsystem Setup des Systems: Kalibrierung: Anwendungsgebiete: Geschwindigkeit: Genauigkeit: Mobilität: Verwendete Techniken: Marker oder Sensoren am Objekt: Kosten: Einfach, leicht handhabbar Nicht erforderlich Tracking in verwinkelten Räumen, unter Wasser 6 Fps 10cm hoch GPS, optisches Tracking, Triangulation Keine erforderlich ca. 1.500e Tabelle 2.1: Vorteile: Flexibel; einfache Handhabung; schnelles Setup; keine Kalibrierung sowie Marker oder Sensoren am Objekt nötig und mit 1500e billig. Nachteile: Nicht echtzeitfähig; mäßige Genauigkeit. Underwater geopositioning methods and apparatus Setup des Systems: Aufwändig Kalibrierung: Position der Basisstation muss ermittelt werden Anwendungsgebiete: Positionsbestimmung unter Wasser Geschwindigkeit: Genauigkeit: Mobilität: örtlich gebunden Verwendete Techniken: Ultraschall, Tiefenmesser Marker oder Sensoren am Objekt: Empfänger Kosten: Tabelle 2.2: Vorteile: Positionen unter Wasser ermittelbar; schnell durch Ultraschall. Nachteile: Viel Hardware nötig; am Objekt muss ein Empfänger angebracht werden. KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG GIBT M -PLUS Setup des Systems: Kalibrierung: Anwendungsgebiete: Geschwindigkeit: Genauigkeit: Mobilität: Verwendete Techniken: Marker oder Sensoren am Objekt: Kosten: 21 < 1h Nicht erforderlich Positionsbestimmung unter Wasser 1 Position pro Sekunde DGPS-Genauigkeit mittel Ultraschall, Radiosignale, GPS Triangulation Sender sehr kostspielig Tabelle 2.3: Vorteile: Positionen unter Wasser ermittelbar; keine Kalibrierung nötig; DGPS-Genauigkeit. Nachteile: Sender am Objekt nötig; auf Grund kommerzieller Vermarktung sehr kostspielig, nur eine Position pro Sekunde erfassbar. Optisches Infrarottracking Setup des Systems: Kalibrierung: Anwendungsgebiete: Geschwindigkeit: Genauigkeit: Mobilität: Verwendete Techniken: Marker oder Sensoren am Objekt: Kosten: Aufwändig ca. 5 Minuten Tracking in Räumen, Multiple Objekte möglich 60 Fps 0.5cm örtlich gebunden Infrarot, optisches Tracking, Bündelausgleich Reflektierende Marker ca. 6000 - 8000e Tabelle 2.4: Vorteile: Echtzeitfähig; hohe Genauigkeit der Positionsdaten und mit 6000 - 8000e vergleichsweise kostengünstig. Nachteile: Begrenzter Anwendungsbereich (ca. 20m2 ); Kalibrierung und Marker am Objekt nötig. KAPITEL 2. METHODEN DER POSITIONSBESTIMMUNG Optisches VR/AR Tracking Setup des Systems: Kalibrierung: Anwendungsgebiete: Geschwindigkeit: Genauigkeit: Mobilität: Verwendete Techniken: Marker oder Sensoren am Objekt: Kosten: Aufwändig 3-5 Durchläufe Tracking in Räumen, Bis 25 Objekte möglich 30 Fps örtlich gebunden Infrarot, optisches Tracking, Triangulation Reflektierende Marker - Tabelle 2.5: Vorteile: Echtzeitfähig; bis zu 25 Objekte gleichzeitig erfassbar; relativ kurzwierige Kalibrierung. Nachteile: Begrenzter Anwendungsbereich; Marker am Objekt nötig; starrer Aufbau durch Stereo-Rig. Positioning on Video Images Setup des Systems: Kalibrierung: Anwendungsgebiete: Geschwindigkeit: Genauigkeit: Mobilität: Verwendete Techniken: Marker oder Sensoren am Objekt: Kosten: Einfach, leicht handhabbar Nicht erforderlich Tracking von Objekten auf dem dem Boden, Tracken aus Hubschraubern 10 Fps 35 m hoch GPS, optisches Tracking, Triangulation Keine erforderlich - Tabelle 2.6: Vorteile: Flexibel; einfache Handhabung; schnelles Setup; keine Kalibrierung sowie Marker oder Sensoren am Objekt nötig; bewegliche Kamera. Nachteile: Nicht echtzeitfähig; geringe Genauigkeit; Tracken nur von Objekten auf dem geodätischen Referenzelipsoid. 22 Kapitel 3 Grundlagen In diesem Kapitel werden die Grundlagen der im Projekt verwendeten Techniken, wie das Globale Positionierungssystem GPS, Bildverarbeitung und Trigonometrie vorgestellt. 3.1 GPS Für dieses Projekt werden GPS Empfänger zur Bestimmung der Kamerapositionen verwendet (siehe Kapitel 2.2.1). In den folgenden Abschnitten wird zuerst ein allgemeiner Überblick über GPS gegeben und im Folgenden die, für das Projekt relevante, Umrechnung der erhaltenen Daten in das zur Berechnung verwendete Koordinatensystem beschrieben. Anschließend werden bekannte und weniger bekannte GPS-Fehler, und Möglichkeiten diese zu verhindern oder zu verringern, behandelt. 3.1.1 Allgemeines Schon seit den 1960er Jahren sind Positionierungssysteme im Einsatz wie z. B. das 1964 in den USA in Betrieb genommene Transit System (es ist jedoch seit 1996 außer Betrieb). Ist heute von GPS die Rede, ist meistens das, vom US-Verteidigungsministerium entwickelte, NAVSTAR GPS (Navigational Satellite Timing and Ranging - Global Positioning System) gemeint. Ursprünglich für die militärische Nutzung gedacht, wurde wie bei vielen militärischen Entwicklungen, bald auch eine öffentliche Frequenz L1 (1575,42 MHz) für die zivile Nutzung eingeführt. Das Militär verwendet zwar die gleiche Frequenz, jedoch statt dem für jedermann lesbaren C/A Code (Coarse/Acquisition) den verschlüsselten P/Y Code (Percision/encrypted). Das US-Verteidigungsministerium erklärte NAVSTAR GPS ab dem 17. Juli 1995 für voll funktionstüchtig [19]. Um exakte Positionen bestimmen zu können ist die Verbindung zu mindestens vier Satelliten nötig. Um diese Verbindungen auf jedem Punkt der 23 KAPITEL 3. GRUNDLAGEN 24 Abbildung 3.1: Diese Abbildung stellt die Verteilung der GPS Satelliten in der Umlaufbahn dar. Theoretisch mindestens 24, praktisch befinden sich jedoch 30 Satelliten auf insgesamt sechs Bahnebenen im Orbit. Erde herstellen zu können, sind mindestens 24 Satelliten nötig. Praktisch befinden sich jedoch 30 GPS Satelliten im All und umrunden die Erde zwei mal pro Tag. Es gibt sechs Bahnebenen mit mindestens vier Satelliten pro Bahn. Diese Bahnen sind um 55◦ gegen den Äquator geneigt und gegeneinander um 60◦ verdreht, wodurch ein Netz von Satelliten die Erde umspannt (siehe Abbildung 3.1). 3.1.2 WGS84 versus ECEF Um mit den GPS-Werten rechnen zu können, müssen die Daten aufbereitet werden. Die von GPS Empfängern üblicherweise ausgegebenen Längen- und Breitengrade, sowie die Meereshöhe einer Position sollen in kartesische Koordinaten umgewandelt werden. Mit diesen können dann die Schnittpunktberechnungen durchgeführt werden und die Position des gefundenen Objektes wird anschließend wieder in das GPS-Format zurückgerechnet. Das Format der Positionswerte ist bei GPS das WGS841 System. Von diesem Datum soll in das kartesische ECEF2 Format umgewandelt werden, dessen Zentrum sich im Erdkern (deswegen Earth Centered) befindet [2]. WGS84 Daten, also Breiten- und Längengrade, sind im Format Grad, Minuten und Sekunden angegeben. Minuten und Sekunden sind hier als Bogenmaß zu verstehen und werden zum Weiterrechnen in Grad umgerechnet. Als Beispiel wird hier die Position von Kamera zwei des Testaufbaus (Siehe Abschnitt 4.1.4) verwendet. 1 2 WGS84 = World Geodetic System 1984 ECEF = Earth Centered Earth Fixed 25 KAPITEL 3. GRUNDLAGEN Ausgangswerte: ϕ . . . Breitengrad (Latitude) λ . . . Längengrad (Longitude) h . . . Höhe = 48◦ 18’ 34,386” North = 14◦ 14’ 8,634” East = 312,70 Meter Gesucht: X . . . X-Position in ECEF Koordinaten Y . . . Y -Position in ECEF Koordinaten Z . . . Z-Position in ECEF Koordinaten Hilfsgrößen: a . . . WGS84 Hauptachse = 6378137,00 b . . . WGS84 Nebenachse = 6356752,31 N1 . . . Normalkrümmungsradius e2 . . . 1. Numerische Exzentrität ′ e 2 . . . 2. Numerische Exzentrität p . . . Radius des Breitengrads θ . . . Hilfsvariable N2 . . . Normalkrümmungsradius der Rückrechnung Um also die Ausgangswerte in Grad umzurechnen wird in folgende Gleichung eingesetzt: min sec Winkel deg = deg + + 60 3600 18 34, 386 ϕ = 48 + + = 48, 3096◦ 60 3600 14 8, 634 + = 14, 2357◦ (3.1) λ = 14 + 60 3600 Diese Werte müssen auch noch von Grad in Rad umgerechnet werden: Winkel deg π 180 48, 3096 ϕrad = π = 0.8432 180 14, 2357 π = 0.2485 (3.2) λrad = 180 Da die Ausgangswerte jetzt im richtigen Format vorliegen, kann mit der Transformation begonnen werden. Die kartesischen X-, Y - und Z-Werte errechnen sich mit folgenden Gleichungen: Winkel rad = X = (N1 + h) cos ϕ cos λ Y = (N1 + h) cos ϕ sin λ Z=( b2 a2 N1 + h) sin ϕ (3.3) 26 KAPITEL 3. GRUNDLAGEN z Nordpol Position h b Geocenter Längengrad Breitengrad N Z l a y X j Y Referenzellipsoid x Südpol Abbildung 3.2: Hier eine Darstellung der zwei verwendeten Systeme zur Bestimmung einer Position (hellblau) auf der Erde. Das Zentrum beider Systeme liegt im Erdmittelpunkt, dem Geocenter. WGS84 (grün) verwendet Längengrade ϕ, Breitengrade λ und die Höhe der Position über dem Meeresspiegel h. ECEF ist ein kartesisches Koordinatensystem mit den blaustrichlierten Linien als X-, Y - und Z-Koordinaten. Die rotgepunkteten Linien stellen die Radien der Erdachsen dar. Die Hauptachse a geht zum Äquator und die Nebenachse b zu den Polen. Da die Erde an den Polen abgeflacht ist, ist a etwas länger als b. N ist der Normalkrümmungsradius des Breitengrades. Die Größe N1 in Gleichung 3.3 ist noch nicht bestimmt. Sie gibt den Normalkrümmungsradius des Breitengrades ϕ an, also die Krümmung der geodätischen Linie (kürzeste Verbindung zweier Oberflächenpunkte). Da es sich bei der Erde nicht um eine Kugel, sondern ein Ellipsoid handelt, welches an den Polen abgeflacht ist, muss diese Abplattung miteinberechnet werden: a2 N1 = p a2 cos2 ϕ + b2 sin2 ϕ (3.4) Nach Einsetzen der oben angegebenen Werte in diese Gleichungen erhält man folgendes Ergebnis in kartesischen Koordinaten: Position: X = 4119767, 57m Y = 1045195, 65m Z = 4740072, 18m 27 KAPITEL 3. GRUNDLAGEN Die Position kann, in dieser Form, nun zur Bestimmung des Richtungsvektors im Abschnitt 3.3.1 verwendet werden und bei der Schnittpunktberechnung von Abschnitt 3.3.2 erhält man wieder einen Wert in diesem Koordinatensystem. Um diesen Wert, der natürlich in kartesischen Koordinaten vorliegt, wieder in die GPS-bekannten Längen- und Breitengrade sowie die Höhe zu transformieren, müssen die folgenden Berechnungen durchgeführt werden: ϕ = arctan λ = arctan h= p cos ϕ ³ ′ Z+e 2 b sin3 θ p−e2 a cos3 θ ¡Y ¢ X ´ (3.5) − N2 Auch hier sind wieder einige Hilfsfunktionen nötig, um die drei Unbekannten ϕ, λ und h zu berechnen. Zum Einen die erste und zweite numerische Exzentrizität, welche die Abweichung des Kegelschnittes zur Kreisform darstellt. Diese betragen bei einem Ellipsoid zwischen null und eins und werden, wie hier dargestellt, mit Hilfe der Achsen berechnet: e2 = ′ e2 = a2 − b2 a2 2 a − b2 b2 (3.6) θ ist hier eine Hilfsvariable um die Gleichung für den Breitengrad ϕ lesbar zu halten. p entspricht dem Radius des Breitengrades. Dieser kann mit beiden, WGS84 und ECEF, Werten berechnet werden. Da hier ECEF Werte vorliegen wird die erste Form verwendet. Es gilt: Za θ = arctan pb p 2 X +Y2 p = = (N2 + h) cos f (3.7) Bei N2 handelt es sich um den Normalkrümmungsradius. Es handelt sich dabei um denselben Radius wie N1 , zur Veranschaulichung wird hier jedoch ein anderer Variablenname verwendet. N2 wird mit ECEF Werten berechnet, N1 mit WGS84-Werten. Bei f handelt es sich, da die Erde keiner exakten Kugel entspricht, um die Abplattung welche durch f = (a − b)/a berechnet wird. Der Normalkrümmungsradius wird also wie folgt berechnet: a2 N2 = p b 1 + e′ 2 cos2 ϕ (3.8) 28 KAPITEL 3. GRUNDLAGEN Nachdem alle Werte (X, Y , Z, a & b) bekannt sind, können die ECEF Koordinaten nun wieder in WGS84 Daten umgerechnet werden. Werden die oben berechneten Koordinaten von Kamera zwei verwendet, erhält man wieder die Ausgangswerte im Bogenmaß. Um diese in Grad, Minuten und Sekunden darzustellen, müssen sie zuerst mit Hilfe von folgender Gleichung in Grad umgerechnet werden und anschließend der Dezimalteil durch 60 dividiert um die Minuten zu erhalten, und dessen Dezimalteil wieder durch 60 dividiert um die Sekunden des Winkels zu erhalten. Die Höhe ist natürlich kein Bogenmaß und muss nicht mehr umgerechnet werden, sondern liegt im richtigen Format, nämlich Meter, vor. Die Berechnung geschieht durch nachfolgende Gleichungen: ϕrad 180 π λrad 180 = π ϕdeg = λdeg 3.1.3 (3.9) GPS auf portablen Computern Ein großer Vorteil von in PDAs3 eingebauten GPS-Empfängern ist die unkomplizierte Handhabung. Die GPS-Empfänger sind so kompakt herzustellen, dass sie ohne weiteres in PDAs oder Mobiltelefone eingebaut werden können. Zusätzlich kann in Mobiltelefonen und auf GSM4 -tauglichen PDAs Assisted GPS verwendet werden, das die GSM Ortung im Kombination mit GPS zur schnelleren Positionsbestimmung verwendet. Assisted GPS Durch die Bestimmung der Funkzelle, in der sich das Gerät befindet, kann der Aufenthaltsort annähernd bestimmt werden. Mit Hilfe von Triangulation der Mobilfunkmasten kann diese Position noch detaillierter berechnet werden, wobei wie bei jeder Form der Triangulation mindestens drei GSMBasisstationen empfangen werden müssen. Damit wird der Suchbereich für die Satelliten eingeschränkt und diversen Problemen wie z. B. der Dopplerverschiebung entgegengewirkt. Die Positionsbestimmung wird damit wesentlich beschleunigt. Wenn der in diesem System verwendete Client GSM unterstützt, kann Assisted GPS verwendet werden und damit die Systemlaufzeit verkürzt werden, da GPS Empfänger besonders nach dem Einschalten eine gewisse Zeit benötigen um ihre Werte zu stabilisieren [41]. 3 4 PDA = Personal Digital Assistant GSM = Global System for Mobile Communications KAPITEL 3. GRUNDLAGEN 3.2 29 Objekterkennung Die Erkennung von Objekten bzw. Personen wird in diesem System verwendet, um den Punkt am Sensor zu berechnen, durch welchen der Strahl in Richtung Objekt gelegt wird. In diesem Abschnitt werden verschiedene Verfahren zur Objekterkennung sowie die Grundlagen zur Strahlberechnung vorgestellt. Es existieren verschiedene Ansätze zur Objekterkennung, bzw. beim optischen Tracking. Die zwei Grundprinzipien werden von Miguel Ribo in [27] vorgestellt. Outside-In Methoden verwenden zur Bestimmung der Position des gesuchten Objektes Sensoren, welche an einer fixen Position, z. B. der Kamera, montiert sind. Die Objekte müssen, je nach Anzahl der zu erkennenden Freiheitsgrade, mehrere einzigartige, erkennbare Merkmale besitzen. Dieser Ansatz ist sehr verbreitet in Trackingsystemen und wird auch im hier vorgestellten System verwendet. Die zweite Variante sind Inside-Out Methoden, bei welchen Sensoren direkt am zu trackenden Objekt angebracht werden. Diese Sensoren beobachten die Umgebung, welche wiederum Referenzpunkte aufweist zur Bestimmung ihrer eigenen Position. Diese Systeme werden laut Ribo hauptsächlich im Freien verwendet. Des weiteren wurden in dem Bericht vierzehn kommerzielle und vier frei verfügbare Systeme vorgestellt wobei bei „ProFlex“ von Qualisys Inc. die Verwendung von bis zu 32 Kameras möglich ist. Das Resultat der Untersuchung war jedoch, dass natürliche Referenzpunkte noch immer ein (interessantes, mit viel Forschungspotential behaftetes) Problem bei der Objekterkennung darstellen. Als zweiter Punkt wurde angemerkt, dass fast alle vorgestellten Systeme fix zu montieren und und somit nicht flexibel sind. 3.2.1 Computer Vision In Tabelle 3.1 werden die Begriffe der grafikorientierten Datenverarbeitungsfelder erklärt. Das Eingangssignal in diesem System ist ein Videostream, also Bilder und die Ausgabe besteht aus Daten, also der Beschreibung des Regionsschwerpunktes. Damit fällt die Datenverarbeitung in den Bereich Computer Vision. Computer Vision, oder Maschinelles Sehen, ist das computerunterstützte Verstehen von digitalen Bildern. Die Aufgabe des Maschinellen Sehens in diesem Projekt besteht darin, ein Objekt im Bild zu identifizieren, zu „tracken“. Nachfolgend werden verschiedene Trackingtechniken erläutert und ihre Vorund Nachteile für das System erklärt. 3.2.2 Tracking Das menschliche Gehirn kann ganz natürlich Objekte in einem Durcheinander von anderen Dingen separieren, Vorder- von Hintergrund unterscheiden 30 KAPITEL 3. GRUNDLAGEN Eingabe Bild Beschreibung Ergebnis Bild Bildverarbeitung Computergrafik Beschreibung Computer Vision Andere Datenverarbeitung Tabelle 3.1: Einteilung der grafikorientierten Datenverarbeitungsfelder. In diesem Projekt werden Bilder als Eingabe verwendet und das Ergebnis ist die Position des gesuchten Objektes bzw. der dazugehörige Richtungsvektor, also eine Beschreibung. Der visuelle Teil dieser Arbeit fällt damit in den Bereich Computer Vision [23]. und Tiefe erkennen. Beim maschinellen Sehen werden die Augen durch Kameras und das Gehirn durch den Computer ersetzt. Also muss der Computer darauf trainiert werden, Objekte separieren und anschließend die gesuchten lokalisieren zu können. Je nach Trackingalgorithmus können verschiedene Objekte oder Eigenschaften (Autos, Bäume, Tiere, Farbe, Größe. . . ) erkannt werden. Normalerweise ist bekannt, welche Objekte im Bild zu erwarten sind, bzw. welche Eigenschaften die zu trackenden Objekte aufweisen sollen. Wäre dies nicht der Fall, müssten immer alle möglichen Trackingalgorithmen auf das gesamte Bild angewendet werden, was höchst uneffizient wäre [3]. In diesem System geht es vorrangig um die Erkennung von Personen, und die hier beschriebenen Verfahren behandeln hauptsächlich die Bereiche des Personentrackings bzw. der Bewegungserfassung. Um Personen aus einem Bild extrahieren zu können, müssen als erstes die Regionen in diesem Bild differenziert werden. Region Labeling ist dabei eine Möglichkeit. Bei diesem Verfahren wird das Bild Pixel für Pixel durchlaufen und zusammengehörige Regionen mit einem „Label“ versehen. Die Label sind fortlaufende Nummern der gefundenen Regionen. Alle Pixel einer Region haben die gleiche Nummer und können so in weiteren Verarbeitungsschritten einfach identifiziert werden. Welche Faktoren zur Zusammengehörigkeit definiert werden, hängt von den im Bild vorhandenen Regionen ab. Es können z. B. Farbe oder Helligkeit unterschieden werden. Mit dem gleichen Verfahren können auch Vorder- von Hintergrund unterschieden werden. Es wird jedes Pixel abgefragt, ob es die Vordergrundbedingungen erfüllt und dann mit allen angrenzenden Pixeln, die die gleichen Eigenschaften aufweisen, als zusammengehörige Region markiert [6]. Anschließend kann jede dieser Regionen untersucht werden, ob sie die gesuchten „menschlichen“ Eigenschaften besitzt. Dazu ist es wichtig, die menschlichen optischen Eigenschaften zu kennen. Farbe, Form, Proportionen und eventuell auch Bildmuster (Pattern Recognition) können zur Erkennung verwendet werden. Erkennung nach Farbe ist eine zuverlässige Art der Objekterkennung. Kleidung in auffälligen Farben kann zielsicher aus einem Bild extrahiert und diese Region als Objekt markiert werden. KAPITEL 3. GRUNDLAGEN 31 Abbildung 3.3: Skeletterkennung von Personen. Die gefundene Region (grau) wird solange von den Rändern aus geschrumpft bis nur mehr ein Skelett übrig bleibt. Die Skelette schauen je nach Position der Arme und Beine unterschiedlich aus. Sind Arme und Beine vom Körper weggestreckt ist das Skelett schon sehr „menschlich“. Sind sie jedoch am Körper oder vom Körper verdeckt kann das Skelett wie beim vorletzten Beispiel auch zu einem normalen Strich werden und kann nicht mehr als Person erkannt werden. Die Bildmustererkennung arbeitet nach dem Prinzip der Ähnlichkeit. Referenzmuster vom Objekt werden Pixel für Pixel mit dem zu durchsuchenden Bild verglichen und die Differenz der Farb- oder Helligkeitswerte aller Pixel vom Muster zum Bild ermittelt. Ist diese Differenz unter einem gewissen Schwellwert, gilt das Objekt als erkannt. Durch die vielen verschiedenen Haltungen, die ein Mensch einnehmen kann, wären jedoch sehr viele verschiedene Referenzmuster nötig. Zusätzlich wird das Objekt von allen Seiten aufgenommen, wodurch jede Ansicht durch die unterschiedliche Form wieder eigene Referenzmuster benötigen würde. Eine Form ist jede Gruppe verbundener Punkte [29]. Damit wäre eine andere Möglichkeit Objekte in Bildern zu lokalisieren die Skeletterkennung, da bei dieser Methode durch Linien verbundene Punkte ermittelt werden. Die Ränder der Region werden bei diesem Verfahren so lange geschrumpft bis sich die Region zu einer Linie verschmälert, also nur mehr ein Skelett übrig bleibt. Sind die Extremitäten der Person in dem Bild gut erkennbar, führt die Skeletterkennung zu sehr guten Ergebnissen. Sind jedoch Arme und Beine nicht konvex, also am Körper anliegend, oder durch die Perspektive ganz vom Körper verdeckt wird die Skeletterkennung schon schwieriger. Abbildung 3.3 zeigt die Auswirkungen von verschiedenen Haltungen auf die Skeletterkennung. Wenn Arme und Beine in der Region „Mensch“ gut erkennbar sind, läßt sich ein menschliches Skelett extrahieren. Sind die Extremitäten jedoch am Körper anliegend oder Teile der Region verdeckt, liefert die Skeletterkennung keine genauen Ergebnisse. 3.2.3 Schwerpunktberechnung Nachdem ein Objekt gefunden wurde, soll sein Mittelpunkt im Bild bestimmt werden, durch den der Vektor zum Objekt zeigen soll. Das kann, je nach Objektdaten, durch verschiedene Methoden geschehen. Je nach Trackingalgo- 32 KAPITEL 3. GRUNDLAGEN rithmus sind andere Ausgangsdaten vorhanden. Wenn Skelettdaten vorhanden sind, können z. B. Relationen des Oberkörpers, oder der Kopf verwendet werden. Wird Gesichtserkennung eingesetzt, könnte der Mittelpunkt zwischen den Augen gewählt werden. Um das System stabil zu halten, sollten die Kameras jedoch in so unterschiedliche Richtungen zeigen, dass das Gesicht nie auf allen Kameras zu sehen ist. Zur Schwerpunktberechnung kann jedoch mit allen Proportionen der Ausgangsdaten gearbeitet werden. Wird das Objekt mit Hilfe von Regions- bzw. Farberkennung getrackt, kann es zu Problemen bei der Mittelpunkt- oder Schwerpunktberechnung kommen. Der reine Schwerpunkt einer Region wird durch den arithmetischen Mittelwert aller X- bzw. Y -Werte der zur Region gehörigen Pixel berechnet und ergibt den genauen Schwerpunkt (xcenter und ycenter ): xcenter = ycenter = n X i=0 n X xi /n yi /n (3.10) i=0 Dieser Punkt liefert einen Gleitkommawert, er ist also genauer als ein Koordinatenwert, welcher immer ganzzahlig wäre. Durch diesen Punkt wird jener Strahl gelegt, welcher vom Kamerazentrum aus, in Richtung des Objektes zeigt. Durch das Schneiden mehrerer Strahlen verschiedener Kameras wird anschließend die Objektposition bestimmt. Die dazugehörige Theorie wird im nächsten Abschnitt behandelt. 3.2.4 Vektor im Kameraraum Ist der Schwerpunkt bestimmt, soll oben genannter Vektor von seinem Ursprung am Sensor durch das optische Zentrum der Kamera in Richtung des Objektes berechnet werden. Dieser Vektor wird auch Zentralstrahl der Optik genannt. Sofern das optische System der Kamera bekannt ist (siehe Abbildung 3.4), läßt sich mit Hilfe der Winkelfunktionen dieser Vektor berechnen. Wichtige Größen sind der Abstand zwischen Sensor und Linse, das optische Zentrum und die Sensorgröße. Das optische Zentrum ist Mittelpunkt der Linse, also jener Punkt im optischen System, durch den der Strahl zum Objekt berechnet wird. Die Sensorgröße ist im Zusammenhang mit dem Abstand zwischen Sensor und Linse für das Zoom und die Field of View (siehe Abschnitt 3.3.3) verantwortlich. Dieser Vektor wird zur Bestimmung der Position der getrackten Person zuerst in einem lokalen Kamerakoordinatensystem berechnet und anschließend zur Schnittpunktberechnung mit den Vektoren der anderen Kameras in ein globales Weltkoordinatensystem umgerechnet. Wie dieser Vektor genau berechnet wird, ist im Abschnitt 3.3.1 detailliert erklärt. 33 KAPITEL 3. GRUNDLAGEN Objekt Abstand Linse-Sensor y Vektor Sensor Brennpunkt z Brennweite Winkel Blickrichtung x Optisches Zentrum des Objektivs Abbildung 3.4: Seitenansicht des optischen Systems einer Kamera. Die Größe des Sensors links entspricht der Höhe des Sensors (Y -Koordinaten), die Breite (X-Koordinaten) ginge hier in die Tiefe. Der berechnete Vektor entspricht dem Zentralstrahl der Kamera zum Objekt. Der Winkel dieses Strahls muss natürlich für beide Dimensionen (X und Y ) berechnet werden. 3.3 Mathematische Grundlagen Um die Funktionsweise des Multikamera-Trackingsystems zu verstehen ist es wichtig, sich mit den mathematischen Überlegungen hinter dem Projekt vertraut zu machen. Dieses Kapitel beschäftigt sich eingehend mit der Berechnung des Richtungsvektors durch das optische System, der Schnittpunktberechnung zwischen den Richtungsvektoren mehrerer Kameras sowie der Transformation zwischen den verschiedenen Koordinatensystemen. Die hier verwendeten Formelsymbole sind zur Übersicht gesammelt, inklusive ihrer Bedeutung, in Anhang A aufgelistet, werden aber zusätzlich im Text eingeführt. 3.3.1 Optik Die Optik ist das zentrale Element einer Kamera. Sie besteht grundsätzlich aus einem Sensor und einer Linse, von deren Qualität und Ausführung die Bildqualität, die Brennweite und die Field of View abhängen. Digitale Kameras funktionieren im Prinzip genauso wie analoge Kameras, statt dem Film wird aber ein Sensor mit Bildpunkten verwendet. Berechnet werden soll für das hier besprochene System der Strahl vom optischen Zentrum der Kamera in Richtung des getrackten Objektes, hier Richtungsvektor ~r genannt. Abbildung 3.4 zeigt eine schematische Darstellung des optischen Systems mit 34 KAPITEL 3. GRUNDLAGEN Sensor, Richtungsvektor und Objekt. Die Achsen X, Y und Z beschreiben das Kamerakoordinatensystem, wobei X und Y die Sensorfläche aufspannen und Z in die Blickrichtung der Kamera zeigt. Das optische Zentrum beschreibt den Nullpunkt des Koordinatensystems und entspricht gleichzeitig der Position der Kamera im Weltkoordinatensystem, welche wie in Kapitel 2.2.1 erklärt wurde, mit Hilfe eines GPS Empfängers ermittelt wird. Weiters geht aus der oben genannten Abbildung hervor, dass das Objekt am Sensor auf dem Kopf steht. Die von der Kamera erhaltenen digitalen Bilder werden aber von der Kamera schon gespiegelt, weshalb, um einen korrekten Richtungsvektor zu erhalten, die X und Y -Pixelwerte invertiert werden müssen. Der Richtungsvektor wird durch drei Koordinaten bestimmt, wobei die dritte, Z, immer 1, also die Blickrichtung bestimmt. Berechnet werden müssen also die Werte für X und Y , welche von der Bildverarbeitung weitergegeben werden. Hier wird der Rechengang nur für die X-Werte erklärt und zum Schluss der Gesamtvektor beschrieben. Den X-Wert rx des Richtungsvektors erhält man durch folgende Berechnung [5]: rx = c k ws x fk cs resx (3.11) Wobei ck einer Diagonale einer Kleinbildkamera, ws der Sensorbreite und x der X-Position am Sensor entspricht. Die Variable fk ist der Abstand zwischen Kleinbildfilm und Linse, cs die Sensordiagonale und resx die Auflösung in X-Richtung, also die Anzahl der verwendeten Pixel am Sensor. Die Herleitung dieser Gleichung wird im folgenden Abschnitt erklärt. Um das optische System einer Kamera zur Berechnung dieses Strahls heranziehen zu können, müssen zuerst alle benötigten Größen berechnet werden. Bekannt sind die Abmessungen des analogen Kleinbildformates sowie dessen Abstand zwischen Linse und Sensor und die Diagonale des Sensors. Zum Testen dieses Systems wurde eine Sony W7 mit einer Auflösung von 7,2 Megapixel oder 3072 × 2304 Pixel verwendet. Es handelt sich dabei um einen 1/1,8” Super HAD CCD5 Sensor mit einer Diagonale von 8,933mm und einem Bildseitenverhältnis von 4:3 (im Gegensatz zu einer Kleinbildkamera mit einem Verhältnis von 3:2) [24]. Seine Höhe h und Breite w läßt sich basierend auf seiner Diagonale c und seinem Bildseitenverhältnis v berechnen: 5 h= r c2 = 1 + v2 s 8, 933 mm2 = 7.176 mm 1 + (4 : 3)2 (3.12) w= s c2 = 1 + v12 s 8, 933 mm2 = 5.319 mm 1 1 + (4:3) 2 (3.13) CCD = Charge-coupled Device 35 KAPITEL 3. GRUNDLAGEN Kleinbildkamerafilm 24 x 36 mm 4/3 1 2/3 1/1,8 1/2 1/3 Abbildung 3.5: Größenvergleich gängiger Sensorgrößen (grau) und des analogen Kleinbildformates (hellgelb). Die Abmessungen des Kleinbildfilmes betragen 24 × 36 mm. Das entspricht einer Diagonale von 43, 26̄ mm. Ein 1/1,8” Sensor (rot) hat eine Diagonale von 8,933 mm [20]. Die Sensorgröße spielt eine große Rolle im optischen System, da mit Hilfe ihres Wertes und dem Abstand zwischen Sensor und Linse die Koordinaten des Richtungsvektors zum Objekt berechnet werden können. Um die Diagonale der Kleindbildkamera zu berechnen wird der Pythagoräische Lehrsatz verwendet. Durch die Quadratwurzel aus Höhe bk und Breite wk des Kleinbildfilmes. Damit sind dann alle Abmessungen von Kleinbildfilm und Sensor bekannt: q p (3.14) ck = b2k + wk2 mm = 242 + 362 mm = 43, 26̄ mm Die Kleinbilddiagonale ergibt also 43, 26̄ mm. Man kann erkennen dass es sich um einen gewaltigen Größenunterschied handelt, jedoch die Field of View bei analoger und digitaler Kamera gleich bleibt. Damit das so ist, muss sich bei kleinerer Sensorgröße auch der Abstand zwischen ihm und der Linse ändern. Diese kann mit Hilfe der Größenrelation f act der Diagonalen von Kleinbildfilm und Sensor berechnet werden: fact = ck 43, 26̄ mm = = 4, 8434 cs 8, 933 mm (3.15) Damit ist der Sensor einer digitalen Kamera um das 4,8434-fache kleiner als der Film einer analogen Kamera. Der Abstand wird aus Gewohnheit jedoch immer noch wie bei analogen Kameras (38mm) angegeben. Mit diesem 36 KAPITEL 3. GRUNDLAGEN herkömmlichen Abstand fk und dem Größenfaktor läßt sich jedoch der hier verwendete, wirkliche Abstand fs berechnen: fs = fk 38 mm = = 7, 8456 mm fact 4, 8434 (3.16) Mit dem gleichen Field of View beträgt der Abstand pdist zwischen Sensor und Linse der Digitalkamera also 7,8456 mm. Der Sensor der W7 hat eine maximale Auflösung von 3072 × 2304 Pixel (wirkliche Anzahl der Pixel pnumb = 3072), für ein Video beträgt die Auflösung aber nur 640 × 480 Pixel (Anzahl der verwendeten Pixel pused = 640), das bedeutet, dass nur jedes 4,8te Pixel des Sensors verwendet wird: pdist = pnumb 3072 Pixel = = 4, 8 pused 640 Pixel (3.17) Somit entspricht die Größe psize eines Sensorpixels der Größe von 4,8 realen Pixeln bzw. einem 640tel der Gesamtbreite des Sensors: psize = 7, 176 mm ws = = 0, 0112 mm resx 640 (3.18) Den in der Bildverarbeitung berechneten Pixelwert x (X-Position des Schwerpunktes des getrackten Objektes im Bild) muss man nun mit der Pixelgröße multiplizieren um die reale Position am Sensor zu erhalten. Die Werte reichen für x von -320 bis 320 und für y von -240 bis 240, da der Mittelpunkt des Bildes zwar in (0/0), aber in der Mitte von 640 × 480 liegt (siehe Abbildung 3.6). Da hier die, für jedes Frame veränderlichen, Werte von der Schwerpunktberechnung (siehe Abschnitt 3.2.3) zum Tragen kommen, wird zur Veranschaulichung x = 160 und y = 120 als Beispiel angenommen. Die Berechnung wird für die X-Koordinate durchgeführt und erfolgt analog für Y . Die reale Position am Sensor xpos beträgt: xpos = psize x = 0, 0112 mm · 160 = 1, 794 mm (3.19) Das 160te Pixel (in realen Pixeln entspricht das 160×4, 8, dem 768. Pixel) ist also 1,794 mm vom Sensormittelpunkt entfernt. Damit sind Sensorposition und Abstand zwischen Sensor und Linse bekannt und der Winkel αxrad des Richtungsvektors kann mit Hilfe von Winkelfunktionen berechnet werden: αxrad = arctan µ xpos fs ¶ = arctan µ 1, 794 mm 7, 8456 mm ¶ = 0, 2248 rad (3.20) 37 KAPITEL 3. GRUNDLAGEN 640 -320/240 320/240 Objekt 160/120 y 480 x 0/0 320/-240 -320/-240 Abbildung 3.6: Die Auflösung des Videos ist 640 × 480. Der Ursprung des Bildes liegt in der Mitte des Bildes, weshalb die Werte von -320 bis 320 in X-Richtung bzw. von -240 bis 240 in Y -Richtung reichen. Der grüne Stern veranschaulicht das zu trackende Objekt. Für das Rechenbeispiel wird sein Schwerpunkt mit x = 160 und y = 120 angenommen. Um das Ergebnis dieser Berechnung zu veranschaulichen, wird der Winkel von Radianten in das Gradmaß (αxdeg ) umgerechnet: αxrad 180 = 12, 88◦ (3.21) π αyrad 180 = 9, 73◦ (3.22) αydeg = π Der Richtungsvektor geht also in unserem Beispiel vom optischen Zentrum aus mit 12, 88◦ auf der X/Z Ebene und 9, 73◦ auf der Y /Z Ebene. Weitergerechnet wird allerdings mit den Winkeln in Rad. Die Umrechnung in Grad erfolgt zur Veranschaulichung des Ergebnises. Der X-Wert rx des Richtungsvektors läßt sich jetzt wieder mit Hilfe von Winkelfunktionen berechnen: αxdeg = rx = tan (αxrad ) = tan (0, 2248) = 0, 1715 (3.23) Da Tangens und Arcustangens einander aufheben, läßt sich diese Gleichung vereinfachen: µ µ ¶¶ xpos xpos rx = tan arctan = 0, 1715 (3.24) = fs fs Die Zusammenfassung alle Gleichungen ergibt wieder die Gleichung 3.11 von der Einleitung. Um den Vektor in Y -Richtung zu berechnen, muss statt 38 KAPITEL 3. GRUNDLAGEN der Sensorbreite ws natürlich die Sensorhöhe hs und der y-Wert statt dem xWert verwendet werden. Die Auflösung ist zwar in X- und Y -Richtung gleich, der Verständlichkeit halber wird aber resy in der Gleichung verwendet. Der Gesamtvektor ~r vom optischen Zentrum der Kamera aus in Richtung Objekt lautet also folgendermaßen: rx ~r = ry = rz 3.3.2 c k ws x fk cs resx c k hs y fk cs resy Schnittpunktberechnung 1 (3.25) Nachdem die Vektoren aller Kameras berechnet wurden, könnte man rein theoretisch ihren Schnittpunkt durch das Gleichsetzen ihrer X-, Y - und ZWerte berechnen. Durch Ungenauigkeiten ergibt sich jedoch kein richtiger Schnittpunkt, weshalb der minimale Abstand der Geraden berechnet werden muss. Eine Gerade im Raum läßt sich eindeutig durch einen definierten Startpunkt und einen, von diesem Punkt ausgehenden, Richtungsvektor bestimmen. Der Startpunkt wird in unserem Fall durch die Position des Linsenzentrums der Kamera in Weltkoordinaten bestimmt und Berechnung des Richtungsvektors wurde im vorherigen Abschnitt 3.3.1 Optik erklärt. Die Ausgangswerte sind also die Vektoren von den Kameras aus, welche durch ihr Linsenzentrum bzw. das optische Zentrum ~k und ihren Richtungsvektor ~r bestimmt sind. Durch Multiplikation von ~r mit dem Parameter λ, läßt sich jeder Punkt auf einem Vektor ~g dargestellen. Diese sind durch die Parameterform ~g = ~k + ~r λ (3.26) definiert [4] [12]. Die Distanz zwischen zwei Geraden läßt sich damit wie folgt berechnen: ¯³ ´¯ ´ ³ ¯ ¯ d(λ1 , λ2 ) = |g~1 − g~2 | = ¯ k~1 + ~r1 λ1 − k~2 + ~r2 λ2 ¯ ¯ ¯ ¯ ¯ = ¯k~1 − k~2 + ~r1 λ1 − ~r2 λ2 ¯ (3.27) Diese Gleichung ist bis jetzt theoretisch, da noch keine Werte einsetzbar sind. Um die Distanz berechnen zu können, müssen der Startpunkt und der Richtungsvektor in ihre X-, Y - und Z-Werte aufgeteilt werden: ¯ ¯ ¯ ¯ k1 x r2 x r1 x k2 x ¯ ¯ d(λ1 , λ2 ) = ¯¯ k1 y − k2 y + r1 y λ1 − r2 y λ2 ¯¯ (3.28) ¯ ¯ k1 z r2 z r1 z k2 z 39 KAPITEL 3. GRUNDLAGEN Vektor Vektor + Geringster Abstand Schnittpunkt Vektor Vektor a) b) Vektor Vektor + + + + Geringster Abstand Vektor c) Abbildung 3.7: Das linke Bild a) zeigt den Idealfall, einen echten Schnittpunkt zwischen zwei Geraden. Das heißt X- und Y -Werte sind in beiden Geraden im Schnittpunkt identisch. Durch Ungenauigkeiten und Auflösung bzw. Rasterung der digitalen Bilder kommt es leider nie zu einem echten Schnittpunkt und die Geraden verfehlen sich, weswegen wie im rechten Bild b) immer der minimale Abstand berechnet werden muss. Die Mitte des minimalsten Abstandes bestimmt somit den fiktiven Schnittpunkt. Der Abstand zwischen den Geraden beträgt beim hier verwendeten Testaufbau durchschnittlich einige Zentimeter. Werden, wie in Bild c) mehr als zwei Kameras verwendet, wird aus den Mitten der Abstände zwischen den einzellnen Vektoren der gesamte Mittelpunkt errechnet. Eine Distanz zwischen zwei Geraden in drei Dimensionen läßt sich durch deren euklidischen Abstand, also die Quadratwurzel der Addition der einzelnen Werte zum Quadrat errechnen: d(λ1 , λ2 ) = mit: q dx (λ1 , λ2 )2 + dy (λ1 , λ2 )2 + dz (λ1 , λ2 )2 (3.29) dx (λ1 , λ2 ) = (k1 x − k2 x + r1 x λ1 − r2 x λ2 ) dy (λ1 , λ2 ) = (k1 y − k2 y + r1 y λ1 − r2 y λ2 ) dz (λ1 , λ2 ) = (k1 z − k2 z + r1 z λ1 − r2 z λ2 ) Gesucht sind damit die Werte λ1 und λ2 , welche die Positionen des minimalen Abstands bestimmen. Da es sich um zwei Unbekannte handelt ist ein Gleichungssystem mit zwei Gleichungen notwendig, um diese Unbekannten zu bestimmen. 40 KAPITEL 3. GRUNDLAGEN y k1 g1=k1+r1.l1 d g2=k2+r 2.l 2 k2 x z Abbildung 3.8: Diese Abbildung zeigt, wie die minimale Distanz d zwischen den Vektoren g~1 und g~2 , deren Ausgangspunkte in k~1 und in k~2 liegen, berechnet wird. Durch Einsetzen der Parameterdarstellung in die Subtraktion g~1 − g~2 läßt sich die Gleichung 3.27 zur Berechnung des Abstandes d aufstellen. Der minimale Abstand bedeutet eine Minimalstelle zwischen der „Distanzfläche“ d im Vektorraum D, λ1 und λ2 , wobei d die Distanz zwischen den Strahlen an jenen Positionen darstellt, welche durch die Parameter λ1 und λ2 definiert sind. Durch die partielle Ableitung der Distanz d nach dem ersten Skalar λ1 und nach dem zweiten Skalar λ2 kann die Minimalstelle ermittelt werden. Es könnte sich bei einem Minimum theoretisch auch nur um ein lokales Minimum handeln. Da zwei Strahlen jedoch gemeinsam immer nur ein einziges, und dadurch absolutes Minimum haben können, kann hier das erste gefundene Minimum zur Berechnung verwendet werden. Abbildung 3.8 zeigt den minimalen Abstand zwischen den Vektoren g~1 und g~2 auf dem Richtungsvektor an den Punkten von λ1 und λ2 . Die partielle Ableitung der Distanzengleichung nach λ1 ergibt damit: 2 r1 x d x + 2 r1 y d y + 2 r1 z d z ∂d(λ1 , λ2 ) q = =0 ∂λ1 2 d2 + d2 + d2 x y (3.30) z Sowie die partielle Ableitung nach λ2 : −2 r2 x dx − 2 r2 y dy − 2 r2 z dz ∂d(λ1 , λ2 ) q = =0 ∂λ2 2 d2 + d2 + d2 x y (3.31) z Wie oben erwähnt, können durch Lösen des Gleichungssystems nun zwei fixe Gleichungen für λ1 und λ2 berechnet werden. Sie müssen nur einmal 41 KAPITEL 3. GRUNDLAGEN berechnet werden und können im Programm für jede Berechnung verwendet werden, was für die Laufzeit von Vorteil ist. Die Unbekannten werden also nur mehr in der Software eingesetzt, was wenig Rechenzeit benötigt. Die Gleichungen sind sehr komplex, weshalb sie zur Veranschaulichung aufgeteilt wurden. Lösung des Gleichungssystems nach λ1 : (3.32) λ1 = λ11 + λ12 λ13 mit: λ11 = − λ12 = λ13 = ³ −(k1 x r2 x )+k2 x r2 x −k1 y r2 y +k2 y r2 y −k1 z r2 z +k2 z r2 z −(r1 x r2 x )−r1 y r2 y −r1 z r2 z ´ (k1 x r1 x −k2 x r1 x +k1 y r1 y −k2 y r1 y +k1 z r1 z −k2 z r1 z ) (−r1 x 2 −r1 y 2 −r1 z 2 ) (−(r1 x r2 x )−r1 y r2 y −r1 z r2 z )2 −(r1 x 2 +r1 y 2 +r1 z 2 ) (r2 x 2 +r2 y 2 +r2 z 2 ) (−(k1 x r2 x )+k2 x r2 x −k1 y r2 y +k2 y r2 y −k1 z r2 z +k2 z r2 z ) (r2 x 2 +r2 y 2 +r2 z 2 ) (−(r1 x r2 x )−r1 y r2 y −r1 z r2 z )2 −(r1 x 2 +r1 y 2 +r1 z 2 ) (r2 x 2 +r2 y 2 +r2 z 2 ) Lösung des Gleichungssystems nach λ2 : λ2 = − (λ21 λ22 ) − λ23 λ24 λ25 − λ26 (3.33) mit: λ21 λ22 λ23 λ24 λ25 λ26 ¡ ¢ = −r1 x 2 − r1 y 2 − r1 z 2 = (− (k1 x r2 x ) + k2 x r2 x − k1 y r2 y + k2 y r2 y − k1 z r2 z + k2 z r2 z ) = (k1 x r1 x − k2 x r1 x + k1 y r1 y − k2 y r1 y + k1 z r1 z − k2 z r1 z ) = (− (r1 x r2 x ) − r1 y r2 y − r1 z r2 z ) = ¡(−r1 x r2 x − r1 y r2 y ¢−¡r1 z r2 z )2 ¢ = r1 x 2 + r1 y 2 + r1 z 2 r2 x 2 + r2 y 2 + r2 z 2 Dazu ist zu sagen, dass es sich bei den Winkeln zwischen den Geraden immer um einen rechten Winkel handeln muss. Alle anderen Winkel würden automatisch zu einem größerem Abstand führen. Diese Gerade ist auch als Lot-Gerade bekannt [4]. Nachdem die Punkte auf den Geraden berechnet wurden, die den geringsten Abstand zueinander haben, ist es nur mehr ein kleiner Schritt um den fiktiven Schnittpunkt zu bestimmen. Der Schnittpunkt S wird in der Mitte der zwei am nächsten zueinander liegenden Punkte angenommen. Da die Verbindung zwischen diesen Punkten eine Gerade ist, ergibt der arithmetische Mittelwert dieser Punkte den Schnittpunkt. Dieser Schnittpunkt 42 KAPITEL 3. GRUNDLAGEN ist die berechnete Objektposition für einen Frame. Er wird folgendermaßen berechnet: S= 3.3.3 k1 x +k2 x +r1 x λ1 +r2 x λ2 2 k1 y +k2 y +r1 y λ1 +r2 y λ2 2 k1 z +k2 z +r1 z λ1 +r2 z λ2 2 (3.34) Field of View Die Field of View (FoV) oder das Sichtfeld umfasst den Bereich, der von der Kamera eingesehen werden kann. Er ist pyramidenförmig, wobei sich die Spitze in der Kamera befindet, genauer gesagt beim Brennpunkt in der Linse. Die Größe des FoV kann mit Hilfe der Optik berechnet werden. Wenn man 320 in X-Richtung bzw. 240 in Y -Richtung in die Gleichung 3.19 einsetzt, erhält man die Hälfte der Breite des Sensors (640×480). Um die gesamte FoV (F oVh (Höhe) bzw. F oVw (Breite)) zu erhalten, muss das Ergebnis dieser Berechnung noch dupliziert werden, da hier nur die Hälfte des Sichtfeldes bestimmt wird. Würde statt der halben Breite die volle Breite eingesetzt, wäre das Ergebnis jedoch verfälscht da dann vom Mittelpunkt zur doppelten Breite des Sensors berechnet würde und nicht die volle Breite des Sensors mittig zur Linse. Das Ergebnis ist α in rad. Mit α 180 π erhält man den Winkel in Grad. Die FoV der Breit und der Höhe ergeben damit: F oVw = 49.1517◦ F oVh = 37.8634◦ (3.35) Das Sichtfeld der Kamera beträgt also 49◦ in der Breite und 38◦ in der Höhe. Es ist wichtig diese Werte zu kennen, wenn man das System konzipiert, also die Clients platziert. Mehr dazu im Abschnitt 4.1.2 Aufstellung im Raum. 3.3.4 Koordinatensysteme Es ist wichtig zu verstehen, dass hier immer von zwei verschiedenen Koordinatensystemen die Rede ist. Im Abschnitt 3.3.1 Optik wurde der Richtungsvektor ~r in Kamerakoordinaten berechnet und im Abschnitt 3.3.2 Schnittpunkt wurde nach dem geringsten Abstand zwischen diesen Vektoren bzw. Geraden im Weltkoordinatensystem gesucht. Jeder Client bzw. jede Kamera hat ihr eigenes Koordinatensystem, wobei die Sensorfläche die X- und Y Achsen aufspannt und die Blickrichtung der Kamera die Z-Achse beschreibt. Ziel ist es, die Kamerakoordinaten in Weltkoordinaten umzurechnen, um so den Schnittpunkt berechnen zu können. Dies ist möglich, wenn die Winkel der Verdrehung zwischen diesen Kameraachsen und den Achsen des Weltkoordinatensystems bekannt sind. Die Winkel sind zwar für jeden Client unter- 43 KAPITEL 3. GRUNDLAGEN y b (Pan) optisches Zentrum x a (Shift) g (Tilt) z Abbildung 3.9: Der Ursprung des Kamerakoordinatensystems und damit auch des Richtungsvektors ~r liegt im optischen Zentrum der Kamera. Die Position der Kamera ist also die X-, Y - und Z-Position des optischen Zentrums und die Ausrichtung der Kamera ist die Blickrichtung in die Z-Achse, sowie die Bildebene in X- und Y -Achse. Die Winkel zwischen diesen Achsen in Kamerakoordinaten und den Weltkoordinaten definieren damit die Ausrichtung. schiedlich, die Matrizen für die Umrechnung (siehe Gleichung 3.36) bleiben jedoch gleich. Diese drei Winkel, oder auch Freiheitsgrade, heißen Pan, Shift und Tilt. Pan beschreibt die Rotation um die Y -Achse, Shift die Rotation um die XAchse und Tilt die Rotation um die Z-Achse. Wenn man die Kamera als die Augen im menschlichen Kopf annimmt, wäre Pan damit einem links-rechtsSchauen gleichzusetzen, Shift dem Nicken und Tilt einem links-rechts-Neigen. Die Rotation um die X-Achse, also Shift, wird hier α genannt, die um die Y -Achse, also Pan, heißt β. Der Wert für Tilt, also die Rotation um die Z-Achse bekommt die Variable γ. Die Weltkoordinaten setzen sich aus der Nord-Süd Position, Ost-West Position und der Höhe über dem Meeresspiegel zusammen. Die Nord-SüdAchse wird hier als Y -Achse definiert, Ost-West als X-Achse und die Höhe als Z-Achse. Damit entspricht das Weltkoordinatensystem einer aufgespannten Landkarte bei der Norden im zweidimensionalen Bild oben ist. Die Ausgabe des getrackten Pfades erfolgt auch in dieser Vogelperspektive (siehe Abschnitt 4.2.7). Die Kamera befindet sich in der Normalposition, wenn die Kameraorientierung mit der Orientierung des Weltkoordinatensystems übereinstimmt, also sich ihre Achsen in der gleichen Ausrichtung befinden. Wenn der Sensor parallel und ausgerichtet zu den Nord-Süd und Ost-West Achsen ist und das Objektiv nach oben zeigt. Die Abweichungen von dieser Normalposition ergeben die Winkel, mit denen die Vektoren mit Hilfe der Transformationsmatrix vom Kamerakoordinatensystem ins Weltkoordinatensystem KAPITEL 3. GRUNDLAGEN 44 umgerechnet werden können. Die Transformationsmatrizen lassen sich damit wie folgt anschreiben: M = Mx · M y · M z (3.36) mit: 1 0 0 Mx = 0 cosα sinα 0 −sinα cosα cosβ 0 −sinβ 1 0 My = 0 sinβ 0 cosβ cosγ sinγ 0 Mz = −sinγ cosγ 0 0 0 1 Bei diesen Matrizen handelt es sich um die eulerschen Winkel, welche verwendet werden um eine Drehung um bestimmte Achsen und damit eine Transformation zwischen Koordinatensystemen darzustellen. Der Wert der Achse, um die rotiert wird, bleibt immer gleich, es ändern sich die Werte der andern beiden Achsen durch Winkelfunktionen um den Sinus- bzw. CosinusWert des Winkels. Kapitel 4 System Dieses Kapitel stellt das implementierte Multikamera-Trackingsystem dar, beschäftigt sicht zuerst mit dem Aufbau der Hardware und anschließend mit der programmiertechnischen Realisierung des Systems. 4.1 Aufbau Hier wird die für das System benötigte Hardware und deren Möglichkeiten, sowie die Eignung bestimmter Ausführungen für spezifische Anwendungen und der jeweils passende Aufbau des Systems beschrieben. 4.1.1 Auflistung benötigter Hardware • Client Portabler PC Videokamera GPS-Empfänger Kompass Beschleunigungssensor Wireless LAN • Server Stand PC oder Laptop Wireless LAN • Sonstiges Wireless LAN Router 45 KAPITEL 4. SYSTEM 46 Grundsätzlich besteht das System aus einem Server und mehreren Clients. Je nach Größe und Beschaffenheit (verwinkelt, offene Ebene, ...) des einzusehenden Gebietes werden zwei bis theoretisch unendlich viele Clients benötigt. Es gibt mehrere Möglichkeiten für das Hardwaresetup, für verschiedene Anwendungen und Budgets. Für ein optimal flexibles System werden pro Client ein PDA, eine Videokamera, ein GPS-Empfänger, ein Kompass und ein Beschleunigungssensor, welcher die Gravitation für alle drei Achsen misst, benötigt. Der Server ist optimalerweise ein Stand-PC oder ein leistungsstarker Laptop. Dieser sollte über einen WLAN Empfänger verfügen um drahtlos mit den Clients zu kommunizieren. Sofern kein offenes drahtloses Netzwerk in der Region verfügbar ist, wird zusätzlich ein Hot Spot benötigt. Wird nur ein stationäres System benötigt reichen Laptops oder sogar Stand-PCs, je nach Platzierung der Clients. Videokamera, GPS Empfänger, Kompass und Neigungssensor werden in jedem Fall für die Strahlberechnung benötigt. Werden die Clients in Gebäuden mit LAN (Local Area Network) aufgestellt, kann dieses statt dem drahtlosen Netzwerk genutzt werden. Ein Router muss in diesem Fall vorhanden sein. 4.1.2 Aufstellung im Raum Jeder Punkt im Raum, der überwacht werden soll, muss von mindestens zwei Kameras eingesehen werden, was soviel heißt, dass das gesuchte Objekt in zwei Kamerabildern gleichzeitig erscheinen muss, um die Positionsberechnung möglich zu machen. Ein größerer Winkel der Kamerastrahlen im Schnittpunkt ergibt genauere Messergebnisse. Die mathematischen Grundlagen der Schnittpunktberechnung werden im Abschnitt 3.3.2 genauer erklärt. Abbildung 4.1 zeigt den Grundriss eines verwinkelten Raumes in welchem Kameras (Clients) installiert sind. Die bunten Kreise symbolisieren jeweils die Position einer Kamera und die grauen Polygone mit den bunten Linien das jeweilige Gebiet, welches diese Kamera sieht. Je dunkler die graue Fläche ist, desto mehr Kameras beobachten dieses Gebiet. Die Orientierung und die Field of View (FoV) (siehe Abschnitt 3.3.3) bestimmen die Position und Größe dieser Flächen. Die hier verwendete FoV beträgt 50◦ horizontal. Die FoV muss natürlich auch vertikal berücksichtigt werden, zur Veranschaulichung wird in diesem Beispiel aber von einem zweidimensionalen Raum ausgegangen. Die rote, strichlierte Linie umfasst in jedem der vier Einzelbilder jenes Gebiet, welches zur Positionsbestimmung geeignet ist (mindestens von zwei Kameras gesehen). Die schwarze, gepunktete Linie symbolisiert jenen Bereich, welcher von allen Kameras eingesehen wird. Bild a) zeigt einen Aufbau mit zwei Kameras. Man kann erkennen, dass die zur Kamera gehörenden, eingesehenen Flächen nicht dreieckig sind, da Ecken bzw. Wände teilweise die Sicht verdecken. In allen Bereichen, die von beiden Kameras eingesehen werden, kann die Position von Objekten 47 KAPITEL 4. SYSTEM 1 2 a) 2 3 2 2 1 3 1 b) 1 c) 3 d) 5 4 4 Abbildung 4.1: Demonstration eines Kamerasetups in einem verwinkelten Raum. Man sieht den Raum aus der Vogelperspektive. Jede Fläche versinnbildlicht das Gebiet, das von einer Kamera (dargestellt als bunter Kreis mit der selben Farbe wie der Umriss der Fläche) eingesehen wird. Abbildung a) zeigt einen Aufbau mit zwei Kameras. In Abbildung b) wurden drei, in Abbildung c) vier und in Abbildung d)fünf Kameras verwendet. Das Gebiet, in welchem Objektpositionen berechnet werden können, ist innerhalb der roten, strichlierten Linie. Das Gebiet, welches alle Kameras einsehen ist innerhalb der schwarzen, gepunkteten Linie. bestimmt werden. Wird ein Objekt in einem nur von einer Kamera eingesehenen Bereich gefunden, geht diese Information im System verloren, da kein Schnittpunkt berechnet werden kann. Das zweite Bild b) zeigt den selben Raum mit drei Kameras. Das Gebiet innerhalb der strichlierten Linie ist schon wesentlich größer. Kamera zwei und drei haben jedoch sehr ähnliche Orientierungen im Raum, was in den neugewonnenen Bereichen zu größeren Fehlern bei der Positionsbestimmung führen kann. Im dritten Bild c) werden vier Kameras verwendet und in Bild d) fünf. Man kann erkennen dass der rotstrichlierte Bereich (mindestens zwei Kameras) immer größer und der schwarzgepunktete (alle Kameras) immer kleiner KAPITEL 4. SYSTEM 48 wird, d.h. man kann ein immer größer werdendes Gebiet beobachten, das Kerngebiet, welches alle Kameras einsehen wird jedoch immer kleiner. Hier wird davon ausgegangen, dass nur eine Person getrackt werden soll, es muss also immer nur eine Position berechnet werden. Sollen mehrere Personen getrackt werden, ergibt sich das Problem einer möglichen Verdeckung von einer Person zur anderen. Bei zwei Kameras und zwei Personen kann also nicht gewährleistet werden, dass beide Personen immer in beiden Kamerabildern gefunden werden, auch wenn sie sich theoretisch beide innerhalb der rotstrichlierten Linie befinden. Abhilfe schafft die Verwendung von mehreren Kameras. Würden zwei Personen mit drei Kameras getrackt, wird immer jede von mindestens zwei Kameras gesehen (sofern sie sich innerhalb des Bereiches der rotstrichlierten Linie befindet). Pro weiterer Person, die getrackt werden soll, muss also noch eine weitere Kamera verwendet werden. Die Anzahl der Kameras muss also mindestens der Anzahl der zu trackenden Personen plus eins entsprechen. Die Person, welche verdeckt wird, muss sich dann jedoch im Bereich von mindestens zwei weiteren Kameras befinden um gefunden zu werden. Ein weiteres Problem kann die Nähe von Personen zur Kamera ausmachen. Befindet sich eine Person sehr nahe bei der Kamera kann es vorkommen, dass sie das ganz Kamerabild einnimmt. Der Richtungsvektor zum Objekt würde also genau geradeaus durch den Mittelpunkt des Bildes gehen, egal ob sich die Person weiter auf einer Seite befindet oder auf der anderen. Da jedoch der zweite Richtungsvektor dann in Richtung der ersten Kamera zeigen würde, wird der Fehler nicht zu groß. 4.1.3 Flexible Positionierung der Clients Um das System unabhängig von einem starren Setup und damit userfreundlich zu machen, müssen die Kameras (Clients) beliebig, also ohne zusätzliche Konfiguration, im Raum aufgestellt werden können. Wäre das nicht der Fall könnte das System immer nur an einem bestimmten Ort mit einem bestimmten Setup der Kameras verwendet werden. Flexibel bedeutet hier, dass die Clients beliebig positioniert werden, und nach dem Starten des Systems ohne weiteres Zutun Objektpositionen ermittelt werden können. D.h. dem System soll nicht manuell eingegeben werden, wo sich die Kameras befinden und wie sie orientiert sind, sondern das System soll diese Informationen selbst ermitteln. GPS-Empfänger, Kompass und Beschleunigungssensor Um die Position und die Ausrichtung bzw. Orientierung einer Kamera genau zu bestimmen sind sechs Freiheitsgrade nötig. Diese sind die X-, Y - und ZWerte der Position in Weltkoordinaten, also in diesem Fall GPS-Daten, sowie die drei Winkel, die den Offset des Kamera- zum Weltkoordinatensystem beschreiben. Bei diesen Winkeln handelt es sich um Pan, Tilt und Shift, KAPITEL 4. SYSTEM 49 Abbildung 4.2: In der Abbildung kann man zur Positions- und Orientierungsbestimmung verwendbare Bauteile sehen. Das erste Bauteil a) ist ein GPS Empfänger mit dem die Position bestimmt wird. Ein elektronischer Kompass zur Bestimmung des Winkels Pan wird in b) dargestellt und c) zeigt einen Beschleunigungssensor in drei Achsen zur Bestimmung der Winkel Shift und Tilt. welche im Abschnitt 3.3.4 (Abbildung 3.9) genauer erklärt wurden. Die Positionsdaten kann man, da es sich um GPS-Daten handelt, am besten mit einem GPS-Empfänger ermitteln. Grundlagen zu GPS wurden im Abschnitt 2.2.1 erklärt. Damit sind drei von sechs Freiheitsgraden bestimmt. Die Orientierung der Winkel Shift und Tilt läßt sich durch Gravitation bestimmen. Dazu kann z. B. ein Neigungs- oder Beschleunigungssensor verwendet werden. Dieser misst die Erdanziehung in drei Achsen. Ist die Positionierung des Sensors am Gerät bekannt, lassen sich damit die Winkel berechnen. Mit einem Beschleunigungssensor lässt sich jedoch nicht die Rotation (Pan) des Gerätes bzw. des Clients bestimmen. Wäre er z. B. waagrecht ausgerichtet, könnte nicht bestimmt werden in welche Himmelsrichtung er schaut, da sich die Gravitationswerte nicht ändern würden. Um diesen letzten Freiheitsgrad zu bestimmen wird ein Kompass verwendet. Dieser Wert könnte bei Bewegung durch die Position nach der Zeit von den GPS Daten ermittelt werden. Jedoch ist eine gewisse Mindestgeschwindigkeit der GPS-Empfänger erforderlich, die für die meisten Setups nicht erreicht werden würde. Durch einen elektronischen Kompass kann die Ausrichtung auch bei Stillstand ermittelt werden. Elektronische Kompasse haben eine Genauigkeit von ca. 0, 1◦ . Kommunikation - WLAN oder Kabel Wie schon besprochen gibt es verschiedene Möglichkeiten für das Setup. Genauso verhält es sich bei der Kommunikation. Am flexibelsten ist natürlich ein drahtloses Netzwerk (WLAN1 ), da die Clients in diesem Fall frei bewegbar sind und nicht durch Kabel behindert werden. Sie können also ohne Probleme an einem anderen Ort platziert werden ohne das System unterbrechen 1 WLAN = Wireless Local Area Network KAPITEL 4. SYSTEM 50 zu müssen. Netzwerkkabel hingegen sind zuverlässiger, da eine physikalische Verbindung besteht, aber unhandlicher. Es hängt also wieder von der Anwendung ab welches Kommunikationsmittel gewählt werden soll. In Gebäuden sind oft Netzwerkbuchsen in jedem Raum vorhanden, an die man die Clients anschließen und somit das Hausnetzwerk verwenden kann. Im Freien bietet sich ein drahtloses Netzwerk an. Wie bei GPS Signalen können auch bei WLAN Oberflächen von z. B. Gebäuden als Reflektoren wirken. Zusätzlich können Hindernisse die Signale dämpfen und somit die Reichweite erheblich einschränken. Bäume oder Wände in Gebäuden dämpfen das Signal bis um das Zehnfache. So sind bei freier Sicht und einer ungerichteten Antenne (Rundstrahlantenne) bei 802.11b/g bis zu 300 Meter Empfang möglich, in Gebäuden reduziert sich diese Reichweite auf 30 Meter oder weniger. Kabel (hier Ethernet über Cat5 Kabel) hingegen haben immer die gleiche maximale Reichweite von ca. 100 Metern. 4.1.4 Testaufbau Um das System zu testen wurden zwei Videos aufgenommen, in denen sich eine Person hin- und herbewegt. Das Gebiet ist offen, also nicht verwinkelt und die Person bewegt sich mehrmals aus dem überwachten Gebiet hinaus. Abbildung 4.3 zeigt die Szene mit Position und Ausrichtung der Clients. Kamera zwei befindet sich um 6,175 Meter westlicher und 2,307 Meter südlicher als Kamera eins. Ihr Pan-Winkel ist für Kamera eins 180◦ und für Kamera zwei 107◦ . Die Kameras sind nicht anderweitig geneigt. Die Winkel Shift und Tilt haben somit einen Wert von 0◦ . Das Gebiet, welches beide Kameras einsehen ist dunkelgrau mit rotstrichliertem Umriss dargestellt. Alle, in diesem Bereich befindlichen, Objekte oder Personen können getrackt werden. Die Person, welche in den Testvideos zu sehen ist, bewegt sich ungefähr im Bereich der gelben Ellipse. Man kann erkennen, dass die Ellipse größer ist als der dunkelgraue Bereich, was bedeutet, dass die Person den Bereich mehrmals östlich und westlich verlässt. Das Trackingsystem verliert also die Objektposition und findet sie wieder, nachdem sich das Objekt in das Kamerasichtfeld zurückbewegt. Zwischen diesen Frames kann keine Schnittpunktberechnung durchgeführt werden. Die Objektposition könnte in dieser Situation also nur entweder durch Beobachten des Bewegungsflusses vorausgesagt werden oder vernachlässigt werden. Exakte Voraussagen können jedoch nicht getroffen werden, da das Objekt umkehren muss um wieder in das Blickfeld der Kamera zu gelangen. Dieses Umkehren kann zu jeder Zeit geschehen und ist nicht an den vorherigen Bewegungsfluss gebunden. 51 KAPITEL 4. SYSTEM 6175mm Optisches Zentrum von Kamera 1 = Nullpunkt 1 2307mm 180° 107° 2 North West East South Abbildung 4.3: Die zum Testen des Systems verwendeten Videos wurden mit folgendem Aufbau aufgenommen. Kamera 1 befindet sich im Ursprung des Weltkoordinatensystems und ist mit einem Pan von 180◦ gegenüber diesem verdreht. Die zweite Kamera befindet sich ungefähr 6,2 Meter westlicher und 2,3 Meter südlicher und hat einen Pan von 107◦ . Der dunkelgraue Bereich mit dem rotstrichlierten Umriss zeigt jene Fläche, welche von beiden Kameras eingesehen wird und damit überwachbar ist. Die Person im Testvideo bewegt sich ungefähr im gelben Bereich, verlässt also die Kamerabilder mehrmals. 4.1.5 Kosten Die Kosten für die Hardwarebauteile variieren stark je nach Qualität und Ausführung. Ziel dieses Abschnittes ist es, einen ungefähren Wert für ein durchschnittliches Setup zu ermitteln. Tabelle 4.1 zeigt eine Aufschlüsselung der ungefähren Kosten der Hardwarebauteile. Je nach Ausführung muss mit ca. 340e aufwärts für einen PDA mit GPS Empfänger und Kamera gerechnet werden. Die zusätzliche Hardware wie Sensoren und Auswerteelektronik kostet insgesamt ca. 160e. Für den Server wird ein einfacher, aber schneller Rechner verwendet. Gemeinsam mit einem Hotspot für die drahtlose Verbindung können Server damit aber ab ca. 550e erworben werden. Die Anzahl der Clients beeinflusst natürlich die Gesamtkosten des Systems, da beliebig viele Clients verwendet werden können. Mindestens sind zwei Clients und ein Server nötig, womit sich für das minimale System ein ungefährer Preis von ∼1550e ergibt. Hardwarepreise fluktuieren bekannterweise, daher sind die hier angegebenen Kosten als Momentanpreise für Juni 2007 zu verstehen. 52 KAPITEL 4. SYSTEM Client PDA mit GPS und Kamera Kompass Beschleunigungssensor Auswerteelektronik Summe ∼340e ∼40e ∼20e ∼100e ∼500e Server Computer >3GHz, 2GB RAM Hotspot 802.11g Summe ab ∼500e ∼50e ∼550e Tabelle 4.1: Aufschlüsselung der Kosten mit Stand Juni 2007. Ein durchschnittlicher PDA mit GPS-Empfänger und Kamera kostet ca. 340e. Die meisten PDAs besitzen auch ein GSM Modul, womit Assisted GPS verwendet werden kann, und sind auch WLAN-tauglich. Ein Kompass kommt auf ca. 40e und ein Beschleunigungssensor auf ca. 20e. Um diese Daten auswerten zu können wird noch zusätzliche Hardware benötigt, welche ungefähr 100e kostet. Damit kostet ein Client ca. 500e. Ein durchschnittlicher Server besteht aus einem Rechner, welcher incl. Bildschirm ca. 500e kostet und einem Hotspot zur Verbindung mit den Clients um ca. 50e. 4.2 Implementierung Im zweiten Teil dieses Kapitels wird die Implementierung und der Aufbau des Projektes beschrieben. Außerdem werden die verwendeten Technologien wie die Programmierumgebung und -sprachen beschrieben. Das Programm wurde mit dem Java Development Kit (JDK) und der Java Runtime Environment (JRE) 1.5.0_12 entwickelt und Eclipse SDK 3.2.1 als Programmierumgebung verwendet. Die Testvideos wurden im avi Containerformat unkomprimiert aufgenommen. Sie haben eine Framerate von 25 Bildern pro Sekunde und eine Länge von 23 Sekunden. Es handelt sich damit um 575 Frames die untersucht werden müssen. Zum Bearbeiten der Videos wurde ImageJ 1.37 verwendet. 4.2.1 Übersicht der Aufgaben des Systems Die Aufgaben des Systems setzen sich aus mehreren Einzelaufgaben zusammen. In der folgenden Liste sind diese nach Client und Server getrennt. Die Aufgaben der Clients müssen, da immer mehr als einer vorhanden ist, natürlich auf allen Clients parallel abgearbeitet werden. Jeder Client muss folgende Aufgaben für jedes Bild erledigen: KAPITEL 4. SYSTEM 53 • Videobild einlesen • Objekterkennung (Computer Vision) • Berechnung des Richtungsvektors im Kamerakoordinatensystem • Kameraposition (x,y,z) und Orientierung (Pan, Shift, Tilt) finden • Senden von Vektor, Position und Orientierung an den Server Der Server hat folgende Aufgaben abzuarbeiten: • Neue Clients annehmen und verwalten • Sammeln der Informationen aller Kameras • Transformation der Vektoren von Kamerakoordinaten in Weltkoordinaten • Berechnung des Schnittpunktes durch den kleinsten Abstand der Geraden • Optische Ausgabe erstellen 4.2.2 Klassendiagramme Tabelle 4.2 zeigt die für das Projekt erstellten Klassen und Pakete. Die Pakete connect und calculation befinden sich am Server, hingegen die Pakete imageProcessing, video und videoQT müssen auf jedem Client vorhanden sein. In Server.java befindet sich der Serverthread, in Client.java der Clientthread. Diese müssen auch jeweils am richtigen Rechner vorhanden sein. Start.java wird nur zum Testen benötigt und startet Server und Clients in der richtigen Reihenfolge. 4.2.3 Video-input Zum Testen dieser Software wurden zwei voraufgenommene Videos verwendet, die eine Person zeigen, welche sich im eingesehenen Bereich bewegt und sich zu Testzwecken auch aus diesem Bereich hinausbewegt. Aufgenommen wurden diese Videos mit zwei Sony W7 Digitalkameras mit 25 Frames pro Sekunde und einer Länge von 23 Sekunden. Das ergibt eine Gesamtanzahl von 575 Frames pro Video. Die Auflösung der Videos entspricht mit 640×480 einer VGA Auflösung bzw. 307200 Pixel pro Frame. 54 KAPITEL 4. SYSTEM default Client.java Server.java Start.java connect ConnectModel.java ConnectedSocket.java SocketServer.java SLListIterator.java SLList.Node.java calculation Camera.java Calculation.java imageProcessing Image.java ImageListener.java Node.java video MovieReader.java Util.java video.qt QTMovieReader.java Tabelle 4.2: Auflistung der Pakete und Klassen im Projekt. Am Server befinden sich die Pakete connect und calculation. Am Client befinden sich imageProcessing, video und videoQT. 4.2.4 Bildverarbeitung Die Bildverarbeitung erfolgt auf allen Clients parallel. Die Bildverarbeitung selber erfolgt für jeden Frame sobald dieser eingelesen wird. Image.java liest auf jedem Client das Video Frame für Frame ein und konvertiert es auf das zur Bearbeitung verwendete ImageProcessor Format von ImageJ. Damit kann es zur Bildverarbeitung verwendet werden. Die Schritte zur Bearbeitung sind: • Bild einlesen und konvertieren • Vordergrund von Hintergrund extrahieren (Region finden) • Den Schwerpunkt dieser Region berechnen • Den Richtungsvektor durch diesen Schwerpunkt berechnen Der Vordergrund, also die gesuchte Region, wird extrahiert indem das Bild pixelweise durchlaufen und ein Flood-Fill-Algorithmus angewendet wird. Dieser Algorithmus sucht nach Vordergrundpixeln und sobald eines gefunden wurde, werden die Nachbarregionen ebenfalls auf Vordergrundeigenschaften untersucht usw. Auf diese Art wird so lange verfahren bis eine abgeschlossene Region gefunden wurde, also kein Nachbarpixel der Region Vordergrundeigenschaften aufweist. Die gefundenen Regionen müssen eine gewisse Mindestgröße aufweisen, um als Objekt in Betracht gezogen zu werden. Der Schwerpunkt der gefundenen Region wird anschließend berechnet indem der arithmetische Mittelwert über alle X- und alle Y -Werte der Pixel ermittelt wird. Dieser Wert wurde in der Ausgabe als blaues Fadenkreuz dargestellt KAPITEL 4. SYSTEM 55 Abbildung 4.4: Frames aus den Testvideos mit roter Markierung des gefunden Objektes und Markierung des Schwerpunktes der gefundenen Region als blaues Kreuz. um das Ergebnis optisch zu überprüfen zu können. Nach der Ermittlung dieses Wertes, wird mit der Berechnung des Richtungsvektors begonnen. Abbildung 4.4 zeigt das Ergebnis der Objekterkennung mit roter Markierung der gefundenen Person. Das Fadenkreuz in der Mitte der Region zeigt den berechneten Schwerpunkt aller Pixel und wird zur Vektorberechnung verwendet. In anderen Worten, der Strahl zeigt vom Brennpunkt der Kamera in die Richtung dieses Punktes. 4.2.5 Berechnungen Die mathematischen Grundlagen wurden im Abschnitt 3.3 erklärt, in diesem Abschnitt werden die programmiertechnischen Aspekte der Berechnungen beschrieben. Vektorberechnung Die Vektorberechnung erfolgt auf jedem Client in der Klasse Image.java. Nachdem der Mittelpunkt des gefundenen Objektes berechnet wurde, wird die Funktion calcVector(x,y) mit den Parametern x und y als Pixelwerte des Schwerpunktes aufgerufen. Der Rückgabewert dieser Funktion ist der Vektor in Richtung des Objektes als X, Y und Z-Werte im Kamerakoordinatensystem. Dieser Vektor wird mitsamt der Position und Orientierung der Kamera an den Server geschickt. Umrechnung in Weltkoordinaten Die Umrechnung der Vektoren vom Kamerakoordinatensystem in das allgemeine Weltkoordinatensystem erfolgt aus Rechenzeitgründen am Server. Da der Server leistungsstärker ist als die Clients, wird versucht so viel wie möglich am Server zu erledigen. Würde diese Berechnung am Client stattfinden, müsste zwar nur der Richtungsvektor mit seiner Startposition über- KAPITEL 4. SYSTEM 56 mittelt werden, nicht aber die Orientierung. Diese wird zur Transformation zwischen den Koordinatensystemen benötigt. Nachdem der Server die Daten eines Clients erhalten hat, werden die Werte des Richtungsvektors also in das Weltkoordinatensystem umgewandelt. So wird für jeden Client verfahren und anschließend kann die Schnittpunktberechnung durchgeführt werden. Schnittpunktberechnung Um die Software so performant wie möglich zu halten wurden die Gleichungen vorberechnet, sodass für jeden Frame nur mehr die Unbekannten eingesetzt werden müssen. Diese Variablen sind die Position und der Richtungsvektor jeder Kamera. Wurde die Funktion pointFound() des Serverthreads von einem Client aufgerufen, wird geprüft ob genügend Werte, sprich Daten von genügend Clients (mindestens zwei), vorhanden sind um die Berechnung durchzuführen. Sobald genügend Werte vorhanden sind, wird die Funktion calculate() in calculation.java aufgerufen. Diese Funktion erhält als Parameter die Positionen und Orientierungen der Clients sowie die Richtungsvektoren und gibt die Position des Objektes zurück, oder false, wenn kein Schnittpunkt gefunden wurde. Das kann geschehen wenn z. B. falsche Objekte gefunden werden, also Objekte die eigentlich keine Objekte sind und/oder sich an einer falschen Position befinden. Dann sind die Richtungsvektoren so weit voneinander entfernt dass sich kein logischer Schnittpunkt ergibt. Hierfür wurde ein Schwellenwert ermittelt, welcher bei jeder Berechnung abgefragt wird. 4.2.6 Kommunikationsmodell Das Kommunikationsmodell basiert auf einem Server mit mehreren Clients, welche jederzeit hinzugefügt werden können. Der Server verwaltet diese dynamisch in einer Clientliste. Jeder neue Client sendet seine Daten (Position, Richtungsvektor, Orientierung und Zeitstempel) nach der Bearbeitung jedes Frames an den Server und dieser berechnet mit den Daten aller Clients den Schnittpunkt. Sofern mindestens zwei Clients mit dem Server kommunizieren und gültige Daten übermitteln, kann der Server die Berechnung durchführen. Mehrere Clients, und damit mehr Daten, führen zu einem stabileren Ergebnis, da der Schnittpunkt durch mehrere Strahlen bestimmt werden kann. Es handelt sich hier um eine Einwegkommunikation, da die Clients ihre Daten an den Server übermitteln, der Server aber keine Daten an die Clients schickt. Das Zurücksenden von Informationen, also Zweiwegkommunikation, ist nicht nötig. Wenn von einem Client für ein Frame keine oder fehlerhafte Daten erhalten werden, können die anderen Clients diese Informationen ausgleichen, indem sie genügend Daten liefern bzw. es kann auch ein Frame vernachlässigt und zum Nächsten übergegangen werden. 57 KAPITEL 4. SYSTEM Server comm: Client comm: Client init() init() connect() init() registerClient() connect() registerClient() Abbildung 4.5: Dieses UML-Diagramm zeigt den Verbindungsaufbau zwischen Server und Clients. Werden sie gestartet, meldet sich jeder Client beim Server an, welcher sie in seine Clientliste hinzufügt und für jeden Client einen neuen Socket zur Kommunikation aufmacht. Verbindungsaufbau Durch die flexible Gestaltung der Server Client Architektur ist es möglich so viele Clients wie benötigt zu erstellen. Am Server läuft ein Thread, welcher neue Clients annimmt und startet, was wiederum neue Clientthreads erzeugt. Für jeden Clientthread wird ein neuer Socket am Server erstellt, über den der Client die ermittelten Daten schickt. Es können zu jeder beliebigen Zeit Clients hinzugefügt werden, da die Clientliste dynamisch verwaltet wird [17]. Abbildung 4.5 zeigt den Verbindungsaufbau der Threads im System. Der Serverthread wird als Erstes gestartet um anschließend Clients annehmen zu können. Diese melden sich durch die Funktion connect() beim Server an, welcher die Clients durch rgisterClient() registriert und pro Client einen neuen Socket zur Kommunikation erstellt. Der Server verwaltet gleichzeitig die eingehenden Daten, führt die Schnittpunktberechnung aus und erstellt das SVG-File für die optische Ausgabe des Ergebnisses. Die Clients beginnen nach ihrem Start die Objektsuche in jedem Frame und senden nach derer erfolgreichen Ausführung die ermittelten Daten an den Server. Datenfluss Der Datenfluss ist der typische Verlauf der Daten im System, von der Eingabe, also dem Video, bis hin zum Ergebnis, der Position des Objektes in Weltkoordinaten. Abbildung 4.6 zeigt diesen Verlauf. Nachdem der Server 58 KAPITEL 4. SYSTEM n Server Starten des Servers Neuer Client? j Zur Clientliste hinzufügen Punkt gefunden? n Client Bild einlesen und bearbeiten j genügend Werte? j Schnittpunkt berechnen n Server Senden an den Server Abbildung 4.6: Das hier abgebildete Flussdiagramm zeigt den typischen Datenfluss des Programms. Nach dem Starten des Servers wartet dieser in einem eigenen Thread auf neue Clients und fügt sie seiner Clientliste hinzu. Die Clients lesen das Videobild ein und führen die Bildverarbeitung aus. Diese Operation wird ausgeführt bis ein Objekt gefunden wurde. Die Ergebnisse werden dem Server übermittelt. Dieser wartet auf ausreichend viele Clients und berechnet anschließend die Position des Objektes. Die ersten drei und die letzten zwei Schritte sind serverseitig, die mittleren drei werden vom Client ausgeführt. die Clients initialisiert hat, fangen diese Threads an, die einzelnen Videobilder zu bearbeiten. Das geschieht so lange bis ein Objekt in einem Bild gefunden wurde. Die Richtungsvektoren, welche in der Bildverarbeitung berechnet werden, werden mitsamt der Position und Orientierung der Kamera an den Server geschickt. Der Server wiederum sammelt solange diese Daten von den Clients, bis er genügend Richtungsvektoren bekommen hat und wertet diese Daten aus, indem er den Schnittpunkt zwischen den Vektoren berechnet. Die ersten drei Schritte des Diagramms werden dabei vom Server ausgeführt, die nächsten drei von jedem Client simultan und die letzten zwei Schritte wieder vom Server. Die wichtigsten Methodenaufrufe eines normalen Ablaufes werden in Abbildung 4.7 beschrieben. Nach dem Start des Bildverarbeitungsthreads laden die Clients das jeweils nächste Videobild und bearbeiten es in ihrer run() Methode. Sobald ein Schnittpunkt gefunden wird, meldet die Methode 59 KAPITEL 4. SYSTEM comm: Client Server comm: Client image.start() openVideo(path) run() image.start() openVideo(path) actionPerformed(cam) calculate(s) run() actionPerformed(cam) calculate(s) calc(args[]) Abbildung 4.7: Der typische Datenfluss von der Bildverarbeitung bis zur Schnittpunktberechnung wird in diesem Sequenzdiagramm vorgestellt. Die Clients arbeiten parallel ihre Videobilder in der run()-Methode ab, und schicken, sobald sie ein Objekt getrackt haben, den berechneten Richtungsvektor mit der Methode actionPerformed() an den Server. Sobald dieser Werte von genügend vielen Clients gesammelt hat wird die Schnittpunktberechnung mit calc() durchgeführt. actionPerformed() das dem Server und übermittelt das Ergebnis der Bildverarbeitung mitsamt der inneren und äußeren Orientierung der Kamera. Sobald zwei Ergebnisse vorhanden sind, ruft der Server seine Berechnungsmethode calculate() zur Schnittpunktberechnung auf und fügt die hier gefundene Position anschließend, sofern der gefundene Schnittpunkt die Kriterien (z. B. Größe der Abstände zwischen den Vektoren) erfüllt, dem File der optischen Ausgabe hinzu. Protokoll Die Kommunikation erfolgt wie oben erwähnt vom Client zum Server. Der Client schickt seine Daten nach der Bearbeitung jedes Frames, wobei ein eigenes Protokoll verwendet wird. Es werden mit der Client ID die aktuellen KAPITEL 4. SYSTEM 60 Positionswerte, die aktuelle Orientierung, der berechnete Vektor und natürlich ein Zeitstempel zur Synchronisation übermittelt. Das Protokoll ist wie folgt aufgebaut: <protocoll> ::= <client name> <position> <orientation> <vector> <time> <client name> ::= "cam1" | "cam2" <EOL> <position> ::= <x> <y> <z> <EOL> <orientation> ::= <alpha> <beta> <gamma> <EOL> <vector> ::= <x> <y> <z> <EOL> 4.2.7 Darstellung Die Ausgabe der Daten ist ein wichtiger Bestandteil des Systems. Die Bestimmung der Positionsdaten (Längengrad, Breitengrad und Höhe) erfolgt zu diskreten Zeitpunkten. Aus der Kenntnis der Position des getrackten Objekts zu unterschiedlichen Zeiten kann auf dessen Trajektorie geschlossen werden. Für ein anschauliches Ergebnis wurden diese Daten optisch aufbereitet. Da es sich hier um Positionsdaten in Bezug auf die Zeit handelt, wurde die Darstellung der Positionen als Punkte in einer Art Landkarte gewählt, und um den Verlauf der Bewegung zu verdeutlichen, sind diese Punkte durch Linien verbunden. Wird das Objekt beim Tracking verloren, wird das mit einer rotstrichlierten Verbindungslinie zwischen der letzten gefundenen Position und der nächsten Position veranschaulicht. Der Startpunkt, bzw. die Position, in der das Objekt das erste mal getrackt wird, wird grün dargestellt und die letzte Position rot. Je nach Anwendung des Systems könnten verschiedene Darstellungsarten verwendet werden. Im Abschnitt 6.3 Weiterentwicklungen wird genauer auf mögliche andere Darstellungsarten eingegangen. Scalable Vector Graphics Für dieses System wurde die Darstellung als SVG2 File gewählt. Da SVG ein XML3 -basiertes Dateiformat ist, können SVG-Dateien wie Textfiles bearbeitet werden und müssen nicht kompiliert werden [40]. Die erstellten Grafiken sind in einer Baumstruktur aus Elementen und ihren Attributen gegliedert. Es können Vektorgrafiken, Bilder und Text dargestellt werden, wobei Bilder und Text extern eingebunden werden und die Schriftart bekannt sein muss. SVG 1.0 wurde im September 2001 vom World Wide Web Consortium (W3C) veröffentlicht. Zwei Jahre später, im September 2003 wurde die Version 1.1 veröffentlicht, welche hier verwendet wird. Ein großer Vorteil für das System ist die Tatsache, dass SVG für Koordinaten Gleitkommazahlen verwendet, und nicht auf Ganzzahlen beschränkt 2 3 Scalable Vector Graphics XML=Extensible Markup Language (erweiterbare Auszeichnungssprache) KAPITEL 4. SYSTEM 61 Abbildung 4.8: Darstellung der Ergebnisse der Schnittpunktberechnung. Die Punkte stellen die berechneten Positionen des Objektes für jedes Frame dar. Je nach ihrer Höhe sind sie heller (höher) bzw. dunkler (niedriger). Da es sich um eine diskrete Zeitfunktion handelt (25fps) stellen die Verbindungslinien die theoretischen Bewegungen zwischen den Frames dar. Wird das Objekt vom Tracking verloren, wird das mit Hilfe einer roten, strichlierten Linie dargestellt. Der Startpunkt ist grün und der Endpunkt rot dargestellt. ist. Damit gehen die genauen Ergebnisse der Berechnung nicht verloren. Wie jedes XML-basierte Dateiformat wird ein Header, der Inhalt und ein Ende in der Datei benötigt. Hier wird der Header vom Server beim Starten erzeugt. Während das Programm läuft, und immer wenn ein Schnittpunkt gefunden wurde, wird von Calculation.java ein Punkt an der berechneten Position im SVG-File hinzugefügt. Außerdem wird der neu erstellte Punkt durch eine Linie mit dem vorherigen verbunden um den Bewegungsfluss zu veranschaulichen. Sobald das Programm beendet wird, bzw. das Video fertig ist, wird das Ende der Datei geschrieben und die Datei zur Ansicht geöffnet. Dimensionen SVG wird als zweidimensionale Grafik auf einem Bildschirm dargestellt, das Ergebnis des Trackings ist aber dreidimensional (X-, Y - und Z-Position), man würde also ohne zusätzliche Maßnahmen eine Dimension verlieren. Es gibt mehrere Möglichkeiten um Tiefe (Z) darzustellen. Die hier gewählte Methode entspricht einem Z-Buffer Bild, was bedeutet, dass Objekte, die sich nahe beim Betrachter befinden, heller dargestellt werden als Objekte, die sich weiter weg befinden. Bei den Objekten handelt es sich hier um die Punkte bzw. Verbindungslinien, die die Position der getrackten Person darstellen. Weltkoordinaten werden als Breitengrad, Längengrad und Höhe über dem Meeresspiegel bestimmt. Der Längengrad bestimmt, wie weit man sich östlich oder westlich vom Nullmeridian befindet.Breitengrade geben die Nord- KAPITEL 4. SYSTEM 62 Süd-Abweichung vom Äquator an. Die Längengrade, also die Ost-West Position, entsprechen hier den X-Koordinaten. Die Breitengrade, also die NordSüd Position, entsprechen den Y -Koordinaten im SVG-Bild. Die dritte Dimension, also die Höhe, wird als Helligkeitswert dargestellt. Die Darstellung in diesem Format entspricht einer Vogelperspektive, wobei helle Punkte weiter vom Erdmittelpunkt entfernt, also höher, und dunkle Punkte näher bei der Erde, also niedriger sind. 4.2.8 Bibliotheken Zum Laden, Bearbeiten und Anzeigen des Videos wurden Bibliotheken verwendet, welche in diesem Abschnitt besprochen werden. Zum Laden wurde die Movie Reader Library verwendet. Sie beinhaltet erweiterte Funktionen der Quicktime Library (QTJava.zip) zum Öffnen der Videos, Extrahieren der einzelnen Frames und zum Konvertieren in das Image Processor Format, welches ImageJ [21] verwendet. ImageJ (ij.jar) wurde zur Bearbeitung der einzelnen Frames verwendet, also zur Objekterkennung, dem Bildverarbeitungsteil der Arbeit. 4.3 Diskussion Abschließend folgt eine Diskussion über die im Projekt verwendeten Techniken in den Bereichen Positionsbestimmung und Objekterkennung. Zusätzlich werden andere mathematische Ansätze zur Schnittpunktberechnung besprochen. 4.3.1 GPS Ungenauigkeiten Das Prinzip der Positionsbestimmung mit GPS funktioniert in der Theorie sehr gut, jedoch gibt es einige Stör- und Fehlerquellen welche zu größeren Ungenauigkeiten führen können. Diese werden in den folgenden Absätzen besprochen und Verbesserungsmöglichkeiten vorgestellt. Selective Availability Da Satellitensignale von jedem empfangen werden können, und damit auch von militärischen Gegnern, hat das US-Militär ursprünglich zum genauen Signal einen künstlichen Fehler (Selective Availability, kurz SA) ungefähr 100 m zur eigentlichen Position hinzugeschaltet. Nachdem die Anwendungen immer präzieser wurden und GPS immer mehr Verwendung im zivilen Bereich (SPS - Standard Positioning System) fand, wurde entschieden, den künstlichen Fehler am ersten Mai 2000 abzuschalten. Damit liegt die Genauigkeit von GPS ohne zusätzliche Hard- und Software heute bei ca. 10 bis 15 m. KAPITEL 4. SYSTEM 63 Mehrwegeffekt Ein anderes Problem ist der Mehrwegeffekt. Er tritt in, oder in der Nähe von Gebäuden auf, wobei die Laufzeiten durch Reflexionen an Hindernissen wie Wänden oder Ähnlichem verfälscht werden. Reflektierte Signale haben durch den längeren Weg eine größere Laufzeit als direkt empfangene Signale. Durch spezielle Helix(Spiral)-Antennen können diese Fehler verringert werden, da die gesendeten Signale rechtsgedreht sind, reflektierte Signale jedoch ihre Polarisierung ändern. Diese Antennen empfangen nur rechtsgedrehte, also unreflektierte, ungestörte Signale. Signalabschwächung In Gebäuden ist oft nur ein schwaches bis gar kein Signal zu empfangen. Dieser Effekt kann verringert werden, indem die GPS-Empfänger nahe bei Fenstern platziert, oder hochsensible Empfänger wie die indoorfähigen Sensoren der Firma u-blox [38] verwendet werden. Mit diesem können Signale auch in Gebäuden mit dicken Wänden wie Einkaufszentren oder Bahnhöfen empfangen werden. Fehlerquellen Der oben genannte Fehler von ca. 15 m entsteht nicht nur in einer einzelnen Fehlerquelle, sondern setzt sich aus der Summe verschiedenster Ungenauigkeiten und Abweichungen zusammen. Die größte Abweichung wird in der Ionosphäre verursacht, einem Teil der äußeren Atmosphäre in der sich durch die ionisierende Kraft der Sonne besonders viele Elektronen und positiv geladene Ionen befinden. Die geladenen Teilchen befinden sich in vier Schichten, welche die elektromagnetischen Wellen der Satelliten brechen, und dadurch zu längeren Laufzeiten der Signale zu den Empfängern führen. Normalerweise werden diese Fehler von den Empfängern korrigiert, jedoch sind zivile Empfänger nicht in der Lage, unvorhergesehene Laufzeitänderungen, wie sie z. B. bei starken Sonnenwinden auftreten können, in die Korrekturen miteinzubeziehen. Die in Tabelle 4.3 beschriebenen Fehler des NAVSTAR-GPS addieren sich zu ungefähr ± 15 Metern. Die einzelnen Werte unterliegen Schwankungen und sind damit als ungefähre Werte anzusehen. Systeme wie WAAS4 und EGNOS5 , welche die ionosphärischen, Umlaufbahn- und Satellitenuhrfehler reduzieren, haben einen Gesamtfehler von nur ungefähr ± 3 - 5 Metern. 4 WAAS: Wide Area Augmentation System, GPS-Erweiterung in den USA EGNOS: European Geostationary Navigation Overlay Service, Differntial GPSErweiterung in Europa 5 64 KAPITEL 4. SYSTEM Ionosphärische Fehler Abweichung von der Satellitenumlaufbahn Satellitenuhrfehler Mehrwegeffekt Troposphärische Fehler Berechnungsfehler ±5m ± ± ± ± ± 2,5 m 2m 1m 0,5 m 1m Tabelle 4.3: Aufschlüsselung der Zusammensetzung der durchschnittlichen GPS-Abweichung von ungefähr 15 Meter [19]. Möglichkeiten zur Fehlerbehebung Die GPS-Ungenauigkeiten beeinflussen die Präzision des hier vorgestellten Systems maßgeblich. Da der Fehler nicht immer gleich ist, könnten zwei GPS Empfänger, obwohl sie sich quasi am gleichen Ort befinden, Positionen bestimmen, welche im schlimmsten Fall bis zu 30 Meter auseinander liegen. Es liegt auf der Hand, dass solche Unterschiede die Ergebnisse des Systems extrem verfälschen bzw. es unmöglich machen einen Schnittpunkt zu finden, da die Entfernung der Vektoren zu groß wird. Es werden also genauere GPS Daten benötigt. Am einfachsten wäre es, die GPS Empfänger zu synchronisieren, sodass alle den gleichen Fehler haben. Damit läßt sich zumindestens ein Schnittpunkt berechnen, der Ungenauigkeitsfaktor des GPS Fehlers bleibt jedoch bestehen. Synchronisation der GPS Empfänger wäre möglich, wenn die Clients vor dem Aufbau des Systems nahe beieinander positioniert und miteinander kommunizieren würden, um so eine gemeinsame Positionen zu ermitteln. Mit dieser Position könnten sie den Offset zu ihrer eigenen Position speichern und diesen Offset bei der Positionsübermittlung an den Server miteinbeziehen. Differential GPS Zur Erhöhung der Genauigkeit von GPS existieren verschiedene Ansätze. Eines dieser Verfahren heißt Differential GPS. Normalerweise wird nur ein Empfänger zur Positionsbestimmung verwendet. Beim Differential GPS werden mehr als ein Empfänger verwendet um die Genauigkeit zu erhöhen. Präzieser ausgedrückt handelt es sich um einen normalen Empfänger, dessen Position bestimmt werden soll und sogenannte GPS-Basisstationen, deren genaue Positionen bekannt sind. Die Basisstationen sind auch mit GPSEmpfängern ausgestattet um den Positionsfehler zwischen ihrer wirklichen und ihrer empfangenen Position zu ermitteln. Dieser Positionsfehler kann auf mehrere Arten bestimmt werden. Bei der einfachsten Methode wird nur der Positionsunterschied an der Basisstation bestimmt, an den normalen Empfänger übermittelt und dort rückgerechnet. KAPITEL 4. SYSTEM 65 Dafür muss der Empfänger aber Signale von den gleichen Satelliten empfangen wie die Basisstation, was nur in der Nähe der Basisstation der Fall ist. Der Fehler reduziert sich damit auf 0,3 bis 2,5 Meter für Längen- und Breitengrad und auf 0,6 bis 5 Meter für die Höhe. Er nimmt mit wachsender Distanz zwischen Empfänger und Basisstation zu. Bei einer anderen Methode werden die Fehler der Strecken zu dem Satelliten berechnet, womit die Bedingung der gleichen Satelliten wegfällt. Der Positionsfehler wird damit kleiner als ein Meter. Hochqualitative Systeme führen zusätzlich eine Trägerphasenmessung durch um Unterschiede in der Phasenlage zwischen gesendetem und empfangenem Signal auszuwerten und so den Fehler zu minimieren. Die Phasenverschiebung wird durch einen Vergleich der Trägerschwingung mit einer empfängereigenen Referenzschwingung gemessen [26]. Die Genauigkeit liegt bei diesem Verfahren bei einem bis zehn Millimeter Positionsunterschied pro Kilometer Abstand vom Empfänger zur Basisstation. Ohne Differential GPS, jedoch mit Untersuchung der Trägerphase sind Genauigkeiten von ca. einem Meter möglich [39]. Vergleich Wie schon erwähnt, liefern unterschiedliche Empfangsgeräte und Empfangsmethoden unterschiedliche Genauigkeiten. GPS-Signale vor der Abschaltung der Selective Availability (SA) waren mit einem durchschnittlichen Fehler von 100 Metern unbrauchbar für das hier vorgestellte Projekt. Auch normale GPS Empfänger, welche nur mit dem Signal der Satelliten die Position bestimmen liefern mit bis zu 15 Metern Abweichung ein noch zu ungenaues Ergebnis. Wird jedoch auch die Trägerphase des Signals miteinbezogen, kann der Positionsfehler auf ca. 1 Meter beschränkt werden, wodurch mit diesem System die Positionsbestimmung von größeren Objekten wie Autos möglich wäre. Beim oben beschriebene Differntial GPS liegt die Genauigkeit innerhalb der selben Größenordnung wie bei normalem GPS mit Trägerphase. Wird diese jedoch bei DGPS zur Berechnung hinzugezogen, lassen sich damit Positionen mit einer Abweichung von nur 1 Millimeter bestimmen. Diese Abweichung ist absolut zu tolerieren, wenn wie in diesem Fall Objekte einer Größe von mindestens einem halben Meter getrackt werden sollen. Tabelle 4.4 liefert eine Übersicht der durchschnittlichen Abweichungen der verschiedenen NAVSTAR GPS Systeme. 4.3.2 Objekterkennung Grundsätzlich soll immer eine Person oder ein Objekt getrackt werden. Sind in einem Bild aber mehrere Regionen erkennbar, welche Objekteigenschaften aufweisen, muss für das Erreichen eines vernünftigen Ergebnisses eine Auswahl getroffen werden. Auch wenn kein Objekt auffindbar ist, kann es sich 66 KAPITEL 4. SYSTEM Verfahren GPS (mit SA) GPS (SA abgeschaltet, nur Signal) GPS (SA abgeschaltet, mit Trägerphase) DGPS (nur Signal) DGPS (mit Trägerphase) Ungefähre Genauigkeit 100 m 15 m 1m 0,3-2,5 m (Lage) 0,6-5 m (Höhe) 1-10 mm pro Kilometer Abstand zur Basisstation Tabelle 4.4: Diese Tabelle zeigt die durchschnittlichen Genauigkeiten verschiedener GPS-Verfahren. DGPS-Empfänger, welche zusätzlich zum Signal auch die Trägerphase auswerten haben eine, für das MulitkameraTrackingsystem geeignete, Genauigkeit. um eine Fehlinterpretation handeln. Diese Problematik kennt grundsätzlich mehrere Fälle, die nachfolgend bearbeitet werden. Mehrere Objekte Das hier vorgestellte Multikamera-Trackingsystem ist grundsätzlich nur zum Tracken eines Objektes oder einer Person ausgelegt. Ein Konzept zum Tracken mehrerer Objekte gleichzeitig wird im Abschnitt 6.3.3 vorgestellt. In einer viel frequentierten Umgebung sind jedoch öfters mehrere Personen im Bild einer Kamera, wobei je nach Art der Objekterkennung auch mehrere Regionen als Zielobjekt erkannt werden können. Hier ist es wichtig, die Entscheidung für die richtige Region im Bild zu treffen. Im Prototypen muss die zu trackende Person eine gelbe Jacke tragen, welche im Normalfall problemlos zu erkennen ist. Sind mehrere gelbe Jacken im Bild, kann im Prototypen nicht die richtige bestimmt werden. Durch Verfolgung einer Person bzw. Position im Bild können jedoch, sofern die Person anfänglich richtig erkannt wurde, andere Personen mit gelben Jacken ausgeschlossen werden. In zukünftigen Entwicklungen sind Verbesserungen zur Objekterkennung, wie im Abschnitt 6.3 beschrieben, vorgesehen. Objektverdeckung Grundsätzlich ist bei der Platzierung der Kameras darauf zu achten, dass diese eine gute Sicht auf das einzusehende Gebiet haben. Jedoch ist nicht auszuschließen dass Hindernisse das gesuchte Objekt hin und wieder verdecken. Es ist also, obwohl es nicht über den Bildrand hinaus verloren gegangen ist, plötzlich nicht mehr im Bild. Durch Bewegungsverfolgung ist es möglich, kurze Vorraussagen über die wahrscheinliche Position des Objektes in den nächsten Frames zu machen. Je länger das Objekt nicht im Bild ist, desto ungenauer werden die Voraussagen, da sich, vor allem Personen, frei KAPITEL 4. SYSTEM 67 und unberechenbar bewegen und jederzeit die Richtung ändern oder an einer Position verharren können. Diese Vorhersagen sind deshalb vorwiegend während einer kurzen Verdeckung nützlich um die Objektposition nicht zu verlieren. Ein Spezialfall der Objektverdeckung ist die teilweise Verdeckung. Dabei gibt es zwei Möglichkeiten. Erstens um die Verdeckung nur einer Seite, bei der das Objekt eine zusammenhängende Region bleibt. Bei der zweiten Variante wird die Region durch ein Objekt getrennt. Dies kann geschehen wenn sich die gesuchte Person z. B. hinter einem Masten oder einem Zaun befindet. Bei der ersten Variante kann die Region normal durch Farbblobs erkannt werden, jedoch stimmt der berechnete Schwerpunkt nicht mehr mit dem wirklichen Mittelpunkt der Region überein. Die maximale Abweichung beträgt dabei jeweils die Hälfte der Breite bzw. der Höhe. Durch Verfolgung des Objektmittelpunktes und dessen Geschwindigkeit können, in Verbindung mit der Größe der Region, zumindestens für eine kurze Objektverdeckung Vorraussagen der vermutlichen Position getroffen werden. Die Region besteht aus einer bestimmten Anzahl an Pixel die sich im Normalfall nur langsam, und durch Hinzu- und Wegbewegen der Person in Richtung der Kamera verändert. Ändert sich die Größe der Region jedoch schneller als gewöhnlich, kann davon ausgegangen werden, dass es sich um eine teilweise Verdeckung handelt. Das selbe Prinzip gilt beim Verlassen des Bildes. Bei der zweiten Variante ist das Verdeckungsobjekt, zumindestens in der Perspektive, kleiner als das getrackte Objekt. Da, wie im Abschnitt 4.3.2 besprochen, im Prototypen immer nur ein Objekt getrackt werden soll, wird in diesem Fall immer der wahrscheinlichere, in diesem Fall größere, Teil bevorzugt. Auch bei dieser Variante wäre die Verfolgung der Bewegung des Mittelpunktes eine Möglichkeit um das Problem zu umgehen. Dabei hilf die so genannte Bounding Box, wobei beide Teile des zu trackenden Objektes in der vorausgesagten Bounding Box liegen würden. Die Berechnung des Mittelpunktes bzw. des Schwerpunktes wird im folgenden Abschnitt weiter besprochen. Schwerpunktberechnung Die Schwerpunktberechnung liefert jenen Punkt im Bild, der den Flächenschwerpunkt der gefundenen Region beschreibt. Es handelt sich um den Punkt, durch den der Strahl vom Kamerazentrum aus in Richtung Objekt gelegt wird. Er wird wie in Formel 3.10 beschrieben berechnet. Da es sich um den arithmetischen Mittelpunkt der zur Region gehörigen Pixel handelt ändert sich dieser natürlich je nach Ansicht und Haltung des zu trackenden Objektes. Wird ein Objekt aus mehreren Ansichten aufgenommen, kann dieser Flächenschwerpunkt in jedem Bild zu einer anderen Stelle des Objektes zeigen. Ist das Objekt kugelförmig, ist der Mittelpunkt stabil und von allen Seiten aus ungefähr gleich weshalb in der Objekterkennung gerne Kugeln 68 KAPITEL 4. SYSTEM a) b) c) d) Abbildung 4.9: In allen vier Bildern befindet sich die zu trackende Person an der gleichen Position. Das rote Fadenkreuz markiert den berechneten Flächenschwerpunkt in den verschiedenen Fällen. Bild a) zeigt den Normalfall, wenn die Person aufrecht steht und beide Arme hängen läßt. Der berechnete Flächenschwerpunkt würde aus den meisten Perspektiven an der gleichen Position liegen. Bild b) beschreibt den Fall, dass nur ein Arm ausgestreckt wird und sich der Flächenschwerpunkt aus dieser Perspektive damit in die Richtung des ausgestreckten Armes verlagert. Im dritten Bild c) verschiebt sich der Flächenschwerpunkt durch Heben beider Arme nach oben und das vierte Bild d) zeigt den ungünstigsten Fall. Zwei Objekte wurden gefunden, jedoch keine Auswahl getroffen und der gefundene Flächenschwerpunkt befindet sich damit zwischen den Objekten und in weiterer Folge kann kein Schnittpunkt gefunden werden. verwendet werden. Ist die Region jedoch konvex mit unsymmetrisch herausragenden Teilen, kann es zu Unterschieden der Position des Mittelpunkts in den verschiedenen Bildern kommen. Das hier verwendete Trackingverfahren durchsucht Bilder nach Personen und basiert auf der Erkennung von Oberkörper inklusive Arme. Da Hände beim Gehen im Allgemeinen gegengleich schwingen, sollte der Mittelpunkt in den meisten Fällen sehr stabil sein, da sich die Regionen beider Arme bei der Berechnung des Flächenschwerpunkts aufheben. Ragt jedoch nur ein Arm aus der Region, wird der Flächenschwerpunkt in dessen Richtung verschoben. Es würden mehr Pixel auf der Seite des Armes in die Schwerpunktberechnung einfließen. Genauso wenn ein Teil des Objektes verdeckt wird oder mehrere Objekte erkannt werden. Wenn zwei gleich große Objekte in einem Bild er- 69 KAPITEL 4. SYSTEM Abstand: 5 m 25 fps 5 fps 5 km/h 8 39 40 km/h 64 311 Abstand: 20 m 25 fps 5 fps 5 km/h 2 10 40 km/h 16 78 Tabelle 4.5: Hier wird eine Auflistung der Abstände der Objektpositionen zwischen zwei Frames in Pixel gegeben. Je nach Abstand des Objektes der Kamera, seiner Geschwindigkeit und der Anzahl der Frames pro Sekunde ist dieser Abstand unterschiedlich groß. Kleinerer Abstand, geringere Framerate und größere Geschwindigkeit des Objektes erhöhen diesen Wert. kannt würden, und sich eines in der rechten oberen Ecke befinden würde und das andere in der linken unteren, wäre der Flächenschwerpunkt, sofern keine Vorauswahl getroffen wurde, in der Mitte des Bildes, wo sich jedoch kein Objekt befindet. Abbildung 4.9 zeigt deutlich, welche Auswirkung Arme oder mehrere gefundene Objekte auf den Flächenschwerpunkt haben können. Kameras Von der Kamera erhält man das Videobild, aus welchem das Objekt herausgefiltert werden soll. Je nach Anwendung werden unterschiedliche Anforderungen an die Kamera gestellt, wobei die wichtigste die Auflösung des Videobildes ist. Je nach Größe und Entfernung des gesuchten Objektes sollte die Kameraauflösung ausgewählt werden. Auch die Rechengeschwindigkeit des Clients sollte berücksichtigt werden (s.o.: PDAs sind zwar praktisch, aber langsamer). Denn eine Verdopplung von Sensorlänge und Sensorbreite entspricht einem Vierfachen an zu bearbeitenden Pixeln. Zusätzlich muss die Anzahl der Videobilder pro Sekunde, also die Frames per Second (fps), berücksichtigt werden. Bewegt sich ein Objekt sehr schnell, und werden nur wenige Videobilder pro Sekunde aufgenommen, würden die Bewegungsdaten nur sehr ungenau. Die Position eines Objektes, welches sich mit 5 km/h bewegt, ändert sich bei 25 fps um 5 cm pro Frame. Bei nur 5 fps bewegt es sich schon 27,7 cm pro Frame. Welchen Pixelunterschied das pro Frame ergibt, wird in Tabelle 4.5 gezeigt. Dieser hängt natürlich vom Abstand des Objektes zur Kamera ab. Je kleiner dieser Abstand ist, desto größer wird der Unterschied seines Mittelpunktes zwischen zwei Frames. Um bei dem oben gewählten Beispiel zu bleiben ändert sich, wenn sich das Objekt parallel zur Sensorfläche mit 5 km/h bewegt, bei einer Framerate von 25 fps und einem Abstand von 20 m um ungefähr 2 Pixel, bei einem Abstand von 5m hingegen sind es schon ca. 8 Pixel. Somit ist klar, dass je nach Verwendungszweck unterschiedliche Kamera- KAPITEL 4. SYSTEM 70 eigenschaften wichtig sind. Sind detailierte Bilder zur Erkennung notwendig sind Kameras mit hoher Auflösung zu wählen. Dies ist der Fall bei kleinen Objekten oder bei Objekten in großer Entfernung. Bei niedriger Rechenleistung der Clients sollte abgewogen werden, ob nicht eine niedrigere Auflösung zur Objekterkennung ausreicht. Wird eine hohe Auflösung benötigt, müssen demnach auch schnelle Rechner als Clients eingesetzt werden. Am einfachsten zu tracken sind natürlich große, auffällige Objekte, die sich langsam bewegen. Zum Testen wird hier eine Person mit einem Abstand von ca. 4 bis 9 Metern getrackt. Schrittgeschwindigkeit liegt bei 4-5 km/h, somit bewegt sich der Mittelpunkt des Objektes bei ca. 6 fps pro Frame maximal (parallel zum Sensor) um ca. 30 Pixel. Würden fahrende Autos getrackt, würde eine höhere Auflösung, ein größerer Abstand oder mehr fps benötigt, um die Bewegungsdaten genauso fein zu berechnen. Die Freiheitsgrade einer Kamera sind der Abstand zwischen Sensor und Linse und die Sensorgröße. Mit diesen zwei Größen können die Winkelfunktionen ausgeführt werden, welche zur Berechnung des Richtungsvektors nötig sind. Je größer der Abstand und der Sensor sind, desto stabiler werden die Werte und umso genauer die Ergebnisse. Bei der hier verwendeten Kamera handelt es sich um eine Sony Digital Cyber Shot W7 mit einer Videoauflösung von 640 × 480 Pixeln und theoretischen 25 fps. Der Abstand zwischen Sensor und Linse beträgt 7,8456 mm und die Sensorgröße 7, 176×5, 319 mm. Das entspricht einem 1/1,8“ Sensor [31]. Da diese internen Kameraparameter bekannt sind können die verwendeten Kameras als kalibriert angenommen werden und müssen im System nicht extra kalibriert werden. 4.3.3 Schnittpunktberechnung Es kann bei der Schnittpunktberechnung durchaus vorkommen, dass sich Strahlen hinter den Kameras, also ausserhalb des überwachten Bereichs, schneiden. Irrtümlich gefundene Objekte oder GPS Fehler können zu fehlerhaft berechneten Strahlen, und damit zu falschen Schnittpunkten, führen. Diese Schnittpunkte können sich aus irrtümlich gefundenen Objekten oder GPS Fehlern und den, aus diesen Informationen berechneten, Strahlen ergeben. Der Startpunkt der verwendeten Strahlen liegt im Kamerazentrum. In diesem Punkt ist der λ-Wert der Geradengleichung 3.26 im Abschnitt 3.3.2 gleich Null. Ist λ positiv, liegt der berechnete Punkt vor der Kamera, bei negativem λ hingegen würde der Punkt hinter der Kamera liegen. Durch eine Überprüfung der Vorzeichen der Parameter λ jener Strahlen, die zur Schnittpunktberechnung herangezogen werden, läßt sich also eine Objektposition ausserhalb des überwachten Bereichs ausschließen. Außerdem ergeben sich je nach Winkel der Vektoren zueinander bei der Rotation eines Vektors um jeweils den gleichen Winkel unterschiedliche Abweichungen vom Schnittpunkt. Je näher der Winkel δ bei 90◦ liegt, desto geringer sind die Abweichungen. Je stärker dieser Winkel von 90◦ abweicht, 71 KAPITEL 4. SYSTEM r2 d r2 d r1 a) r1 b) Abbildung 4.10: Der Winkel δ der zu schneidenden Vektoren r~1 und r~2 zueinander ist ausschlaggebend für die entstehende Abweichung bei einer Rotation oder Translation eines Vektors gegenüber dem Anderen. In Fall a) schneiden sich die Vektoren mit beinahe 90◦ , in Fall b) in einem spitzen Winkel. Die Abweichung der schwarzen Punkte vom roten Schnittpunkt zeigt in Fall b) eine deutlich größere Abweichung. Je genauer sich die Vektoren in einem rechten Winkel schneiden, desto geringer wirken sich kleine Abweichungen auf die Schnittpunktberechnung aus. desto größer wird die Abweichung die sich auch bei nur minimaler Rotation ergibt. Diese Rotationen können durch unterschiedliche Schwerpunkte einer Region entstehen. Es zeigt sich also, dass sich Fehler in der Schwerpunktberechnung bei stumpfen oder spitzen Winkeln zwischen den Vektoren stärker auf den berechneten Schnittpunkt auswirken als bei einem rechten Winkel. Beim Setup des Systems ist deshalb darauf zu achten, dass bei gleicher Ausrichtung der Kameras ein gewisser Mindestabstand eingehalten wird und die Kameras nicht direkt aufeinander gerichtet werden. Abbildung 4.10 zeigt in a) einen Fall, bei dem sich die Vektoren beinahe im rechten Winkel und in b) in einem spitzen Winkel schneiden. Die schwarzen Punkte zeigen jeweils die Abweichung, welche sich bei der gleichen Rotation des Vektors r~2 gegenüber dem Vektor r~1 ergibt. Mehrere Kameras Die im Abschnitt 3.3.2 vorgestellte Methode der Schnittpunktberechnung ist für zwei Kameras ausgelegt. Von den Strahlen der Kameras zum Objekt wird der Schnittpunkt dieser Strahlen durch den Mittelpunkt des geringste Abstandes zueinander bestimmt. Werden mehr als zwei Kameras im System verwendet, wird zwischen allen Strahlen paarweise der jeweilige Schnittpunkt errechnet und aus der resultierenden Punktwolke an Schnittpunkten wiederrum der Mittelwert errechnet. Abbildung 4.11 zeigt die Berechnung des absoluten Schnittpunkts aus den Schnittpunkten der Strahlenpaare. Die Schnittpunktberechnung mit zwei Strahlen wird damit je nach Anzahl der verwendeten Kameras n 72 KAPITEL 4. SYSTEM Vektor Vektor Vektor + + a) + + Vektor + Geringster Abstand Vektor Geringster Abstand b) Abbildung 4.11: Hier wird die Schnittpunktberechnung mit mehreren Kameras dargestellt. Bild a) zeigt die normale Version mit zwei Kameras, bei der der Abstand wie im Abschnitt 3.3.2 beschrieben, ausgeführt wird. In Bild b) ist die Vorgehensweise mit drei Kamerastrahlen beschrieben. Es werden von allen möglichen Strahlenpaaren die Mittelpunkte berechnet und anschließend aus dieser Punktwolke der arithmetische Mittelpunkt bestimmt. Hier gilt es so genannte Ausreißer auszuschließen um den Fehler so gering wie möglich zu halten. b= n−1 X i=1 i= n · (n − 1) 2 (4.1) b-mal ausgeführt, und anschließend der Mittelwert der Punktwolke gebildet. Bei drei verwendeten Kameras wird die Berechnung also 3× durchgeführt, bei fünf Kameras 10× und bei sechs Kameras 15×. Da die Berechnung sehr schnell ist, und nur einen kleinen Teil der Rechenzeit pro Frame benötigt, ist diese stark ansteigende Zahl an Iterationen bis zu einer gewissen Anzahl an Kameras zu tolerieren. Werden sehr viele Kameras verwendet, sollte für die Berechnung ein anderer Ansatz, wie in Absatz 4.3.4 besprochen, zur Schnittpunktberechnung verwendet werden. Bei der Verwendung von nur zwei oder auch mehreren Kameras kann es immer vorkommen, dass ein falscher Strahl berechnet wird. Dies ist möglich durch falsche Objekterkennung oder Ungenauigkeiten. Bei mehreren Strahlen ist wichtig zu prüfen, ob in der Punktwolke der Schnittpunkte so genannte Ausreißer vorkommen, da diese das Gesamtergebnis stark negativ beeinflussen können. Zuerst wird eine Abstandswertung durchgeführt, bei der je nach Abstand des Schnittpunktes zu den Kameras der geringste Abstand zwischen den Strahlen auf Brauchbarkeit untersucht wird. Zusätzlich soll überprüft werden, ob sich der Schnittpunkt als einziger weit ausserhalb der Punktwolke befindet. Sind keine dieser Kriterien erfüllt, handelt es sich um einen zur Berechnung verwendbaren Strahl. KAPITEL 4. SYSTEM 4.3.4 73 Andere Ansätze Bei dem hier vorgestellten System wird davon ausgegangen, dass die Kameraparameter bekannt sind, also die Kamera kalibriert ist. Im Gegensatz dazu beschreiben Richard Hartley und Andrew Zissermann in ihrem Buch Multiple View Geometry in Computer Vision [15] Ansätze zur Berechnung von Positionen durch zwei bis n Bilder ohne vorherige Kalibrierungsschritte. Neben mathematischen Grundlagen werden hauptsächlich Techniken zur Wiederherstellung von 3D-Szenen aus 2 bis n Bildern vorgestellt. Wenn weder die Kamerakalibration noch die Punkte in der Welt bekannt sind, kann zwar die Form eines Objektes (zB Würfel, Haus,. . . ) bestimmt werden, jedoch weder seine Größe noch seine Orientierung oder Position in der Welt. Diese Unbestimmtheiten werden als reconstruction ambiguity oder Wiederherstellungsungewissheit bezeichnet. Die dritte Unbestimmtheit, die Position in der Welt, ist jedoch für das Multikamera-Trackingsystem ausschlaggebend. In diesem Abschnitt werden die im Buch beschriebenen Methoden zur Wiederherstellung von 3D Szenen vorgestellt. Zuerst wird die Rekonstruktion mit zwei Kameras beschrieben und auch generelle Grundlagen erklärt. Anschließend werden die Methoden, aufbauend auf zwei Ansichten, auf drei erweitert. Der trifokale Tensor und seine Bestimmung werden ausführlicher behandelt. Weiterführend wird die Rekonstruktion auf n, also beliebig viele Kameras, ausgeweitet. Eine Sonderstellung nimmt dabei die Szenenwiederherstellung durch Bildsequenzen mit bewegter Kamera ein, welche in diesem Kapitel abschließend behandelt wird. Zwei Kameras Die epipolare Geometrie ist die intrinsische projektive Geometrie zwischen zwei Ansichten. Sie ist nur von den inneren und äußeren Kameraparametern abhängig und nicht von der Szenenstruktur. Die Fundamentalmatrix F (siehe Tabelle 4.6) beinhaltet die vollständige geometrische Beziehung der Bildpunkte in Bildkoordinaten in einer 3 × 3 Matrix in einem unkalibrierten System. Sie besitzt 7 Freiheitsgrade und wird durch die Abbildung eines Punktes auf seine epipolare Linie mit anschließendem Spezifizieren der Eigenschaften der Matrix berechnet. Sind die inneren Kameraparameter bekannt, spricht man von kalibrierten Systemen und zur Rekonstruktion wird statt der Fundamentalmatrix die Essentialmatrix E verwendet, welche mit normalisierten Parametern und Bildpunkten in Sensorkoordinaten arbeitet. Mit zwei Unbekannten für die Translation und drei für die Rotation enthält sie insgesamt fünf Freiheitsgrade. Die Fundamentalmatrix wird aus den Beziehungen zwischen korrespondierenden Punkten berechnt wofür es verschiedene Methoden gibt. Bekannte Vertreter sind der 8-Punkt Algorithmus, der 7-Punkt Algorithmus und die 74 KAPITEL 4. SYSTEM Essentialmatrix ... Fundamentalmatrix ... Korrespondierende Bildpunkte Homographie ... ... Trifokaler Tensor ... Trifokale Ebene ... Epipol ... Epipolare Ebene ... Epipolare Linie ... Baseline Faktorisierung Bündelausgleich ... ... ... Geometrische Beziehung zwischen korrespondierenden Bildpunkten in kalibrierten Systemen Geometrische Beziehung zwischen korrespondierenden Bildpunkten in unkalibrierten Systemen Zusammengehörige Punkte mit gleichen Features in mehreren Ansichten Korrespondenz zwischen zwei Bildern bezüglich einer Objektebene Zusammenfassung der Fundamentalmatrizen aus drei Ansichten Durch die drei Kamerazentren definierte Ebene Abbildung des optischen Zentrums der anderen Kamera auf der Bildebene Durch die Kamerazentren und Punkt aufgepannte Ebene Schnitt zwischen epipolarer Ebene und Bildebene Verbindugslinie zwischen Kamerazentren Methode zur Rekonstruktion einer 3D Szene Simultane Bestimmung der Kameraparameter und 3D-Struktur einer Szene aus mehreren Ansichten Tabelle 4.6: Erläuterung der wichtigsten Begriffe der Bücher Multiple View Geometry in Computer Vision [15] und Stereoanalyse und Bildsynthese [30]. Gold Standard Methode. Darüber hinaus gibt es noch mehrere iterative Ansätze [15, S.282 ff.]. Wird ein Punkt X im dreidimensionalen Raum in einer Ansicht als Punkt x und in einer zweiten Ansicht als x′ abgebildet, so gilt: x′T F x = 0 (4.2) Abbildung 4.12 zeigt das Prinzip der epipolaren Geometrie. Von Kamera C wird ein Strahl in Richtung des in der Abbildung gefundenen Punktes x gelegt. Mit nur einer Ansicht ist es nicht möglich die Position des Punktes in der Welt zu bestimmen. Die Möglichkeiten der Position des Punktes beschreiben eine Linie in der zweiten Ansicht, die epipolare Linie l bzw. l′ . Die epipolare Ebene wird durch die zwei Kamerazentren und X bestimmt und rotiert je nach Position von X um ihere Basislinie, die Verbindung der 75 KAPITEL 4. SYSTEM Punkt im Raum X X? X? Bildebene Epipolare Ebene l Projizierter Punkt Kamera l´ x´ x e´ e C Epipol Basislinie C´ Epipolare Linie Abbildung 4.12: Epipolare Geometrie mit Begriffsdefinitionen. Die Position des Punktes X soll aus den zwei Ansichten der Kameras C und C ′ ermittelt werden [15, S.240]. Kamerazentren. Die Epipole, also die Schnittpunkte der Basislinie mit den Bildebenen, werden als e und e′ bezeichnet. Aus der Fundamentalmatrix bzw. der Essentialmatrix lässt sich für jede Kamera mit Hilfe ihrer Parameter ihre Kameraprojektionsmatrix P bzw. P ′ errechnen. Zur Rekonstruktion des Punktes X soll damit grundsätzlich folgende Gleichung gelöst werden: P X = x bzw. P ′ X = x′ (4.3) Bei der Rekonstruktion einer 3D Szene mit zwei Ansichten wird laut Hartley und Zissermann [15, S.277] wie folgt vorgegangen: 1. Berechnen einer projektive Rekonstruktion (P, P ′ , X): (a) Berechnen der Fundamentalmatrix F aus den Punktbeziehungen xi ↔ x′i . (b) Berechnen der Kameramatrizen P und P ′ aus der Fundamentalmatrix. (c) Triangulation aller korrespondierenden Punkte xi ↔ x′i zur Berechnung der Punkte Xi . 2. Verbessern der projektiven Rekonstruktion zu einer Metrischen. (a) entweder direkt durch Berechnung der Homographie H so dass XEi = HXi . (b) oder stratifiziert. KAPITEL 4. SYSTEM 76 i. für eine affine Rekonstruktion. ii. oder eine metrische Rekonstruktion. Drei Kameras Wie oben beschrieben beinhaltet eine Fundamentalmatrix jeweils die Geometrie zweier Ansichten. Bei drei verwendeten Kameras sind drei Kamerapaarkombinationen möglich: F12 , F23 und F13 . Sie werden zum trifokalen Tensor T in einer 3 × 3 × 3 Matrix zusammengefasst. Er besitzt 27 Elemente und 18 Freiheitsgrade. Seine drei geometrischen Haupteigenschaften sind die Homographie H zwischen den Ansichten, die Beziehung zwischen korrespondierenden Punkten und Linien sowie die Fundamental- und Kameramatrizen der gesamten Geometrie der Szene. Deshalb lassen sich aus ihm wieder die Kameramatritzen P , P ′ und P ′′ , die Homographie H sowie die Epipole e, e′ und e′′ berechnen. Es gibt mehrere Methoden zu seiner Berechnung. Die gängigste Variante ist die nachfolgend beschriebene Methode mit RANSAC6 Algorithmus. 1. Berechnen von auffälligen Punkten in allen Bildern. 2. Berechnen von Punktbeziehungen und der Fundamentalmatrix F zwischen den Ansichten 1&2 und 2&3. 3. Berechnen von vermeintlichen Punktbeziehungen zwischen allen drei Ansichten durch Verbinden von Paaren aus allen Ansichten. 4. Robuste RANSAC-Schätzung: (a) Auswählen von 6 zufälligen Punktbeziehung und berechnen ihres trifokalen Tensors (eine oder drei reale Ergebnisse). (b) Berechnen der Distanz jeder vermeintlichen Beziehung. (c) Berechnen und Verwerfen der Ausreißer. (d) Bei drei realen Ergebnissen wird T für alle drei Ergenisse berechnet und die bestse Lösung behalten. 5. Wiedereinschätzung von T ohne den Ausreißern durch den Gold Standard Algorithmus oder die Sampson Angleichung. 6. Bestimmen weiterer Punktbeziehungen mit Hilfe des berechneten T . Weitere Methoden wie der schon erwähnte Gold Standard Algorithmus, Methoden mit normalisierten Linearen und jene, die den algebraischen Fehler minimalisieren werden in [15, S.394 ff.] beschrieben. Der grundsätzliche Ablauf der Rekonstruktion bleibt bei drei Kameras gleich wie beim weiter 6 RANSAC = Random Sample Consensus KAPITEL 4. SYSTEM 77 oben vorgestellten Ansatz für zwei Kameras. Jedoch ist es ab drei Ansichten möglich Linien zu rekonstruieren was das Ergebnis stabilier werden läßt. Sind bei zwei Ansichten noch Ungewissheiten im Spiel, können Punkte aus drei Ansichten ganz genau bestimmt werden. Sind in allen drei Ansichten korrespondierende Linien vorhanden, sind die Gleichungen zum Rekonstruieren der Szene sogar überbestimmt. Mehrere Kameras Werden vier Ansichten zur Rekonstruktion verwendet spricht man statt dem trifokalen Tensor vom quadrifokalen Tensor. Für mehr als vier Ansichten sind diese mathematischen Beziehungen noch nicht untersucht. Auch hier ist die Bünelausgleichsrechnung die geläufigste Methode zur projektiven Rekonstruktion der 3D-Szene. Es handelt sich um eine iterative Methode, in welcher versucht wird ein nichtlineares Modell zu den korrespondierenden Punkten zu finden. Sie braucht, da iterativ, einen guten Startpunkt um zu einem Ergebnis zu kommen. Deswegen wird zuvor immer eine einfache Rekonstruktionsmethode durchgeführt und erst darauf die Bündelausgleichung angewendet. Zusätzlich müssen zur erfolgreichen Rekonstruktion mindestens 5 Punktbeziehungen vorhanden sein, jedoch ist die Methode tolerant gegenüber fehlenden Bildpunkten in manchen Ansichten. Die Bündelausgleichsrechnung ist als iterative Methode generell eher langsam, kann aber durch performante Umsetzungen aber auch beschleunigt werden. Neben der Bündelausgleichsrechnung sind auch affine [15, S.437] und projektive [15, S.445] Faktorisierungsmethoden zu Rekonstruktion aus mehreren Ansichten üblich. Hierbei müssen jedoch immer alle Punkte, die zur Rekonstruktion verwendet werden sollen, in allen Ansichten vorhanden sein. Tomasi und Kanade haben in [36] eine Faktorisierungsmethode mit MaximumLikelihood-Schätzung der Szene für affine Kameras vorgestellt. Ihre Methode ist optimal und schnell, da sie keine Iterationen verwendet, jedoch müssen auch hier alle Punkte immer von allen Kameras aus sichtbar sein. Eine projektive Faktorisierungsmethode mit iterativer Faktorisation haben Sturm und Triggs in [32] entwickelt. Es handelt sich hierbei nicht um eine Maximum-Likelihood-Schätzung aber wieder müssen alle Punkte allen Ansichten aufscheinen. Tang und Hungs [34] Methode verallgemeinert das Faktorisierungsverfahren um auch eine Rekonstruktion bei fehlenden Punkten in manchen Ansichten zu erlauben. Sie verwenden eine objektive Funktion welche eine Annäherung garantiert, jedoch zu keiner Maximum-LikelihoodSchätzung führt. Han und Kanade haben in [13] eine iterative Methode zur projektiven Rekonstruktion vorgestellt, welche anschließend durch metrische Zwänge auf die Kameramatrizen zu einer metrischen Rekonstruktion verbessert wird. Sie kann mit der Bündelausgleichsrechnung oder Tang und Hungs Methode zum Umgang mit fehlenden Daten verbunden werden [8]. KAPITEL 4. SYSTEM 78 Bildsequenzen Eine Sonderform der Rekonstruktion aus mehreren Ansichten ist die Rekonstruktion aus Bildsequenzen. Bis jetzt wurde von n Kameras, welche alle zur gleichen Zeit aus unterschiedlichen Ansichten auslösen, ausgegangen. Hier jedoch handelt es sich um eine einzelne bewegte Kamera bzw. eine Videokamera, welche n Bilder hintereinander, also zu unterschiedlichen Zeitpunkten, aufnimmt. Bei der Aufnahme einer 3D-Szene zu unterschiedlichen Zeitpunkten ergeben sich Probleme durch bewegte Objekte, da sie sich in jeder Aufnahme an einer anderen Position im Raum befinden bzw. auch anders geformt sein können. Wichtig ist, dass die Kamera bewegt wird, bei einer starr montierten Kamera wären keine Bilder aus unterschiedlichen Ansichten möglich. Durch die projektivische Verzerrung ist es ausreichend die Kamera nur in eine Richtung zu bewegen (z. B. nach vorne). Algorithmus zur Rekonstruktion einer 3D-Szene aus einer Bildsequenz [15, S.453]: 1. Berechnen der wichtigen Punkten in jedem Bild z. B. durch SIFT7 . 2. Zusammengehörigkeit zwischen jedem aufeinanderfolgenden Bildpaar berechnen, dabei RANSAC zur Schätzung von F verwenden. 3. Zusammengehörigkeit zwischen allen aufeinanderfolgenden Bildtripels und trifolaken Tensor T mit RANSAC berechnen. 4. Berechnen einer anfänglichen Rekonstruktion mit Hilfe einer geeigneten projektiven Faktorisation, je nachdem ob fehlende Punkte verwendet werden sollen oder nicht. 5. Bündelausgleichsrechnung der gesamten Sequenz auf Kameras und 3D Struktur anwenden. 6. Optional noch eine automatische Kalibration durchführen. Eine detaillierte Beschreibung der Berechnungen samt Herleitungen sind in [15] und [30] zu finden. 7 SIFT = Scale Invariant Feature Transforms Kapitel 5 Anwendungen In diesem Kapitel werden verschiedene Anwendungsfälle für das Multikamera-Trackingsystem beschrieben. Da es sich um Tracking von Objekten ohne GPS-Empfänger bzw. ohne Marker handelt, sind die Einsatzgebiete anders als bei typischen GPS-Anwendungen. Der Vorteil dieses Systems ist, wie schon erwähnt, die Tatsache, dass das Objekt, von welchem die GPSDaten ermittelt werden sollen, keinen GPS Empfänger oder andere Hardware bei sich haben muss. Das bringt große Vorteile, wenn z. B. aus Beweglichkeitsgründen kein GPS Empfänger „mitgenommen“ werden kann, oder die Person nicht wissen soll, dass ihre GPS Daten aufgezeichnet werden, oder am „Objekt“ kein GPS Empfänger angebracht werden könnte. 5.1 Positionsbestimmung unter Wasser Im Wasser besteht das Problem, dass normale GPS-Empfänger keine Positionen bestimmen können, da Wasser eine andere Wellenausbreitungsgeschwindigkeit aufweist als Luft (siehe Abschnitt 2.2.1). Es müssen also zwischen Luft und Wasser Stützpunkte verwendet werden, die die Signale in einer anderen, unterwasser-tauglichen, Form weitergeben. Grundsätzlich funktioniert das hier vorgestellte System überall dort wo gefilmt werden kann, also auch unter Wasser. Unterwasser GPS-Systeme sind schon erhältlich, sind aber sehr teuer und aufwändig. Sie benötigen viel Hardware und die TaucherInnen müssen spezielle Empfänger bei sich tragen (siehe Abschnitt 2.3.1) wobei hingegen TaucherInnen bei diesem System keine Empfänger benötigen. Die Daten stehen deswegen erst nach dem Tauchgang zur Verfügung, da sich keine Hardware beim Empfänger befindet, die mit dem System kommunizieren könnte. Es kann deswegen nicht zur Navigation verwendet werden. Es können Tauchrouten vermessen oder auch nur gespeichert werden und als Erweiterung des Systems für Hobbytaucher z. B. in einem Google Earth Plug-In angezeigt werden. Tauchschulen könnten das System an ihren Haus79 KAPITEL 5. ANWENDUNGEN 80 riffen installieren und somit Tauchfehler ihrer Schüler überprüfen. Außerdem könnten Meerestiere getrackt und somit beobachtet und ihr Verhalten studiert werden. Aktuell erhältliche Tauchcomputer können die Tiefe und die Zeit erfassen, sind also zweidimensional. Mit diesem System wäre die Erfassung von vier Dimensionen, also der Raum (drei Dimensionen) und eine zusätzliche Dimension, die Zeit, möglich. Tiefe und Zeit sind zwar ausreichend um den nächsten Tauchgang zu planen, Vierdimensionalität würde jedoch wie oben erwähnt, TaucherInnen und WissenschaftlerInnen viele weitere Möglichkeiten eröffnen. 5.2 Sicherheitstechnik Da bei der Verwendung dieses Systems keine Hardware am zu trackenden Objekt angebracht werden muss, können in der Sicherheitstechnik Bewegungspositionen von Personen ganz einfach ermittelt werden. Man könnte Plätze oder Gebäude mit Clients ausstatten und Bewegungen aufzeichnen. Um ein Objekt bzw. eine Person, deren optische Eigenschaften dem System nicht bekannt sind, zu identifizieren gibt es diverse Möglichkeiten. Es kann entweder durch manuelle Auswahl der Person am Bildschirm ein Muster festgelegt werden, nach welchem gesucht wird, oder z. B. durch Farbauswahl (Kleidung) das gesuchte Objekt definiert werden. Auch Exklusivität wäre eine Möglichkeit. Wenn sich nur eine Person in dem Bereich befindet, könnte die Bewegung des Objektes erkannt und verfolgt werden. Da das System unauffällig und einfach zu installieren ist, würde es sich auch temporär von Polizei oder Sicherheitsdienst an Plätzen von besonderem Interesse anbringen lassen. Die Daten könnten ausgewertet, und z. B. bei Annäherung der gesuchten Person oder eines gesuchten Objektes an gewisse Bereiche oder andere Personen, Alarm ausgelöst und somit die Arbeit der Sicherheitsleute erleichtert werden. 5.2.1 Datenschutz Da bei diesem Projekt auch Menschen automationsunterstützt auf Video verfolgt und aufgezeichnet werden können, kommt in diesen Fällen das Datenschutzgesetz (DSG 2000) zu tragen. Dieses ist EU-Recht und somit im ganzen EU-Raum zu beachten. Es können jedoch nationale Unterschiede bestehen. § 1. (1) Jedermann hat, insbesondere auch im Hinblick auf die Achtung seines Privat- und Familienlebens, Anspruch auf Geheimhaltung der ihn betreffenden personenbezogenen Daten, soweit ein schutzwürdiges Interesse daran besteht. Das Bestehen eines solchen Interesses ist ausgeschlossen, wenn Daten infolge ihrer allgemeinen Verfügbarkeit oder wegen ihrer mangelnden KAPITEL 5. ANWENDUNGEN 81 Rückführbarkeit auf den Betroffenen einem Geheimhaltungsanspruch nicht zugänglich sind [9]. Es unterscheidet zwischen sensiblen und nicht-sensiblen Daten. Die bei diesem Projektes vorliegenden Daten werden im Normalfall als nicht-sensibel einzustufen sein. Siehe Begriffsdefinition DSG 2000 §4 Absätze 1 und 2. Sofern jedoch Rückschlüsse auf eine Person gezogen werden können, ist vorher deren ausdrückliche Genehmigung einzuholen. Bei einer automationsunterstützten Verwendung von Daten im Sinne des DSG 2000, oder einer Verknüpfung der Daten mit anderen Datenbeständen ist bei der Datenschutzkommission ein Eintrag in das Datenverarbeitungsregister zu beantragen. Ausnahmen von dieser Meldepflicht stehen im §17 Abs. 2 DSG 2000 [9]. 5.3 Computergestützte Reality-Spiele Das System hat auch in der Spieleindustrie einen großen Absatzmarkt. Es könnte z. B. zur Steuerung von Reality-Spielen verwenden werden. Mögliche Spielflächen könnten Plätze im Freien sein, oder auch Gebäude, in denen Clients, in den zum Spielen genutzten Räumen, installiert sind. Position, Aufenthaltsdauer an einer Position und Kontakt zwischen SpielerInnen können vom System aufgezeichnet werden. Wenn es sich um mehr als eine spielende Person handelt, müssen mehrere Objekte getrackt werden können. Welche Probleme multiple Objekte verursachen können, wird im Abschnitt 6.3.3 vorgestellt. T-Shirts unterschiedlicher (Team-) Farbe können zum Unterscheiden der SpielerInnen verwendet werden. Mit den oben genannten Informationen aller Clients (Positionen der Spieler, Aufenthaltsdauer an den Positionen und Kontakte zwischen den SpielerInnen) kann der Server die Spiellogik berechnen und Punkte vergeben bzw. GewinnerIn ermitteln. 5.4 Kollisionswarnsysteme Eine weitere Anwendung, bei der mehrere Objekte beobachtet werden, sind Kollisionswarnsysteme. Sind Objektpositionen bekannt, kann durch deren Größe, Fahrtrichtung und Exzentrizität berechnet werden, wann eine Kollision zustande kommen würde. Mit Hilfe des bekannten Parameters Geschwindigkeit (Positionsänderung durch Zeit) kann schon vor einer Kollision, also bei größerem Abstand eine Warnung ausgegeben werden. Das wäre zum Beispiel in Häfen möglich, in denen täglich viele Schiffe durch enge Schleusen oder dicht neben anderen Schiffen navigieren müssen (siehe Abbildung 5.1). Auch auf Baustellen herrscht oft reger, hektischer Verkehr, der zu Kollisionen zwischen Baugeräten führen kann. KAPITEL 5. ANWENDUNGEN 82 N O W S Abbildung 5.1: Durch die bekannten Fahrtrichtungen sowie Exzentritäten und Größen der Objekte (z. B. Schiffe) können mögliche Kollisionen berechnet und durch Alarmsysteme verhindert werden. 5.5 Verhaltensstudien Bewegungsmuster von Menschen oder Tieren können Aufschluss über deren Gefühlslage geben. Oftmaliger Ortswechsel, hektisches Verhalten oder schnelles Gehen deuten möglicherweise auf Unwohlsein hin. Gezielte Bewegungen, langsame, bedachte Fortbewegung hingegen eher auf Ruhe. Auch die Aufenthaltsdauer an einem Ort gibt Erkenntnisse über den Wohlfühlfaktor an dieser Stelle wieder. An unbehaglichen Orten, versuchen Menschen und Tiere instinktiv, nicht lange zu verweilen. 5.5.1 Konsumverhalten In mit dem System ausgestatteten Einkauszentren könnte das Verhalten einzelner KundInnen beobachtet und das Ergebnis so z. B. zur günstigen Werbeplatzierung verwendet werden. Es kann untersucht werden wo sich Personen durchschnittlich sehr lange aufhalten und wo nur sehr kurz, bzw. von welchen Geschäften sie nur die Auslagen betrachten und in welchen sie auch Zeit verbringen. Durch Kombination des Ergebnisses des Trackingsystems mit den Verkaufszahlen könnten Rückschlüsse gezogen werden, welche Produkte und Schaufenster von den KundInnen nur gerne angesehen und welche Produkte auch auch gerne gekauft werden. 5.5.2 Gruppenverhalten Auch das Rollenverhalten von einzelnen Personen in Menschenmengen oder einem Tier in einer Herde kann untersucht werden. Ergebnisse dieser Untersuchung wäre das Verhalten eines Individuums in einer Gruppe. Als Referenz 83 KAPITEL 5. ANWENDUNGEN v vp Abbildung 5.2: In der Strömungstechnik können Strömungslinien dreidimensional erfasst werden, indem ein einzelnes andersfarbiges Partikel dem Strömungsfluss hinzugefügt und getrackt wird. könnte untersucht werden, wie sich einzelne Menschen oder Tiere verhalten. In landwirtschaftlichen Studien könnten Freilandgehege gefilmt und ein spezielles Tier über einen längeren Zeitraum beobachtet werden. Das Verhalten des einzellnen Tieres im Bezug zur Gruppendynamik gibt Aufschluss über den Wohlfühlfaktor der Gruppe. 5.5.3 Arbeitsverhalten Dieses System ist auch für die Industrie geeignet, um Fertigungsabläufe ergonomischer und rationeller gestalten zu können. Eine Analyse der Fertigungsschritte durch Arbeitsvorbereiter nach dem Tracking kann für die Optimierung der Fertigung, aber auch für ergonomische Anforderungen verwendet werden. Doppelte Bewegungen können erkannt, für das Personal anstrengende Bewegungen vermieden werden. Zusätzlich kommen die Vorteile dieses System besonders stark zu tragen: niedrige Hardwarekosten des Gesamtsystems, einfacher Aufbau, einfache Anwendungsrealisierung, keine aufwändige Kalibirierung durch geschultes Personal. 5.6 Strömungstechnik Die Strömungstechnik beschäftigt sich mit der Mechanik der flüssigen und gasförmigen Stoffe (Fluide). Das entworfene System könnte in dieser Disziplin zur Analyse von Trajektorien verwendet werden. In der Physik werden Bewegungskurven, entlang derer sich Objekte mit einer gewissen Geschwindigkeit bewegen, Trajektorien genannt [35, S. 356]. Bei diesen Objekten handelt es sich um punktförmige Körper oder um den Schwerpunkt starrer Körper. Deren Positionen können mit dem Multikamera-Trackingsystem dreidimensional getrackt und ausgewertet werden. Es muß bei der Positionsbestimmung nicht zwingend das GPS Weltkoordinatensystem, sondern es kann auch ein lokales Koordinatensystem verwendet werden. Das heißt, es wird von der hohen Flexibilität der Positionsbestimmung der Kameras abgegangen, jedoch kann so die Genauigkeit des Ergebnisses KAPITEL 5. ANWENDUNGEN 84 erhöht werden, da der GPS-Fehler nicht auftritt. Ist die Strömung sehr stark bzw. schnell, können auch Hochgeschwindigkeitskameras verwendet werden. Die Clients müssten dann allerdings eine sehr gute Rechenleistung besitzen um die hohe Datenmenge zu bewältigen. 5.6.1 Windkanal Im Windkanal werden die Auswirkungen von Luftbewegungen um und über feste Körper getestet. Die bekanntesten Beispiele sind Autos und Flugzeuge. Üblicherweise wird Rauch oder Farbe verwendet um die Luftströmung sichtbar zu machen. Diese Strömungslinien werden fotografisch dokumentiert. Da es sich um Linien handelt, könnte man die Bewegung mit dem Trackingsystem noch nicht verfolgen. Schießt man jedoch ein einzelnes Partikel oder Objekt anderer Farbe in die Strömung ein, kann dieses verfolgt werden. Wird der Windkanal von mehreren Seiten gefilmt, läßt sich die Bewegungskurve des Partikels dreidimensional bestimmen und z. B. zur Verbesserung der Aerodynamik verwenden. Abbildung 5.2 zeigt wie ein Partikel ~vp in eine Strömung ~v eingeschossen wird. Die Strömung ~v kann somit inklusive Geschwindigkeit (Distanz zwischen zwei Positionen nach der Zeit) und Bewegungsrichtung sichtbar gemacht werden. 5.7 Sport Gerade im Sport ist es wichtig Bewegungsabläufe zu analysieren und gegebenenfalls zu verbessern. Da es bei Wettbewerben immer mehr auf tausendstel Sekunden ankommt, könnte dieses System für diese Analyse eingesetzt werden, da die SportlerInnen nicht immer GPS-Empfänger bei sich tragen können. Es wäre möglich, Sportstadien oder Skipisten mit Clients zu versehen und so die Bewegungen der SportlerInnen aufzuzeichnen. Im Skisport, z. B. beim Skispringen, kann die Flugbahn ermittelt und durch bekannte Faktoren wie Wetterwerte kann auf die Einflussnahme des Windes auf die Flugbahn geschlossen werden. Werden bei einem Fußballspiel oder ähnlichem Ball- bzw. Mannschaftsspiel die SpielerInnen und der Ball getrackt, kann mit diesen Informationen das Zusammenspiel des Teams studiert werden. Auch könnte das System als automatischer Schiedsrichter fungieren, der Abseits und Tore auswertet. Bei Tennisspielen kann mit Hilfe dieses Systems die Flugbahn eines Tennisballes aufgezeichnet und somit die Spielqualität analysiert werden. Die Bewegungstudien lassen sich überall anwenden, wo eine Person bzw. ein Objekt läuft, schwimmt, springt, fährt oder fliegt. Objekte wie Speere, Diskusscheiben usw. lassen sich mit dem System tracken und mit Hilfe derer Flugdaten Rückschlüsse auf die Qualität des Abwurfes ziehen. Kapitel 6 Zusammenfassung Dieses abschließende Kapitel beschäftigt sich mit einem Überblick über das Projekt, die Probleme die entstanden sind, sowie deren Lösungsansätze. Außerdem wird auf mögliche Weiterentwicklungen des Prototypen eingegangen und ein Resümee über die Arbeit gegeben. 6.1 Erreichte Ziele Ziel dieses Projektes war es, zu testen, ob es möglich ist, aus Bildern sowie den Positions- und Orientierungsdaten der verwendeten Kameras die absoluten Positionen von Objekten in den Bildern zu errechnen. Das sollte durch Filmen eines Gebietes geschehen, wobei in diesen Aufnahmen ein Objekt getrackt und ein Strahl in Richtung des Objektes berechnet wird. Durch die Positions- und Orientierungsdaten aller Kameras wird mit Hilfe einer Schnittpunktberechnung der Strahlen die Position des gesuchten Objektes berechnet. Es wurden die mathematischen Überlegungen zu dem Konzept erstellt und anschließend mit zwei Videos getestet. Da die Positionen des Objektes richtig gefunden wurden, kann man sagen, dass diese Überlegungen richtig waren, jedoch gab es bei der Implementierung auch einige Schwierigkeiten, die im nächsten Absatz genauer beschrieben werden. 6.2 Probleme Dieses System ist ein neues Konzept und deswegen auch mit einigen Problemen verbunden. Die meisten davon konnten während der Erstellung des Prototypen gelöst werden, andere könnten in zukünftigen Versionen noch ausgebessert werden. 85 KAPITEL 6. ZUSAMMENFASSUNG 6.2.1 86 Echtzeit Ziel ist es, das System echtzeitfähig zu machen. Je nach Anwendung sind mehr oder weniger Bilder pro Sekunde (fps) nötig. Das aktuelle System kommt auf 6fps. Je nach Hardware bzw. Prozessorleistung kann dieser Wert variieren. Der Prototyp wurde mit einem Pentium 4 mit 3GHz Prozessortakt und 1GB RAM getestet. Vom Erhalt des Videoframes bis zum Erhalt des Positionswertes sind diverse Schritte zu erledigen. Als erstes muss das Videobild der Kamera geladen werden. Dies geschieht im Prototyp mit der Movie Reader Library (siehe Abschnitt 4.2.8 Bibliotheken). Zu Testzwecken wurde ein Video erstellt, welches jedoch als unkomprimiertes avi zu laden war und dadurch sehr groß und langsam wurde. Das ist auch der Engpass des Systems. Die Berechnungen sind, da es sich hauptsächlich um Multiplikationen und Divisionen handelt, sehr schnell. Das Laden der Frames benötigt die meiste Zeit in der Verarbeitungskette. 6.2.2 Ungenauigkeiten Die Berechnungen in diesem System spielen eine große Rolle und je genauer die Ausgangsdaten sind, desto genauer werden die Ergebnisse. Die Ausgangsdaten zur Berechnung sind Position und Orientierung der Kamera sowie das Kamerabild. GPS Fehler Die ungenauesten Ergebnisse liefert die Positionsbestimmung, also GPS. Diese Fehler nennt man GPS-Fehler und ohne zusätzliche Maßnahmen kann dieser bis zu 15 Meter betragen (siehe Grundlagen GPS in Kapitel 2.2.1). Leider liefern verschiedene GPS-Empfänger an der gleichen Position zur gleichen Zeit unterschiedliche Ergebnisse. Wenn also zwei Clients „falsche“ Positionen erhalten, sind die berechneten Strahlen von der Kamera zum Objekt im Weltkoordinatensystem an der falschen Stelle und die Strahlen schneiden sich nicht, oder können sich schneiden, wenn sie sich nicht schneiden sollten. Hier werden zwei Möglichkeiten vorgestellt, wie mit dem Fehler umgegangen werden kann, sodass die Schnittpunktberechnung möglich wird. Eine Möglichkeit ist die Sysnchronisation der GPS-Empfänger, sodass diese nach der Synchronisation alle den gleichen GPS-Fehler aufweisen. Das hat den Vorteil, dass keine zusätzliche Hardware benötigt wird. Die Clients (PDAs mit eingebauten GPS-Empfängern) müssen jedoch miteinander kommunizieren können. Das Ergebnis hat bei dieser Variante zwar immer noch den gleichen GPS Fehler wie die Empfänger, also bis zu 15 Meter, jedoch sind alle Komponenten im System synchronisiert, und die Schnittpunktberechnung kann erfolgreich durchgeführt werden. KAPITEL 6. ZUSAMMENFASSUNG 87 Abbildung 6.1: Diese Abbildung zeigt die Auswirkungen der Verzerrungen die Digitalkameras oft haben. Das linke Bild zeigt ein ideales Bild ohne Verzerrung. Im mittleren Bild ist der Pincushioneffekt dargestellt. Die Linien neigen sich nach innen, wie bei einem Kissen. Das rechte Bild stellt den Barreleffekt dar und die Linien neigen sich wie bei einer Tonne nach außen. Diese Verzerrungen sind am Rand des Bildes stärker ausgeprägt als in der Mitte und führen dort zu mehr oder weniger großen Ungenauigkeiten bei der Schwerpunktberechnung. Als zweite Variante wäre das im Abschnitt 4.3.1 beschriebene Differential GPS ideal um alle GPS-Empfänger mit genauen Werten zu versorgen. Hier muss sich jedoch eine GPS-Basisstation in der Nähe befinden. Das Ergebnis der Schnittpunktberechnung, also die Position des gesuchten Objektes, ist damit bei der Genauigkeit in der selben Größenordnung wie normales DGPS. Berechnungsungenauigkeiten Andere Ungenauigkeiten können Berechnungen mit zu wenig Kommastellen liefern, deshalb wurde hier durchgehend mit double-Werten gerechnet. Wenn das Objekt weit von der Kamera entfernt ist, kann ein Pixel den Strahl mehrere Meter in eine andere Richtung lenken. Bei einer Auflösung von 640× 480 und einem Field of View von 50◦ ergibt das bei einer Entfernung von 10 Metern einen Unterschied von 78 Zentimeter. Bei einer Entfernung von 50 Metern schon 3,9 Meter. Abhilfe würde eine Kamera mit besserer Auflösung schaffen. Andere Fehler bei der Schwerpunktberechnung ergeben sich durch inhomogene Objekte. In Kapitel 3.2.3 wird in Abbildung 4.9 erklärt wie sich inhomogene Regionen auf den Schwerpunkt auswirken. Abhilfe könnte hier Skeletterkennung schaffen, oder andere Methoden die die Region untersuchen und immer die gleiche Stelle (Kopf, Brustkorb, . . . ) als Regionsschwerpunkt ermitteln. Barrel- und Pincushioneffekt Barrel- (Tonne) und Pincushion- (Nadelkissen) Effekte sind Verzerrungen die in Digitalkameras vor allem an den Rändern große Ungenauigkeiten bringen können. Abbildung 6.1 zeigt die Auswirkungen, die diese Effekte auf Bilder haben. Der Pincushioneffekt verzerrt die Linien nach innen bzw. die Diagonalen nach außen, wie bei einem Kissen. Er tritt hauptsächlich bei vollem KAPITEL 6. ZUSAMMENFASSUNG 88 Zoom auf. Beim Barreleffekt geschieht das genaue Gegenteil, die Linien werden nach außen verzogen bzw. die Diagonalen nach innen. Dies gibt den optischen Effekt einer Tonne und tritt vor allem bei Weitwinkelaufnahmen auf. Bei Naturaufnahmen oder Bildern mit wenig geraden Linien ist dieser Effekt kaum erkennbar, bei Gebäuden, geraden Horizonten oder generell geraden Linien in Bildern wird der Effekt jedoch sehr gut sichtbar. Wie im vorherigen Abschnitt beschrieben können nur wenige Pixel Unterschied zur wirklichen Position größere Fehler ergeben. Um diesen Fehler zu beheben muss als erstes die Größe der Verzerrung durch ein Testbild mit geraden Linien bzw. Rechtecken im Bild gemessen werden. Anschließend können die zu untersuchenden Bilder mit Hilfe dieser Daten entzerrt werden, bevor sie zur Objekterkennung verwendet werden. Eine andere Möglichkeit ist ein Adapter oder Konverter, der das Problem der Verzerrung ausgleicht, jedoch müsste für deren Verwendung ein Objektivgewinde an der Kamera vorhanden sein. 6.3 Weiterentwicklungen Das System wurde als Prototyp entwickelt um die Funktionsweise und die Machbarkeit des Konzeptes zu testen und natürlich ist das System offen für Weiterentwicklungen. Eine Auswahl nützlicher Konzepte wird in diesem Abschnitt vorgestellt. 6.3.1 Unterwasser GPS Durch die Funktionsweise von GPS ist die Positionsbestimmung unter Wasser nicht möglich. Das kommt einerseits von den Signalen, die nur durch die Luft bzw. Atmosphäre empfangen werden können. Dieses Problem wird durch die optische Berechnung umgangen. Jedoch kommt dadurch das Problem der Sichtverhältnisse zum Tragen. Trübes Wasser, schlechtes Wetter (dunkel) sowie der Effekt, dass gewisse Wellenlängen im Spektrum (vorwiegend die roten) vom Wasser unterdrückt werden, machen optisches Tracking in größerer Distanz schwierig. Je mehr Wasser zwischen Betrachter und Objekt liegt, also je größer die Distanz ist, desto dunkler und blaustichiger werden die Farben. Hier müsste eine Farbkorrektur durchgeführt werden, welche die blauen Farbtöne reduziert und die roten verstärkt. Ein anderes Problem, weshalb GPS unter Wasser mit herkömmlichen GPS Empfängern nicht funktionieren würde, ist die Tatsache, dass die Positionen im WGS84 Koordinatensystem berechnet werden, welches ein Referenzellipsoid mit der Seehöhe Null verwenden (siehe Abschnitt 3.1.2). Da die Positionskoordinaten in das beschriebene ECEF Format umgewandelt werden, kann auch mit negativen Koordinaten gerechnet werden, sofern die GPS Empfänger der Clients über Wasser angebracht werden. Positionen unter Wasser würden im WGS84 System, sofern sich das Objekt in einem Meer KAPITEL 6. ZUSAMMENFASSUNG 89 hinemoa Abbildung 6.2: Mögliche Variationen für die Positionierung von Unterwasserclients. Sie an einem Schiffsrumpf zu befestigen wäre die einfachste Möglichkeit. Auch an Bojen, die auf der Wasseroberfläche treiben, könnten Clients montiert werden. Die GPS Empfänger werden über Wasser und die Kamera unter Wasser positioniert, um die Lichtbrechung zwischen Luft und Wasser zu vermeiden bzw. zu reduzieren. An Stangen montierte Kameras könnten schlechte Sichtverhältnisse durch geringere Distanzen ausgleichen. Fix am Grund oder an Felsen montierte Clients können stabile Werte liefern. Ihre Position sowie ihre Orientierung müssen bekannt sein. befindet, eine negative Höhe über dem Meeresspiegel ergeben. In einem See würde sich jedoch eine normale, positive Meereshöhe ergeben. Der GPS Empfänger der Clients müsste sich also über Wasser und die Optik unter Wasser befinden. Sofern die Elemente des Clients starr verbunden, und die Abstände bekannt sind, können sie auch voneinander entfernt angebracht werden, was bei der Montage Vorteile bringen kann. Es gibt mehrere Möglichkeiten die GPS Empfänger an der Wasseroberfläche anzubringen. Eine Möglichkeit wäre, sie an Booten zu befestigen und so immer auf der richtigen Höhe zu halten. Der Server könnte sich auch auf diesem Boot befinden und das Ergebnis wäre gleich nach dem Tauchgang verfügbar. Ein anderer Ansatz wäre, die Clients an Bojen zu befestigen und auf der Wasseroberfläche treiben zu lassen. Für bessere Stabilität würden sich große, flache Bojen eignen. Wie oben erwähnt, reicht es, wenn die Messgeräte starr mit der Kamera verbunden sind. Damit ließe sich auch die Kamera an einer Stange oder ähnlichem befestigen, und diese Stange wiederum an einer Boje. So ließe sich auch die Sicht verbessern, da sich die Kamera bei günstiger Po- KAPITEL 6. ZUSAMMENFASSUNG 90 sitionierung näher beim Objekt befinden würde. Bei starkem Wellengang würden sich jedoch die Positions- und vor allem die Orientierungsdaten sehr häufig und schnell ändern, was gute und schnelle Hardware voraussetzt. Bei einem eher unflexiblen, jedoch sehr stabilen Ansatz, könnten die Berechnungen dieses Systems weiterhin verwendet werden, Position und Orientierung der Kameras unter Wasser müssten jedoch bekannt sein. Es handelt sich dabei um die Fixmontierung von Clients am Grund oder am Felsen. Es wäre also möglich, Tauchgebiete mit Clients auszustatten, um somit ein wellenunabhängiges Ergebnis zu erhalten. Zukünftige Entwicklungen Bei Computerhardware ist ein laufender Preisverfall zu beobachten. Speicher werden billiger, Computer schneller. Dies kann für zukünftige Navigationsund Trackingsysteme bedeuten, dass nicht nur eine einfache Karte als Human Interface für die Positionsdarstellung zur Anwendung kommt, sondern auch Fotos und Videos der Umgebung in Echtzeit darstellbar werden. Auf der CeBit 2007 war dieser Trend bei Kfz-Navigationssystemen bereits erkennbar. Navigon hat erste Navigationssysteme, die komplexe Strassenkreuzungen mit mehreren Spuren als Foto einblenden lassen und somit wesentlich einfacheres und eindeutigeres Navigieren ermöglichen als heute [22]. Für dieses Projekt kann dies bedeuten, dass für die Unterwasseranwendung nicht nur die reine Verfolgung eines Objektes (Tauchers) in die Software integriert ist, sondern bereits die Anfahrt zum Tauchplatz durch eingeblendete Fotos aus der Unterwasserwelt dargestellt werden kann. Auch das zwingend erforderliche Briefing ist vor dem Tauchgang deutlicher und klarer möglich. Im Anschluss wird das gleiche Navigationssystem für die Verfolgung der Taucher unter Wasser verwendet und nach Beendigung des Tauchganges über die errechneten Trackingdaten ein Bericht mit Fotos der Unterwasserumgebung erstellt. Lichtbrechung Bei der Verwendung des Systems unter Wasser ergibt sich ein Problem, nämlich das der Lichtbrechung zwischen Luft und Wasser. Die Kamera befindet sich in einem wasserfesten Gehäuse, ist also von Luft umgeben und filmt über eine gleichmäßig dicke Glasscheibe, die parallel zur Linse montiert ist, ins Wasser. Die exakte Mitte des Bildes wird durch die Parallelität des Glases nicht beeinflußt, je weiter am Rand des Bildes jedoch, also je größer der Einfallswinkel des Lichtstrahles zwischen Luft-Glas-Wasser wird, desto größer wird auch der Fehler. Abbildung 6.3 zeigt das Problem das durch diese drei Materialien entsteht. Wenn das Glas relativ dünn ist, kann es auch vernachlässigt werden, da bei gleichmäßiger Dicke, wie beim Blick durch ein Fenster, der Ausfalls- KAPITEL 6. ZUSAMMENFASSUNG 91 Theoretische Ausbreitung Unterwassergehäuse Gebrochenes Licht Luft Glas Wasser Abbildung 6.3: Diese Abbildung zeigt den Effekt der Lichtbrechung zwischen Luft, Glas und Wasser. Da Wasser einen höheren Brechungsindex als Luft hat, und die Bilder in einer Luftumgebung aufgenommen werden, erscheinen Objekte näher bzw. gestaucht. Da die Glasscheibe vor der Linse gleichmäßig dick ist, ändert sich nicht viel an der Objektposition, nur der Brennpunkt wird minimal „verschoben“, kann aber wegen GPSUngenauigkeiten bei der Positionsbestimmung vernachlässigt werden. Der Winkel bzw. die Objektposition im Bild zur Berechnung des Strahles muss mit dem Brechungsindex multipliziert werden um auf die wirkliche Position zu zielen. winkel gleich dem Einfallswinkel ist. Der Brechungsindex von Luft nl ist annähernd 1 (1,000292) und der von Wasser nw 1,33. Da der Wasserindex größer ist als der von Luft, erscheinen Objekte im Wasser, die von der Luft aus angeschaut werden, näher bzw. gestaucht. Deswegen muss bei der Berechnung des Strahles in Richtung des Objektes der Winkel mit nnwl = 1, 3308 multipliziert werden um die tatsächliche Position zu erhalten. 6.3.2 Aufbereitung der Daten Die Daten sind im Prototyp als zeitabhängige Positionsdaten vorhanden. Das heißt pro Frame ist eine Position vorhanden, in der sich das Objekt zu dieser Zeit befunden hat. Die Ausgabe stellt diese Daten als Höhenprofil aus der Vogelperspektive als SVG-Grafik dar. Als Weiterentwicklung wäre es hilfreich diese Daten, je nach Anwendung, in verschiedene Formate zu transformieren bzw unterschiedlich darzustellen. Um einen besseren Überblick über das Ergebnis zu erhalten, wäre ein optisches, dreidimensionales Ergebnis hilfreich. Die Punkte könnten z. B. mit OpenGL als kleine verbundene Kugeln im 3D-Raum dargestellt werden. Diese Kette von Punkten könnte dann von allen Seiten und in Zoom- KAPITEL 6. ZUSAMMENFASSUNG 92 stufen betrachtet, und somit genauer analysiert werden. Es könnten auch Geschwindigkeiten aus den Kenntnissen von Distanz und Zeit berechnet und ausgegeben werden. Genauso könnte die Aufenthaltsdauer des Objektes an einem Ort von Interesse sein. Um diese Informationen grafisch darzustellen, gibt es mehrere Möglichkeiten. Da im dreidimensionalen Raum eben nur drei Dimensionen, aber mehr als drei Informationen vorhanden sind, könnte die Geschwindigkeit oder Aufenthaltsdauer z. B. farblich dargestellt werden. Eine andere Möglichkeit wäre, die Größe der Kugel je nach Dauer zu verändern. Wird wie bei SVG im zweidimensionalen Raum gearbeitet, wird die Farbe für die dritte Dimension verwendet und kann damit nicht mehr für andere Werte verwendet werden. Es könnte jedoch auch die Form des Objektes (z. B. rund - eckig) je nach Wert verändert werden. Damit wären, mit der Größe für die Aufenthaltsdauer, wieder zwei zusätzliche Daten darstellbar. Da jeder Punkt einen Frame repräsentiert, ist die Dauer jedoch pro Punkt fix, nämlich der Umkehrwert der Frames pro Sekunde. Würde sich ein Objekt länger an einem Punkt aufhalten, würden die Punkte übereinander dargestellt und es wäre nicht ersichtlich, wie viele Frames das Objekt an dieser Position verbracht hat. Es müsste also in jedem Frame geprüft werden, ob sich die Position von der vorherigen Position unterscheidet. Ist dies nicht der Fall, sollte der Punkt oder die Kugel größer gezeichnet werden. 6.3.3 Tracken multipler Objekte Für manche Anwendungen wäre es notwendig mehrere Objekte bzw. Personen in einem Raum zu tracken. Dieses Feature ist im Prototyp noch nicht implementiert, jedoch möglich. Dabei gibt es einige Punkte zu beachten. Als erstes die Verdeckung. Wenn sich mehrere Personen im Bild befinden kann es vorkommen, dass eine die andere verdeckt, und somit nicht mehr alle Personen für alle Kameras sichtbar sind. Eine Lösungsmöglichkeit wäre, mehr Kameras zu verwenden. Würden z. B. zwei Personen getrackt, würden drei Kameras ausreichen um, sofern nicht ein anderes Hindernis erscheint, um immer beide Personen von mindestens zwei Kameras zu sehen. Bei mehr als zwei Personen kann der Fall auftreten, dass die Personen jeweils so nahe an einer Kamera stehen, dass alle anderen Personen im Bild verdeckt werden und jeweils nur ein Strahl pro Person berechnet werden kann. Somit wäre keine Positionsbestimmung möglich. Ein anderer Punkt ist die Unterscheidung der Personen. Bewegung könnte in diesem Fall nur bedingt verwendet werden, da, wenn sich zwei Personen aus der Perspektive einer Kamera in die gleiche Richtung bewegen, nicht mehr zwischen ihnen unterschieden werden kann. Farbkodierung wäre hier eine der sichersten Varianten der Regionserkennung. Diese Methode könnte z. B. in Spielen gut eingesetzt werden, wenn jedes Team oder jeder Spieler T-Shirts unterschiedlicher Farbe tragen würde. KAPITEL 6. ZUSAMMENFASSUNG 93 Abbildung 6.4: Beim Tracken multipler Objekte werden von jeder Kamera aus mehrere Richtungsvektoren berechnet. Zu jedem, der Kamera ersichtlichen Objekte, wird ein solcher Strahl berechnet. Es kann vorkommen, dass ein Objekt ein anderes verdeckt. Dieses Problem kann durch die Verwendung mehrerer Kameras ausgeglichen werden. In diesem Beispiel wird nur die Person in Grün von allen vier Kameras gesehen. Drei Kameras reichen jedoch, wie bei den anderen Personen, aus, um deren Objektpositionen zu berechnen. 6.4 Resümee Ziel dieser Diplomarbeit ist, einen Überblick über optische Positionsbestimmung zu geben, insbesondere in Verbindung mit GPS. Hauptaugenmerk wurde auf eine für diesen Zweck entwickelte Applikation gelegt, welche durch optisches Tracking Positionen im GPS System WSG84 errechnet. Dabei wurden die Grundlagen der im Projekt verwendeten Techniken wie GPS und Objekterkennung näher erläutert sowie ein Überblick über existierende Systeme gegeben. Auch auf die mathematischen Überlegungen hinter der Positionsbestimmung wurde näher eingegangen. Es wurde auf die Problematik des GPS-Fehlers und Schwierigkeiten in der Objekterkennung eingegangen und Lösungsvorschläge dazu vorgestellt. Die größten Probleme bereitete der sogenannte GPS-Fehler welcher im Durchschnitt bis zu zehn Meter betragen kann, was mit unterschiedlichen Positionen von mehreren Empfängern dazu führen kann, dass keine Position berechnet werden kann. Durch Synchronisation der verwendeten GPS Empfänger kann der Positionsfehler jedoch auf den normalen GPS-Fehler eingegrenzt und durch Verwendung von Differential GPS sogar auf wenige Zentimeter reduziert werden. Die Applikation wurde in Java mit Hilfe von ImageJ und einer Movie Rea- KAPITEL 6. ZUSAMMENFASSUNG 94 der Bibliothek zur Bildverarbeitung erstellt. Die Kommunikation zwischen Clients und Server erfolgt über TCP mit einem eigenen Protokoll. Nachdem die Clients ihre Position, ihre Orientierung und den berechneten Strahl übermittelt haben, führt der Server die Positionsberechnung durch. Diese Positionen werden dann in ein SVG File geschrieben und nach Beendigung des Trackings als Bild ausgegeben. Das Thema war für mich als Taucherin persönlich sehr spannend, da mit dem entwickelten System auch unter Wasser Positionen berechnet werden könnten, was mit normalem GPS nicht möglich ist. Die Erstellung des mathematischen und optischen Konzeptes erforderte die Anwendung und Vertiefung meiner im Studium erworbenen Kenntnisse wie auch eine intensive Auseinandersetzung mit GPS, der Kameratechnik sowie der Server-ClientKommunikation. Das von mir erstellte Konzept und System stellt eine solide Basis für Weiterentwicklungen des Trackingsystems dar, sodass der Prototyp durch Einarbeiten neuer Erkenntnisse immer weiter verfeinert und perfektioniert werden kann. Anhang A Definitionen wk hk ck fk ... ... ... ... Kleinbildbreite Kleinbildhöhe Kleinbilddiagonale Abstand Film zu Linse ws hs cs fs ... ... ... ... Sensorbreite Sensorhöhe Sensordiagonale Abstand Sensor zu Linse v f act ... ... resx resy ... ... Bildseitenverhältnis (4:3) Faktor zwischen Kleinbildbrennweite und digitaler Brennweite Auflösung in x-Richtung (Höhe) Auflösung in y-Richtung (Breite) rdist pnumb pused psize ... ... ... ... Pixelabstand Anzahl Pixel (3072 × 2304) Verwendete Pixel(640 × 480) Pixelgröße x y xpos ypos αxrad αxdeg αxdeg ... ... ... ... ... ... ... X-Position im Bild (Pixelwert) Y-Position im Bild (Pixelwert) X-Position am Sensor Y-Position am Sensor Winkel in X-Richtung in Rad Winkel in X-Richtung in Grad Winkel in Y-Richtung in Grad 95 ANHANG A. DEFINITIONEN ~k kx ky kz kn x ... ... ... ... ... Kameraposition X-Position der Kamera Y-Position der Kamera Z-Position der Kamera X-Position der n-ten Kamera g~1 g~2 ... ... Vektor von Kamera 1 zu Punkt 1 Vektor von Kamera 2 zu Punkt 2 ~r rx ry rz rn x λn ... ... ... ... ... ... Richtungsvektor X-Wert des Richtungsvektors Y-Wert des Richtungsvektors Z-Wert des Richtungsvektors X-Wert des n-ten Richtungsvektors Position am n-ten Richtungsvektor d dx dy dz d′ (λn ) S ... ... ... ... ... ... Distanz zwischen zwei Vektoren Distanz der X-Werte zwischen zwei Vektoren Distanz der Y-Werte zwischen zwei Vektoren Distanz der Z-Werte zwischen zwei Vektoren Ableitung der Distanz zwischen zwei Vektoren nach λn Schnittpunkt α β γ ... ... ... Winkel um die X-Achse (Shift) Winkel um die Y-Achse (Pan) Winkel um die Z-Achse (Tilt) M Mx My Mz ... ... ... ... Transformationsmatrix Transformationsmatrix um die X-Achse Transformationsmatrix um die Y-Achse Transformationsmatrix um die Z-Achse b n ... ... Anzahl der Schnittpunktberechnungen Anzahl der verwendeten Kameras X x, x′ e, e′ l, l′ C, C ′ P, P ′ F E H T ... ... ... ... ... ... ... ... ... ... Punkt im Raum Abbildung von X auf die Bildebene Epipol Epipolare Linie Kamerazentrum Kameramatrix Fundamentalmatrix Essentialmatrix Homographie Trifokaler Tensor 96 Anhang B Inhalt der DVD File System: Joliet Mode: Single-Session (DVD-ROM) B.1 Diplomarbeit Pfad: /Diplomarbeit dm05029_Schneider_Miriam_da.dvi DVI-File, ohne Grafiken dm05029_Schneider_Miriam_da.pdf PDF-File dm05029_Schneider_Miriam_da.ps PostScript-File Pfad: /Diplomarbeit/Quellen ACSA . . . . ARToolKit . baumann . . dailey . . . . digicamfotos usa-gps . . . imageJ . . . . kowoma . . . mueller . . . navigon . . . prinz . . . . . sony . . . . . sun . . . . . . ublox . . . . . univie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Unterwasser GPS - System ARToolKit Abbildungsmaßstab berechnen Multi View Geometry Digitalkamera W7 GPS SPS Performance ImageJ Homepage Alles über GPS Sensorgrößen Mobile Navigator Signallaufzeit und Trägerphasenmessung Digitalkamera W7 Server-Client SuperSense Indoor Photogrammetrie 97 ANHANG B. INHALT DER DVD w3c . . . . . . . . . . . wunderlich . . . . . . . B.2 Scalable Vector Graphics Location Based Services Trackingsystem Pfad: /Sourcecode _dependencies . . calculation . . . . comm . . . . . . . connect . . . . . . immageProcessing video . . . . . . . . _kizi.avi . . . . . . _wozi.avi . . . . . output1.svg . . . . Server.java . . . . Start.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bibliotheken Paket zur Berechnung Paket zur Kommunikation Paket zum Verbindungsaufbau Paket der Bildverarbeitung Paket zum Video einlesen Testvideo 2 Testvideo 1 Optische Ausgabe Server Klasse Klasse zum Starten des Systems Pfad: /Dokumentation Projektdoku.pdf . . . . Systemdoku.pdf . . . . Userdoku.pdf . . . . . . Projektdokumentation Systemdokumentation Userdokumentation Pfad: /Präsentationen DesignCamp.ppt . . . . Englische Präsentation Endpraesentation.ppt . Endpräsentation HGB Zwischenpraesentation.ppt Zwischenpräsentation HGB 98 Literaturverzeichnis [1] ACSA: GIB-Plus : Standard underwater tracking system. URL, http: //www.underwater-gps.com/uk/product-detail.php?pr_id=2, Mai 2007. [2] Altenberger, A. M.: Geodatenerfassung mittels Smart Devices im Projekt Sirius. Diplomarbeit, Johannes Kepler Universität Linz, Juli 2006. [3] Amit, Y.: 2D Object Detection and Recognition. The MIT Press, November 2002. [4] Bartsch, H.-J.: Kleine Formelsammlung Mathematik . Hanser Fachbuchverlag, September 2003. [5] Baumann, E.: Abbildungsmassstab berechnen. URL, http://www. elmar-baumann.de/fotografie/herleitungen/, Mai 2007. [6] Burger, W. und M. J. Burge: Digitale Bildverarbeitung : Eine Einführung mit Java und ImageJ . Springer-Verlag, Berlin, Heidelberg, 2. überarbeitete Aufl., 2005. [7] Chi-Farn Chen, M.-H. C.: Object Tracking and Positioning on Video Images. XXth ISPRS Congress, July 2004. [8] Dailey, M.: Machine Vision for Robotics and HCI Multi View Geometry. URL, http://www.cs.ait.ac.th/~mdailey/, June 2007. [9] Datenschutzkommision: Datenschutzgesetz 2000 (DSG 2000), BGBl. I Nr. 165/1999, idF. BGBl. I Nr. 13/2005 . URL, http://www. dsk.gv.at/dsg2000d.htm, 2000. [10] Doneus, M.: Introduction to Photogrammetry. URL, http://www. univie.ac.at/Luftbildarchiv/wgv/intro.htm, Mai 2007. [11] Green, M. D.: Underwater geopositioning methods and apparatus. United States Patent 20070025185, April 2005. [12] Grosche, G., V. Ziegler und D. Ziegler: Teubner-Taschenbuch der Mathematik . Hanser Fachbuchverlag, März 2004. 99 LITERATURVERZEICHNIS 100 [13] Han, M. und T. Kanade: Scene Reconstruction from Multiple Uncalibrated Views. Techn. Ber. CMU-RI-TR-00-09, Robotics Institute, Carnegie Mellon University, Pittsburgh, PA, January 2000. [14] Hartley, R. I. und P. Sturm: Triangulation. Computer Vision and Image Understanding: CVIU, 68(2):146–157, 1997. [15] Hartley, R. I. und A. Zisserman: Multiple View Geometry in Computer Vision. Cambridge University Press, ISBN: 0521540518, Zweite Aufl., 2004. [16] Hassan, T.: Innovation: Photogrammetry for Mobile Mapping. GPS World, März 2007. [17] java.sun.com: Writing the server side of a socket. URL, http://java. sun.com/docs/books/tutorial/networking/sockets/clientServer.html, Mai 2007. [18] Kato, H.: ARToolKit. URL, http://www.hitl.washington.edu/artoolkit/, Mai 2007. [19] Köhne, A.: Wie funktioniert GPS. Alles Wissenswerte.. URL, http: //www.kowoma.de/gps/index.htm, Mai 2007. [20] Müller, H.: Sensorgröße von Digitalkameras. URL, http://www. horstmueller-galabau.de/diverses/digitalkameras.htm, Mai 2007. [21] National Institute of Health: ImageJ . URL, http://rsb.info.nih. gov/ij/, Mai 2007. [22] Navigon: TS 7000T Europe mit MobileNavigator 6 . URL, https:// www.navigon.com/site/de/de/shop/consumer/bundles/pna/948, September 2007. [23] Niblack, W.: An Introduction to Digital Image Processing. PrenticeHall International (UK) Ltd, September 1986. [24] Numratzki, P.: DigiCam Fotos. URL, http://www.digicamfotos.de/ digicamtech/details2.php?image_id=272, Mai 2007. [25] Pintaric, T.; Kaufmann, H.: Affordable Infrared-Optical PoseTracking for Virtual and Augmented Reality. VR 2007/IEEE, März 2007. [26] Prinz, T.: Signallaufzeit und Trägerphasenmessung. URL, http:// ivvgeo.uni-muenster.de/Vorlesung/GPS/MessungSignallaufzeit.htm, September 2006. LITERATURVERZEICHNIS 101 [27] Ribo, M.: State of the art report on optical tracking. Technical Report VRVis 2001-25, TU Wien, 2001. [28] Ribo, M., A. Pinz und A. Fuhrmann: A new Optical Tracking System for Virtual and Augmented Reality Applications, In Proc. of IEEE Instrumentation and Measurement Technology Conference, IMTC 2003. [29] Roberto M.; Cesar Jr: Shape Analysis and Classification: Theory and Practice. CRC Press LLC, Dezember 2001. [30] Schreer, O.: Stereoanalyse und Bildsynthese. Springer-Verlag New York, Inc., Secaucus, NJ, USA, März 2005. [31] Sony: DSC-W7 Technische Daten. URL, http://www.sony.at, Mai 2007. [32] Sturm, P. F. und B. Triggs: A Factorization Based Algorithm for Multi-Image Projective Structure and Motion. In: ECCV ’96: Proceedings of the 4th European Conference on Computer Vision-Volume II , S. 709–720, London, UK, 1996. Springer-Verlag. [33] Svoboda, T., D. Martinec und T. Pajdla: A Convenient MultiCamera Self-Calibration for Virtual Environments. PRESENCE: Teleoperators and Virtual Environments, (14(4)):407–422, August 2005. [34] Tang, W. K. und Y. S. Hung: A column-space approach to projective reconstruction. Comput. Vis. Image Underst., 101(3):166–176, 2006. [35] Tipler, P. A.: Physik . Spektrum akademischer Verlag, 1994. [36] Tomasi, C. und T. Kanade: Shape and motion from image streams under orthography: a factorization method . Int. J. Comput. Vision, 9(2):137–154, November 1992. [37] Triggs, B., P. McLauchlan, R. Hartley und A. Fitzgibbon: Bundle Adjustment – A Modern Synthesis. In: Triggs, W., A. Zisserman und R. Szeliski (Hrsg.): Vision Algorithms: Theory and Practice, LNCS, S. 298–375. Springer Verlag, 2000. [38] u-blox AG: SuperSense Indoor GPS . URL, http://www.u-blox.com/ technology/supersense.html, Oktober 2007. [39] USA Department of Defense: Global Positioning System Standard Positioning Service Performance Standard . URL, http://www.navcen. uscg.gov/gps/geninfo/2001SPSPerformanceStandardFINAL.pdf, Oktober 2001. [40] World Wide Web Consortium: Scalable Vector Graphics (SVG) 1.1 Specification. URL, http://www.w3.org/TR/SVG/, Mai 2007. LITERATURVERZEICHNIS 102 [41] Wunderlich, T. A.: Positionsbestimmung für Location Based Services. URL, http://www.intergeo.de/deutsch/page/kongress/downloads/ archiv/2004/Wunderlich.pdf, Oktober 2004. [42] Zhang, Z.: A flexible new technique for camera calibration. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 22(11):1330– 1334, 2000. Messbox zur Druckkontrolle — Druckgröße kontrollieren! — Breite = 100 mm Höhe = 50 mm — Diese Seite nach dem Druck entfernen! — 103