DIPLOMARBEIT Visuelle Fahrzeugverfolgung mittels Embedded Systems Ausgeführt am Institut für Rechnergestützte Automation Arbeitsbereich für Mustererkennung und Bildverarbeitung der Technischen Universität Wien unter der Anleitung von Univ.Prof. Dipl.-Ing. Dr.techn. Horst Bischof durch Stephan Veigl Hungereckstr. 32 1230 Wien Matr.Nr.: 9526342 März 2008 Die approbierte Originalversion dieser Diplom-/Masterarbeit ist an der Hauptbibliothek der Technischen Universität Wien aufgestellt (http://www.ub.tuwien.ac.at). The approved original version of this diploma or master thesis is available at the main library of the Vienna University of Technology (http://www.ub.tuwien.ac.at/englweb/). Danksagung An dieser Stelle möchte ich mich bei all meinen Freunden und Studienkollegen bedan- ken, die mich während meines Studiums begleitet und unterstützt haben, sei es durch fachliche Diskussionen, oder indem sie mich ermutigt haben weiter zu machen, wenn die Dinge nicht so liefen, wie ich es erhot hatte. Somit wurden aus Studienkollegen Freunde. Hier möchte ich mich besondere bei Oliver Fasching bedanken, der mir mathematische Fragen immer kompetent beantwort hat und auch sonst immer einen hilfreichen Rat hatte. Bei Prof. Horst Bischof möchte ich mich besonders für seine Geduld und seine raschen und hilfreichen Antworten auf meine Fragen bedanken. Weiters möchte ich mich noch bei meinen Arbeitskollegen bedanken, und zwar ganz besonders bei Gustavo Fernandez Dominguez und Roman Pugfelder, die nicht müde wurden meine Fragen zu beantworten und verschiedenste Ansätze zu diskutieren. Ein ganz besonderer Dank gilt meinen Eltern, die mich immer unterstützt und ermutigt haben. Die letzte Zeit war sicher auch für sie nicht immer einfach. Danke! Schlieÿlich möchte ich mich noch bei meiner Freundin Diana Nenning für ihre groÿe Hilfe bedanken, und dafür, dass sie mich immer wieder ermuntert hat weiter zu machen. Danke. Wien, am 2. März 2008 Stephan Veigl i ii Zusammenfassung Bei steigendem Verkehr und damit gröÿerer Auslastung des Straÿennetzes wird es für Verkehrsleitzentralen immer wichtiger, genaue Informationen über die aktuelle Verkehrs- lage zu erhalten. Die Rohdaten stammen dabei von unterschiedlichen Sensoren, unter anderem auch von Verkehrskameras. In dieser Arbeit wird ein Bildverarbeitungssystem beschrieben, mit dessen Hilfe verkehrsrelevante Daten aus den Videos von statischen Verkehrskameras ermittelt werden können und zwar direkt vor Ort, mittels Embedded Systems. Dazu werden die einzelnen Module des Bildverarbeitungssystems detailliert beschrieben und ein Prototyp erstellt, welcher abschlieÿend evaluiert wird. Als Basis wird ein Hintergrundmodell der Szene aufgebaut. In dieser Arbeit werden zuerst verschiedene Hintergrundalgorithmen beschrieben und verglichen, wobei der Ap- proximated Median Algorithmus als der am besten für die Anwendung geeignete ausge- wählt wurde. Um Fehler im Hintergrundmodell durch bewegte Fahrzeuge zu vermeiden, wurden eine selektive Hintergrundaktualisierung und eine globale Helligkeitsanpassung des Hintergrundmodells implementiert. Als Objektmodell dienen ein 3-dimensionaler Quader, der das Fahrzeug einschlieÿt, und ein Objektbasispunkt. Als Basispunkt wird der Schwerpunkt des Objektblobs verwendet, der mit einer konstanten Höhe in das Weltkoordinatensystem projiziert wird. Um auf dem DSP keine Matrizeninversen für die Rückprojektion berechnen zu müssen, wird die Inverse der Homographie der Grundebene vorausberechnet und die Höhe durch einen Korrekturvektor mit einbezogen. Das Trackingmodul beruht auf einem histogrammbasierten Mean-Shift Algorithmus, der für die Implementierung auf einem DSP adaptiert wurde (Fixpunktarithmetik, verein- fachte Gewichtsfunktion, minimaler Bhattacharyya Koezient und Subpixel Skalierung). Die Ergebnisse des Mean-Shift Trackers werden mit den Blobs der Vordergrundmaske aus dem Hintergrundmodell korreliert. Dabei werden beide Ergebnisse mit dem Kon- denzwert des Trackers bzw. der Vordergrundmaske gewichtet. Diese Module werden zu einem Gesamtsystem integriert, das sowohl auf einem PC als iii auch auf einem DSP (Texas Instruments TMS320C64xx ) lauähig ist. Dazu wird ein DSP-via-PC Framework entwickelt, um Software, die für einen DSP gedacht ist, am PC entwickeln und testen zu können und gleichzeitig quellcodekompatibel zu bleiben. In der abschlieÿenden Evaluierung wird das Gesamtsystem sowohl mittels synthetisch erzeugter Testsequenzen als auch Videos von Tunnelkameras und Freilandautobahnen getestet. Somit wird gezeigt, dass Bildverarbeitung zur Fahrzeugverfolgung mit den be- schriebenen Methoden, unter bestimmten Bedingungen, auch auf Embedded Systems möglich ist. Eine der wesentlichsten Bedingungen dabei ist, dass eine gute Objektini- tialisierung durchgeführt werden kann. Für den entwickelten Prototyp bedeutet dies, dass die Vordergrundmasken der einzelnen Fahrzeuge während der Initialisierung nicht miteinander verschmelzen dürfen. iv Acknowledgement Diese Arbeit wurde vom österreichischen Bundesministerium für Verkehr, Innovation und Technologie (bmvit) im Rahmen des Programms I2-2-26p VITUS-2 unterstützt. VITUS Homepage: http://www.smart-systems.at/rd/rd_video_vitus_de.html Das Forschungsprojekt AVITRACK wurde von der Europäischen Union unterstützt (AST3-CT-2003-502818). Mehr Information zu dem Projekt bendet sich auf folgen- der Webseite: http://www.avitrack.net Teile der Illustrationen basieren auf Graken der Open Clip Art Library: http://www.openclipart.org. v vi Inhaltsverzeichnis 1 Einleitung 1 1.1 Motivation & Ziel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Allgemeine Annahmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 Hintergrunderkennung 7 2.1 Hintergrundmodelle in der Literatur . . . . . . . . . . . . . . . . . . . . . 7 2.1.1 Hintergrundalgorithmen . . . . . . . . . . . . . . . . . . . . . . . 9 2.1.2 Vergleiche dieser Hintergrundmodelle in der Literatur . . . . . . . 17 2.2 Evaluierung der Hintergrundmodelle . . . . . . . . . . . . . . . . . . . . 20 2.2.1 Übersicht der Ergebnisse der einzelnen Hintergrundalgorithmen . 23 2.2.2 Zusammenfassung der Evaluierung der Hintergrundalgorithmen . 26 2.3 Erweitertes Hintergrundmodell . . . . . . . . . . . . . . . . . . . . . . . . 33 2.3.1 Selektive Hintergrundaktualisierung . . . . . . . . . . . . . . . . . 33 2.3.2 Globale Helligkeitsanpassung . . . . . . . . . . . . . . . . . . . . 34 2.4 Segmentierung und Labeling . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.5 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3 Objektmodell 41 3.1 Welt-/Bildkoordinaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.1.1 Weltkoordinaten in Bildkoordinaten Transformation (3D nach 2D) 42 3.1.2 Bildkoordinaten in Weltkoordinaten Transformation (2+1D nach 3D) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.2 Das Fahrzeug Objektmodell . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.2.1 Histogramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.3 Fahrzeugdetektion / Initialisierung des Objektmodells . . . . . . . . . . . 54 4 Tracking 57 4.1 Tracking Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 4.1.1 Der Mean-Shift Algorithmus . . . . . . . . . . . . . . . . . . . . . 58 4.1.2 Mean-Shift Implementierung . . . . . . . . . . . . . . . . . . . . . 60 4.2 Abgleich mit Objektmodell . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4.2.1 Objekt-Blob-Korrelation . . . . . . . . . . . . . . . . . . . . . . . 68 vii Inhaltsverzeichnis 4.2.2 Objektmasken Optimierung . . . . . . . . . . . . . . . . . . . . . 69 4.2.3 Initialisierung neuer Objekte . . . . . . . . . . . . . . . . . . . . . 70 4.2.4 Objekt Nachverarbeitung . . . . . . . . . . . . . . . . . . . . . . . 71 4.3 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 5 System 75 5.1 Hilfsmodule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 5.1.1 Datenmanagementmodul . . . . . . . . . . . . . . . . . . . . . . . 76 5.1.2 Statistikmodul . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 5.2 DSP-via-PC Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 5.2.1 Motivation und Zielsetzung . . . . . . . . . . . . . . . . . . . . . 77 5.2.2 Funktionsumfang . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 5.3 Gesamtsystemintegration . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 5.3.1 Systeminitialisierung . . . . . . . . . . . . . . . . . . . . . . . . . 81 5.3.2 Hauptschleife . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 6 Evaluation 85 6.1 Evaluationsmethode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 6.2 Testsequenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 6.3 Resultate der Objektinitialisierung . . . . . . . . . . . . . . . . . . . . . 92 6.4 Resultate des Mean-Shift Trackings . . . . . . . . . . . . . . . . . . . . . 99 6.5 Evaluation des Gesamtsystems . . . . . . . . . . . . . . . . . . . . . . . . 104 6.5.1 Systeminitialisierung . . . . . . . . . . . . . . . . . . . . . . . . . 104 6.5.2 Resultate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 6.6 Laufzeit Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 6.7 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 7 Conclusio 117 7.1 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Literaturverzeichnis xvii viii Abbildungsverzeichnis 1.1 Blockdiagramm der Module eines Trackingsystems . . . . . . . . . . . . . 2 1.2 Ein Objekt zerfällt in mehrere Blobs. . . . . . . . . . . . . . . . . . . . . 4 2.1 Generischer Hintergrundalgorithmus nach Cheung und Kamath [1] . . . . 8 2.2 Manuell erstelltes Hintergrundbild . . . . . . . . . . . . . . . . . . . . . . 22 2.3 Frame Dierencing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.4 Min / Max W 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.5 Gleitender Mittelwert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.6 Median . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.7 Approximated Median . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.8 Kalman Gray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.9 Vergleich zwischen normaler selektiver Hintergrundaktualisierung und hel- ligkeitsanpassender Hintergrundaktualisierung . . . . . . . . . . . . . . . 35 2.10 Fragmentzuordnung von Run-Label Segmentierungs-Algorithmus . . . . . 37 3.1 Koordinatensysteme und Lagebeziehungen . . . . . . . . . . . . . . . . . 42 3.2 Skizze der Abbildung eines Punktes zwischen einer Ebene Π′ parallel zur Referenzebene Π und der Bildebene . . . . . . . . . . . . . . . . . . . . . 47 3.3 Bild einer Verkehrskamera mit den eingezeichneten Objektmodellen der getrackten Fahrzeuge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.1 Objekt-Blob-Korrelation mit eingezeichneten Tracker Bounding-Boxen (grün strichliert) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 4.2 Bounding-Boxen der Objektmasken (blau strichliert) und dazugehörige Blobs (grau) sowie nicht integrierbare Blobs (weiÿ) . . . . . . . . . . . . 70 5.1 Gesamtsystem Übersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 5.2 Diagramm Funktionensaufrufe im Gesamtsystem . . . . . . . . . . . . . . 82 6.1 statistische Fehlerkategorien . . . . . . . . . . . . . . . . . . . . . . . . . 86 6.2 Beispielbilder der generierten Testsequenzen . . . . . . . . . . . . . . . . 90 6.3 Beispielbilder der Testsequenz: k131-1_3_2 . . . . . . . . . . . . . . . . 90 6.4 Beispielbilder der Testsequenz: k131-1_5_3 . . . . . . . . . . . . . . . . 90 6.5 Beispielbilder der Testsequenz: Altmannsdorf_08 . . . . . . . . . . . . . 91 ix Abbildungsverzeichnis 6.6 Beispielbilder der Testsequenz: Altmannsdorf_09 . . . . . . . . . . . . . 91 6.7 Beispielbilder der Testsequenz: Altmannsdorf_10 . . . . . . . . . . . . . 91 6.8 Tracker Detection Rate (TRDR) der Objektinitialisierung in Abhängig- keit vom Vordergrundschwellwert γ (als Vielfaches der Standardabwei- chung) der Testsequenz: Altmannsdorf_08 . . . . . . . . . . . . . . . . . 92 6.9 False Alarm Rate (FAR) der Objektinitialisierung in Abhängigkeit vom Vordergrundschwellwert γ (als Vielfaches der Standardabweichung) der Testsequenz: Altmannsdorf_08 . . . . . . . . . . . . . . . . . . . . . . . 93 6.10 Tracker Detection Rate (TRDR) der Objektinitialisierung unterschiedli- cher Farbmodelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 6.11 Tracker Detection Rate (TRDR) der Objektinitialisierung der fünf aus- gewählten Farbmodelle für die synthetischen Testsequenzen . . . . . . . . 96 6.12 Tracker Detection Rate (TRDR) der Objektinitialisierung der fünf aus- gewählten Farbmodelle für die realen Testsequenzen . . . . . . . . . . . . 97 6.13 Tracker Detection Rate (TRDR) des Trackers für die synthetischen Test- sequenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 6.14 Tracker Detection Rate (TRDR) des Trackers für die realen Testsequenzen102 6.15 Tracker Detection Rate (TRDR) des Gesamtsystems für die synthetischen Testsequenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 6.16 Tracker Detection Rate (TRDR) des Gesamtsystems für die realen Test- sequenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 6.17 Receiver Operating Characteristic (ROC) des Gesamtsystems für die syn- thetischen Testsequenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 6.18 Receiver Operating Characteristic (ROC) des Gesamtsystems für die rea- len Testsequenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 x Tabellenverzeichnis 2.1 Semmeringtunnel Testsequenzen . . . . . . . . . . . . . . . . . . . . . . . 20 2.2 Ergebnisse der Hintergrundalgorithmen Evaluierung . . . . . . . . . . . . 23 6.1 Beschreibung der Testsequenzen . . . . . . . . . . . . . . . . . . . . . . . 88 6.2 normalized Track Fragmentation des Mean-Shift Trackers . . . . . . . . . 99 6.3 False Match Rate FMR des Mean-Shift Trackers (Detektionstoleranz θ = 50%) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 6.4 normalized Track Fragmentation des Gesamtsystems . . . . . . . . . . . 106 6.5 False Match Rate FMR des Gesamtsystems (Detektionstoleranz θ = 50%)107 6.6 Laufzeitmessung der Testsequenzen am DSP Simulator . . . . . . . . . . 114 xi Tabellenverzeichnis xii Glossar apron (Flughafen Vorfeld) Das Vorfeld ist jener Bereich des Flughafens, in dem die Flugzeuge geparkt, be- und entladen werden. Bildhauptpunkt Der Bildhauptpunkt (cx, cy) ist der Schnittpunkt der optischen Achse mit der Bildebene (in Bildkoordinaten) [2](Seite 48). Embedded System Geräte oder Systeme, in denen ein oder mehrere Digitale Signal- prozessoren eingebaut sind und eine ganz bestimmte Aufgabe erledigen, werden als Embedded Systems bezeichnet. Die Programmierung erfolgt durch den Hersteller und ist vom Anwender nicht änderbar (Firmware). externe Kameraparameter Die externen oder äuÿeren Kameraparameter beschreiben die Lage und Orientierung der Kamera (bzw. des Kamerakoordinatensystems) im Weltkoordinatensystem [3](Seite 13f). Frame Ein Frame ist ein Einzelbild eines Films bzw. Videos. Ground Truth Die Referenzdaten einer Evaluierung werden als Ground Truth bezeich- net. Homographie Die Homographie ist eine bijektive Abbildung zwischen der Oberäche zweier geometrischer Figuren bzw. zwischen (Teil-)Räumen. HSV bezeichnet ein Farbmodell, das den Farbraum als umgedrehten Kegel darstellt. Die Mittelachse entspricht der Dunkelstufe (value V), wobei die Spitze Schwarz und die Basis Weiÿ sind. Der Radius beschreibt die Sättigung (saturation S), von Grau an der Mittelachse bis zur reinen Farbe am Rand. Der Farbton (hue H) wird durch den Winkel zu einer Bezugsebene durch die Mittelachse beschrieben. xiii Glossar interne Kameraparameter Die internen Kameraparameter sind die konstruktionsbe- dingten Parameter der Kamera: Fokale Länge, Lage des Bildhauptpunktes sowie Skalierung und Verzerrung [3](Seite 13 u. 17). Kameramatrix Mit Hilfe der 4x3 Kameramatrix wird die Weltkoordinaten-in-Bildkoor- dinaten Transformation durchgeführt. kartesisches Koordinatensystem Ein orthogonales, äquidistantes Koordinatensystem wird als kartesisches Koordinatensystem bezeichnet (benannt nach René Descar- tes). persistenter Speicher Ein Speicher, dessen Inhalt auch zwischen Deaktivierung und neuerlicher Aktivierung einer Algorithmusinstanz erhalten bleibt, wird als persis- tenter Speicher bezeichnet. RGB bezeichnet ein Farbmodell mit drei Farbkanälen: Rot, Grün und Blau. scratch Speicher Ein Speicher, den sich mehrere Algorithmen teilen, wird als scratch Speicher bezeichnet. Der Inhalt kann überschrieben werden, nachdem die Algo- rithmusinstanz deaktiviert wurde. sparse Eine sparse oder dünnbesetzte Datenstruktur bzw. Matrix besitzt überwiegend Einträge, die den Wert 0 haben. YCrCb bezeichnet ein Farbmodell mit einem Helligkeitskanal Y und zwei Farbkanälen: Cr und Cb. Dieses Farbmodell bildet häug die Grundlage zur analogen Codierung und Übertragung von Farbbildern. xiv Abkürzungsverzeichnis API - Application Programming Interface Programmierschnittstelle Unter API versteht man eine wohl denierte Programmierschnittstelle von Modu- len bzw. Bibliotheken. Mittels dieser Schnittstelle können Anwendungsprogramme Funktionen dieser Module bzw. Bibliotheken aufrufen und benutzen. DSP - Digital Signal Processor Digitaler Signalprozessor DSPs sind Microprozessoren, die speziell für die Signalverarbeitung optimiert sind. Im Gegensatz zu üblichen Büroanwendungen, bei denen hauptsächlich Daten be- wegt werden, kommt es bei der digitalen Signalverarbeitung darauf an, mathema- tische Algorithmen möglichst schnell (in Echtzeit) zu berechnen. [4](Seite 503f) IDE - Integrated Development Environment integrierte Entwicklungsumgebung Eine IDE ist eine Programmsammlung, die die wichtigsten Werkzeuge der Soft- wareentwicklung (Texteditor, Compiler, Linker bzw. Interpreter, Debugger, etc.) unter einer einheitlichen Oberäche zur Verfügung stellt. ROI - Region of Interest Die ROI ist jener Bereich des Bildes oder der Matrix, auf den die Verarbeitung angewandt wird. XDAIS - eXpressDSP Algorithm Interface Standard XDAIS ist ein von Texas Instruments entwickelter Algorithmusstandard für TMS320x DSPs. [5] Abkürzungsverzeichnis xvi 1 Einleitung 1.1 Motivation & Ziel Das Fahrzeugvolumen steigt bei gleichbleibender Kapazität der Straÿen. Um in dieser Situation einen optimalen Verkehrsuss gewährleisten zu können, muss im Bedarfsfall durch ein aktives Verkehrsmanagement regelnd eingegrien werden. Dazu muss wieder- um die aktuelle Verkehrslage bekannt sein, also beobachtet werden. Dies geschieht einerseits durch automatisch ermittelte Kennzahlen wie die Anzahl der Fahrzeuge pro Zeiteinheit, die mittlere Geschwindigkeit, die Belegung einzelner Spuren, etc. Eine sehr verbreitete Methode zur Erfassung dieser Daten sind in die Fahrbahn eingelassene Induktionsschleifen. Diese Sensoren liefern aber immer nur punktuelle Mes- sungen und erfordern zusätzliche bauliche Maÿnahmen. Andererseits werden live Videobilder ausgewählter Streckenabschnitte in Verkehrsleit- zentralen beobachtet und beurteilt. Dabei können aber immer nur eine begrenzte An- zahl an Verkehrsvideos auf dem Bildschirm dargestellt werden, wobei diese Anzahl durch technische Rahmenbedingungen und vor allem auch durch die begrenzte Aufnahmeka- pazität des menschlichen Beobachters limitiert ist. Bildverarbeitungssysteme können den Beobachter unterstützen, indem sie die aktuelle Verkehrslage durch Auswertung der Bilder aller Verkehrskameras feststellen und rele- vante Videos auf den Monitor aufschalten, Problemzonen visualisieren oder Meldungen ausgeben. Die notwendige Bildverarbeitung kann dabei entweder in der Verkehrsleitzentrale, direkt an der Quelle (in der Nähe der Kamera) oder verteilt (Vorverarbeitung bei der Quelle, weitere Verarbeitung und Analyse in der Zentrale) erfolgen. Abhängig von dem Ort, an dem die Daten verarbeitet werden, sind unterschiedliche Sys- teme denkbar. Ein PC System hat den groÿen Vorteil, dass Standardkomponenten (so- wohl Hardware als auch Software) verwendet werden können, wohingegen die Hardware eines Embedded System individuell an die Umgebungsbedingungen angepasst werden kann. 1 1.2. ÜBERBLICK Gerade bei dem Einsatz im Feld haben Embedded Systems Vorteile gegenüber einem PC System: • Embedded Systems sind unempndlicher gegenüber Umwelteinüssen als PC Sys- teme (insb. zulässige Umgebungstemperatur). • Embedded Systems können so geplant und gebaut werden, dass sie keine bewegten Teile enthalten. Daher ist kein mechanischer Verschleiÿ möglich, was die Lebens- dauer erhöht und sie wartungsfreundlich macht. Somit können Embedded Systems direkt vor Ort in der Nähe der Kamera eingebaut werden, wodurch die Bildverarbeitung auf qualitativ hochwertigen Rohbildern durchge- führt werden kann, da die Bilder vorher nicht über weite Strecken übertragen und dazu komprimiert werden müssen (digitale Übertragung) bzw. durch Übertragungsstörungen an Qualität verlieren (analoge Übertragung). Allerdings sind die Prozessoren von Embedded Systems nicht so leistungsstark wie die von PC Systemen und die verfügbaren Ressourcen sind vergleichsweise eingeschränkt, wodurch die Bildverarbeitung auf Embedded Systems schwieriger wird. Das Ziel dieser Diplomarbeit ist es, entsprechende Algorithmen für ein Fahrzeugverfol- gungssystem mittels Embedded Systems auszuwählen, einen Prototyp zu erstellen und zu evaluieren, um zu zeigen, ob, bzw. mit welcher Qualität, dies möglich ist. 1.2 Überblick Der Prototyp zur Verfolgung von Fahrzeugen mittels Embedded Systems muss, wie je- des Trackingsystem, mehrere Teilaufgaben lösen. Diese Lösung der Teilaufgaben lässt sich durch mehrere nur lose miteinander verbundene Module realisieren (siehe Abbil- dung 1.1). Der erste Teil dieser Arbeit beschäftigt sich mit den Modulen der Bildverarbeitung. Abbildung 1.1: Blockdiagramm der Module eines Trackingsystems 2 KAPITEL 1. EINLEITUNG Das Hintergrundmodell erstellt ein Modell des aktuellen Hintergrundes. Dabei werden unter Hintergrund jene Bereiche im Bild verstanden, die über den Beobachtungszeitraum starr sind, oder sich in wohl denierter, vorhersagbarer Weise ändern (z.B. Umschalten einer Verkehrsampel). Ein einfaches Beispiel ist das Bühnenbild mit fest installierten Re- quisiten im Theater. Es kann vorkommen, dass eine Person oder ein Objekt von einem dem Hintergrund zugeordnetem Gegenstand (z.B. einen Baum) teilweise oder vollstän- dig verdeckt wird (siehe Abbildung 1.2). Durch einen Vergleich des aktuellen Hintergrundmodells mit dem aktuellen Bild ist es möglich, die Vordergrundobjekte zu extrahieren. Im einfachsten Fall kann dies durch eine Dierenzmaskenbildung mit einer anschlieÿenden Segmentierung und Labeling ge- schehen. Zuerst werden einige bekannte Algorithmen vorgestellt und miteinander verglichen. An- schlieÿend wird der erweiterte Hintergrundalgorithmus, so wie er im Prototyp implemen- tiert wurde, beschrieben. Der Segmentierung und dem Labeling der vom Hintergrundal- gorithmus erzeugten Masken wird ein eigenes Unterkapitel gewidmet. Das Thema Hintergrundmodell wird in Kapitel 2 diskutiert. Mit den Resultaten des Hintergrundmodells, der Segmentierung und dem Labeling kann für jedes relevante Objekt eine eigene Instanz des Objektmodells erzeugt werden. Dabei werden jene Segmente, die nicht dem Hintergrund entsprechen, als Blobs bezeichne. Die Vereinigung aller Blobs in einem Frame stellt den Vordergrund dar. Neue Blobs werden zur Initialisierung neuer Objekte verwendet, wenn dies vom Objektmodell unterstützt wird. Auÿerdem wird in diesem Kapitel die Projektion von 3D Positionen in Pixel Koordinaten und deren Rückprojektion behandelt, da diese Transformation im Objektmodell benutzt wird. Das Objektmodell wird in Kapitel 3 beschrieben. Beim Tracking wird das Abbild eines Objektes über mehrere Frames hinweg verfolgt. Das bedeutet, dass eine Korrelation des Objektes im vorangegangenen Bild zu einem Bereich im aktuellen Bild hergestellt wird. Dabei wird nach übereinstimmenden Merk- malen wie Position, Struktur, Farbe, etc. gesucht. Wenn sich zwei oder mehr Objekte überlappen, verschmelzen diese zu einem als Ge- samtes segmentierten Bereich, das heiÿt zu einem einzigen Blob. Dieser Blob muss dann durch einen höhere Logik geteilt und den jeweiligen Objekten zugeordnet werden. An- dererseits ist es auch möglich, dass ein Objekt in mehrere Blobs zerfällt, was eintritt, wenn es von einem Gegenstand, der zum Hintergrund gehört, so überdeckt wird, dass die sichtbaren Teile nicht miteinander verbunden sind (siehe Abbildung 1.2(f)). Zuerst wird der allgemeine Mean-Shift Algorithmus erläutert, anschlieÿend werden die Erweiterungen und Abänderungen, wie sie im Prototyp implementiert wurden, disku- tiert. Der Abgleich der Ergebnisse des Trackers mit dem verwendeten Objektmodell und weiteren Informationen (aus dem Hintergrundmodell) wird als weiterer Punkt in diesem 3 1.2. ÜBERBLICK (a) Hintergrund der Szene (b) durch die Szene bewegtes Objekt (c) Bild: Objekt (Bus) vollständig sicht- bar (d) Bild: Objekt (Bus) teilweise verdeckt 1 2 (e) Segmentierung: Objekt (Bus) vollstän- dig sichtbar 1 2 3 (f) Segmentierung: Objekt (Bus) teilweise verdeckt Abbildung 1.2: Ein Objekt zerfällt in mehrere Blobs. 4 KAPITEL 1. EINLEITUNG Kapitel behandelt. Das Trackingmodul ist in Kapitel 4 beschrieben. Der zweite Teil dieser Arbeit beinhaltet die Integration der Bildverarbeitungsmodule zu einem Gesamtsystem, sowie die Evaluierung des Prototypen und die Ergebnisse. Die Kernmodule des Prototypen wurden in Abbildung 1.1 illustriert und in den vorigen Absätzen kurz beschrieben. Für einen funktionierenden Prototyp werden allerdings noch ein Rahmenwerk und weitere Hilfsmodule benötigt, in das die Bildverarbeitungsmodule eingebettet werden. Zuerst wird ein Überblick über die verwendeten Hilfsmodule sowie das DSP-via-PC Framework gegeben. Anschlieÿend wird erläutert, wie die in den vorigen Kapiteln be- schriebenen Module zu einem Gesamtsystem zusammengefügt werden. Das Gesamtsystem wird in Kapitel 5 behandelt. Nachdem unterschiedliche Bildverarbeitungsmodule zu einem Gesamtsystem integriert wurden, wird die Trackingqualität dieser Kombination unterschiedlicher Algorithmen getestet. Zuerst wird die Evaluationsmethode mit der verwendete Metrik und den berechneten Kennzahlen erläutert. Die Evaluation wird sowohl mittels synthetisch erzeugten Testse- quenzen als auch mit Videos echter Verkehrskameras durchgeführt. Die einzelnen Module werden gesondert evaluiert, bevor das Gesamtsystem getestet wird und die Ergebnisse ausgewertet werden. Zusätzlich wird eine Laufzeitabschätzung aufgrund von Messungen mit einem Simulator durchgeführt. Die Evaluierung des Prototypen wird in Kapitel 6 beschrieben. Abschlieÿend wird diese Arbeit im Kapitel 7 zusammengefasst und mögliche zukünftige Erweiterungen werden diskutiert. 1.3 Allgemeine Annahmen Voraussetzungen sowie grundlegende Annahmen, die für die gesamte Arbeit gelten, sind hier zusammengefasst. konstante Kameraorientierung : Die Kameras sind unbeweglich montiert. Dies ist die Grundvoraussetzung um die beschriebenen Hintergrundmodelle einsetzen zu können. Common Ground Plane: Alle Objekte bewegen sich auf genau einer Ebene (Grundä- che). 5 1.3. ALLGEMEINE ANNAHMEN Fahrbahn: Alle interessanten Objekte bewegen sich nur auf der Fahrbahn ( = Region of Interest (ROI)), Blobs auÿerhalb der ROI (z.B. Reexionen, Rauschartefakte, etc.) werden ignoriert. Fahrtrichtung / Fahrzeugorientierung : Fahrzeuge bewegen sich im Allgemeinen paral- lel zur Fahrspur. Spurwechsel sind eher die Ausnahme und bewirken nur eine geringfügige Drehung des Fahrzeuges. denierter Ein- / Ausfahrtsbereich: Objekte können nicht plötzlich auftauchen bzw. verschwinden. Es gibt klar denierte Bereiche, in denen Objekte in das Bild eintreten bzw. das Bild verlassen können. Quadermodell : Als Fahrzeugmodell dient ein 3D Quader, der das Fahrzeug einschlieÿt und sich direkt auf der Grundäche bendet. starre Objekte: Alle relevanten Objekte sind starr und ändern ihre Erscheinung nicht. Bei den betrachteten Objekten handelt es sich, falls nicht explizit anders beschrieben, ausschlieÿlich um Fahrzeuge, wie sie am allgemeinen Straÿenverkehr teilnehmen. Die angestellten Überlegungen bzw. verwendeten Algorithmen sind nicht an einen be- stimmten Objekttyp gebunden. Im Prototyp wurde keine Objekttyperkennung integriert, sondern angenommen, dass sich alle Fahrzeuge durch ein Objektmodell modellieren las- sen. 6 2 Hintergrunderkennung Um neue Objekte erkennen zu können, muss die Ausgangssituation wohldeniert sein. Jedes neue Objekt stellt dann eine Veränderung dieser Ausgangssituation dar, die im Bild festgestellt werden kann, wobei die Ausgangssituation als Hintergrund bezeichnet wird. In dieser Arbeit wird der Szenen-Begri auf dem Szene-Begri der Computergrak auf- gebaut: Unter einer Szene werden alle Objekte und die Beleuchtung einer Videosequenz verstanden. Eine leere Szene ist die Menge aller statischen und für die Aufgabenstellung nicht rele- vanten Objekte. Der Hintergrund wird somit durch eine leere Szene repräsentiert, deren Bild aber nicht statisch ist (z.B. Beleuchtungsänderung). Das Modell des Hintergrundes muss diese Än- derungen berücksichtigen und entsprechend integrieren, während Änderungen von Nicht- Hintergrundobjekten nicht berücksichtigt werden sollen. 2.1 Hintergrundmodelle in der Literatur Cheung und Kamath vergleichen in [1] verschiedene Hintergrundalgorithmen. Dabei ge- hen sie von einem Flussdiagramm eines generischen Hintergrundalgorithmus aus (Ab- bildung 2.1). Die Komponenten sind: Vorverarbeitung (Preprocessing): notwendige Vorverarbeitungsschritte wie Skalierung, Rauschunterdrückung, Farbanpassung, Filter oder Registrierung des Bildausschnit- tes bei beweglichen Kameras. Hintergrundmodellierung (Background Modelling): statistische Beschreibung der Hin- tergrundszene und Verarbeitung des aufbereiteten Bildes aus dem vorhergehenden 7 2.1. HINTERGRUNDMODELLE IN DER LITERATUR Schritt. Vordergrunderkennung (Foreground Detection): Klassizierung von Hintergrund- und Vordergrundbereichen und Erstellung einer entsprechenden Maske. Als Vorder- grund werden alle Pixel gewertet, die nicht durch das aktuelle Hintergrundmodell beschrieben werden können. Datenvalidierung (Data Validation): Überprüfung der Maske mit High-Level Metho- den. Rückkopplung (Delay): Durch die Rückkopplungsschleife wird das vorhergehende Bild, zusammen mit den Informationen der Vordergrunderkennung und Datenvalidie- rung, wieder in die Hintergrundmodellierung eingespeist. Vordergrundmasken (Foreground Masks): Maske die, nach der Datenvalidierung, je- ne Bereiche enthält, die als Vordergrund klassiziert wurden. Abbildung 2.1: Generischer Hintergrundalgorithmus nach Cheung und Kamath [1] Die Autoren teilen die von ihnen untersuchten Algorithmen in nicht-rekursive und re- kursive Techniken ein. Nicht-Rekursive Algorithmen Nicht-Rekursive Methoden verwenden einen Buer konstanter Gröÿe, in dem die letz- ten n Frames, zeitlich geordnet, gespeichert sind. Das Hintergrundmodell bezieht sich ausschlieÿlich auf Daten des aktuellen Buers. Frames bzw. Daten die nicht mehr im Buf- fer gespeichert sind, werden für die Hintergrundmodellierung nicht mehr berücksichtigt. Diese Methoden können schnell auf Änderungen im Hintergrund reagieren. Andererseits kann der benötigte Buer sehr groÿ werden, wenn sich langsam bewegte Objekte in der Szene benden, die nicht in das Hintergrundmodell aufgenommen werden sollen. Je 8 KAPITEL 2. HINTERGRUNDERKENNUNG nach Algorithmus und Implementierung kann daher der benötigte Speicherplatz sehr hoch sein. Rekursive Algorithmen Rekursive Methoden integrieren das aktuelle Frame direkt in das Hintergrundmodell, oh- ne es in einem Buer zu speichern, daher benötigen sie im Vergleich zu Nicht-Rekursiven Methoden weniger Speicher. Alle vergangenen Frames haben einen Einuss auf das aktu- elle Hintergrundmodell, da sie nicht gespeichert wurden und daher nicht mehr gezielt aus dem Hintergrundmodell herausgerechnet werden können. Dies bedeutet, dass sich Fehler oder veraltete Daten nicht mehr aus dem Hintergrundmodell entfernen lassen. Um dieses Problem zu minimieren verwenden die meisten Algorithmen eine Gewichtung, in der die Vergangenheit weniger stark gewichtet wird. Zusätzlich zur zeitlichen Gewichtung wird meist ein selektives Hintergrundupdate verwendet, bei dem Vordergrundbereiche des ak- tuellen Frames gar nicht, oder deutlich schwächer, in das Hintergrundmodell integriert werden. 2.1.1 Hintergrundalgorithmen In diesem Kapitel werden grundlegende Hintergrundalgorithmen beschrieben. Als Basis für die Auswahl der Algorithmen werden die folgenden Arbeiten verwendet, in denen mehrere Hintergrundalgorithmen verglichen werden. • Robust techniques for background subtraction in urban trac video (Cheung und Kamath) [1] • Visual Surveillance of an Airport's Apron - An Overview of the AVITRACK Pro- ject (Blauensteiner und Kampel) [6] • Deliverable D3.1 Motion Detection (Borg et al. ) [7] Aus den in diesen Arbeiten beschriebenen Algorithmen werden sieben grundlegende Hin- tergrundmodelle ausgewählt und weiter behandelt. Dabei handelt es sich um zwei nicht- rekursive Algorithmen (Frame Dierencing und Median), sowie fünf rekursive Algorith- men (Gleitender Mittelwert, Mixture of Gaussians, Approximated Median, Min-Max / W4 Algorithmus und Kalman). 9 2.1. HINTERGRUNDMODELLE IN DER LITERATUR Frame Dierencing Beim Frame Dierencing Verfahren wird ein Dierenzbild ∆t von zwei aufeinanderfol- genden Bildern It, It−1 berechnet. Mittels eines Schwellwert Φ wird eine Dierenzmaske Mt erstellt, die zwischen bewegten und statischen Bereichen unterscheidet. [6] ∆t = |It − It−1| (2.1) Mt(x, y) = { 1 für ∆t(x, y) > Φ 0 sonst (2.2) mit: Φ: Masken-Schwellwert It: Bild zum Zeitpunkt t ∆t: Dierenzbild zum Zeitpunkt t Mt: Dierenzmaske zum Zeitpunkt t Gleitender Mittelwert Hier wird ein gleitendes Mittelwertbild als Hintergrundmodell verwendet. Die Vordergrund- /Hintergrundklassikation erfolgt durch ein Dierenzbild ∆t, aus dem mittels Schwell- wert Φ eine Dierenzmaske Mt erstellt wird. [6] Bt =αIt + (1− α)Bt−1 (2.3) ∆t = |It −Bt| (2.4) Mt(x, y) = { 1 für ∆t(x, y) > Φ 0 sonst (2.5) mit: α: Gewichtungsfaktor des aktuellen Bildes Φ: Hintergrund-Schwellwert 10 KAPITEL 2. HINTERGRUNDERKENNUNG It: Bild zum Zeitpunkt t Bt: Hintergrundmodell (Bild) zum Zeitpunkt t ∆t: Dierenzbild zum Zeitpunkt t Mt: Vordergrundmaske zum Zeitpunkt t Mixture of Gaussian (MoG) Der Mixture of Gaussian Algorithmus modelliert den Hintergrund durch eine Anzahl k von Gauÿ-Verteilungen, wodurch multimodale Hintergrundmodelle erstellt werden kön- nen [8]. Jedes Pixel wird dabei durch k Gauÿ-Verteilungen repräsentiert. Zuerst wird die am besten passende Gauÿ-Verteilung b an der Position (x, y) ermittelt, wobei ein absoluter Schwellwert T miteinbezogen wird: b(x, y) = k argmin i=1  |It(x, y)− µi,t−1|√ σ2 i,t−1 < T  (2.6) mit: It: Bild zum Zeitpunkt t µi,t: Hintergrundmodell: Mittelwert der i-ten Gauÿ-Verteilung zum Zeitpunkt t σ2 i,t: Hintergrundmodell: Varianz der i-ten Gauÿ-Verteilung zum Zeitpunkt t T : max. Standard Abweichung mit den Gauÿ-Verteilungen (Stauer verwendet in [8] T = 2.5) Anschlieÿend werden die Gewichte der Verteilungen neu berechnet, 11 2.1. HINTERGRUNDMODELLE IN DER LITERATUR i = 1 . . . k : (2.7) ω′ i,t =(1− α)ωi,t−1 + αδb=i (2.8) δb=i = { 1 falls b = i 0 sonst (Kronecker-Delta) (2.9) ωi,t = ω′ i,t∑k j=1 ω′ j,t (2.10) und die Verteilung aktualisiert. ρ =αη(It, µb,t, σb,t) (2.11) η(x, µ, σ2) = 1√ 2π σ e− 1 2 (x−µ)2 σ2 (Gauÿsche Dichtefunktion) (2.12) µb,t =(1− ρ)µb,t−1 + ρIt (2.13) σ2 b,t =(1− ρ)σ2 b,t + ρ(It − µb,t) 2 (2.14) mit: δ: Kronecker-Delta ρ: Updateparameter α: Gewichtsupdate ωj,t: Hintergrundmodell: Gewicht der j-ten Gauÿ Verteilung zum Zeitpunkt t η(x, µ, σ): Gauÿsche Dichtefunktion Die Verteilungen werden nach ihrem ωi,t/σb,t Wert sortiert. Dabei repräsentieren die ersten K Verteilungen mit ∑K i=1 ωi,t < Φ die Hintergrundverteilungen. mit: Φ: Hintergrund-Schwellwert 12 KAPITEL 2. HINTERGRUNDERKENNUNG Die Vordergrundmaske M wird folgendermaÿen berechnet: Mt(x, y) =  0 wenn It(x, y) ∈ Hintergrundverteilung( das heiÿt |It(x,y)−µb,t(x,y)|√ σ2 i,t(x,y) < 2.5 und b(x, y) ≤ K ) 1 sonst (2.15) Existiert im ersten Schritt keine passende Verteilung i mit: |It(x,y)−µi,t−1|√ σ2 i,t−1 < T (vgl. Glei- chung: 2.6), so wird die Verteilung mit den geringsten Gewicht ωi,t−1 durch eine neue Gauÿ-Verteilung b ersetzt. Median Das Hintergrundmodell wird durch den statistischen Median generiert. Dabei wird für jedes Pixel der Median aus einer Sequenz von n Bildern (Hintergrundsequenz) berechnet [6]. Ist der Hintergrund in mindestens der Hälfte der Bilder der Sequenz zu sehen (das heiÿt in mindestens n/2 Bildern), ist durch die Eigenschaft des Medians sichergestellt, dass das Hintergrundmodell den tatsächlichen Hintergrund wiedergibt. BSt = { BS2 t−1, BS3 t−1, . . . , BSn t−1, It } (2.16) Bt(x, y) = n median i=1 BSi t(x, y) (2.17) ∆t = |It −Bt| (2.18) Mt(x, y) = { 1 für ∆t(x, y) > Φ 0 sonst (2.19) mit: n: Anzahl der Bilder in der Hintergrundsequenz Φ: Hintergrund Schwellwert It: Bild zum Zeitpunkt t BSt: Hintergrundsequenz zum Zeitpunkt t (Menge von n Bildern) Bt: Hintergrundmodell (Bild) zum Zeitpunkt t ∆t: Dierenzbild zum Zeitpunkt t 13 2.1. HINTERGRUNDMODELLE IN DER LITERATUR Mt: Vordergrundmaske zum Zeitpunkt t Approximated Median Der Approximated Median nähert den Median durch eine einfache und vor allem spei- cherschonende Methode an. Dabei werden die Farbwerte der Hintergrundpixel in jedem Frame um einen konstanten Wert κ an die Werte im aktuellen Bild angeglichen. Diese Methode wurde ursprünglich von McFarlane und Schoeld beschrieben [9] und von Re- magnino et al. [10] in einem Trackingsystem für Fahrzeuge und Personen angewendet. Bt(x, y) =  Bt−1(x, y) für Bt−1(x, y) = It(x, y) Bt−1(x, y) + κ für Bt−1(x, y) < It(x, y) Bt−1(x, y)− κ für Bt−1(x, y) > It(x, y) (2.20) ∆t = |It −Bt| (2.21) Mt(x, y) = { 1 für ∆t(x, y) > Φ 0 sonst (2.22) mit: κ: Updatewert (Standardwert: κ = 1 [9]) Φ: Hintergrund-Schwellwert It: Bild zum Zeitpunkt t Bt: Hintergrundmodell (Bild) zum Zeitpunkt t ∆t: Dierenzbild zum Zeitpunkt t Mt: Vordergrundmaske zum Zeitpunkt t Min-Max / W 4 Algorithmus Dieser Algorithmus ermittelt während der Initialisierungsphase den Minimal- und Ma- ximalwert für jedes Pixel, sowie die maximale Farbwertdierenz eines Pixels zwischen zwei aufeinanderfolgenden Bildern. Diese drei Werte stellen das Hintergrundmodell eines Pixels dar. Liegt der Farbwert eines Pixels auÿerhalb dieser Parameter, wird das Pixel als Vordergrund klassiziert. [11] 14 KAPITEL 2. HINTERGRUNDERKENNUNG Der Min-Max Algorithmus benötigt eine Lernphase, in der nur Hintergrund im Bild zu sehen ist. Während dieser Lernphase werden die Parameter (Minimum, Maximum und Abweichung) für jedes Pixel ermittelt. Initialisierung: Bmin(x, y) = n−1 min i=0 It−i(x, y) (2.23) Bmax(x, y) = n−1 max i=0 It−i(x, y) (2.24) Bdiff (x, y) = n−2 max i=0 |It−i(x, y)− It−i−1(x, y)| (2.25) mit: n: Anzahl der Bilder in der Initialisierungsphase It: Bild zum Zeitpunkt t Bmin: Hintergrundmodell: Minimalwerte Bmax: Hintergrundmodell: Maximalwerte Bdiff : Hintergrundmodell: maximale Dierenzen Hintergrunderkennung und Erstellung der Vordergrundmaske M : Mt(x, y) =  wenn It(x, y) < Bmin(x, y) 1 oder It(x, y) > Bmax(x, y) oder |It(x, y)− It−1(x, y)| > Bdiff (x, y) 0 sonst (2.26) Kalman Dieser Hintergrundalgorithmus modelliert jedes Pixel mit einem Kalmanlter [12](S.304 ). Dabei wird der Farbwert (Intensitätswert) It(x, y) sowie die Intensitätsänderung Dt(x, y) zum vorigen Bild im Statusvektor St(x, y) gespeichert. Aus den gemessenen Werten (dem aktuellen Bild It) und dem geschätzten Hintergrundmodellstatus, wird der neue 15 2.1. HINTERGRUNDMODELLE IN DER LITERATUR Hintergrundmodellstatus errechnet. Dabei wird berücksichtigt, ob das Pixel im letzten Frame dem Vordergrund oder dem Hintergrund zugeordnet war und der entsprechende Updateparameter verwendet. Zur Hintergrundklassizierung wird die Dierenz zwischen dem aktuellen Bild It und dem berechneten Hintergrundmodell Ŝt gebildet und mit einem Schwellwert Φ verglichen. [13, 14] Dt(x, y) =It(x, y)− It−1(x, y) (2.27) St(x, y) = (It(x, y), Dt(x, y)) (2.28) A = ( 1 a1,2 0 a2,2 ) H = ( 1 0 ) Kt(x, y) = ( k1(x, y, t) k2(x, y, t) ) (2.29) k1(x, y, t) = k2(x, y, t) = { α für Mt−1(x, y) = 1 (Vordergrund) β für Mt−1(x, y) = 0 (Hintergrund) (2.30) S̃t(x, y) =A · Ŝt−1(x, y) (2.31) Ŝt =S̃t + K · ( It(x, y)−H · S̃t(x, y) ) (2.32) ∆t = ∣∣∣It(x, y)−H · Ŝt(x, y) ∣∣∣ (2.33) Mt(x, y) = { 1 für ∆t(x, y) > Φ 0 sonst (2.34) mit: Φ: Hintergrund-Schwellwert α: Vordergrund Kalman-Gewicht β: Hintergrund Kalman-Gewicht It: Bild zum Zeitpunkt t Dt: Dierenzbild zwischen Bild It und It−1 St: gemessener Statusvektor zum Zeitpunkt t Ŝt: berechneter Hintergrundmodellstatus zum Zeitpunkt t S̃t: geschätzter Hintergrundmodellstatus zum Zeitpunkt t ∆t: Dierenzbild zum Zeitpunkt t Mt: Hintergrundmasken zum Zeitpunkt t A: Kalman Systemmatrix a1,2, a2,2: Adaptionsparameter der Systemmatrix 16 KAPITEL 2. HINTERGRUNDERKENNUNG H: Kalman Meÿmatrix Kt: Kalman Gewichtsmartix (Kalman gain) k1(x, y, t), k2(x, y, t): Gewichte des aktuellen Bildes (abhängig von Vordergrund- /Hintergundpixel) 2.1.2 Vergleiche dieser Hintergrundmodelle in der Literatur Cheung und Kamath haben die Algorithmen in ihrer Arbeit mit vier Videosequenzen einer Straÿenkreuzung getestet [1]. Dabei handelt es sich um eine Sequenz in hellem Tageslicht mit durchschnittlichem Verkehrsaufkommen, sowie Aufnahmen der selben Kreuzung bei Nebel und Schneefall. Die vierte Sequenz zeigt eine andere Kreuzung mit starkem Verkehrsaufkommen. Die Testsequenzen sind öentlich zugänglich und stammen von der Webseite des Instituts für Algorithmen und Kognitive Systeme der Universität Karlsruhe [15]. Zur Beurteilung der Algorithmen verwenden Cheung und Kamath die zwei Kenngröÿen Recall und Precision [1]. Recall ist ein Maÿ dafür, wie viele Vordergrundpixel als solche erkannt wurden, während Precision beschreibt, wie genau die Erkennung von Vorder- grundbereichen ist. Recall = Anzahl der vom Alg. korrekt klassizierten Vordergrundpixel Anzahl der Vordergrundpixel im Ground Truth (2.35) Precision = Anzahl der vom Alg. korrekt klassizierten Vordergrundpixel Anzahl der vom Alg. als Vordergrund klassizierten Pixel (2.36) Blaunsteiner und Kampel testeten in [6] die Algorithmen auf zwei unterschiedlichen Datensätzen, einem Video von einem Parkplatz und einer Videosequenz eines Auto- bahnabschnitts. Zur Evaluierung wurden Referenzframes mit manuell gekennzeichneten Vordergrundobjekten bestimmt. Die Ergebnisse der Algorithmen auf diesen Referenzfra- mes wurden mit den erstellten Vordergrundmasken verglichen und die Summe der False Positive und False Negative Pixel über alle Referenzframes ermittelt. In [7] werden die Algorithmen auf einer Videosequenz eines Flughafen Aprons getestet, wobei eine qualitative Bewertung anhand von vier Kriterien (Empndlichkeit gegenüber Bildrauschen bzw. Beleuchtungsänderung, Erkennungsrate und Laufzeit) durchgeführt und in einer Tabelle zusammengefasst wurde. 17 2.1. HINTERGRUNDMODELLE IN DER LITERATUR Frame Dierencing Sowohl [6] als auch [7] evaluierten eine Variante des Frame Dierencing Algorithmus mit einem anschlieÿenden Gauÿlter. Nur [1] evaluierte direkt den Frame Dierencing Algorithmus, trotzdem waren die Ergebnisse eindeutig. Der Frame Dierencing Algorith- mus (mit oder ohne Gauÿlter) lieferte durchwegs sehr schlechte Resultate und wurde als sehr empndlich gegenüber Bildrauschen beschrieben. In [7] werden die Ergebnisse des Frame Dierencing Algorithmus, auch nach Aufbereitung mittels morphologischen Operationen, als unzureichend für ein Langzeithintergrundmodell bezeichnet. Gleitender Mittelwert Die Fehlerrate des Gleitenden Mittelwerts mit konstantem Schwellwert liegt bei [6] im Mittelfeld der getesteten Algorithmen. In [7] wurde sowohl ein Gleitender Mittelwert Algorithmus mit festem Schwellwert, als auch mehrere Varianten dieses Algorithmus (Color Mean and Variance) getestet. Die Erkennungsrate des Gleitenden Mittelwerts mit konstantem Schwellwert wurde als unzureichend eingestuft, wohingegen die Color Mean and Variance Varianten, die unterschiedliche Farbräume (RGB, normalisierter RGB, und HSV) verwenden, als gut eingestuft wurden. Diese Algorithmen benötigen keinen globalen Schwellwert (dieser wird aus der Varianz und einem konstanten Faktor berechnet) und können in Echtzeit berechnet werden. Sie sind robust gegenüber den meisten Beleuchtungsveränderungen, je nach Implementierung entstehen allerdings Lö- cher in der Segmentierung und teilweise fragmentierte Objekte. Dieser Algorithmus wurde von Cheung und Kamath [1] nicht evaluiert. Mixture of Gaussian (MoG) Die AVITRACK Evaluierung [7] des Mixture of Gaussian Algorithmus ergab, dass dieser robust gegenüber den meisten Beleuchtungsveränderungen ist und dass nur vereinzelt Löcher in den Objektmasken entstehen. Allerdings ist dieser Algorithmus recheninten- siv, insbesondere während der Initialisierungsphase, und benötigt viel Speicherplatz im Vergleich zu den anderen Hintergrundmodellen. Cheung und Kamath [1] kamen zu ähn- lichen Ergebnissen. Der Mixture of Gaussian Algorithmus lieferte die besten Resultate der Testreihe. Allerdings wiesen sie auch darauf hin, dass der Einstellung der Parameter besondere Aufmerksamkeit gewidmet werden muss, um optimale Ergebnisse zu erhal- ten, und dass der Algorithmus sensibel auf Helligkeitsschwankungen reagiert. Auÿerdem weist er eine relativ hohe Komplexität auf, was sich direkt in der Rechenzeit nieder- 18 KAPITEL 2. HINTERGRUNDERKENNUNG schlägt. Dieser Algorithmus wurde von Blauensteiner und Kampel [6] nicht evaluiert. Median Der Median Algorithmus wird in allen drei Arbeiten prinzipiell positiv beurteilt. In [6] lieferte der Median sogar die besten Resultate, und auch in [1] wurde er als knap- per Zweiter beschrieben. Nur in [7] wird der einfache Median Algorithmus aufgrund des globalen Schwellwertes und aufgrund von Fehlern, die durch Geisterbilder langsam bewegter Objekte entstehen, nicht als Algorithmus zur Bewegungserkennung empfoh- len. Stattdessen wird eine Variation des Medianalgorithmus (Median and Morphology) favorisiert, bei der ein Medianmodell mittels einer durch morphologische Operationen bereinigten Dierenzmaske adaptiv aktualisiert wird. Approximated Median Cheung und Kamath haben gezeigt, dass die Ergebnisse des Approximated Median Al- gorithmus nahe an die eines echten Median Filters heranreichen. Nach [1] liefert der Mixture of Gaussians Algorithmus, knapp gefolgt vom Median Filter, die besten Er- gebnisse. Danach folgt der Approximated Median Filter Algorithmus und weiters der Kalman Filter. Obwohl der Approximated Median Filter Algorithmus nicht so gut wie der Mixture of Gaussians Algorithmus oder der Median Filter ist, bietet er einen sehr guten Kompromiss zwischen Erkennungsqualität und Aufwand. Dieser Algorithmus wurde von Blauensteiner und Kampel [6] sowie in der AVITRACK Evaluierung [7] nicht evaluiert. Min-Max / W 4 Algorithmus Der W 4 Algorithmus wurde in [7] nach der ersten Evaluierungsstufe nicht mehr weiter analysiert, da er zu viele False Positive Fehler produzierte. In [6] wurde eine ähnliche Fehlerrate wie die der Median Filter ermittelt. Genauer gesagt liegen die Ergebnisse zwischen denen des Median Filters mit konstantem Schwellwert und denen des Median Filters mit der Standardabweichung als adaptivem Schwellwert. Dieser Algorithmus wurde von Cheung und Kamath [1] nicht evaluiert. 19 2.2. EVALUIERUNG DER HINTERGRUNDMODELLE Kalman Die Tests im Rahmen der AVITRACK Evaluierung [7] zeigten, dass dieser Algorithmus robust gegenüber den meisten Beleuchtungsveränderungen ist und in Echtzeit (Linux) implementierbar ist. Er zählt zu den empfohlenen Algorithmen nach der zweiten Eva- luierungsphase. Im Gegensatz dazu wird der Kalman Filter von Cheung und Kamath [1] als der zweit schlechteste der evaluierten Algorithmen eingestuft, da er visuell die schlechteste Vordergrundmaske liefert und das Hintergrundmodell sehr leicht durch Vor- dergrundpixel gestört wird. Dieser Algorithmus wurde von Blauensteiner und Kampel [6] nicht evaluiert. 2.2 Evaluierung der Hintergrundmodelle Die Algorithmen wurden anhand von Videos evaluiert, die im Juli 2004 im Semmering- tunnel aufgenommen wurden und verschiedene Verkehrssituationen nachstellen. Diese Videos wurden mit den fest installierten Tunnelkameras aufgenommen und zur späteren Auswertung, Erstellung und Evaluierung von Bildverarbeitungsalgorithmen gespeichert. Es wurde eine Reihe von Testsequenzen ausgewählt, in der häug auftretende Verkehrs- situationen und ein paar Sonderfälle enthalten sind. Die verwendeten Sequenzen sind in Tabelle 2.1 aufgelistet und kurz beschrieben. Sequenz Start Ende Kurzbeschreibung [Min:Sek] [Min:Sek] k503-3 00:10 01:50 mehrere PKW in Pannenbucht, dann Gegenverkehr k503-4 00:40 02:10 LKW mit Nebelmaschine k405-13 00:13 00:35 wenig Verkehr, zweispurig (in Fahrtrichtung) k405-14 00:04 00:40 dichter Verkehr, einspurig (gegen Fahrtrichtung) k405-19 00:06 00:50 mittlerer Verkehr (Gegenverkehr) k405-25 00:25 00:50 Kolonnenverkehr, einspurig (gegen Fahrtrichtung) k405-30 00:10 01:00 verlorenes Ladegut Tabelle 2.1: Semmeringtunnel Testsequenzen Die Algorithmen wurden in Hinblick auf eine Verwendung in einem Fahrzeugtracking- system mit typischen Szenen dieses Einsatzgebietes getestet. Für den ersten Test wurden die Sequenzen: k503-3 und k405-14 verwendet. Algorithmen, die schon bei diesen Testse- quenzen schlecht abschnitten, wurden nach der ersten Phase aussortiert und nicht mehr weiter untersucht. Die anderen Algorithmen wurden in der zweiten Phase noch mit den 20 KAPITEL 2. HINTERGRUNDERKENNUNG restlichen Sequenzen getestet. Bei der Bewertung handelt es sich um rein subjektive Eindrücke, die sich nach Betrachtung der Sequenzen ergeben (siehe Tabelle 2.2). Zur Initialisierung der Hintergrundalgorithmen wurde ein Bild einer leeren Szene ver- wendet. War es nicht möglich ein Bild des Hintergrunds direkt aus der Videosequenz zu nehmen, weil der Hintergrund in keinem Frame vollständig sichtbar war, so wurde ein Hintergrundbild synthetisch erzeugt. Dazu werden die Hintergrundbereiche mehrerer Frames kombiniert, sodass sich insge- samt ein vollständiges Hintergrundbild ergibt. (siehe Abbildung 2.2). Idealerweise wird über die Hintergrundbereiche mehrerer Frames ein Mittelwert gebildet. Die so entstan- denen Hintergrundbilder sind natürlich nicht von der selben Qualität wie ein direkt aufgenommenes Bild. Zwischen Bereichen, die aus verschiedenen Frames stammen, kann es zu geringfügigen Helligkeitsschwankungen kommen. Dennoch stellt diese Methode ei- ne relativ einfache Möglichkeit dar, ein oder mehrere Bilder für die Initialisierung eines Hintergrundmodells zu erstellen. Bei den verwendeten Testsequenzen wurde mit dieser Methode sichergestellt, dass zumindest die ersten 5 Frames eine leere Szene zeigen, damit der Hintergrundalgorithmus korrekt initialisiert werden kann. 21 2.2. EVALUIERUNG DER HINTERGRUNDMODELLE (a) Frame 1 (b) Frame 2 (c) Frame 1, Vordergrund manuell aus- maskiert (d) Frame 2, Vordergrund manuell aus- maskiert (e) Manuell zusammengesetzter Hinter- grund mit eingezeichneten Masken von Frame 1 und 2 Abbildung 2.2: Manuell erstelltes Hintergrundbild 22 KAPITEL 2. HINTERGRUNDERKENNUNG 2.2.1 Übersicht der Ergebnisse der einzelnen Hintergrundalgorithmen In diesem Abschnitt werden die Ergebnisse der getesteten Hintergrundalgorithmen im Detail beschrieben, sowie in Tabelle 2.2 zusammengefasst. Algorithmus Rauschen Objekterkennung Bemerkungen vollständiger Test: Gleitender Mittelwert robust relativ robust; Geisterbilder (false positi- ve) bei zu groÿem Update- Parameter Median robust robust hoher Ressourcenbedarf Approximated Median robust robust; vereinzelte Geisterbilder bei langsamen Bewegun- gen Kalman robust robust; einige false positive Arte- fakte Adaptionsparameter kri- tisch nur erste Testphase: Frame Die- rencing mäÿig robust nur Konturen in Beweg- ungsrichtung; diese relativ robust kritischer Schwellwert; kein Hintergrundmodell Min/Max W 4 empndlich (Pumpen) Fahrzeuge groÿteils nicht erkannt kein externer Schwellwert Tabelle 2.2: Ergebnisse der Hintergrundalgorithmen Evaluierung Frame Dierencing Systembedingt wird das Innere von homogenen Objekten nicht detektiert. Der Frame Dierencing Algorithmus ist primär zur Detektion von (schnellen) Bewegungen geeignet, erstellt aber kein echtes Modell des Hintergrunds und ist daher nur bedingt und mit entsprechenden Nachverarbeitungsschritten als Hintergrundalgorithmus einsetzbar. Das Ergebnis des Frame Dierencing Algorithmus wird in Abbildung 2.3 illustriert. 23 2.2. EVALUIERUNG DER HINTERGRUNDMODELLE Gleitender Mittelwert Um Rauschartefakte (speziell an Objektkanten) zu minimieren, sollten die Eingangsbil- der in einem Vorverarbeitungsschritt (z.B. mittels Gauÿ-Filter) geglättet werden. Wenn der Hintergrund nur selten zu sehen ist (wie eine Fahrbahn bei starkem Ver- kehr) liefert diese Methode ein sehr verschmiertes Hintergrundmodell. Für den reellen Einsatz sind sehr kleine Update-Parameter (α, Gewichtungsfaktor des aktuellen Bil- des) für das gleitende Mittel notwendig, da sonst langsame Vordergrundobjekte den Hintergrund verschmieren oder gar vollständig in den Hintergrund integriert werden. Dies führt aber wieder zu Problemen bei der Implementierung auf einem DSP, da nicht alle Prozessoren Gleitkommaarithmetik unterstützen und bei der Verwendung von ent- sprechenden Softwarebibliotheken mit Leistungseinbuÿen zu rechnen ist. Eine mögliche Verbesserung stellt ein selektives Hintergrund-Update dar. Dadurch kann ein gröÿerer Update-Parameter verwendet werden, was eine schnellere Adaption an Beleuchtungsver- änderungen und eine einfachere Implementierung mittels Fixkommaarithmetik möglich macht. Das Ergebnis des Gleitenden Mittelwert Algorithmus wird in Abbildung 2.5 illustriert. Median Ein Median Filter liefert die besten Ergebnisse, allerdings wird diese höhere Qualität des Hintergrundmodells durch einen unverhältnismäÿig höheren Speicherplatzbedarf und Rechen- bzw. Sortieraufwand erkauft. Ein Median-Hintergrundmodell ermöglicht eine robuste Modellierung des Hintergrunds. Wie auch beim gleitenden Mittelwert, treten bei langfristiger Verdeckung des Hinter- grundes Artefakte im Hintergrundmodell auf. Diese sind aber nicht so stark ausgeprägt wie beim gleitenden Mittelwert. Das Median-Modell ist theoretisch besser als Hintergrundmodell geeignet als das glei- tende Mittel, da Vordergrundobjekte nicht in das Hintergrundmodell einieÿen, wenn der Hintergrund zumindest die halbe Beobachtungszeit sichtbar ist. Allerdings werden bei vergleichbaren Zeiträumen auch deutlich mehr Ressourcen benötigt als bei anderen Algorithmen. Daher ist die Anzahl der Bilder der beobachteten Sequenz (n) stark be- grenzt, was dazu führt, dass nur ein kurzfristiger Hintergrund modelliert werden kann. Bei der getesteten Implementierung werden bei langsamen Bewegungen Vordergrundar- tefakte in das Hintergrundmodell integriert. Ein weiterer Nachteil ist, dass der Hintergrund mindestens über die Hälfte des Beob- 24 KAPITEL 2. HINTERGRUNDERKENNUNG achtungszeitraums (Hintergrundsequenz) zu sehen sein sollte, andernfalls ist nicht si- chergestellt, dass das Hintergrundmodell den tatsächlichen Hintergrund wiedergibt oder überhaupt nur annähert. Das Ergebnis des Median Algorithmus ist in Abbildung 2.6 illustriert. Approximated Median Der Approximated Median hat Ähnlichkeiten mit dem gleitenden Mittelwert, der ent- scheidende Unterschied besteht jedoch darin, dass Pixel von (langsamen) Vordergrund- objekten mit hohem Farbwertunterschied zum Hintergrund beim Approximated Median nur langsam in das Hintergrundmodell übernommen werden, da die absolute Farbwert- dierenz keinen Einuss auf den Updatewert hat, das heiÿt die entstehenden Fehler sind unabhängig von Farbwertunterschieden. Das Hintergrundmodell des Approximated Median Filter wird bei viel Verkehr durch die teilweise Integration von Vordergrundobjekte verunreinigt. Allerdings sind die Feh- ler nicht so stark ausgeprägt wie beim Gleitenden Mittelwert. Andererseits entspricht die Qualität des erzeugten Hintergrundmodells nicht jener eines echten Median Filters. Der Approximated Median Filter stellt somit einen guten Kompromiss zwischen Detek- tionsqualität und Ressourcenbedarfs dar. Das Ergebnis des Approximated Median Algorithmus ist in Abbildung 2.7 illustriert. Min-Max / W 4 Algorithmus Der Min-Max Algorithmus benötigt eine Lernphase, in der nur Hintergrund im Bild zu sehen ist. Während dieser Lernphase werden die Parameter (Minimum, Maximum und Abweichung) für jedes Pixel ermittelt. Die vorliegende Implementierung zeigt ein deutliches Pumpen der Rauschartefakte und ein Groÿteil der Fahrzeuge wird nicht als Vordergrund erkannt. Daher wurde der Min- Max Algorithmus bereits in der ersten Testphase aussortiert. Das Ergebnis des Min-Max Algorithmus ist in Abbildung 2.4 illustriert. Kalman Nach einer kurzen Initialisierungsphase liefert das Kalman Modell relativ gute Ergeb- nisse. Es zeigt sich, dass die Grauwert-Variante auf den Testbildern etwas stabiler läuft als die Farb-Variante. 25 2.2. EVALUIERUNG DER HINTERGRUNDMODELLE Objekte werden gut erkannt, allerdings ziehen sie einen Schatten von Artefakten (Ghosts) hinter sich her (ähnlich der Frame Dierencing Methode). Auÿerdem sind nur bewegte Objekte zu erkennen, da sich das Hintergrundmodell rasch adaptiert. Die Adaptions- parameter sind sehr kritische Parameter. Werden sie zu klein gewählt, hält sich ein fehlerhaftes Hintergrundmodell sehr lange. Zu groÿe Parameter führen dazu, dass nur noch die Bewegungskonturen der Objekte erkannt werden, da die Objekte sehr rasch in den Hintergrund integriert werden. Bei einer häugen Verdeckung des Hintergrun- des (z.B. Fahrbahn bei Kolonnenverkehr) tritt ein ähnlicher Eekt wie beim gleitenden Mittelwert auf, der Hintergrund wird an dieser Stelle verschmiert. Ränder von übersteuerten Lichtern (Fahrbahnrandleuchten, beleuchtete Hinweistafeln, etc.) werden häug als Vordergrund klassiziert. Dies ist vermutlich auf kleine Hellig- keitsschwankungen bzw. Blendenregelung der Kamera zurück zu führen. Dadurch kann sich die Fläche des übersteuerten Bereiches geringfügig ändern. Da es sich dabei aber um isolierte Pixel handelt, können diese einfach durch morphologische Operationen eli- miniert werden. Das Ergebnis des Kalman Algorithmus ist in Abbildung 2.8 illustriert. 2.2.2 Zusammenfassung der Evaluierung der Hintergrundalgorithmen Der Frame Dierencing Algorithmus und der Min / Max W 4 Algorithmus lieferten in der ersten Testphase (Sequenzen: k503-3 und k405-14 ) keine zufriedenstellenden Ergebnisse. (Der Frame Dierencing Algorithmus erkennt nur bewegte Vordergrundbereiche und der Min / Max W 4 Algorithmus hat Schwierigkeiten bei der Erkennung der Fahrzeuge.) Daher wurden sie aus dem Pool der zu testenden Algorithmen gestrichen. In der zweiten Testphase wurden die verbleibenden Algorithmen anhand den weiteren Sequenzen (siehe Tabelle 2.1) evaluiert. Die besten Ergebnisse lieferte das Median Modell. Es ist robust gegenüber einfachem Bildrauschen und liefert eine gute Dierenzmaske für die Objekterkennung. Allerdings ist der Median-Algorithmus sehr speicherplatzintensiv und rechenaufwendig. Er wurde zwar als Referenzalgorithmus weiter evaluiert, ist aber aufgrund des hohen Ressourcen- bedarfs nicht als Hintergrundalgorithmus für ein DSP System geeignet. Die übrigen Algorithmen der zweiten Testphase (Approximated Median, Gleitender Mit- telwert und Kalman Filter) sind gleichermaÿen robust, was das Bildrauschen betrit, liefern allerdings nicht ganz so gute Ergebnisse bei der Dierenzmaske. Neben Schatten und globalen Beleuchtungsveränderungen durch Scheinwerfer können 26 KAPITEL 2. HINTERGRUNDERKENNUNG reektierende Objekte ein besonderes Problem darstellen. So sind z.B. Seitenmarkierun- gen, Absperrungen und Verkehrszeichen so beschaen, dass sie das Licht in Richtung der Scheinwerfer zurück reektieren. Ist nun die Kamera in Fahrtrichtung angebracht und schaut von schräg oben auf die Szene, so verursacht das Abblendlicht selbst zwar relativ wenig Störungen, allerdings reektieren angeleuchtete Objekte das Licht genau in Kamerarichtung. Bei übersteuerten Bereichen ist zwischen Scheinwerfern (insb. Abblendlicht, Rücklicht und Bremslicht) und Reexionen zu unterscheiden. Dafür gibt es mehrere Möglichkei- ten: 1. Die einfachste Lösung ist das entsprechende Setzen einer Region of Interest (ROI) sodass Reexionen auÿerhalb der Fahrbahn (z.B. an Tunnelwänden, Verkehrszei- chen, ...) nicht weiter behandelt werden. 2. Eine andere Variante besteht darin, die Form und Gröÿe des übersteuerten Be- reiches zu untersuchen. Wenn das umschlieÿende Rechteck klein im Vergleich zu einem PKW ist und sich in der Nähe der Fahrbahn bendet, handelt es sich ver- mutlich um den Scheinwerfer selbst, da Reexionen an der Fahrbahn oder an den Wänden in die Länge gezogen sind. Auÿerdem haben diese Reexionen eine deut- lich gröÿere Fläche als typische Scheinwerfer. 3. Zusätzlich kann der Rand des übersteuerten Bereiches betrachtet werden. Weist dieser keine scharfen Kanten auf, so handelt es sich dabei um eine Reexion an einer Fläche, da bei Reexionen die Helligkeit am Rande des angestrahlten Bereiches kontinuierlich ab nimmt. Wobei Methode 1 und 3 im Prototyp implementiert wurden. 27 2.2. EVALUIERUNG DER HINTERGRUNDMODELLE (a) Bild der Testsequenz Algorithmus erzeugt kein Hintergrundmodell (b) Hintergrundmodell (c) Dierenzmaske Abbildung 2.3: Frame Dierencing (a) Bild der Testsequenz nicht als Einzelbild darstellbar (b) Hintergrundmodell (c) Dierenzmaske Abbildung 2.4: Min / Max W 4 28 KAPITEL 2. HINTERGRUNDERKENNUNG (a) Bild der Testsequenz (b) Hintergrundmodell (c) Dierenzmaske (d) Bild der Testsequenz bei sehr viel Verkehr (e) Hintergrundmodell bei sehr viel Verkehr (f) Dierenzmaske bei sehr viel Verkehr Abbildung 2.5: Gleitender Mittelwert 29 2.2. EVALUIERUNG DER HINTERGRUNDMODELLE (a) Bild der Testsequenz (b) Hintergrundmodell (c) Dierenzmaske (d) Bild der Testsequenz bei sehr viel Verkehr (e) Hintergrundmodell bei sehr viel Verkehr (f) Dierenzmaske bei sehr viel Verkehr Abbildung 2.6: Median 30 KAPITEL 2. HINTERGRUNDERKENNUNG (a) Bild der Testsequenz (b) Hintergrundmodell (c) Dierenzmaske (d) Bild der Testsequenz bei sehr viel Verkehr (e) Hintergrundmodell bei sehr viel Verkehr (f) Dierenzmaske bei sehr viel Verkehr Abbildung 2.7: Approximated Median 31 2.2. EVALUIERUNG DER HINTERGRUNDMODELLE (a) Bild der Testsequenz (b) Hintergrundmodell (c) Dierenzmaske (d) Bild der Testsequenz bei sehr viel Verkehr (e) Hintergrundmodell bei sehr viel Verkehr (f) Dierenzmaske bei sehr viel Verkehr Abbildung 2.8: Kalman Gray 32 KAPITEL 2. HINTERGRUNDERKENNUNG 2.3 Erweitertes Hintergrundmodell In Kapitel 2.1 und 2.2 wurden verschiedene Hintergrundmodelle beschrieben und mit- einander verglichen. Dabei hat der Median Algorithmus gute Ergebnisse geliefert. Al- lerdings sind bei der Auswahl des Hintergrundmodells nicht nur die Qualität des Algo- rithmus, sondern auch die Rahmenbedingungen der Zielplattform (Embedded Systems) zu berücksichtigen. In der Evaluierung hat sich gezeigt, dass der Approximated Median Algorithmus einen guten Kompromiss zwischen der Detektionsqualität und dem Res- sourcenbedarf darstellt. Daher wird anstelle des Median Algorithmus mit seinem hohen Speicherplatzbedarf und Sortieraufwand der ressourcenschonende Approximated Median Algorithmus als Grundlage für das implementierte Hintergrundmodell verwendet. 2.3.1 Selektive Hintergrundaktualisierung Ein wesentlicher Nachteil globaler Hintergrundmodelle, wie sie von einem Median bzw. Approximated Median Algorithmus erzeugt werden, ist, dass auch bewegte Objekte einen Einuss auf das Hintergrundmodell haben. Dieser Einuss kann zwar über Parameter beeinusst werden (beim Median durch die Gröÿe des verwendeten Bildbuers n, beim Approximated Median durch den verwendeten Updatewert), allerdings muss hier immer ein Kompromiss zwischen der Reaktionsgeschwindigkeit auf veränderte Umgebungsbe- dingungen (z.B. Beleuchtungsänderung) und der Störungsminimierung eingegangen wer- den. Eine Lösung dieses Problems besteht darin, nur die Bereiche des Hintergrundmo- dells zu aktualisieren, die im aktuellen Frame auch den Hintergrund zeigen. Bei diesem Vorgehen müssen die Kriterien dafür, welcher Bereich als Hintergrund gilt, sorgfältig ge- wählt werden, da eine selektive Hintergrundaktualisierung eine Hebelwirkung hat. Wird ein Bereich als Hintergrund klassiziert, der in Wirklichkeit ein bewegtes Vordergrun- dobjekt darstellt, so wird das Hintergrundmodell verfälscht und die selektive Hinter- grundaktualisierung zeigt keinen positiven Eekt. Andererseits ist es möglich, dass ein Bereich, der den aktuellen Hintergrund im Frame darstellt, nicht als solcher erkannt wird und somit keine Anpassung des Hintergrundmodells an dieser Stelle erfolgt. Geschieht dies mehrmals hintereinander, ist damit zu rechnen, dass das Hintergrundmodell und der tatsächliche Hintergrund immer weiter auseinander driften. Ein weiterer Nachteil der selektiven Hintergrundaktualisierung ist, dass keine neuen Objekte in den Hinter- grund integriert werden. Wird z.B. ein neues Verkehrszeichen aufgestellt, so wird dies durch ein selektives Update nicht automatisch in das Hintergrundmodell übernommen. Beide Probleme können durch eine Aktualisierung der Vordergrundbereiche mit gerin- ger Gewichtung behoben werden. Durch die langsame Integration in das Hintergrund- modell werden fälschlich als Vordergrund klassizierte Bereiche mit der Zeit wieder in das Hintergrundmodell übernommen. Andererseits wird dadurch das Hintergrundmodell 33 2.3. ERWEITERTES HINTERGRUNDMODELL durch Vordergrundobjekte verfälscht. Dieser Fehler wird allerdings korregirt, sobald der echte Hintergrund wieder sichtbar wird. 2.3.2 Globale Helligkeitsanpassung Wie bereits erwähnt, ist es bei ungünstig gewählten Selektionskriterien möglich, dass das Hintergrundmodell und der tatsächliche Hintergrund auseinanderdriften. Dieser Ef- fekt tritt aber auch auf, wenn die Vorder- / Hintergrunderkennung korrekt funktioniert, ein Bereich des Hintergrunds aber über einige Zeit verdeckt ist, während sich die Be- leuchtung ändert bzw. die automatische Blendenregelung der Kamera die Blende nach- justiert und so in die globale Helligkeit eingreift. Nicht verdeckte Hintergrundbereiche werden entsprechend aktualisiert, die verdeckten Bereiche werden aber noch durch das alte Hintergrundmodell repräsentiert. Das kann dazu führen, dass nicht aktualisierte Hintergrundbereiche nicht mehr mit dem aktuellen Hintergrund übereinstimmen, wenn sie nicht mehr verdeckt sind, da sich inzwischen deren Helligkeit geändert hat. Eine einfache, aber eektive Gegenmaÿnahme ist, die globale Helligkeitsanpassung durch die durchschnittliche Helligkeitsveränderung zu approximieren. Dadurch wird ein Driften zwischen der Hintergrundhelligkeit verdeckter Bereiche und der tatsächlichen Helligkeit dieser Bereiche minimiert. Abbildung 2.9 illustriert den Unterschied zwischen einer normalen selektiven Hinter- grundaktualisierung und der helligkeitsanpassenden Hintergrundaktualisierung. Die erste Zeile zeigt eine generierte Sequenz, wobei im ersten und letzten Frame der Hin- tergrund vollständig zu sehen ist. Im 2. und 3. Frame wird ein Teil des Hintergrundes von einem blauen Rechteck verdeckt, während er kontinuierlich heller wird. Danach folgt eine Zeile mit der Hintergrundmaske bzw. dem Hintergrundmodell für die selektive Hin- tergrundaktualisierung und für die erweiterte Hintergrundaktualisierung. Die Umrisse der Hintergrundmasken sind zur besseren Orientierung blau strichliert in das Hinter- grundmodell eingezeichnet. Wenn für das Hintergrundmodell keine Helligkeitsanpassung durchgeführt wird, kann es nach einer Verdeckung vorkommen, dass ein Bereich nicht mehr als Hintergrund erkannt wird, so wie es beim blau strichlierten Bereich in Abbildung 2.9(c), Frame 4 der Fall ist. Der mittlere Bereich wurde sowohl in Frame 2 als auch in Frame 3 verdeckt. Dieser Bereich wurde daher nicht aktualisiert und enthält noch das ursprüngliche Hintergrund- modell, während der tatsächliche Hintergrund immer heller wurde. Das Beispiel ist so gewählt, dass ein Bereich dem Hintergrund noch richtig zugeordnet werden kann, wenn er für ein Frame verdeckt war. Wurde der Bereich allerdings länger verdeckt, ist der Hel- ligkeitsunterschied zwischen ursprünglichem Hintergrund wie er im Modell abgebildet wurde und aktuellem Hintergrund so groÿ, dass er von einem einfachen Schwellwert- verfahren nicht mehr als Hintergrund erkannt wird und somit auch nicht mehr mittels 34 KAPITEL 2. HINTERGRUNDERKENNUNG Bildfolge (a) aufeinanderfolgende Frames, bei denen sich die globale Hin- tergrundhelligkeit ändert, im 2. und 3. Frame wird ein Teil des Hintergrundes von einem blauen Quadrat verdeckt Normale selektive Hintergrundaktualisierung (b) Hintergrundmasken bei normaler selektiver Hintergrundak- tualisierung (c) Hintergrundmodell bei normaler selektiver Hintergrundak- tualisierung Helligkeitsanpassende Hintergrundaktualisierung (d) Hintergrundmasken bei helligkeitsanpassender Hinter- grundaktualisierung (e) Hintergrundmodell bei helligkeitsanpassender Hintergrund- aktualisierung Abbildung 2.9: Vergleich zwischen normaler selektiver Hintergrundaktualisierung und helligkeitsanpassender Hintergrundaktualisierung 35 2.4. SEGMENTIERUNG UND LABELING Median bzw. Approximated Median Algorithmus angepasst wird. Bei der helligkeitsanpassenden Hintergrundaktualisierung (Abbildung 2.9(e)) ist deut- lich zu sehen, dass verdeckte Bereiche nicht eingefroren werden, sondern ihre Helligkeit entsprechend der globalen Helligkeitsänderung geändert wird. Selbst wenn die Hellig- keitsapproximation nicht die tatsächliche Helligkeit des Hintergrundes liefert, können ein zu schnelles Abdriften der Helligkeit und die damit verbundenen Probleme verhindert werden (siehe Frame 4 der normalen selektiven Hintergrundaktualisierung in Abbildung 2.9(c)). Die Entscheidung, ob ein Bereich als Hintergrund klassiziert wird, wird aufgrund der Dierenz zwischen dem aktuellen Bild und dem aktuellen Hintergrundmodell getroen. Dazu wird für jedes Pixel und jeden Farbkanal des Farbmodells (z.B. RGB), die abso- lute Dierenz zwischen aktuellem Frame und Hintergrundmodell berechnet und mit der Standardabweichung σc des Farbkanals normiert. Als Dierenzmaske wird pro Pixel der Maximalwert der normierten Farbdierenzen verwendet. ∆(x, y) = 3 max c=1 ( |I(x, y)c −B(x, y)c| σc ) (2.37) mit: c: Farbkanalindex Ic: Farbkanal c des aktuellen Bildes Bc: Farbkanal c des Hintergrundmodells σc: Standardabweichung des Farbkanals c ∆: normierte Dierenzmaske Um zu vermeiden, dass Ausreiÿer oder Vordergrundpixel die Berechnung der globalen Helligkeitsänderung und der neuen Standardabweichung verfälschen, werden dazu nur Pixel verwendet, deren Farbkanaldierenz kleiner als das Dreifache der zuletzt berech- neten Standardabweichung ist. Unter der Annahme, dass das Bildrauschen mit der er- mittelten Standardabweichung normal verteilt ist, werden somit 99,7% (siehe [16] Seite 4244 ) aller durch Rauschen verfälschten Hintergrundpixel berücksichtigt. 2.4 Segmentierung und Labeling Unter Bildsegmentierung versteht man die Unterteilung eines Bildes in zusammenhän- gende Regionen, wobei in einer Region Pixel mit gemeinsamen Eigenschaften (z.B. Hel- 36 KAPITEL 2. HINTERGRUNDERKENNUNG ligkeit, Farbe, ... ) zusammengefasst sind [17](Seite 163) [18](Seite 337). Durch das Labeling werden den einzelnen Segmenten eindeutige Labels zugeordnet, um diese bei der weiteren Verarbeitung eindeutig referenzieren zu können. Im einfachsten Fall werden die Segmente dazu durchnummeriert. Im Prototyp wird ein Pixel-Klassikator (4er-Nachbarschaft) auf die Vordergrundmaske des Hintergrundmodells angewandt. Als Homogenitätskriterium wird der Mittelwert der Farbkanäle der Pixel verwendet. Liegt der Wert eines Pixels unter einem Schwellwert und der Wert des Nachbarpixels auf oder über der Schwelle, oder umgekehrt, so werden die Pixel unterschiedlichen Segmenten zugeordnet. Aus Ezienzgründen wird ein 2-Pass Run-Label Pixelsegmentierungs-Algorithmus ein- gesetzt. Der implementierte Algorithmus arbeitet ähnlich dem von Hayashi et al. [19] beschriebenen Algorithmus mit einem 2×2 Fenster, allerdings wird dieses Fenster als look-behind Fenster (das aktuelle Pixel ist das untere, rechte Element) verwendet und nicht wie bei Hayashi et al. [19] als look-ahead Fenster. Dadurch steigt zwar die An- zahl der Fragmentnummern bei U-Formationen (siehe Abbildung 2.10) bzw. Linien von links unten nach rechts oben, dafür kann vollständig auf den Run-Label-Buer verzichtet werden. (a) Prototyp: Dem Vordergrundpixel rechts oben wird eine neue Fragmentnum- mer zugewiesen, die in der nächsten Zeile mit der Fragmentnummer des unteren Nachbarpixels verknüpft wird. (b) Hayashi et al. : Duch das look-ahead Fenster wird dem Vordergrundpixel rechts oben die selbe Fragmentnummer wie dem unteren Nachbarpixel zugewiesen. Abbildung 2.10: Fragmentzuordnung von Run-Label Segmentierungs-Algorithmus In dem look-behind Algorithmus wird das Bild zeilenweise abgearbeitet und jedes Pixel mit dem linken und dem oberen Nachbarpixel verglichen. Ist die Homogenitätseigen- schaft für keinen der beiden Vergleiche erfüllt, so wird dem Pixel eine neue Fragmentnum- mer zugeordnet. Ist die Homogenitätseigenschaft für genau einen der Vergleiche erfüllt, so wird dem Pixel die Fragmentnummer des entsprechenden Nachbarpixels zugeordnet. Ist sie für alle drei Pixel erfüllt und haben die Nachbarpixel die gleiche Fragmentnum- 37 2.4. SEGMENTIERUNG UND LABELING mer, so wird diese auch dem betrachteten Pixel zugewiesen. Haben die Nachbarpixel unterschiedliche Fragmentnummern, so wird dem Pixel die niedrigere der beiden Frag- mentnummern zugewiesen, und die höhere Fragmentnummer wird mit der niedrigeren verknüpft. Im zweiten Durchgang werden alle Fragmentnummern die zu einem Segment gehören zu einer eindeutigen Labelnummer vereinigt und jedem Pixel wird die endgültige Labelnummer, anstelle der temporären Fragmentnummer, zugewiesen. Bei den Beispielbildern der verwendeten Testszenen (siehe Abbildung 6.3 und 6.4) be- trägt die durchschnittliche Anzahl der temporären Fragmente 1203 bzw. 2113 im Ge- gensatz zu 593 bzw. 832 nach dem Algorithmus von Hayashi et al. Um diese Zahlen vergleichen zu können, muss man aber auch berücksichtigen, dass der Hayashi Algo- rithmus nur auf einer Binärmaske arbeitet, alle 0-Pixel als Hintergrund klassiziert und keine eingeschlossenen Segmente detektiert. Daher erkennt er in den Beispielbildern im Durchschnitt auch nur 575 bzw. 745 Segmente im Gegensatz zu 655 bzw. 1168 Segmenten beim look-behind Algorithmus. Der Hayashi Algorithmus benötigt etwas weniger als die Hälfte an Speicher für die temporären Fragmentnummern, erkennt aber, aufgrund eines anderen Segmentierungskriteriums, im Durchschnitt um 1/4 weniger Segmente. Insge- samt kann der temporäre Fragmentnummernspeicher beim Hayashi Algorithmus kleiner gewählt werden, allerdings wird ein zusätzlicher Run-Label-Buer verwendet, der min- destens die Gröÿe einer halben Bildzeile haben muss, wodurch sich der Unterschied im Speicherbedarf der beiden Algorithmen deutlich verringert bzw. ausgleicht. Wie sich bei Experimenten gezeigt hat, ist eine zusätzliche Nachverarbeitung notwendig, um aus den Ergebnissen des Segmentierung und Labeling Schritts einen Objektblob (das heiÿt die Menge der Segmente, die ein Objekt bestmöglich überdecken) zu erhalten (siehe Kapitel 4.2.1). Dafür ist es aber notwendig, dass 1. aneinandergrenzende Vordergrundbereiche mit unterschiedlichen Homogenitätsei- genschaften als zwei getrennte Segmente behandelt werden (siehe das zuvor be- schriebene Homogenitätskriterium), und 2. eingeschlossene Hintergrundbereiche (z.B. Fenster oder Bereiche des Fahrzeuges ohne Struktur, die fälschlicherweise als Hintergrund klassiziert wurden) als nor- male Segmente, mit einer eigenen Labelnummer, erkannt werden. Beide Bedingungen werden von dem Algorithmus, den Hayashi et al. in [19] beschrei- ben, nicht erfüllt, daher wird für den Prototypen der zuvor beschriebene look-behind Algorithmus verwendet. 38 KAPITEL 2. HINTERGRUNDERKENNUNG 2.5 Zusammenfassung Aufgrund der Ergebnisse der Hintergrundevaluierung kann man zusammenfassen, dass von den getesteten Algorithmen der Median Algorithmus (bzw. dessen Derivate) und der Mixture of Gaussian Algorithmus die qualitativ besten Ergebnisse liefern. Der Approxi- mated Median Algorithmus liefert erwartungsgemäÿ etwas schlechtere Resultate als die beiden zuvor genannten Algorithmen. Bezieht man allerdings die Algorithmuskomplexität in die Überlegung mit ein, so ist der Approximated Median Algorithmus aufgrund seiner Einfachheit ein guter Kompromiss. Wie die beiden Kriterien Hintergrundqualität und Komplexität gewichtet werden ist von Projekt zu Projekt unterschiedlich. In der vorliegenden Arbeit el die Wahl auf den Approximated Median Algorithmus, da dieser sich durch seine geringe Komplexität und niedrigen Ressourcenbedarf gut für eine DSP Implementierung eignet. Geringfügige Fehler im Hintergrundmodell werden im laufenden Betrieb durch einen unabhängigen Trackingalgorithmus kompensiert und können somit akzeptiert werden. Um die Qualität des Hintergrundmodells zu verbessern wurden folgende Erweiterungen vorgenommen: • Selektive Hintergrundaktualisierung: Es werden nur jene Bereiche des Hintergrund- modells aktualisiert, die sicher als Hintergrund erkannt wurden. • Globale Helligkeitsanpassung: Für jene Bereiche, die nicht aktualisiert werden, wird eine globale Helligkeitsanpassung durchgeführt, um ein Auseinanderdriften zwi- schen Hintergrundmodell und tatsächlichen Hintergrund zu vermeiden. Als Segmentierungsalgorithmus wird ein 2-Pass Run-Label Algorithmus verwendet. Da- bei werden zuerst temporäre Fragmente der Vordergrundmaske klassiziert und zusam- menhängende Fragmente identiziert. Nach Erstellung der endgültigen Labelnummern werden diese in einem zweiten Durchlauf anstelle der Fragmentnummern in die Label- maske eingetragen. 39 2.5. ZUSAMMENFASSUNG 40 3 Objektmodell Der erste Teil dieses Kapitels beschreibt die Umrechnung zwischen Welt und Bildkoor- dinaten, wie sie in den nächsten Kapiteln benötigt wird. Anschlieÿend wird das Fahrzeugobjektmodell, so wie es im Prototyp verwendet wird, vorgestellt. Dabei wird insbesondere auf Farbhistogramme eingegangen, da diese die Grundlage des Trackingalgorithmus bilden. Der letzte Teil dieses Kapitels beschäftigt sich mit der Objektdetektion. Das heiÿt mit der Initialisierung eines neuen Fahrzeugobjektes sobald ein noch nicht getracktes Objekt detektiert wird. 3.1 Welt-/Bildkoordinaten Wird ein Objekt in einem Frame erkannt, so können Gröÿe, Mittelpunkt und Fuÿpunkt der Bounding-Box, Schwerpunkt der Objektmaske, etc. in Bildkoordinaten ermittelt werden. Für einfache Berechnungen und Schätzungen wie z.B. relative Gröÿenänderung oder ein- fache Positionsvorhersagen für den nächsten Frame, sind Bildkoordinaten ausreichend, um aber absolute Zahlen für Position, Gröÿe, Geschwindigkeit, etc. errechnen zu können, müssen die Gröÿen erst in das Weltkoordinatensystem transferiert werden. Umgekehrt müssen bekannte Punkte (Referenzpunkte, Eckpunkte, etc.) des Weltkoordinatensys- tems in Bildkoordinaten abgebildet werden, um sie in dem aktuellen Bild einzeichnen zu können. Weltkoordinatensystem Das Weltkoordinatensystem ist ein 3-dimensionales, karte- sisches Koordinatensystem, das über die reale Welt gelegt wird, um aus Referenzposi- tionen und absoluten Maÿen die Positionen, Geschwindigkeiten und weitere Daten von Objekten bestimmen zu können. Als Maÿeinheit wird Meter als die SI-Einheit der Länge 41 3.1. WELT-/BILDKOORDINATEN verwendet. Ist in der betrachteten Szene eine eindeutige Grundebene vorhanden, so wird diese mit der X/Y -Ebene identiziert, wobei die Z-Koordinate der Höhe entspricht. Kamerakoordinatensystem Das Kamerakoordinatensystem ist ein 3-dimensionales, kartesisches Koordinatensystem, das an einer Kamera ausgerichtet ist, das heiÿt sein Ur- sprung liegt im Projektionszentrum der Kamera. Die Zk-Achse ist in deren Blickrichtung ausgerichtet und entspricht daher der optischen Achse [2](Seite 47f) (siehe Abbildung 3.1(a)). Bildkoordinatensystem Das Bildkoordinatensystem ist das 2-dimensionale Koordi- natensystems eines Bildes im Computer. Jeder Bildpunkt hat eindeutige Koordinaten, die in Pixel gemessen werden. Der Ursprung liegt in der linken oberen Bildecke, die x-Koordinate entspricht der Spaltennummer und die y-Koordinate der Zeilennummer (jeweils bei 0 beginnend). Bei all diesen Koordinatensystemen handelt es sich um rechtshändige Koordinatensys- teme (siehe Abbildung 3.1(b)). (a) Lagebeziehung zwischen Weltkoordina- tensystem und Kamerakoordinatensystem (b) dreidimensionales rechtshän- diges Koordinatensystem [20] Abbildung 3.1: Koordinatensysteme und Lagebeziehungen 3.1.1 Weltkoordinaten in Bildkoordinaten Transformation (3D nach 2D) Die Weltkoordinaten in Bildkoordinaten Transformation setzt sich aus zwei Transforma- tionen zusammen: 42 KAPITEL 3. OBJEKTMODELL 1. Translation und Rotation, um Weltkoordinaten in Kamerakoordinaten zu trans- formieren 2. Projektion, um einen Punkt in Kamerakoordinaten in Bildkoordinaten zu proji- zieren Translation und Rotation Dieser Abschnitt beschreibt, wie die Position eines reellen Objektes (als Weltkoordinaten (X, Y, Z)t gegeben) in Bildkoordinaten (Xk, Yk, Zk) t transformiert werden kann: Als erster Schritt werden die Koordinaten eines Punktes P vom Weltkoordinatensystem (X, Y, Z)t in das Kamerakoordinatensystem (Xk, Yk, Zk) t transferiert. Die Lagebeziehung (externe Kameraparameter) zwischen Welt- und Kamerakoordinatensystem, sowie die für die Transformation notwendige Rotation R und Translation tk werden in Abbildung 3.1(a) illustriert [2](Seite 48-50)) [21](Seite 315317). Die Rotationsmatrix entspricht dabei den Einheitsvektoren des Weltkoordinatensystems gemessen in Kamerakoordina- ten. Durch homogene Koordinaten kann die Kombination aus Rotation und Translation als reines Matrix-Vektor-Produkt geschrieben werden [21](Seite 315317). Falls nicht anders erwähnt, werden homogene Koordinaten in dieser Arbeit immer nor- miert betrachtet, um eine eindeutige Darstellung zu erhalten. In Gleichungen wird die Gleichheit gegebenenfalls durch einen Normierungsfaktor (λ) sichergestellt. Projektion Geht man von einem einfachen Lochkameramodell aus, entspricht die Aufnahme eines Objektes mit der Kamera einer perspektivischen Projektion (Zentralprojektion) auf die Bildebene. Dabei entspricht das Projektionszentrum dem Brennpunkt des Objektivs und die Projektionsebene der Bildebene der Kamera. Die Projektion eines Punktes von Kamerakoordinaten (Xk, Yk, Zk) t auf Bildkoordinaten (x, y)t kann mit Hilfe der Kalibrierungsmatrix K berechnet werden [21](Seite 314315). Die Kalibrierungsmatrix setzt sich aus den internen Kameraparametern zusammen: Fo- 43 3.1. WELT-/BILDKOORDINATEN kale Länge, Lage des Bildhauptpunktes sowie Skalierung und Verzerrung. λ x y 1  = (K |03x1)  Xk Yk Zk 1  (3.1) K = f/µx s cx 0 f/µy cy 0 0 1  (3.2) mit: f : Abstand zwischen Projektionsebene und Projektionszentrum (Koordinatensystem- Ursprung) (cx, cy): Bildhauptpunkt in Bildkoordinaten (µx, µy): Pixelgröÿe in Kamerakoordinaten s: Scherungsfaktor Kameramatrix Kombiniert man die Transformation von Weltkoordinaten in Kamerakoordinaten mit der Abbildung in das Bildkoordinatensystem, so erhält man die Gleichung zur Welt- in Bildkoordinatentransformation λ x y 1  = P  X Y Z 1  (3.3) und die Kameramatrix P [21](Seite 316317) P = K · ( R|tk ) (3.4) mit: (X, Y, Z): Koordinaten eines Punktes im Weltkoordinatensystem 44 KAPITEL 3. OBJEKTMODELL (x, y): Koordinaten des Punktes im Bildkoordinatensystem P: Kameramatrix λ: Normierungsfaktor für homogene Koordinaten I: 3× 3 Einheitsmatrix K: Kalibrierungsmatrix R: Rotationsmatrix von Weltkoordinaten in Kamerakoordinaten tk: Translationsvektor zwischen Weltkoordinatensystem und Kamerakoordinaten- system (Ursprung des Weltkoordinatensystems in Kamerakoordinaten) 3.1.2 Bildkoordinaten in Weltkoordinaten Transformation (2+1D nach 3D) Mit der Gleichung 3.3 auf der vorherigen Seite kann nun jedes bekannte Objekt im Bild eingezeichnet bzw. markiert werden. Für eine Tracking Anwendung ist aber der umge- kehrte Schritt, aus Bildkoordinaten die echte Position in Weltkoordinaten zu berechnen, die eigentliche Aufgabe. Das heiÿt, es ist die Lösung des inversen Problems gesucht. Aufgrund der unterschiedlichen Dimensionen der Vektorräume ist oensichtlich, dass hier keine eindeutige Lösung existiert. Wenn ein Punkt aus dem Bildkoordinatensystem in das Weltkoordinatensystem abgebildet werden soll, müssen zusätzliche Informationen vorhanden sein bzw. Annahmen getroen werden. Eine häug verwendete Annahme ist, dass sich Objekte nur auf einer Ebene im Raum (z.B. Fahrbahn) bewegen. Daher verwenden viele Trackingsysteme einen Basis- bzw. Fuÿpunkt des zu verfolgenden Objekts, mit der Annahme, dass sich dieser Basispunkt auf einer bekannten Referenze- bene bendet, wie es zum Beispiel in den Arbeiten von Koler et al. [22] im Rahmen von PATH (California Partners for Advanced Transit and Highways - University of Califor- nia, Berkeley) sowie in Hu et al. [23] beschrieben wird. Als Referenzebene wird dabei die Fahrbahn bzw. der Fuÿboden verwendet, mit der natürlichen Annahme, dass sich Fahrzeuge und Personen bodengebunden bewegen. Mathematisch entspricht dies einer eindeutigen Transformation von der 2-dimensionalen Bildebene auf eine 2-dimensionale Referenzebene Π, die in einen 3-dimensionalen Raum (Welt) eingebettet ist. Diese Trans- formation wird Homographie oder Kollineation genannt. Entspricht die Referenzebene Π einer durch zwei Basisvektoren des Weltkoordinatensys- tems aufgespannten Ebene (im Allgemeinen die X/Y-Ebene), so lässt sich die Homogra- phie direkt aus der Kameramatrix P ermitteln. Dabei wird vorausgesetzt, dass P bereits richtig skaliert ist, so dass die Gleichung 3.3 korrekt ist. Die Homographie Hz zwischen der X/Y-Ebene des Weltkoordinatensystems und der 45 3.1. WELT-/BILDKOORDINATEN Bildebene besteht aus der 1., 2. und 4. Spalte von P. Die 3. Spalte bzw. Z-Spalte wird durch Z ≡ 0 eliminiert. Hz =  | | | P1 P2 P4 | | |  (3.5) Mittels Hz kann ein Punkt A = (X,Y, Z = 0) der Referenzebene Π eindeutig auf einen Punkt a = (x, y) der Bildebene abgebildet werden (vlg. Abbildung 3.2). Ist die durch Hz beschriebene Abbildung bijektiv, so kann Hz invertiert werden H−1 z und jeder Punkt der Bildebene kann eindeutig auf die Referenzebene Π abgebildet werden. Dieser Vorgang nennt sich Rückprojektion: Hz X Y 1  =λ x y 1  (3.6) 1 λ X Y 1  =H−1 z x y 1  (3.7) Soll der Punkt a nicht auf die Ebene Π projiziert werden, sondern auf eine Parallelebene Π′ mit der Höhe Z (Abbildung 3.2), so kann für Π′ eine neue Homographie Hz ′ berechnet werden. Ist auch Hz ′ bijektiv, so existiert eine Inverse Hz ′−1 mit der a in den Punkt A′ auf der Ebene Π′ abgebildet wird. H′ z X ′ Y ′ 1  =λ x y 1  (3.8) 1 λ X ′ Y ′ 1  ︸ ︷︷ ︸ A′ =H′−1 z x y 1  ︸ ︷︷ ︸ a (3.9) Um Punkte der Bildebene auf verschiedene Ebenen im Weltkoordinatensystem proji- zieren zu können, müssten für jede Ebene eine eigene Homographie und dazu passen- de Inverse berechnet werden. Die unterschiedlichen Homographien und deren Inverse können zwar direkt aus der Kameramatrix P berechnet werden, allerdings ist dies bei 46 KAPITEL 3. OBJEKTMODELL Abbildung 3.2: Skizze der Abbildung eines Punktes zwischen einer Ebene Π′ parallel zur Referenzebene Π und der Bildebene Echtzeitanwendungen mit beschränkten Ressourcen nicht durchführbar. Eine Vorausbe- rechnung der inversen Homographien für die Rückprojektion ist zwar prinzipiell möglich, aber unpraktikabel und beschränkt die Rückprojektion auf fest vorgegebene Ebenen. Wie die folgenden mathematischen Überlegungen zeigen werden, ist es möglich die Rück- projektion auf eine beliebige Ebene parallel zur X/Y-Ebene mit der Höhe Z auf eine Projektion auf die X/Y-Ebene (Referenzebene Π) und einen Korrekturvektor Oz −1 · Z zurückzuführen. (X, Y, Z): Koordinaten eines Punktes im Weltkoordinatensystem (x, y): Koordinaten des Punktes im Bildkoordinatensystem P: Kameramatrix Pi: Spaltenvektoren der Kameramatrix Hz: Homographiematrix zwischen der X/Y-Ebene des Weltkoordinatensystems und der Bildebene Hz −1: inverse Homographiematrix zur Rückprojektion auf die X/Y-Ebene des Welt- koordinatensystems Oz −1: Korrekturvektor zur Anpassung der Rückprojektion an eine beliebige Orthogo- nalebene der Z-Achse λ: Skalierungsfaktor der homogenen Koordinaten 47 3.1. WELT-/BILDKOORDINATEN Ausgangsbasis ist die Projektion eine beliebigen Punktes im Weltkoordinatensystem (X, Y, Z) auf einen Punkt (x, y) der Bildebene mit Hilfe der Kameramatrix P, wie es in Gleichung 3.3 hergeleitet wurde: λ x y 1  =  | | | P1 P2 P4 | | |  ︸ ︷︷ ︸ Hz X Y 1  +  |P3 |  Z (3.10) Durch arithmetische Umformungen kann die Gleichung in die Form der Rückprojektion auf die X/Y Basisebene (3.9) minus eines Korrekturvektors gebracht werden. λHz −1 x y 1 −Hz −1P3︸ ︷︷ ︸ Oz −1 ·Z = X Y 1  λHz −1 x y 1  ︸ ︷︷ ︸ Rückprojektion − Oz −1 · Z︸ ︷︷ ︸ skalierter Korrekturvektor = X Y 1  (3.11) Gleichung 3.11 hat auf der linken Seite 4 Variablen: λ, x, y und Z, wobei (x, y) durch den gegebenen Bildpunkt bestimmt sind und auch Z durch Π′ vorgegeben ist. So bleibt nur noch eine Unbekannte, die Skalierung λ. Diese kann direkt aus der homogenen Ko- ordinate berechnet werden. Sei q der nicht normierte homogene Vektor der Rückprojektion auf die Referenzebene:q1 q2 q3  =Hz −1 x y 1  (3.12) λ q1 q2 q3 −Oz −1 · Z = X Y 1  (3.13) 48 KAPITEL 3. OBJEKTMODELL Aus der 3. Komponente der Vektorgleichung folgt: λ = 1 + Oz −1 3 · Z q3 (3.14) Bei gegebener Höhe Z können somit die verbleibenden Weltkoordinaten (X, Y ) aus den Bildkoordinaten (x, y) berechnet werden: q =Hz −1 x y 1  (3.15) X Y 1  =λq−Oz −1 · Z (3.16) Für die DSP-Implementierung ist es wichtig, dass die Koordinatentransformation einfach und direkt berechnet werden kann. Da die Homographiematrizen und der Korrekturvek- tor bei einer statischen Kamera nur von festen Kameraparametern abhängen, könnenHz, Hz −1 und Oz −1 a priori berechnet und als Kongurationsparameter übergeben werden. Die eigentliche Transformationsberechnung beschränkt sich dann auf Skalaroperationen, eine Matrizenmultiplikation sowie Vektormultiplikationen und -additionen. 3.2 Das Fahrzeug Objektmodell Fahrzeuge werden im Bildraum durch ihre Bounding-Box, Basispunkt und Farbhisto- gramm beschrieben. Daraus wird die Position und Gröÿe eines 3D Quaders berechnet, der als Objektmodell im 3 dimensionalen Raum dient. Dabei ist die Initialgröÿe des Quaders so gewählt, dass damit ein typischer PKW eingeschlossen wird. Abbildung 3.3 zeigt einen Frame eines Videos, in dem der 3D Quader (cyan) als Ob- jektmodell sowie die getrackte Bounding-Box (grün) eingezeichnet sind. Weiters sind die aktuellen, sowie die letzten 9 Basispunkte jedes Fahrzeuges eingezeichnet. Folgende Eigenschaften bzw. Parameter werden für jedes Fahrzeug ausgewertet: • Bounding-Box Die Gröÿe und Position der Bounding-Box wird vom Trackingmodul für jedes Objekt ermittelt. 49 3.2. DAS FAHRZEUG OBJEKTMODELL Abbildung 3.3: Bild einer Verkehrskamera mit den eingezeichneten Objektmodellen der getrackten Fahrzeuge • Basispunkt Unter der Annahme, dass das Bild eines PKWs viele Symmetrien aufweist, liegt der Kantenschwerpunkt in der Mitte des Fahrzeuges und wird als Basispunkt ver- wendet. Aus dem Kantenbild des getrackten Objektes (Kantenbild des aktuellen Frames mit der Objektmaske geltert) wird der Basispunkt im Bildkoordinaten- system errechnet. Der Basispunkt ist gleich dem Schwerpunkt der Objektkanten. Um Fehler durch Bildrauschen zu vermeiden, werden nur Kantenpixel betrachtet, die über einem Schwellwert liegen. Der Bild-Basispunkt wird mit einer angenom- menen Höhe in das Weltkoordinatensystem übertragen. Da das Kantenbild anstelle des Originalbildes verwendet wird, können Fehler durch Schatten bzw. Lichtkegel minimiert werden, da diese weniger ausgeprägte Kanten haben. • kompakter Körper Ein Fahrzeug ist ein kompakter Körper, daher sollten auch in der Objektmaske eines Fahrzeuges keine Löcher zu sehen sein. Diese Kenngröÿe gibt an, wie viel Prozent der Fläche der 2D Bounding-Box durch die Objektmaske überdeckt wer- den. Diese Gröÿe wird in Kapitel 4.2.2 verwendet, um die Blob-Objekt-Zuordnung zu optimieren. • 3D Objektmodel So lange noch keine stabilen Objektdaten gemessen werden können, wird die Gröÿe des 3D Objektmodells (Quader) gleich dem Initialmodell gesetzt, andernfalls wird sie als gewichtetes Mittel zwischen der zuletzt gespeicherten Objektgröÿe und dem Objektmodell, das aus dem aktuellen Frame ermittelt wird, berechnet. Dazu wird 50 KAPITEL 3. OBJEKTMODELL die Gröÿe eines maximalen 3D Quaders berechnet, der in die Objekt Bounding-Box eingeschrieben werden kann (siehe Kapitel 3.1.2). • Histogramm Das Farbhistogramm bildet die Grundlage für den verwendeten Mean-Shift Tracker und wird im folgenden Abschnitt detailliert beschrieben. • Geschwindigkeit Die Geschwindigkeit wird durch die Bewegung des Basispunktes im Vergleich zum letzten Frame errechnet. Dabei wird einerseits die Geschwindigkeit im Bild in Pixel pro Frame ermittelt, mit der ein einfaches Vorhersagemodell in Bildkoordinaten möglich ist, und andererseits die absolute Geschwindigkeit des Basispunktes in m/s. • Fahrbahn Es wird nicht nur die Position und Geschwindigkeit des Fahrzeuges ermittelt, son- dern auch die aktuelle Fahrbahn, oder allgemeiner, die aktuelle Region of Interest (ROI) aus einer Menge von vordenierten ROIs. Diese Information kann in weite- rer Folge zur Berechnung von Fahrbahnbelegungen und Spurwechseln verwendet werden. • Kondenz Zu jedem Objekt wird ein Kondenzwert in Prozent gespeichert, der ein Maÿ für die Qualität der Objektwerte (insb. der Trackingergebnisse) ist. Unterschreitet die Kondenz einen Schwellwert, so konnte das Objekt über mehrere Frames nicht mehr getracked werden und wird aus der Liste der im Bild bendlichen und ge- trackten Objekte entfernt. • Stabilität Ein weiterer Qualitätsparameter gibt an, wie stabil der Tracker ist. Im Prototyp wird dies durch den Vergleich der Gröÿe der geschätzten Bounding-Box BBp mit der tatsächlich getrackten Bounding-Box BBt ermittelt. Dazu wird die relative Dierenz der Flächen der beiden Bounding-Boxen berechnet. Stabilität = ( 1− |BBp −BBt| BBp ) · 100 (3.17) Dabei kann die Stabilität einen Wert zwischen 0 und 100 annehmen, wobei ein Wert von 100 bedeutet, dass die Gröÿe der geschätzten Bounding-Box zu 100% gleich der getrackten Bounding-Box ist. Wenn die getrackte Bounding-Box doppelt so groÿ oder noch gröÿer als die geschätzte Bounding-Box ist, wird der Stabilitätswert auf 0 gesetzt. Während der Objektinitialisierungsphase wird kein Stabilitätswert 51 3.2. DAS FAHRZEUG OBJEKTMODELL berechnet. Als globales und Initialobjektmodell wird im Prototyp der 3D Quader, bzw. die Bounding- Box der Projektion des Quaders in das Bild, verwendet. Für bereits gefundene Objekte wird dieses Modell um das jeweilige Farbhistogramm erweitert. 3.2.1 Histogramme Der Begri Histogramm wird folgendermaÿen deniert: Denition 1 (Histogramm) Ein Histogramm beschreibt die relative Häugkeit, mit der Klassen (z.B. Farben bzw. Farbbereiche) in einer Gesamtmenge vertreten sind, durch die Intervalllänge der zugehörigen Klassen (siehe Gleichung 3.18) [24](Seite 4445). Die Intervalllänge gibt dabei die Gewichtung der Klassen vor. Wird jedem Intervall genau eine Klasse zugeordnet, und sollen alle Klassen gleich gewichtet werden, so wird eine konstante Intervalllänge verwendet. Histogrammbinj = relative Häugkeit der zum Intervallj gehörigen Klassen Intervalllängej (3.18) In der Bildverarbeitung werden häug die Grauwerte oder Grauwertbereiche als Klassen- eigenschaft für Helligkeitshistogramme benutzt. Bei Farbbildern kann ein Histogramm über alle möglichen Farben (im 3D Farbraum) erstellt werden, oder je ein Histogramm pro Farbkanal bzw. Farbkoordinate der unterschiedlichen Farbmodelle. Histogramme über einzelne Farbkanäle / projizierte Histogramme Im ersten Ansatz wurden die Histogramme nicht im 3D-Farbraum (RGB) erstellt, son- dern es wurde für jede Farbe ein eigenes Histogramm berechnet. Dies entspricht einer Projektion eines vollständigen 3D-Histogramms auf die jeweiligen Farbachsen, also drei 1D-Histogramme. Dadurch ergibt sich eine wesentliche Reduktion der Histogrammbins (von m3 auf 3m). Somit können die Histogramme als eindimensionale Arrays gespeichert werden, was einen einfachen, direkten Zugri möglich macht. Durch die Projektion sind die meisten Histogramme nicht mehr dünn besetzt, wie es bei den vollständigen 3D- Histogrammen der Fall ist. Selbst im Fall, dass einige Bins keine Einträge haben, ist 52 KAPITEL 3. OBJEKTMODELL der geringfügig höhere Speicherbedarf eines einfachen Arrays im Vergleich zu einer Liste oder ähnlichen Datenstrukturen durch den direkten Zugri durchaus gerechtfertigt. Dünn besetzte 3D-Histogramme Experimente zeigten allerdings, dass projizierte Histogramme in einigen Fällen zu un- spezisch sind, um ein gutes Modell des Objektbildes zu liefern. Dies liegt einerseits an der Reduktion der Bins (3m vs. m3), andererseits an dem Verlust der Korrelation der Farbenkanäle. Die Reduktion der Bins könnte durch eine Erhöhung der Binzahl m abgefedert werden. Der gravierendste Nachteil ist allerdings der Verlust der Korrelationsinformation der Farbkanäle. Somit musste der Ansatz mit den projizierten Histogrammen wieder verworfen wer- den. Stattdessen werden die vollständigen 3D-Histogramme verwendet, die allerdings aus Speicherplatzezienz nicht mehr als einfache Arrays implementierbar sind. In der überwiegenden Zahl der Fälle handelt es sich aber um dünn besetzte Histogramme, was bedeutet, dass die 3D-Histogramme ähnlich wie Matrizen in einer sparse Datenstruktur gespeichert werden können. Dabei werden nur die von Null verschiedenen Werte zusam- men mit den jeweiligen Farbindizes in einer Liste gespeichert (siehe Quellcode 3.1). Um den Zugri dennoch ezient gestalten zu können, wurden die sparse Histogramme als sortierte Liste implementiert, wobei die erste Farbkomponente das primäre Sortierkrite- rium darstellt, die zweite Komponente das sekundäre, etc. Als Kompromiss zwischen projizierten 1D- und 3D-Histogrammen sind in anderen Farb- räumen auch verschiedene 2D-Histogramme denkbar, bei denen eine Farbkomponente nicht berücksichtigt wird, oder bei denen zwei Farbkomponenten in eine Histogramm- komponente projiziert werden. So wurden, neben den Experimenten mit dem RGB Farbraum, zusätzliche Experimente mit verschiedenen Kombinationen der Komponenten der HSV bzw. YCrCb Farbmodelle durchgeführt. Anstelle des vollen 3D Farbhistogramms werden dabei auch 2D und 1D Histogramme verwendet. Durch die Reduktion des Histogrammraums wird sowohl der benötigte Speicherplatz als auch die Laufzeit verringert. Welchen Einuss die Verwendung von verschiedene Farbräume bzw. Teilfarbräume hat, wird in Kapitel 6 untersucht. 53 3.3. FAHRZEUGDETEKTION / INITIALISIERUNG DES OBJEKTMODELLS typedef struct Histogram_Node { UInt32 bin [4]; ///< color -bin indizes UInt32 count; ///< count for this bin struct Histogram_Node *next; } Histogram_Node; Quellcode 3.1: sparse Histogramm Struktur 3.3 Fahrzeugdetektion / Initialisierung des Objektmodells Aus der Annahme, dass relevante Objekte (insbesondere Fahrzeuge) in Bewegung sind, folgt, dass diese Objekte nicht in ein Hintergrundmodell integriert werden. Eine Aus- nahme stellt dabei ein Stau dar, für dessen Behandlung zusätzliche Methoden verwendet werden müssen. Ein Hintergrundalgorithmus erkennt Fahrzeuge also als Vordergrund- bereich. Die Umkehrung, dass der Vordergrund ausschlieÿlich aus relevanten Objekten besteht, gilt allerdings nicht allgemein  obwohl dies die Basis der Objekterkennung mittels Hintergrundmodell darstellt. Trotz dieser Tatsache kann diese vereinfachende Annahme unter bestimmten Voraussetzungen zielführend sein. Der beobachtete Bereich (ROI) kann den gesuchten Objekten entsprechend eingeschränkt werden. Bei einem Fahrzeugtrackingsystem ist es sinnvoll, die ROI auf die Fahrbahn zu beschränken, da anzunehmen ist, dass sich Fahrzeuge nur auf der Straÿe bewegen. Auÿerdem können Fahrzeuge nicht einfach im Bild auftauchen bzw. verschwinden (siehe Kapitel 1.3 ), sondern fahren an denierten Stellen in das Bild ein. Daher ist es ausrei- chend, die Initialisierung neuer Fahrzeuge auf einen kleinen Teil der allgemeinen ROI, nämlich den Einfahrtsbereich, zu beschränken. Aus dem Hintergrundmodell wird eine Grauwertmaske erstellt, die mittels der globalen Standardabweichung normiert wird. Aus dieser Maske werden im Segmentierung & La- beling Schritt (siehe Kapitel 2.4) Vordergrundbereiche extrahiert und einzelnen Blobs zugeordnet. Um einzelne Segmente und den Hintergrund voneinander unterscheiden zu können wird der Vordergrundschwellwert bei der Segmentierung verwendet. Die Ermitt- lung des genauen Vordergrundschwellwertes (als Vielfaches der Standardabweichung) wird in Kapitel 6.3 beschrieben. Aus der Menge der so erhaltenen Blobs werden bereits getrackte Objekte herausge- ltert. Ein weiterer Filter überprüft, ob die verbleibenden Blobs bestimmte Kriterien 54 KAPITEL 3. OBJEKTMODELL (wie z.B. eine bestimmte Gröÿe, ein vorgegebenes Seitenverhältnis der Bounding-Box, etc.) erfüllen. Ist dies der Fall, so dienen sie zur Initialisierung eines neu zu trackenden Objektes. Wenn ein Fahrzeug in den Sichtbereich der Kamera fährt und das erste Mal im Bild auf- taucht, muss ein neue Objektinstanz erzeugt werden. Für die weitere Verarbeitung ist es entscheidend, dass diese neue Instanz das Fahrzeug möglichst gut und vollständig be- schreibt. Das bedeutet, dass das neue Objekt optimalerweise erst initialisiert wird (und somit getrackt werden kann) wenn es vollständig sichtbar ist. Um die Trackingqualität zu verbessern, kann die Objektinitialisierung über mehrere Frames erfolgen, nicht nur über ein Frame. Dadurch wird allerdings die Zeit zwischen dem ersten Erscheinen des Fahrzeuges im Bild und der abgeschlossenen Initialisierung der Objektinstanz weiter ver- gröÿert. Da das Fahrzeug aber möglichst von Anfang an getrackt werden soll, muss hier ein Kompromiss zwischen Trackingverzögerung und Initialisierungsqualität eingegangen werden. Wenn ein Vordergrundblob gefunden wird, der keinem bereits bekannten Fahrzeug zuge- ordnet werden kann, und dessen Schwerpunkt in einem denierten Einfahrtsbereich liegt, wird eine neue Objektinstanz erzeugt. Die Verwendung von Einfahrtsbereichen hat den Vorteil, dass Blobs, die auÿerhalb der Fahrbahn erscheinen (z.B. Reexionen an Tunnel- wänden), sowie Schlagschatten auÿerhalb des Einfahrtsbereiches nicht fälschlicherweise als Fahrzeuge getrackt werden. Allerdings hat diese Methode auch den Nachteil, dass Fahrzeuge, die der Tracker verloren hat, nicht mehr neu initialisiert und weiter ge- trackt werden können. Der Prototyp liest die Denition des Einfahrtsbereiches beim Start für jede Kamera ein. Dadurch kann der Einfahrtsbereich exibel an die Szene und Aufgabenstellung angepasst werden. Der genaue Algorithmus zum Erzeugen neuer Objekten des Prototypen ist in Kapitel 4.2.3 beschrieben. 55 3.3. FAHRZEUGDETEKTION / INITIALISIERUNG DES OBJEKTMODELLS 56 4 Tracking Ziel des Trackings ist es, bereits bekannte Objekte im aktuellen Frame wieder zu nden und die neue Position im nächsten Bild zu ermitteln. Dazu werden charakteristische Merkmale des Objektes (features) im aktuellen Bild bzw. einem Ausschnitt des aktuel- len Bildes gesucht. Aus der Geschichte des Objektes, allgemeinen Informationen (z.B. Kameraparametern und Szenengeometrie) und der Position im aktuellen Frame kön- nen weitere Daten wie Geschwindigkeit, Beschleunigung (bzw. Abbremsen), Position in Weltkoordinaten, etc. berechnet werden. In diesem Kapitel wird zuerst die allgemeine Funktionsweise von Trackingalgorithmen erläutert, um anschlieÿend einen vom Hintergrundmodell unabhängigen Tracker, den Mean-Shift Algorithmus nach Cheng, näher zu beschreiben sowie die durchgeführten Anpassungen zu erläutern. Der zweite Teil dieses Kapitels beschreibt die Korrelation der Ergebnisse des Mean-Shift Trackers mit den Blobs aus der Vordergrundmaske und dem Objektmodell. 4.1 Tracking Algorithmus Grundsätzlich kann man alle Trackingalgorithmen in zwei Gruppen einteilen: • Algorithmen, die aktuelle Blobs als Eingabe benötigen (Das heiÿt, es werden geeignete Vorverarbeitungsschritte benötigt, um passende Blobs zu generieren. Diese Schritte beinhalten unter anderem Hintergrundmodell, Vordergrundmaske und Segmentierung.) • Algorithmen, die ohne Blob-Informationen (insbesondere ohne Hintergrundmodell) auskommen Die erste Gruppe hat den Vorteil, dass das Tackingmodul selbst relativ einfach ausfal- len kann. Allerdings müssen dafür schon gute Blobs vorhanden sein. Auÿerdem müssen 57 4.1. TRACKING ALGORITHMUS Objekte, die in mehrere Blobs zerfallen sind, explizit zusammengefasst werden (siehe Abbildung 1.2). Das heiÿt, es muss schon vor dem Tracking sichergestellt sein, dass qualitativ gute Blobs vorhanden sind. Die Alternative dazu stellen Algorithmen dar, die keine Blobinformation benötigen. Die- se Algorithmen suchen das Objekt im aktuellen Bild anhand von positionsinvarianten Objektmerkmalen. Um die benötigten Ressourcen (Speicherplatz und/oder Rechenzeit) in Grenzen zu halten, wird eine geeignete Startposition für die Objektsuche im aktuellen Frame verwendet. Im einfachsten Fall kann dies die Annahme sein, dass sich das Objekt noch an derselben Position wie im vorangegangenen Frame bendet. Sind weitere Infor- mationen wie Objektgeschwindigkeit, Szenengeometrie, etc. vorhanden, so können diese verwendet werden, um die Schätzung der Initialposition zu verbessern. Ein entscheiden- der Vorteil dieser Algorithmen ist, dass kein Hintergrundmodell benötigt wird. Daher eignen sie sich besonders für Anwendungen, für die kein geeignetes Hintergrundmodell erstellt werden kann (z.B. bewegliche Kameras). Obwohl der Prototyp ein Hintergrundmodell (zur Erkennung neuer Objekte) enthält, wurde für das Trackingmodul ein Algorithmus gewählt, der, auÿer zur Initialisierung, keine Blobinformationen benötigt: der Mean-Shift Algorithmus. Die Motivation dabei ist, den Mean-Shift Algorithmus anhand von Verkehrsvideos zu testen. Weiters bringt diese Vorgehensweise für das Gesamtsystem den Vorteil, dass die Ergebnisse des Mean-Shift Trackers mit denen eines einfachen Blob Trackers kombiniert werden können und so die Gesamtgüte der Objektposition erhöhen. Aus Kapitel 1.3 (Allgemeine Annahmen) folgt, dass das Abbild der Fahrzeuge, bis auf perspektivische Gröÿenänderungen, annähernd gleich bleibt. Ein einfacher Trackingansatz wäre daher, direkt das Bild des Fahrzeuges in unterschied- lichen Auösungen im nächsten Frame zu suchen. Um robuster gegenüber Verzerrungen und Gröÿenänderungen zu sein, wird nicht direkt auf den Bilddaten, sondern im Histo- grammraum gearbeitet. Als Optimierungsverfahren wird der im Folgenden beschriebene Mean-Shift Algorithmus verwendet. 4.1.1 Der Mean-Shift Algorithmus Der Mean-Shift Algorithmus wurde von Fukunaga und Hostetler entwickelt [25]. Dabei wurde er ursprünglich zur Cluster Analyse eingesetzt. Cheng hat eine Erweiterung des Mean-Shifts deniert, die einen exibleren Kernel und Gewichte zulässt [26]. Im Fol- genden wird unter Mean-Shift immer die Cheng Denition von Mean-Shift verstanden. 58 KAPITEL 4. TRACKING Denition 2 (Mean-Shift) Sei X = Rn die Domäne, S ⊂ X eine endliche Menge (die Datenmenge oder Samples), K : X → Rn eine Kernelabbildung (kurz Kernel) und w : S → (0,∞) eine Gewichtungsfunktion. [26] Der Datenmittelwert mit dem Kernel K an x ∈ X ist deniert als m(x) = ∑ s∈S K(s− x)w(s)s∑ s∈S K(s− x)w(s) (4.1) Die Dierenz m(x)− x wird als Mean-Shift bezeichnet. Sei T ∈ X eine endliche Menge (die Menge der Cluster Centers). Die wiederholte Anwendung der Iteration T ← m(T ) wird als Mean-Shift Algorithmus bezeichnet. Weiters hat Cheng gezeigt [26], wie der Mean-Shift Algorithmus zur Extremwertsuche verwendet werden kann, wobei die zu optimierende Funktion f in die Gewichte ein- ieÿt. w(s) = f(s)∑ t∈S K(t− s) (4.2) Dadurch verschiebt sich die zugrundeliegende Datenmenge in jedem Iterationsschritt in Richtung der Extremwerte. In der Bildverarbeitung wird ein Template des zu suchenden Objekts verwendet. Das Template kann ein einfacher Ausschnitt des Luminanzbildes sein oder aus beliebigen anderen Daten bestehen, die sich aus dem Bild des Objektes berechnen und dieses genü- gend genau beschreiben. Ein anderer Datensatz kann mit Hilfe einer Vergleichsfunktion mit dem Template verglichen werden. Die Vergleichsfunktion liefert dabei ein quantita- tives Maÿ für die Ähnlichkeit eines Templates mit dem zweiten Datensatz. Das Ziel ist, einen Datensatz zu nden, der maximale Ähnlichkeit mit dem Template aufweist. Bei dem histogrammbasierten Mean-Shift Algorithmus besteht das Template aus dem Histogramm des zu suchenden Objekts. Dabei soll die Ähnlichkeit des Template Histo- gramms und des Histogramms des aktuellen Bildausschnitts optimiert werden. Analog zu der von Cheng vorgestellten Extremwertsuche ieÿen die Verhältnisse der Histogramm- bins (Template / aktueller Bildausschnitt) als Gewichte in den Mean-Shift Algorithmus ein [26]. Die Qualitätsverbesserung eines jeden Iterationsschrittes wird mittels Bhat- tacharyya Distanz überprüft, wobei, an Stelle der Bhattacharyya Distanz selbst, der Bhattacharyya Koezient berechnet wird [27]. 59 4.1. TRACKING ALGORITHMUS 4.1.2 Mean-Shift Implementierung Die Implementierung orientiert sich an der von Comaniciu, Ramesh und Meer in [27] vorgestellten Methode. Dieser Algorithmus wird hier zusammengefasst: Mean-Shift Algorithmus nach Comaniciu et al. Algorithmus 1 (Kernel Based Mean-Shift) h: Skalierungsfaktor für die Distanz lh: Anzahl der normalisierten Pixelpositionen des betrachteten Bildausschnittes, bei Skalierung h m: Anzahl der Histogrammbins y0: Initialposition xi: Pixel im betrachteten Bildausschnitt i ∈ {1, . . . lh} q: normalisiertes Histogrammtemplate q[i]: i-ter Bin des Histogramms p(y): normalisiertes Histogramms des Bildausschnittes an der Stelle y p[i](y): i-ter Bin des Histogramms b(x): R2 → {1, . . . m} Abbildung einer Bildposition in die entsprechende Histogramm- bin Nummer g(): [0,∞)→ R Kernelfunktion 1. Initialisierung und Berechnung der Bhattacharyya Koezienten für die Initialpo- sition ρ(y0) = m∑ u=1 √ p[u](y0)q[u] 2. Berechnung der Gewichte über alle Pixel xi des Bildausschnittes u = b(xi) . . .Nummer des entsprechenden Histogrammbins wi = √ q[u] p[u](y0) 60 KAPITEL 4. TRACKING 3. Mean-Shift um neue Position y1 zu berechnen y1 = ∑lh i=1 xiwig( ∥∥y0−xi h ∥∥2 )∑lh i=1 wig (∥∥y0−xi h ∥∥2 ) 4. Bhattacharyya Koezienten für y1 ρ(y1) = m∑ u=1 √ p[u](y1)q[u] 5. innere Schleife, optimiere auf Mean-Shift Vektor if ρ(y1) < ρ(y0) y1 = (y0 + y1)/2; goto 4 6. Maximum erreicht? if ( ‖y1 − y0‖ < ε ) exit else y0 = y1; goto 2 Vereinfachung Um den Algorithmus zu beschleunigen und die Prototypimplementierung zu vereinfachen wurden folgende Modikationen bzw. Anpassungen vorgenommen: Fixpunktarithmetik Da die endgültige Zielplattform Gleitkommaarithmetik nicht di- rekt unterstützt, wird groÿteils mit Integer- bzw. Fixpunktarithmetik gerechnet. Gleit- kommaarithmetik kann auf der Zielplattform nur mittels entsprechender Bibliotheken durchgeführt werden. Es gibt nur wenige Funktionen, die keine Fixkommazahlen, son- dern Gleitkommazahlen verwenden, da für die entsprechenden Werte keine einfache a priori Abschätzung des Wertebereich bzw. der benötigten Genauigkeit möglich ist. Vor der endgültigen DSP Implementierung sind diese Parameter zu untersuchen und alle Berechnungen als Fixpunktarithmetik zu implementieren. 61 4.1. TRACKING ALGORITHMUS Gewichtsfunktion Auÿerdem wird als Gewichtsfunktion nur eine einfache Division und keine Quadratwurzel der Division verwendet (vgl. Algorithmus 1 Schritt 2). Dadurch werden die Gewichte zwar verzerrt, die wesentliche Charakteristik bleibt aber erhalten, da beide Funktionen streng monoton wachsend sind. Flacher Rechteckiger Kernel Als Kernelfunktion wird ein acher, rechteckiger Kernel verwendet. Dieser hat den Vorteil, dass er sehr leicht zu implementieren ist. Die Gröÿe des Kernels wird der jeweiligen Objektgröÿe angepasst, das heiÿt, es wird nur auf einem kleinen Teil des Bildes gearbeitet, der genau so groÿ ist wie das gesuchte Objekt. Durch den achen Kernel kommt es zu keiner weiteren Modikation der Gewichte. Da- durch ieÿen die Objekt-Randbereiche auf gleiche Weise in die Berechnung mit ein wie das Objekt-Zentrum. Bei stark nicht-konvexen Objekten (wie z.B. Personen) die mit ei- nem rechteckigen oder ellipsoiden Kernel modelliert werden, ist die genaue Position der Arme und Beine für den Mean-Shift Tracker nicht bekannt. Somit werden, gerade am Rand, viele Hintergrundbereiche vom Kernel überdeckt. In solchen Fälle ist es sinnvoll, eine nicht rechteckige Kernelfunktion zu verwenden. Dies ist bei Fahrzeugen aber nicht der Fall, somit würde ein komplexer Kernel nur wenig Qualitätsverbesserung bringen, aber deutlich mehr Rechenzeit kosten und eine komple- xere Implementierung nach sich ziehen, was gerade bei embedded Systems zu vermeiden ist. Objektvorgeschichte Das Objekt-Modell (das heiÿt das Histogrammtemplate) ist direkt verantwortlich für die Qualität der Tracking-Ergebnisse. Allerdings ist die Wahl eines geeigneten Objekt- Modells nicht trivial, da sich das Abbild eines Objekts von Bild zu Bild verändert (z.B. durch Bewegung des Objekts, Beleuchtungsänderung, etc.). Das bedeutet, dass das Hi- stogrammtemplate nicht konstant auf jenes Histogramm gesetzt werden kann, das bei der ersten Detektion des Objektes erstellt wurde. Selbst wenn sich das Abbild des Objektes innerhalb einzelner Frames nur leicht ändert (z.B. durch unterschiedleiche Beleuchtung), so kann die kumulierte Änderung nach einiger Zeit so groÿ sein, dass das Objekt nicht mehr richtig wiedergefunden und somit auch nicht mehr verfolgt werden kann. Anderer- seits ist es auch nicht sinnvoll, jeweils das zuletzt erzeugte Histogramm des Objektes als Template zu verwenden. Bei diesem Ansatz werden kleine Fehler aufsummiert, bis das Objekt-Modell nicht mehr dem zu trackenden Objekt entspricht. Eine relativ einfache und wirkungsvolle Lösung für das Problem ist die Verwendung von mehreren Histogrammtemplates, statt nur einem einzigen. Dabei werden die letzten n 62 KAPITEL 4. TRACKING Histogramme qn eines jeden Objektes gespeichert, um Änderungen des Objektbildes in das Template zu integrieren, ohne dass Einzelfehler signikanten Einuss auf das gesamte Template haben. Dabei werden die Gewichte zur Berechnung des Mean-Shift Vektors für die einzelnen Histogramme berechnet und aufsummiert. Zur Berechnung der Bhattacharyya Koezi- enten wird der Mittelwert der einzelnen Bhattacharyya Koezienten verwendet. (siehe Algorithmus 2 Schritt 2 und 5) Minimaler Bhattacharyya Koezient Das Tracking basiert auf einer Maximum Optimierung der Bhattacharyya Koezienten. Dies funktioniert sehr gut, wenn sich das gesuchte Objekt in der Nachbarschaft der Initialposition bendet. Wenn sich das Objekt nicht im Bild bendet, oder zu weit von der Initialposition entfernt ist, liefert der naive Mean-Shift Algorithmus eine falsche Position, da keine Überprüfung eines Mindestmaÿes an Übereinstimmung (minimaler Bhattacharyya Koezient) existiert. Dieser minimale Bhattacharyya Koezient kann auf einen festen Wert gesetzt werden. So kann z.B. eine Übereinstimmung von mind. 50% gefordert werden. Allerdings gibt es in den meisten Fällen keinen Schwellwert, der a priori festgesetzt und ausreichend begründet werden könnte. Ein willkürliches Setzen dieses Schwellwertes birgt Probleme. Ist der Schwellwert zu hoch angesetzt, kann es leicht vorkommen, dass ein Objekt nicht mehr korrekt verfolgt wird, weil sich sein Bild durch Drehung bzw. unterschiedliche Per- spektive verändert. Ist der Wert zu niedrig gesetzt, kann sich der Tracker im Hintergrund verfangen. Um diese Probleme zu vermeiden, wurde ein dynamischer Schwellwert implementiert. Die Grundannahme dabei ist, dass die Übereinstimmung eines Kandidaten mit dem Objekt besser sein muss, als die Übereinstimmung des Objekts mit dem Hintergrund. Dazu wird der Mittelwert der Bhattacharyya Koezienten zwischen den Objekt-Modell- Histogrammen und dem Hintergund an der aktuellen Position als Schwellwert verwendet (siehe Objektvorgeschichte). Berücksichtigung des Hintergrundhistogramms Der von Comaniciu et al. [27] ursprünglich vorgestellte Mean-Shift Algorithmus berück- sichtigt keine Daten eines Hintergrundmodells. Dadurch kann dieser Algorithmus sehr 63 4.1. TRACKING ALGORITHMUS exibel und in vielen Anwendungsbereichen eingesetzt werden. Allergings gehen damit viele Informationen verloren, die zur Verbesserung der Trackingqualität genutzt werden können. Dies kann einerseits die automatische Generierung von Schwellwerten sein, aber auch die Berücksichtigung des Hintergrundes bei den Mean-Shift Gewichten. In [28] prä- sentierten Comaniciu et al. eine entsprechende Erweiterung. So werden Farben, die im Objekt öfter vorkommen als im Hintergrund, stärker gewichtet, während Farben, die im Hintergrund dominanter sind, entsprechend weniger gewichtet werden. Beide Erweiterungen werden in der konkreten Implementierung verwendet. In Algorith- mus 2 ndet die Berechnung des adaptiven Schwellwertes in Schritt 1, und die Anpassung der Gewichte durch das Hintergrundhistogramm in Schritt 2 statt. Subpixel-Skalierung Wenn sich die berechnete Position eines Objekts der wahren Zielposition annähert, wird der Betrag des Mean-Shift Vektors immer kleiner, bis er kleiner als der Pixelabstand ist. Auÿerdem korreliert der Betrag des Mean-Shift Vektors, der mit den vereinfachten Gewichten berechnet wurde, nicht immer mit der wahren Entfernung zur Zielposition. So kann es zu Subpixelbeträgen kommen, obwohl sich die derzeitige Position noch deutlich von der Zielposition unterscheidet. Da die Position in Pixel, also ganzzahlig, verarbeitet wird, würde es hier zu einem Stillstand, und in direkter Folge, zu einem Abbruch der Iteration kommen. Um diesen frühzeitigen Abbruch zu vermeiden, wird der Mean-Shift Vektor s bei Subpixel-Beträgen so skaliert, dass der Betrag der längsten Komponente gleich 1 wird. wenn max(|(| s)) < 0 und max(s) 6= 0: s = ( sx sy ) / max(s) (4.3) Implementierter Algorithmus Algorithmus 2 (Mean-Shift Tracker) n: Anzahl der Histogramme im Objekt Modell m: Anzahl der Histogrammbins 64 KAPITEL 4. TRACKING l: Anzahl der normalisierten Pixelpositionen des betrachteten Bildausschnittes y0: Initialposition bzw. letzter Iterationsschritt ∆xi: Pixel im betrachteten Bildausschnitt relativ zum Mittelpunkt des Bildausschnittes i ∈ {1, . . . l} q: normalisiertes Histogramm des Templates q[k]: k-ter Bin des Histogramms p(y): normalisiertes Histogramm des Bildausschnittes an der Stelle y p[k](y): k-ter Bin des Histogramms bg(y): normalisiertes Histogramm des Hintergrundbildausschnittes an der Stelle y bg[k](y): k-ter Bin des Histogramms b(x): R2 → {1, . . . m} Abbildung einer Bildposition in die entsprechende Histogramm- Bin-Nummer Γ: bester gefundener Bhattacharyya Koezient (initialisiert mit: Γ = 0) Γmin(y0): minimaler Bhattacharyya Koezient s: Mean-Shift Vektor 1. minimaler Bhattacharyya Koezient berechne Bhattacharyya Hintergrund Koezient Γmin an Position y0 Γmin(y0) = ∑n k=1 ∑m u=1 √ bg[u](y0)qk[u] n 2. Berechnung der Gewichte (siehe Vereinfachung, Objekt Vorgeschichte und Berücksichtigung des Hintergrund- histogramms) u = b(∆xi + y0) . . .Nummer des entsprechenden Histogrammbins wi = n∑ k=1 qk[u] p[u](y0)︸ ︷︷ ︸ einfache Gewichte ( qk[u]− bg[u](y0) qk[u] + bg[u](y0) + 1 ) ︸ ︷︷ ︸ Modikation durch Hintergrund 3. Berechnung des Mean-Shift Vektors s = ∑l i=1 ∆xiwi∑l i=1 wi 65 4.1. TRACKING ALGORITHMUS 4. Sub Pixel Scale if |sx| < 1 and |sy| < 1 and max(s) 6= 0 s = s max(|sx|,|sy |) 5. Mean-Shift anwenden for λ = (0, . . . 3) y = y0 + λ · s Bhattacharyya Koezient an Position y: ρ(y) = ∑n k=1 ∑m u=1 √ p[u](y)qk[u] n if ρ(y) > Γ and ρ(y) > Γmin(y0) y1 = y Γ = ρ(y) 6. if neue Position gefunden y0 = y1 goto 1 else exit Parameter des implementierten Mean-Shift Algorithmus Die Anzahl der Histogramme im Objekt Modell bestimmt, wie schnell das Modell auf Änderungen im Histogramm des Objektes reagiert. Bei einer geringe Anzahl von Histo- grammtemplates passt sich das Objekt Modell des Tracking Algorithmus schneller an. Gleichzeitig steigt die Wahrscheinlichkeit, dass Fehler in das Modell integriert werden und das Objekt nicht mehr richtig erkannt wird (siehe Absatz: 4.1.2 Objektvorgeschichte oben). Im Prototyp hat sich gezeigt, dass das Objekt Modell mit 5 Histogrammtemplates ausreichend stabil ist. Der Prototyp verwendet 3D-Farbhistogramme, wobei jeder Farbkanal in 8 Bereiche ein- geteilt wird. Dadurch ergeben sich 512 verschiedene Histogrammbins, wobei im Durch- schnitt nur ca. 40 Bins besetzt sind und in einer sparse Datenstruktur gespeichert werden. (siehe Kapitel 3.2.1) 66 KAPITEL 4. TRACKING An der Initialposition beginnt der Mean-Shift Algorithmus mit der Maximumssuche. Je besser diese Position gewählt wurde, umso schneller (mit weniger Iterationsschrit- ten) bzw. umso genauer (bei fester Maximalanzahl der Iterationsschritte) kann die beste Übereinstimmung mit dem Objektmodell gefunden werden. Der Prototyp verwendet, falls bekannt, die Objektgeschwindigkeit und die Zeitdierenz zwischen der letzten be- kannten Position und dem Zeitstempel des aktuellen Frames, um die neue Position des Objektes zu schätzen. Diese Prognose dient als Initialposition für den Tracking Algo- rithmus. 4.2 Abgleich mit Objektmodell Der Tracking Algorithmus ist ein Teil eines Gesamtsystems und muss mittels passender Schnittstellen integriert werden. Dabei benötigt der Tracker Informationen über das zu suchende Objekt. Beim verwendeten Mean-Shift Tracker heiÿt dies, dass dem Algorithmus das aktuelle Bild, eine Initialposition und die Gröÿe des Suchfensters (siehe Kapitel 4.1.2) übergeben werden. Das Suchfensters wird im Prototyp als Bounding-Box repräsentiert. Als initiale Bounding-Box kann die Bounding-Box des Objektes im vorhergehenden Frame, oder, wie im Prototyp, ein Schätzwert für die neue Position der Bounding-Box im aktuellen Frame verwendet werden. Diese geschätzte Bounding-Box wird aufgrund der letzten bekannten Position, der Geschwindigkeit und der Zeitdierenz ermittelt. Auÿer der Bounding-Box werden auch noch die neuen Werte für den Basispunkt und das 3D Modell für das aktuelle Frame prognostiziert. Nachdem die neue Position eines Objektes durch den Tracker ermittelt wurde, müssen eine Korrelation der durch den Tracker gefundenen Bounding-Box und der im Segmentie- rungsschritt gefundenen Blobs hergestellt werden. Blobs, die keinem bereits getracktem Objekt zugeordnet werden können, initialisieren ein neues Objekt. Dieser Abgleich zwischen Trackingergebnissen und Blobs erfolgt im Prototyp in drei Schritten: 1. Eine Liste von Objekt-Blob-Korrelationen wird erstellt, und für jedes Objekt wird der Kernblob ermittelt. 2. Ausgehend von den Objekt-Kernblobs werden weitere Blobs dem Objekt zugeord- net, wenn sich die Übereinstimmung mit dem Objektmodell dadurch verbessert. 3. Verbleibende Blobs erzeugen neue Objekte, wenn sie dem Objektmodell und den 67 4.2. ABGLEICH MIT OBJEKTMODELL Rahmenbedingungen entsprechen. Nachdem die Ergebnisse der Prognose der Objekteigenschaften, des Trackingalgorithmus und der Vordergrundmaskensegementierung miteinander korreliert wurden, werden sie zusammengefasst und die Objekteigenschaften (siehe Kapitel 3.2) entsprechend aktuali- siert. 4.2.1 Objekt-Blob-Korrelation Als Kriterium für die Objekt-Blob-Korrelation wird die prozentuelle Überdeckung ver- wendet. Damit wird sowohl die örtliche Korrelation berücksichtigt, wie dies bei der Di- stanz der Schwerpunkte bzw. Bounding-Box Mittelpunkte der Fall wäre, als auch das Gröÿenverhältnis der beiden Bounding-Boxen. Ein Blob wird jenem Objekt zugeordnet, in dessen Tracker Bounding-Box die gröÿte Fläche der Blobmaske liegt. blob.related_object = argmax ∀obj∈objects ( Area(blob ⋂ BoundingBox(obj)) ) (4.4) Abbildung 4.1(a) illustriert diese Zuordnung. Der Blob 1 wird dem Objekt O1 zugeord- net, da er zu 100% in der Bounding-Box von O1 liegt, während nur ca. 10% der Blobäche in der Bounding-Box von O2 liegen. Blob 2 wird entsprechend O2 zugewiesen. (a) überlappende Bounding-Boxen (b) in mehrere Blobs zerfallene Objekte Abbildung 4.1: Objekt-Blob-Korrelation mit eingezeichneten Tracker Bounding-Boxen (grün strichliert) In der Praxis zerfallen die Fahrzeuge oft in mehrere Blobs. Wie diese Blobs Objekten zugeordnet werden, ist in Abbildung 4.1(b) dargestellt. Blob 1 liegt fast vollständig in 68 KAPITEL 4. TRACKING der Bounding-Box von Objekt O1 und wird diesem zugewiesen. Auch Blob 2 wird dem Objekt O1 zugewiesen, da ein Teil der Blobäche innerhalb der Bounding-Box von O1 liegt und keine gröÿere Überdeckung mit einer anderen Objekt Bounding-Box existiert. Die Blobs 3 und 4 werden dem Objekt O2 zugeordnet. Blob 5 kann keinem bestehenden Objekt zugeordnet werden. Von allen Blobs, die einem Objekt zugeordnet werden, wird der Blob mit der gröÿten Überdeckung der Objekt Bounding-Box als Kernblob markiert. In diesem Beispiel ist Blob 1 der Kernblob für das Objekt O1 und Blob 3 der Kernblob für das Objekt O2. 4.2.2 Objektmasken Optimierung Im zweiten Schritt wird für jedes Objekt aus den Blobs der Vordergrundmaske eine Ob- jektmaske erstellt, die möglichst kompakt ist, das heiÿt, es wird versucht, die Kompakt- heit (= Objektmaskenäche/Bounding-Box Fläche) der Objektmaske zu maximieren. Dazu wird die Objektmaske mit dem Objekt-Kernblob initialisiert. Andere Blobs werden genau dann zur Objektmaske hinzugefügt, wenn der Blobschwerpunkt innerhalb der Objektmasken Bounding-Box liegt und die entstehende Objektmaske kompakter wird. Im vorherigen Schritt wurde Blob 2 der Abbildung 4.1(b) dem Objekt O1 zugeordnet, obwohl dieser Blob als Schatten nicht zum Fahrzeug gehört und die Trackingergebnis- se verschlechtert, wenn er mitgetrackt wird. Andererseits konnte Blob 5 dem Objekt O2 nicht zugeordnet werden, da er nicht in der vom Tracking Algorithmus ermittelten Bounding-Box liegt, obwohl Blob 5 als Hinterrad oensichtlich Teil des Fahrzeuges ist. Diese fehlerhaften Korrelationen können durch das eben beschriebene Verfahren verbes- sert werden, wie es in Abbildung 4.2 auf der nächsten Seite illustriert ist. Diese Abbil- dung zeigt nochmals das selbe Beispiel aus Abbildung 4.1(b), diesmal ist allerdings nicht die Bounding-Box aus dem Tracker, sondern die Bounding-Box der Objektmaske einge- zeichnet. Auÿerdem ist die Fläche von Blobs, die in die Objektmaske integriert wurden, grau gefärbt, während von Blobs, die in keiner Objektmaske vorkommen, nur der Um- riss gezeichnet wurde. Die Position der Schwerpunkte der einzelnen Blobs ist durch ein entsprechendes Symbol eingezeichnet. Es ist leicht zu sehen, dass Blob 2 diesmal nicht zur Objektmaske von O1 hinzuge- fügt wurde, da der Schwerpunkt von Blob 2 nicht innerhalb der Bounding-Box von O1 liegt. Andererseits kann durch das Hinzufügen von Blob 5 zur Objektmaske von O2 die Maskenäche vergröÿert werden, ohne dass sich die Bounding-Box ändert. 69 4.2. ABGLEICH MIT OBJEKTMODELL Abbildung 4.2: Bounding-Boxen der Objektmasken (blau strichliert) und dazugehörige Blobs (grau) sowie nicht integrierbare Blobs (weiÿ) 4.2.3 Initialisierung neuer Objekte Blobs, die weder im ersten noch im zweiten Schritt einem Objekt zugeordnet werden konnten, erzeugen unter den folgenden Bedingungen ein neues Objekt. 1. Um Fehler durch Bildrauschen und für das System uninteressante Objekte zu ver- meiden, muss die Blobäche gröÿer als ein Schwellwert sein. 2. Wenn ein Einfahrtsbereich deniert ist, muss der Schwerpunkt des Blobs im Ein- fahrtsbereich liegen, wobei der Einfahrtsbereich jener Teilbereich der ROI ist, in dem neue Fahrzeuge in den Sichtbereich der Kamera fahren. Durch die geeignete Wahl des Einfahrtsbereichs wird auÿerdem sichergestellt, dass keine Objekte aus nur halb sichtbaren Fahrzeuge erzeugt werden. 3. Die Anzahl der Kantendierenzpixel muss gröÿer als ein einstellbarer Schwellwert sein. Es wird angenommen, dass der Umriss von Fahrzeugen deutlich als Kan- ten im Kantendierenzbild zu erkennen ist, wohingegen Schatten bzw. durch die Scheinwerfer beleuchtete Bereiche keine scharfen Kanten aufweisen. Sind alle Bedingungen erfüllt, wird ein neues Objekt mit Standardwerten erstellt, der erzeugende Blob als Kernblob deniert und die Objektmaske damit initialisiert. Danach werden dieser, wie im vorigen Abschnitt beschrieben, weitere Blobs hinzugefügt, wenn sie das Objektmodell unterstützen und die Kompaktheit der Objektmaske verbessern. Wurde ein neues Objekt erstellt, so bendet es sich zuerst in der Initialisierungsphase. Die Länge der Initialisierungsphase ist doppelt so groÿ gewählt, wie ein Fahrzeug mit der aktuellen Durchschnittsgeschwindigkeit benötigt, um vollständig im Bild sichtbar zu werden. Damit soll sichergestellt werden, dass das Histogrammtemplate, selbst bei 70 KAPITEL 4. TRACKING ungünstigen Bedingungen, aus Daten des vollständig sichtbaren Fahrzeuges besteht. Während dieser Zeit läuft der Mean-Shift Tracker, um Daten zu sammeln, das Objekt- modell aufzubauen und zu stabilisieren (insb. Histogrammtemplate und Fahrzeuggröÿe), die Trackingergebnisse werden allerdings noch nicht weiter verarbeitet. Nach der Initiali- sierungsphase werden statische Gröÿen wie die Fahrzeuggröÿe eingefroren, während das Histogramm laufend aktualisiert wird. 4.2.4 Objekt Nachverarbeitung Nachdem die Blob-Objekt-Korrelation vollständig durchgeführt und für jedes Objekt ei- ne Objektmaske erstellt wurde, hat jedes Objekt drei Bounding-Boxen aus unterschied- lichen Quellen, aus denen eine eindeutige Bounding-Box und Objektposition errechnet werden muss: • Prognose der Objekteigenschaften • Ergebnisse der Trackingalgorithmus • Objektmaske der korrelierten Blobs Der Kondenzwert des Objektes wird als gewichteter Mittelwert aus den Kondenzwer- ten des Trackingergebnisses und der Objektmaske berechnet. Das Gewicht ist abhängig vom aktuellen Zustand des Objektes. Während der Objektinitialisierungsphase wird aus- schlieÿlich der Kondenzwert der Objektmaske berücksichtigt, ansonsten ist das Gewicht für die Objektmaske frei wählbar (das Gewicht für die Trackingergebnisse ist dann ent- sprechend 1−Objektmaskengewicht). Unterschreitet der aus Tracking und Objektmaske resultierende Kondenzwert einen Schwellwert, wird für die weiteren Berechnungen der Schätzwert der Bounding-Box ver- wendet. Ansonsten wird die Objekt Bounding-Box als gewichteter Mittelwert wie folgt berechnet: BB = BBt · ωtκt + BBm · ωmκm ωtκt + ωmκm (4.5) mit: BBs: Objekt Bounding-Box als Vektor: (xlinks, yoben, xrechts, yunten) BBt: Bounding-Box der Trackingergebnisse BBm: Bounding-Box der Objektmaske 71 4.2. ABGLEICH MIT OBJEKTMODELL ωt: Gewichtungsfaktor der Trackingergebnisse ωt ∈ [0− 1] ωm: Gewichtungsfaktor der Objektmaske ωm = 1− ωt κt: Kondenzwert der Trackingergebnisse κm: Kondenzwert der Objektmaske Anschlieÿend wird der Basispunkt des Objektes berechnet. Der Basispunkt ist der Schwer- punkt der Kanten des Kantendierenzbildes, das durch die Objektmaske geltert wird. Das Kantendierenzbildes ist das absolute Dierenzbild des aktuellen Kantenbildes und des Hintergrundkantenbildes, wobei als Kantenbild der maximale Absolutwert der x- bzw. y-Gradienten (die durch ein Sobellter [29](Seite 348350) erstellt wurden) ver- wendet wird. Dadurch wird der Basispunkt primär aufgrund der symmetrischen Fahrzeugkanten be- rechnet. Bereiche, die nur Helligkeitsänderungen, aber keine Strukturänderung aufwei- sen, werden nicht berücksichtigt und verfälschen die Position des Basispunktes somit nicht. Mit Hilfe des Bild-Basispunktes wird der Basispunkt in Weltkoordinaten und die Ge- schwindigkeit (sowohl im Bildkoordinatensystem als auch im Weltkoordinatensystem) berechnet. Die Stabilität des Trackers wird mit folgender Formel berechnet: Stabilität = 1− |wohp − wphp| wphp (4.6) mit: wo, ho: Breite bzw. Höhe der ermittelten Objekt Bounding-Box wp, hp: Breite bzw. Höhe der geschätzten Objekt Bounding-Box Während der Initialisierungsphase wird aus der Objekt Bounding-Box und der Position des 3D-Basispunktes die Länge und Breite des Fahrzeuges geschätzt. Abschlieÿend werden alle Objekte, deren Kondenzwert einen Minimalwert unterschrei- tet, aus der Liste der aktiven Objekte gestrichen und nicht mehr weiter getrackt. 72 KAPITEL 4. TRACKING 4.3 Zusammenfassung In diesem Kapitel wurde der vom Hintergrundmodell unabhängige Mean-Shift Tracking Algorithmus nach Cheng beschrieben [26]. Anschlieÿend wurden Anpassungen wie Fix- punktarithmetik, Objekttemplate Vorgeschichte und Berücksichtigung des Hintergrunds für den allgemeinen Mean-Shift Algorithmus, so wie sie im Prototyp implementiert sind, erläutert. Anschlieÿend wurde der Abgleich des Objektmodells mit den Ergebnissen des Mean- Shift Trackers und den Blobs der Vordergrundsegmentierung beschrieben. Dabei werden einerseits die Blobs aus der Vordergrundsegmentierung einer aus dem Tra- cker stammenden Bounding-Box zugeordnet, andererseits eine Objektmaske um einen Kernblob aufgebaut, so dass die Kompaktheitseigenschaft der Bounding-Box (siehe Ka- pitel 3.2) optimiert wird. Blobs, die keinem bereits bekannten Objekt zugeordnet werden können, werden zur Erstellung eines neuen Objektes verwendet. Abschlieÿend wird für jedes Objekt ein Basispunkt errechnet, so dass die Position des Objektes in das Weltkoordinatensystem übertragen werden kann. 73 4.3. ZUSAMMENFASSUNG 74 5 System In diesem Kapitel wird beschrieben, wie die in den vorigen Kapiteln vorgestellten Me- thoden zu einem Gesamtsystem integriert werden. Die eigentliche Zielplattform ist ein Embedded System. Um die Entwicklung und den Test des Prototypen zu vereinfachen, kann das System mit Hilfe des DSP-via-PC Frame- works auch auf einem PC kompiliert werden. Abbildung 5.1 gibt einen Überblick über die verwendeten Module des Prototyps und die möglichen Plattformen. Die Bildverar- beitungsmodule Hintergrund, Tracking und Geometrie wurden schon in den früheren Kapiteln eingehend behandelt. Die weiteren Module Datenbank und Statistik sowie das DSP-via-PC Framework werden in diesem Kapitel kurz vorgestellt. Anschlieÿend wird die Integration zu dem Gesamtsystem beschrieben, das im nächsten Kapitel evaluiert wird. Abbildung 5.1: Gesamtsystem Übersicht 75 5.1. HILFSMODULE 5.1 Hilfsmodule Die Hilfsmodule erledigen keine Bildverarbeitungsaufgaben, sind allerdings für die Kom- munikation zwischen den Bildverarbeitungsmodulen notwendig, auÿerdem übernehmen sie die Auswertung und Verwaltungsaufgeben. 5.1.1 Datenmanagementmodul Das Datenbankmodul dient der Verwaltung von Blob- und Objektdaten und stellt ein wichtiges Bindeglied zwischen den einzelnen Modulen dar. Alle Daten eines Blobs wer- den in einer Struktur zusammengefasst. Diese Struktur kann dann von allen Modulen gelesen und aktualisiert werden. Nicht mehr benötigte Blobs werden gelöscht, nachdem das entsprechende Frame vollständig abgearbeitet wurde. Gleiches gilt sinngemäÿ für getrackte Objekte. Objekte werden aus der Datenbank entfernt, wenn sie nicht mehr ge- trackt werden können. Objektinstanzen werden vom Trackingmodul angelegt und vom Statistikmodul und weiteren Auswertungsfunktionen analysiert. Das Datenbankmodul erzeugt für jeden Datentyp eine doppelt verkettete Liste, wobei die Listendaten für schnellen Zugri im internen Speicher abgelegt werden. Die eigentlichen Nutzdaten werden im externen Speicher gespeichert. 5.1.2 Statistikmodul Im Prototyp ist nur ein rudimentäres Statistikmodul implementiert, das die minima- le, maximale und durchschnittliche Geschwindigkeit der aktuell getrackten Fahrzeuge ermittelt. Über jedes Frame wird die minimale, maximale und gewichtete durchschnittliche Fra- megeschwindigkeit (Geschwindigkeiten für dieses spezielle Frame) errechnet. Die durch- schnittliche Geschwindigkeit wird dabei mit dem Kondenzwert (siehe Kapitel 3.2) der Fahrzeuge gewichtet. Diese Framegeschwindigkeiten werden dann über das eingestellte Zeitfenster gemittelt und ausgegeben. 76 KAPITEL 5. SYSTEM 5.2 DSP-via-PC Framework Das DSP-via-PC Framework ermöglicht es, Programme, insbesondere XDAIS Algorith- men, die für einen Texas Instruments DSP entwickelt wurden, auf einem PC mit Micro- soft Visual C++ zu kompilieren und auszuführen. Diese Quellcodekompatibilität ist natürlich auf die reine Softwarefunktionalität beschränkt. Die spezielle Hardware des jeweiligen Embedded Systems (ausgenommen des DSPs selbst) wird dabei nicht berück- sichtigt. Der erste Teil dieses Kapitels gibt einen Überblick über das Einsatzgebiet des DSP-via- PC Framework. Anschlieÿend werden der Funktionsumfang und die einzelnen Module vorgestellt. 5.2.1 Motivation und Zielsetzung Bei der Entwicklung von Embedded Systems kommt es oft vor, dass Software und Hard- ware parallel entwickelt werden. Das heiÿt, während der Anfangsphase der Software- entwicklung steht die Zielplattform noch nicht zur Verfügung. Doch selbst wenn die Hardware verfügbar ist, sind die Ein- und Ausgabemöglichkeiten von Embedded Sys- tems stark eingeschränkt und auf die jeweilige Anwendung zugeschnitten. Aufgrund dieser Einschränkungen eignen sich Embedded Systems nur bedingt zur Algorithmus- entwicklung und Prototypimplementierung. Es stehen zwar mächtige Werkzeuge ( In- tegrated Development Environment (IDE), Debugger, Proler, Simulator, etc.) für die DSP-Entwicklung zur Verfügung, diese haben aber ihr Hauptanwendungsgebiet in der Portierung von bekannten und getesteten Algorithmen. Die Algorithmusentwicklung und Implementierung erfolgt in mehreren Entwicklungsstu- fen. Um eine Platzierung dieser Arbeit innerhalb dieses Systems vornehmen zu können, sei hier eine grobe Einteilung beschrieben. Diese Aufzählung erhebt keinesfalls Anspruch auf Vollständigkeit, sondern soll nur einen groben Überblick bieten. 1. Algorithmenentwicklung (z.B. in MatLab) 2. Prototypimplementierung (Umsetzung in Hochsprache und Ausrichtung auf die Zielplattform, allerdings ohne Optimierung) 3. Optimierte Implementierung für Zielplattform (z.B. Digital Signal Processor (DSP)) 77 5.2. DSP-VIA-PC FRAMEWORK Der Hauptteil dieser Arbeit beschäftigt sich mit der Auswahl der Algorithmen, der Pro- totypentwicklung und der Evaluierung. Um dabei schon auf die charakteristischen Be- sonderheiten der Zielplattform Rücksicht nehmen zu können, werden Systeme benötigt, die diese auf der Entwicklungsplattform simulieren. Plattformspezische Funktionali- tät wird dabei in Form von Application Programming Interfaces (API) zur Verfügung gestellt. Diese APIs können durch Softwarebibliotheken nachgebildet und in ihrer Funk- tionalität simuliert werden. Im Unterschied zu Emulatoren bzw. Plattform Simulatoren wird bei Bibliotheken nur die Funktionalität simuliert, aber nicht deren Implementie- rung nachgebildet. In anderen Worten: • Bibliotheken ermöglichen Quellcodekompatibilität auf verschiedenen Systemen. • Ein Simulator bzw. Emulator bietet Kompatibilität für kompilierten Binärcode. Um quellcodekompatible Software für einen Texas Instruments DSP (TMS320C64xx) auf dem PC entwickeln zu können, wurde im Rahmen dieser Arbeit ein DSP-via-PC Frame- work erstellt. Dieses Framework besteht aus Bibliotheken, die häug verwendete API Funktionen des TI-DSPs nachbilden. Neben der einfachen Funktionssimulation werden automatische Integritätsüberprüfungen durchgeführt und Tools zur Datenkonvertierung zur Verfügung gestellt. 5.2.2 Funktionsumfang Es wurden das eXpressDSP Algorithm Interface Standard (XDAIS) Framework [5, 30] und grundlegende DSP Systemfunktionen nachgebildet: • XDAIS Datentypen • ALG  das XDAIS Algorithmus Framework • DMAN / ACPY2  das XDAIS DMA Modul • LOG  das TMS320C64xx Ereignisprotokoll • MEM  die TMS320C64xx spezische Speicherverwaltungs-Funktionen 78 KAPITEL 5. SYSTEM XDAIS Datentypen Die gebräuchlichsten XDAIS Datentypen und Konstanten werden auf äquivalente Micro- soft Visual C++ Datentypen abgebildet. ALG  das XDAIS Algorithmus Framework Dieses Modul wird benötigt, um einen XDAIS Algorithmus in einer Applikation verwen- den zu können. Die Kernfunktionen sind dabei das Erzeugen und Löschen einer Algo- rithmusinstanz. Während der Initialisierung wird der Speicherbedarf des Algorithmus ermittelt (interner und externer bzw. scratch und persistent Speicher) und zugewiesen. Diese Speicherzuweisung, insbesondere die Gröÿe des Speichers, kann während der Lauf- zeit nicht mehr vom Algorithmus geändert werden. Die ALG Emulation reserviert alle Speicherblöcke im Hauptspeicher des PCs unabhängig von den DSP spezischen Spei- cherplätzen. Auÿerdem sieht das Algorithmus Framework vor, dass eine Algorithmusinstanz vor der Ausführung des eigentlichen Algorithmus zuerst aktiviert und anschlieÿend wieder deak- tiviert werden muss. Diese Aktivierungs- und Deaktivierungsfunktionen des ALG Frame- works wurden im Debug Modus um einen, an den in [31] beschriebenen Stack Overow Test angelehnten, Speicher Überlauf- und Unterlauf-Test erweitert. Dabei wird beim An- legen der Instanz vor und nach den vom Algorithmus angeforderten Speicherblöcken ein bekanntes Muster (canary words) in den Speicher geschrieben. Die Aktivierungs- und Deaktivierungsfunktionen prüfen vor bzw. nach dem Starten des Algorithmus, ob der Speicher noch das korrekte Testmuster enthält. DMAN / ACPY2  das XDAIS DMA Modul Dieses Modul stellt dem Algorithmus DMA-Funktionen zur Verfügung. Dabei ist die Funktionalität auf zwei Bibliotheken aufgeteilt: • Der DMAN (DMA-Manager) übernimmt administrative Aufgaben wie das Reser- vieren von Ressourcen beim Erzeugen einer Algorithmusinstanz und das Freigeben beim Löschen. • Die ACPY2 Bibliothek stellt die eigentliche DMA Funktionalität bereit. 79 5.3. GESAMTSYSTEMINTEGRATION In der Emulation wird der Zielbereich beim Starten eines DMA Transfers mit einem konstanten Muster beschrieben (ACPY2_start()). Der eigentliche Datentransfer mittels memcpy() erfolgt erst, wenn der Algorithmus die ACPY2 Funktion zum Warten auf die Beendigung des DMA Transfers aufruft (ACPY2_wait()). Somit kann leicht überprüft werden, ob der Algorithmus auf Bereiche im Zielspeicher zugreift, bevor sichergestellt wurde, dass die Übertragung abgeschlossen ist. Jene Funktion, die überprüft, ob der Transfer abgeschlossen ist (ACPY2_complete()), könnte in der Emulation immer einen erfolgreichen Datentransfer melden. Dadurch würde die Behandlung eines noch nicht abgeschlossenen Transfers in der Algorithmusimplementierung allerdings nie durchge- führt und getestet werden. Um die Reaktion der Algorithmusimplementierung in beiden Fällen (abgeschlossener bzw. nicht abgeschlossener Transfer) testen zu können, liefert die Emulation der ACPY2_complete() Funktion mit 50% Wahrscheinlichkeit die Mel- dung eines noch nicht abgeschlossenen Transfer, andernfalls werden die Daten mittels memcpy() kopiert und der Transfer als abgeschlossen bestätigt. LOG  das TMS320C64xx Ereignisprotokoll Dieses Modul emuliert die wichtigsten Funktionen des Ereignisprotokolls der TMS320- C64xx Serie, mit der Fehler und Statusmeldungen an das LOG System geschickt werden können. Die im LOG System gespeicherten Daten können am DSP mit geeigneten Werk- zeugen ausgelesen werden, im DSP-via-PC Framework werden sie direkt auf der Konsole ausgegeben. MEM  TMS320C64xx spezische Speicherverwaltungsfunktionen Dieses Modul stellt Speichermanagementfunktionen des DSPs zur Verfügung. Die DSP Funktionen berücksichtigen dabei TMS320C64xx spezische Gegebenheiten wie unter- schiedliche Speichersegmente (intern, extern) und Alignmentbedingungen. Die emulier- ten Funktionen bilden diese Speicherfunktionen auf Windows Speichermanagementfunk- tionen ab, ohne Speichersegment- oder Alignmenteinstellungen zu berücksichtigen. 5.3 Gesamtsystemintegration Die beschriebenen Module werden im Prototyp zu einem Gesamtsystem zusammenge- fügt. 80 KAPITEL 5. SYSTEM Dabei kann der Programmablauf in zwei Teile geteilt werden, die Systeminitialisierung, die einmalig beim Programmstart ausgeführt wird und alle Module startet und initia- lisiert, sowie die Hauptschleife, die für jedes Frame abgearbeitet wird und in der die eigentliche Bildverarbeitung und Auswertung durchgeführt wird. Der Programmablauf ist in Abbildung 5.2 dargestellt. 5.3.1 Systeminitialisierung Das Datenbankmodul wird initialisiert und die temporäre Datenbank erzeugt, wobei der Speicherbereich, in dem die Datenbank angelegt werden soll, als Parameter übergeben wird (DB_init()). Die Funktion background_init() wird aufgerufen, um das Hintergrundmodell (selekti- ver Approximated Median, siehe Kapitel 2.3) zu initialisieren, wobei die grundlegenden Bildparameter (Breite, Höhe und Anzahl der Farbkanäle) und eine initiale Standardab- weichung σ sowie ein Updatewert für die Farbwerte κ und die Standardabweichung ασ als Parameter übergeben werden. Das Geometriemodul wird mit der Kameramatrix, der inversen Homographie und dem Korrekturvektor gestartet (geometry_init()). Das Trackingmodul wird mit den grundlegenden Bildparametern (Breite, Höhe und An- zahl der Farbkanäle), einer Anfangsgeschwindigkeit vinit, der Gröÿe des Objektmodells (Fahrzeuge) sowie der Denition des Einfahrtsbereiches und der zu überwachenden Fahr- spuren initialisiert (tracker_init()), weiters wird das Objektmaskengewicht ωm (sie- he Kapitel 4.2.4) und ein Gröÿenfaktor scale angegeben. Der Gröÿenfaktor beschreibt die Gröÿenanpassung der verwendeten Suchfenster für die dreistuge Trackingkaskade. Der minimale Kantenfaktor η gibt an, wie viele Kanten in Relation zum Umfang der Bounding-Box in einem Blob vorhanden sein müssen, damit dieser Blob als Kernblob eines neuen Objektes verwendet wird. Das Statistikmodul wird mit dem für die Auswertung zu verwendenden Aktualisierungs- intervall initialisiert (statistic_init()). 5.3.2 Hauptschleife Die Hauptschleife wird pro Frame einmal ausgeführt. 81 5.3. GESAMTSYSTEMINTEGRATION Abbildung 5.2: Diagramm Funktionensaufrufe im Gesamtsystem 82 KAPITEL 5. SYSTEM Die Arbeit des Hintergrundmoduls wird in zwei Teile aufgeteilt. Zuerst wird die Funk- tion background_compute() aufgerufen, welche die globale Helligkeitsänderung und die Hintergrundstabilität ermittelt sowie die Vordergrundmaske erstellt. Anschlieÿend wird das Trackingmodul mit der Funktion tracker_compute() aufgerufen. In einem Vorverarbeitungsschritt wird die Objektposition im aktuellen Frame durch die alte Position und Geschwindigkeit geschätzt. Das Suchfenster des ersten Trackingdurch- laufes wird um den Gröÿenfaktor scale gröÿer gewählt, als die Gröÿe der geschätzten Bounding-Box des Objektes für das aktuelle Frame. Der erste Trackingdurchlauf wird mit der zuvor geschätzten Objektposition und der vergröÿerten Suchmaske gestartet. Das Suchfenster des zweiten Durchlaufes entspricht der Gröÿe der geschätzten Bounding-Box und wird beim dritten Durchlauf um den Gröÿenfaktor verkleinert. Diese Gröÿenkaskade beruht auf der Annahme, dass die wahre Position eines Objektes, das kleiner als die Gröÿe des verwendeten Suchfensters ist, sich innerhalb der Ergebnis- Bounding-Box des histogrammbasierten Mean-Shift Algorithmus bendet und die Suche im nächsten Schritt mit einem kleineren Fenster verfeinert werden kann. Danach erfolgt die Korrelation mit den Objektdaten (siehe Kapitel 4.2.1). Blobs, die kei- nem bekannten Objekt zugeordnet werden konnten und die Bedingungen zur Erstellung eines neues Objektes erfüllen, erzeugen eine neue Objektinstanz (siehe Kapitel 4.2.3). Abschlieÿend werden die neue Objektposition mittels Funktionen des Geometriemoduls in Weltkoordinaten umgerechnet und die Objekteigenschaften (z.B. Geschwindigkeit, Stabilität, Fahrbahn, etc.) aktualisiert. Anschlieÿend wird die zweite Hauptfunktion des Hintergrundmoduls background_update() ausgeführt, die aufgrund der Vordergrundmaske und den vom Tracker erhaltenen Infor- mationen eine Aktualisierung des Hintergrundmodells (selektiver Approximated Median Algorithmus mit globaler Helligkeitsanpassung) durchführt. Das Statistikmodul wird aufgerufen, um eine Aktualisierung der Statistik entsprechend den aus der Datenbank gelesenen neuen Objektdaten durchzuführen (statistic_update()). 83 5.3. GESAMTSYSTEMINTEGRATION 84 6 Evaluation In diesem Kapitel werden die Evaluation des Prototypen und die Ergebnisse beschrie- ben. Dabei werden zuerst die Detektions- bzw. Trackingqualität der beiden Hauptmodule (Objektinitialisierung sowie Tracker) einzeln ermittelt, anschlieÿend wird das Gesamt- system evaluiert und die Resultate beschrieben. Die darauf folgende Laufzeitevaluation wurde bewusst kurz gehalten, da es sich um eine unoptimierte Prototypimplementierung handelt und somit nur prinzipielle Laufzeitabschätzungen möglich sind. 6.1 Evaluationsmethode Als Basis der Evaluierung werden die Bounding-Boxen der gefundenen Objekte verwen- det. Dabei wird die Übereinstimmung mit den Bounding-Boxen aller Ground Truth Ob- jekte des jeweiligen Frames mittels einer distanzähnlichen1 Funktion d (Gleichung 6.1) bestimmt. Dabei ist die Funktion d unabhängig von der absoluten Gröÿe der Bounding- Boxen und kann Werte von 0 bis 1 annehmen. Area(BBt): Fläche der Bounding-Box des getrackten Objekts BBt Area(BBg): Fläche der Bounding-Box des Ground Truth Objekts BBg d(BBt, BBg) = 1− 2 Area(BBt ∩BBg) Area(BBt) + Area(BBg) (6.1) Als Ground Truth Daten werden die Bounding-Box, eine eindeutige Objektnummer (ID) und der Typ jedes Objekts verwendet. Die Bounding-Box dient als Positionsangabe und wird zur Qualitätsbestimmung des Trackings verwendet. Die ID wird benötigt, um eine Relation der Objekte zwischen verschiedenen Frames herstellen zu können. Für die synthetisch generierten Testsequenzen wurden die Ground Truth Daten gemein- sam mit den Bildern erzeugt, wobei jedes Frame genau ein Objekt vom Typ unknown 1d(t, g) ist nicht transitiv, daher auch keine Distanz im mathematischem Sinn. 85 6.1. EVALUATIONSMETHODE enthält. Die Ground Truth Daten der realen Testsequenzen wurden im Rahmen des Video-Based Image Analysis for Tunnel Safety (VITUS) Projekts [32] manuell erstellt, wobei nicht nur Fahrzeuge, sondern auch Schatten, Reexionen und andere Unterschiede zum Hintergrundmodell annotiert und entsprechend klassiziert wurden. Bei der Eva- luierung werden allerdings nur für die Anwendung interessante Objekte berücksichtigt (Objekte vom Typ CAR für reale Testsequenzen bzw. unknown für generierte Testse- quenzen). Die verwendeten Testsequenzen werden in Kapitel 6.2 genauer beschrieben. Eine True Positive (TP ) Klassizierung liegt vor, wenn das Ergebnis-Event eines Algo- rithmus dem erwarteten Ergebnis-Event der Ground Truth entspricht. Für die Detektion bzw. das Tracking bedeutet das, dass die Abweichungen der Bounding-Box eines getrack- ten Objekts t von den entsprechenden Daten des Ground Truth Objektes g innerhalb der Detektionstoleranz θ liegen ( d(t, g) < θ ). Existiert ein Ground Truth Event und kein entsprechendes Ergebnis-Event des Algo- rithmus, so wird dies als False Negative (FN) bezeichnet. Bei der Detektion bzw. dem Tracking liegt dieser Fall vor, wenn einem Ground Truth Objekt kein detektiertes bzw. getracktes Objekt zugeordnet werden kann. Das heiÿt, es existiert keine Bounding-Box, die innerhalb der zulässigen Abweichungen einer Ground Truth Bounding-Box liegt. Existiert zu einem Ergebnis-Event des Algorithmus kein entsprechendes Ground Truth Event, so handelt es sich um ein False Positive (FP ) Event. Neben diesen in der Statistik gebräuchlichen Kennzahlen wird zur Bewertung der Tracking- daten eine weitere Gröÿe deniert: False Match (FM). Ein False Match tritt auf, wenn die getrackte Bounding-Box eines Objekts der Ground Truth Bounding-Box eines an- deren Objekts (mit unterschiedlicher ID) zugeordnet wird. Dies ist der Fall, wenn der Tracker von einem Objekt auf ein anderes umgesprungen ist. Die beschriebenen Fehlerkategorien sind in Abbildung 6.1 illustriert. (a) true positive (TP ) Bounding-Box (b) false positive (FP ) und false negative (FN) Fehler (c) false match (FM) Feh- ler Abbildung 6.1: statistische Fehlerkategorien Mit diesen Fehlerkategorien können folgende Funktionen zur Evaluierung eines Detekti- ons bzw. Tracking Algorithmus deniert werden (vgl. [33]): 86 KAPITEL 6. EVALUATION • Tracker Detection Rate: TRDR = TPt (TPt+FNt) • False Alarm Rate: FAR = FPt (TPt+FPt) • Track Fragmentation: TF = Anzahl der Trajektorien eines getrackten Objekts, die einer Ground Truth Trajektorie entsprechen TPt, FNt und FPt stehen dabei für die Gesamtzahl (total) der true positive, false ne- gative bzw. false positive Bewertungen einer Sequenz. Die Tracker Detection Rate (TRDR) gibt an, wie gut die Objekte bei vorgegebener Toleranz getrackt werden. Die False Alarm Rate (FAR) ist ein Maÿ dafür, wie viele Trackingergebnisse keinem Ground Truth Objekt entsprechen. Werden vom Tracker keine Objekte erstellt oder verworfen, und werden alle Objekte über die gesamte Sequenz getrackt, so gilt: TRDR + FAR = 1 Die Track Fragmentation (TF ) gibt an, wie oft ein getracktes Objekte neu initialisiert wurde, das heiÿt wie viele Tracking-IDs einem Ground Truth Objekt gegeben wurden. Die Track Fragmentation ist pro Ground Truth Objekt deniert. Um eine ähnliche Maÿ- zahl für eine gesamte Sequenz mit mehreren Objekten zu erhalten, wird die normalized Track Fragmentation (nTF ) verwendet. nTF = TF Anzahl der Ground Truth Objekte (6.2) Im Idealfall ist nTF gleich 1 (bzw. für jedes Objekt: TF gleich 1), das heiÿt zu jedem Ground Truth Objekt existiert genau ein getracktes Objekt mit durchgehend passender Trajektorie. Die False Match Rate (FMR) wird, ähnlich wie die TRDR, als Verhältnis zur Gesamt- zahl der Ground Truth Objekte (TPt + FNt) deniert: • False Match Rate: FMR = FMt (TPt+FNt) FMt stehen dabei für die Gesamtzahl der False Match Bewertungen einer Sequenz. Die Ergebnisse der Messungen (Objektnummer, Bounding-Box und Type der getrack- ten Objekte) werden gespeichert und automatisch mit den Ground Truth Daten vergli- chen. 87 6.2. TESTSEQUENZEN 6.2 Testsequenzen Die Implementierung des Algorithmus wurde sowohl mittels synthetisch erzeugter Se- quenzen als auch mittels realer Videos evaluiert. Eine Übersicht der Testsequenzen be- ndet sich in Tabelle 6.1. Sequenzname Abb. Frames Objekte Kurzbeschreibung noise_box 6.2(a) 500 1 blaues Quadrat mit konstanter Gröÿe bewegt sich auf gemustertem Hintergrund zoom_box 6.2(b) 500 1 blaues Quadrat bewegt sich auf weiÿem Hintergrund und verändert dabei seine Gröÿe noise_circle 6.2(c) 500 1 mehrfärbige Zielscheibe bewegt sich auf gemustertem Hintergrund k131-1_3_2 6.3 500 1 PKW in geradem Tunnelabschnitt verliert Ladegut (Plabutsch Kame- ra 131, in Fahrtrichtung) k131-1_5_3 6.4 500 7 Fahrzeugkolonne in geradem Tun- nelabschnitt (Plabutsch Kamera 131, in Fahrtrichtung) Altmannsdorf_08 6.5 900 40 mehrere Gruppen von PKWs, Mo- torrädern sowie ein Autobus (A23, gegen Fahrtrichtung) Altmannsdorf_09 6.6 400 10 nebeneinander fahrende PKWs (A23, in Fahrtrichtung) Altmannsdorf_10 6.7 350 4 langgezogene Gruppe von PKWs (A23, in Fahrtrichtung) Tabelle 6.1: Beschreibung der Testsequenzen In den synthetischen Testsequenzen (noise_box und noise_circle) wurden einfache geo- metrische Figuren (Quadrat bzw. Kreis) verwendet, die mit einer nicht monochromen Textur versehen wurden. Dabei bewegt sich das Objekt mit konstanter Gröÿe zuerst ho- rizontal von links nach rechts und wieder zurück, danach ist die Bewegung zufällig. Für jede Objektklasse wurde eine Sequenz mit einem zufälligem Hintergrundmuster erzeugt. Zusätzlich wurde eine Testsequenz (zoom_box ) zur Evaluation der Gröÿenadaption des Algorithmus erstellt. Dabei wird ein Quadrat an xer Position zuerst verkleinert und wieder vergröÿert, anschlieÿend ist die Änderung der Position und Gröÿe zufällig. Ab- bildung 6.2 zeigt Beispielbilder der synthetischen Testsequenzen. 88 KAPITEL 6. EVALUATION Als reale Testsequenzen wurden annotierte Videosequenzen von fest installierten Kame- ras im Plabutsch Tunnel verwendet, sowie von einer mobilen Kamera, mit der Aufnah- men von der A23 (Altmannsdorfer Ast) gemacht wurden. Bei den Aufnahmen aus dem Plabutsch Tunnel handelt es sich um nachgestellte Szenen, die im Dezember 2004 erstellt wurden. Sequenz k131-1_3_2 zeigt einen geraden Tun- nelabschnitt mit Pannenbucht auf der rechten Seite, die Kamera blickt in Fahrtrichtung. Ein PKW fährt auf der rechten Spur und verliert Ladegut (ein Müllsack, zwei Kartons) aus der Heckklappe (siehe Abbildung 6.3). Es wird nur der PKW getrackt. Sequenz k131- 1_5_3 stammt von der selben Kamera und zeigt eine Szene, in der mehrere PKWs mit geringem Abstand (ca. 2 bis 3-fache Fahrzeuglänge) auf der rechten Spur fahren (siehe Abbildung 6.4). Die Videos vom Altmannsdorfer Ast zeigen typischen Nachmittagsverkehr mit mittlerer Verkehrsdichte. Dabei ist zu beobachten, dass es immer wieder kurze Zeiten ohne Fahr- zeuge gibt, gefolgt von einer kleinen Gruppe von 23 Autos. Sequenz Altmannsdorf_408 zeigt einen geraden Autobahnabschnitt in dem Fahrzeuge von zwei Zufahrten auf insge- samt drei Fahrspuren zusammen kommen. Die Kamera blickt mittig auf die Fahrbahn, gegen die Fahrtrichtung. Dies ist die längste Testsequenz und zeigt 40 Fahrzeuge, wo- von 3 Motorräder sind, 1 Autobus und 36 PKWs. Die Sequenzen Altmannsdorf_409 und Altmannsdorf_410 zeigen jeweils den selben zweispurigen Autobahnabschnitt, wo- bei die Kamera in Fahrtrichtung blickt. In Video Altmannsdorf_409 fahren mehrfach zwei PKWs nebeneinander bzw. überholen einander. In der Sequenz Altmannsdorf_410 ist eine langgestreckte Gruppe (über die halbe Videosequenz) von 6 PKWs zu sehen, anschlieÿend bendet sich kein Fahrzeug mehr auf der Fahrbahn. Diese Sequenz dient als Testsequenz für False Positive Events. 89 6.2. TESTSEQUENZEN (a) Sequenz: noise_box (b) Sequenz: zoom_box (c) Sequenz: noise_circle Abbildung 6.2: Beispielbilder der generierten Testsequenzen (a) Start der Sequenz (b) Mitte der Sequenz (c) Ende der Sequenz Abbildung 6.3: Beispielbilder der Testsequenz: k131-1_3_2 (a) Start der Sequenz (b) Mitte der Sequenz (c) Ende der Sequenz Abbildung 6.4: Beispielbilder der Testsequenz: k131-1_5_3 90 KAPITEL 6. EVALUATION (a) Start der Sequenz (b) Mitte der Sequenz (c) Ende der Sequenz Abbildung 6.5: Beispielbilder der Testsequenz: Altmannsdorf_08 (a) Start der Sequenz (b) Mitte der Sequenz (c) Ende der Sequenz Abbildung 6.6: Beispielbilder der Testsequenz: Altmannsdorf_09 (a) Start der Sequenz (b) Mitte der Sequenz (c) Ende der Sequenz Abbildung 6.7: Beispielbilder der Testsequenz: Altmannsdorf_10 91 6.3. RESULTATE DER OBJEKTINITIALISIERUNG 6.3 Resultate der Objektinitialisierung Bevor Objekte (Fahrzeuge) getrackt werden können, muss zuerst festgestellt werden, wo sich noch nicht getrackte Objekte benden, und eine neue Objektinstanz angelegt werden. In diesem Kapitel wird die Objektinitialisierung der Prototypimplementierung evaluiert. Die Bounding-Boxen der Blobs der Vordergrundmaske liefern neue Objektkan- didaten (siehe Kapitel 4.2.3). Die Bounding-Boxen der neuen Objekte werden mit den Ground Truth Bounding-Boxen der Fahrzeuge des jeweiligen Frames verglichen. Zuerst wird die Tracker Detection Rate (TRDR) bzw. False Alarm Rate (FAR) für die Testsequenz Altmannsdorf_08 in Abhängigkeit vom Vordergrundschwellwert (γ) ermit- telt. Anschlieÿend werden die TRDR und FAR über alle Testsequenzen ermittelt und als Funktion über die Detektionstoleranz θ dargestellt. Der Vordergrundschwellwert γ ist der Schwellwert der Segmentierung der (durch die globale Standardabweichung normierten) Maske des Hintergrundmodells. Wie die Dia- gramme 6.8(a) 6.9(a) zeigen, gibt es zwischen γ = 0, 4 und γ = 0, 5 einen Sprung der TRDR und FAR, zwischen γ = 0, 5 und γ = 1, 3 gibt es keine wesentliche Veränderung der Werte, ab γ > 1, 3 fällt die TRDR leicht ein und die FAR steigt geringfügig an, wie in den Diagrammen 6.8(b) und 6.9(b) bei gröÿerer Skalierung zu sehen ist. Auf- grund dieser Ergebnisse wird der Vordergrundschwellwert γ für die weitere Evaluation auf γ = 1, 3 gesetzt. TRDR - 0,100 0,200 0,300 0,400 0,500 0,600 0,700 0,800 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0 1,1 1,2 1,3 1,4 1,5 Vordergrundschwellwert [Standardabweichung] TR D R 5% 10% 15% 20% 25% 30% 35% 40% 45% 50% 55% 60% 65% 70% 75% 80% 85% 90% 95% (a) Vordergrundschwellwert γ = 0,1 . . . 1,5 TRDR - 0,100 0,200 0,300 0,400 0,500 0,600 0,700 0,800 0,2 0,4 0,6 0,8 1,0 1,2 1,4 1,6 1,8 2,0 2,2 2,4 2,6 2,8 3,0 3,2 3,4 3,6 3,8 4,0 Vordergrundschwellwert [Standardabweichung] TR D R 5% 10% 15% 20% 25% 30% 35% 40% 45% 50% 55% 60% 65% 70% 75% 80% 85% 90% 95% (b) Vordergrundschwellwert γ = 0,2 . . . 4,0 Abbildung 6.8: Tracker Detection Rate (TRDR) der Objektinitialisierung in Abhän- gigkeit vom Vordergrundschwellwert γ (als Vielfaches der Standardabweichung) der Testsequenz: Altmannsdorf_08 Die Objektinitialisierung (und somit das Hintergrundmodell) wurde mit verschiedenen 92 KAPITEL 6. EVALUATION FAR - 0,100 0,200 0,300 0,400 0,500 0,600 0,700 0,800 0,900 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0 1,1 1,2 1,3 1,4 1,5 Vordergrundschwellwert [Standardabweichung] FA R 5% 10% 15% 20% 25% 30% 35% 40% 45% 50% 55% 60% 65% 70% 75% 80% 85% 90% 95% (a) Vordergrundschwellwert γ = 0,1 . . . 1,5 FAR - 0,200 0,400 0,600 0,800 1,000 1,200 0,2 0,4 0,6 0,8 1,0 1,2 1,4 1,6 1,8 2,0 2,2 2,4 2,6 2,8 3,0 3,2 3,4 3,6 3,8 4,0 Vordergrundschwellwert [Standardabweichung] FA R 5% 10% 15% 20% 25% 30% 35% 40% 45% 50% 55% 60% 65% 70% 75% 80% 85% 90% 95% (b) Vordergrundschwellwert γ = 0,2 . . . 4,0 Abbildung 6.9: False Alarm Rate (FAR) der Objektinitialisierung in Abhängigkeit vom Vordergrundschwellwert γ (als Vielfaches der Standardabweichung) der Testsequenz: Altmannsdorf_08 Farbmodellen getestet. Dabei wurde die Objektinitialisierung zuerst auf drei Testse- quenzen evaluiert, um interessante Farbräume auswählen zu können, die anschlieÿend mit allen Testsequenzen evaluiert werden. Um eine möglichst gute Abdeckung der Testse- quenzen zu erzielen, wurden je eine Tunnelsequenz (k131-1_3_2 ), eine Freilandsequenz (Altmannsdorf_08 ) und eine synthetisch erzeugten Sequenz (noise_circle) ausgewählt. Als Farbräume wurden der RGB, HSV und YCrCb Farbraum sowie die HS, HV , SV , H, S, V , Y und CrCb Teilfarbräume verwendet. Die Ergebnisse der synthetisch erzeugten Sequenz sind bei allen vollen, 3-dimensionalen Farbräumen und auch bei den Teilfarbräume sehr gut, lediglich der SV Teilraum und die 1-dimensionalen Teilräume schneiden hier etwas schlechter ab und erreichen die optimale TRDR erst bei einer Detektionstoleranz θ gröÿer als 10%. Insgesamt liefert die synthe- tisch Sequenz keine Präferenz einzelner Farbräume, daher werden nur die Diagramme der beiden realen Sequenzen abgebildet und näher analysiert. Die Ergebnisse der Freiland- und Tunnelsequenz sind in Diagrammen (Abbildung 6.10) dargestellt, dabei werden alle Teilfarbräume mit dem jeweiligen vollen Farbraum in einem Diagramm zusammengefasst. In der linken Spalte benden sich alle Diagramme der Freilandsequenz (Altmannsdorf_08 ), in der rechten Spalte die der Tunnelsequenz (k131- 1_3_2 ). Die Ergebnisse der einzelnen Farbmodelle fallen dabei höchst unterschiedlich aus, doch obwohl die absoluten Zahlen zwischen den beiden Sequenzen stark variieren, ist die relative Ordnung der (Teil-)Farbräume sehr ähnlich. 93 6.3. RESULTATE DER OBJEKTINITIALISIERUNG Sequenz: Altmannsdorf_08 Sequenz: k131_1_3_2 TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R Altmannsdorf_08 RGB (a) RGB TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R k131-1_3_2 RGB (b) RGB TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R Altmannsdorf_08 HSV Altmannsdorf_08 HS Altmannsdorf_08 HV Altmannsdorf_08 SV Altmannsdorf_08 V Altmannsdorf_08 H Altmannsdorf_08 S (c) HSV TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R k131-1_3_2 HSV k131-1_3_2 HS k131-1_3_2 HV k131-1_3_2 SV k131-1_3_2 V k131-1_3_2 H k131-1_3_2 S (d) HSV TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R Altmannsdorf_08 YCrCb Altmannsdorf_08 Y Altmannsdorf_08 CrCb (e) YCrCb TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R k131-1_3_2 YCrCb k131-1_3_2 Y k131-1_3_2 CrCb (f) YCrCb Abbildung 6.10: Tracker Detection Rate (TRDR) der Objektinitialisierung unterschied- licher Farbmodelle 94 KAPITEL 6. EVALUATION Das RGB Farbmodell liefert für beide Sequenzen gute Ergebnisse, für die Freilandse- quenz zählt es sogar zu den besten der getesteten Farbmodelle. Im HSV Farbraum sind die HSV , HS und HV Farbmodelle sehr ähnlich, die Kurven überlagern sich sogar teilweise, die Gesamtergebnisse liegen aber im Mittelfeld. Da auch die Ergebnisse des reinen H Kanals als schlecht zu bewerten sind, kann angenommen werden, dass die Ergebnisse der HSV , HS & HV Gruppe durch Fehler im H Kanal verschlechtert werden. Dies wird auch durch die Kurven der S und V Kanäle untermau- ert, die nahe an, manchmal sogar über der HSV Kurve liegen. Eine Erklärung für den destruktiven Einuss des Farbtonkanals (H) ist die allgemein niedrige Farbsättigung der Fahrzeugfarben und die damit verbundene Verstärkung von kleinen Schwankungen des Farbtons im H Kanal. Das beste Ergebnis dieses Farbraums liefert der SV Teilraum bzw. der V Kanal alleine (siehe Abbildung 6.10(c) und 6.10(d)). Die reinen Farbkanäle CrCb des Y CrCb Farbraums liefern die schlechtesten Ergeb- nisse des gesamten Testreihe, können aber in Kombination mit dem Helligkeitskanal Y CrCb die Ergebnisse gegenüber dem reinen Helligkeitskanal Y noch verbessern. In der Freilandsequenz zählt das Y CrCb Farbmodell zu den drei besten Modellen, bei der Tunnelsequenz ist es aber im hinteren Mittelfeld einzureihen. Aufgrund dieser Untersuchung werden folgende Farbmodelle mit allen Testsequenzen nochmals evaluiert: RGB, Y CrCb, SV , Y , V . Dabei wurden die drei Farbräume RGB, Y CrCb und SV aufgrund der guten Ergeb- nisse der vorigen Untersuchung ausgewählt. Die beiden einkanaligen Modelle Y und V wurden ausgewählt, um in Hinblick auf eine DSP Implementierung auch einfache und ressourcenschonende Methoden zu evaluieren. Abbildungen 6.11 und 6.12 zeigen die TRDR-Diagramme der Objektinitialisierung der fünf ausgewählten Farbmodelle über alle synthetischen bzw. realen Testsequenzen. Da- bei sind die Ergebnisse aller Farbräume bzw. Teilfarbräume einer Sequenz in einem Diagramm zusammengefasst. Die TRDR für die mehrdimensionalen Farbmodelle (RGB, Y CrCb und SV ) erreicht für alle synthetischen Sequenzen (noise_box, noise_circle und zoom_box ) bei einer De- tektionstoleranz θ ≥ 10% das Optimum (siehe Abbildung 6.11). In anderen Worten: Die Überdeckung der Ground Truth Bounding-Box mit der zur Objektinitialisierung verwendeten Bounding-Box beträgt in allen Frames mindestens 90% der Bounding-Box Fläche. Wird nur ein Helligkeitskanal (Y oder V ) verwendet, sinkt die TRDR, gerade bei ge- ringen Detektionstoleranzen, deutlich ab. In Diagram 6.11(c) ist dies besonders deutlich zu erkennen, auÿerdem tritt hier noch ein systematischer Fehler im V Farbmodell auf, da sich die Dunkelstufe des Rechteckes (blauer hell-dunkel Farbverlauf) in bestimmten 95 6.3. RESULTATE DER OBJEKTINITIALISIERUNG TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R noise_box RGB noise_box YCrCb noise_box SV noise_box Y noise_box V (a) noise_box TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R noise_circle RGB noise_circle YCrCb noise_circle SV noise_circle Y noise_circle V (b) noise_circle TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R zoom_box RGB zoom_box YCrCb zoom_box SV zoom_box Y zoom_box V (c) zoom_box Abbildung 6.11: Tracker Detection Rate (TRDR) der Objektinitialisierung der fünf aus- gewählten Farbmodelle für die synthetischen Testsequenzen 96 KAPITEL 6. EVALUATION TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R k131-1_3_2 RGB k131-1_3_2 YCrCb k131-1_3_2 SV k131-1_3_2 Y k131-1_3_2 V (a) k131-1_3_2 TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R k131-1_5_3 RGB k131-1_5_3 YCrCb k131-1_5_3 SV k131-1_5_3 Y k131-1_5_3 V (b) k131-1_5_3 TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R Altmannsdorf_08 RGB Altmannsdorf_08 YCrCb Altmannsdorf_08 SV Altmannsdorf_08 Y Altmannsdorf_08 V (c) Altmannsdorf_08 TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R Altmannsdorf_09 RGB Altmannsdorf_09 YCrCb Altmannsdorf_09 SV Altmannsdorf_09 Y Altmannsdorf_09 V (d) Altmannsdorf_09 TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R Altmannsdorf_10 RGB Altmannsdorf_10 YCrCb Altmannsdorf_10 SV Altmannsdorf_10 Y Altmannsdorf_10 V (e) Altmannsdorf_10 Abbildung 6.12: Tracker Detection Rate (TRDR) der Objektinitialisierung der fünf aus- gewählten Farbmodelle für die realen Testsequenzen 97 6.3. RESULTATE DER OBJEKTINITIALISIERUNG Bereichen nicht ausreichend vom Hintergrund unterscheidet. Die TRDR Diagramme der Tunnelsequenzen (k131-1_3_2 und k131-1_5_3 ) unter- scheiden sich deutlich von denen der Freilandautobahn (Altmannsdorf_08, Altmanns- dorf_09 und Altmannsdorf_10 ). Während die TRDR der Tunnelsequenzen erst bei einer Detektionstoleranz θ > 60% ein lokales Maximum zu erreichen beginnt, steigt die TRDR bei den Freilandsequenzen steiler und bei einer geringeren Detektionstoleranz zu einem Maximum an. Bei den Tunnelsequenzen liefert das 2-dimensionale SV und das 1-dimensionale V Farb- modell gute Resultate im Vergleich zu den restlichen evaluierten Farbmodellen. Auÿer- dem ist zu beobachten, dass die Dunkelstufe V (als Maximum der RGB Farben) deutlich bessere TRDR Ergebnisse liefert als der Grauwertkanal Y (gewichtetes Mittel der RGB Farben), obwohl beide ein Maÿ für die Helligkeit eines Pixels darstellen (siehe Abbildung 6.12(a) und 6.12(b)). Die TRDR Kurven der einzelnen Farbmodelle bei den syntheti- schen und den Freilandsequenzen liegen zu dicht nebeneinander, um hier eine eindeutige Beobachtung treen zu können. Zwei grundlegende Probleme sind bei den Tunnelsequenzen identizierbar, die die schlech- te TRDR der Objektinitialisierung erklären. Einerseits treten Schatten und Spiege- lungen der Scheinwerfer in der Nähe der Fahrzeuge auf, die zu einer Verfälschung der Bounding-Box führen, dies ist besonders bei der k131-1_3_2 Sequenz zu beobachten. Im TRDR Diagramm (Abbildung 6.12(a)) zeigt sich dies durch einen verspäteten (θ um 50%), dann aber steilen Anstieg der TRDR zu einem hohen Maximum. Andererseits verschmelzen bei Kolonnenverkehr mehrere Fahrzeuge zu einer groÿen Bounding-Box (Sequenz: k131-_5_3 ). Die konstante TRDR bedeutet, dass der Fehler zwischen der detektierten Bounding- Box und der entsprechenden Ground Truth Bounding-Box der Detektionstoleranz θ am Knickpunkt der TRDR Kurve entspricht. Erreicht die Kurve dabei nicht den optimalen Wert von TRDR = 1, so bedeutet dies, dass einige Ground Truth Objekte in einzelnen Frames gar nicht erkannt wurden. Dies betrit insbesondere Objekte, die gerade in die Region of Interest (ROI) ein- bzw. ausfahren, da nur Objekte gezählt werden, deren Basispunkt (bzw. Blobmittelpunkt bei Ground Truth Objekten) in der ROI liegt. Liegt der Basispunkt eines Objektes schon auÿerhalb, der Blobmittelpunkt des korrespondie- renden Ground Truth Objektes allerdings noch in der ROI, so wird das Objekt als FN klassiziert und dadurch die TRDR verringert. 98 KAPITEL 6. EVALUATION 6.4 Resultate des Mean-Shift Trackings Dieses Kapitel beschreibt die Resultate der Evaluation des Trackers. Dabei wird der Tracker mit den Ground Truth Daten der Objekte initialisiert. Kann ein Objekt vom Tracker nicht mehr weiter verfolgt werden, wird im nächsten Frame ein neues Objekt mittels der Ground Truth Daten erzeugt. Jedes Mal wenn ein Objekt neu initialisiert wird, wird die Track Fragmentation TF um eins erhöht. Da jedes Ground Truth Objekt somit mindestens ein Mal initialisiert wird, ist die optimale normalized Track Fragmen- tation nTF = 1 (siehe Gleichung 6.2). Die tatsächliche normalized Track Fragmentation nTF der Testsequenzen ist in Tabelle 6.2 zusammengefasst. In der darauf folgenden Tabelle 6.3 ist die False Match Rate FMR der Sequenzen bei einer Detektionstoleranz θ = 50% dargestellt. normalized Track Fragmentation Sequenzname RGB Y CrCb SV Y V noise_box 1,00 1,00 1,00 1,00 1,00 zoom_box 16,00 10,00 16,00 12,00 2,00 noise_circle 1,00 1,00 1,00 1,00 1,00 k131-1_3_2 2,00 2,00 2,00 2,00 3,00 k131-1_5_3 1,29 1,86 1,14 1,86 1,71 Altmannsdorf_08 1,00 1,08 1,03 1,03 1,05 Altmannsdorf_09 1,00 1,00 1,00 1,00 1,00 Altmannsdorf_10 1,00 1,00 1,00 1,00 1,00 Tabelle 6.2: normalized Track Fragmentation des Mean-Shift Trackers False Match Rate Sequenzname RGB Y CrCb SV Y V noise_box 0,00 0,00 0,00 0,00 0,00 zoom_box 0,00 0,00 0,00 0,00 0,00 noise_circle 0,00 0,00 0,00 0,00 0,00 k131-1_3_2 0,00 0,00 0,00 0,00 0,00 k131-1_5_3 0,00 0,05 0,00 0,00 0,01 Altmannsdorf_08 0,00 0,00 0,00 0,00 0,01 Altmannsdorf_09 0,00 0,00 0,00 0,00 0,00 Altmannsdorf_10 0,00 0,00 0,00 0,00 0,00 Tabelle 6.3: False Match Rate FMR des Mean-Shift Trackers (Detektionstoleranz θ = 50%) Die Tracker Detection Rate TRDR wurde mit den selben fünf Farbmodellen evaluiert, 99 6.4. RESULTATE DES MEAN-SHIFT TRACKINGS wie auch die Objektinitialisierung (siehe Abbildung 6.13 und 6.14). Die Analyse der Tracker Detection Rate (TRDR) zeigt, dass der Tracking Algorithmus bei Objekten mit konstanter Gröÿe gute Ergebnisse liefert. Die Diagramme 6.13(a) und 6.13(b) stellen die TRDR in Abhängigkeit von der Detektionstoleranz θ für verschiedene Farbmodelle der noise_box bzw. noise_circle Sequenz dar. Für rechteckige Objekte mit konstanter Gröÿe (noise_box ) wird die optimale TRDR = 1, auÿer für das V -Farbmodell, bei einer Detektionstoleranz θ ≥ 15% erreicht. Da im Dunkelkanal V sowohl die Objektfarbe als auch der Hintergrund einen sehr ähnlichen Wert (nahe dem Maximum von 255) aufweisen, konnte das Quadrat im V -Farbmodell nicht korrekt getrackt werden, was deutlich im TRDR Diagramm zu sehen ist. Der Kreis (noise_circle) wurde ab einer Detektionstoleranz θ ≥ 30% mit einer TRDR = 1 erkannt, lediglich das Y -Farbmodell weist etliche Ausreiÿer auf, so dass sich die TRDR nur langsam an das Optimum annähert. Die allgemein höhere Detektionstoleranz der Kreissequenz lässt sich dadurch erklären, dass ein Versatz der Bounding-Box bei nicht rechteckigen Objekten weniger echte Objektpixel betrit, als bei rechteckigen Objekten. Dadurch ist auch der korrigierende Mean-Shift Vektor entsprechend schwächer und die resultierende Bounding-Box ungenauer als bei rechteckigen Objekten. Die normalized Track Fragmentation nTF der Sequenzen mit konstanter Objektgröÿe ist für alle Farbmodelle gleich 1. Das heiÿt der Tracker hat das Objekt niemals verloren, selbst bei False Positive Fällen (wenn die Überdeckung der getrackten Bounding-Box mit der Ground Truth Bounding-Box kleiner als die Detektionstoleranz θ ist) konnte das Objekt später wieder gefunden werden, ohne dass es neu initialisiert werden musste. Bei der synthetischen Testsequenz mit variabler Objektgröÿe zoom_box steigt die nTF auf über 10 fragmentierte Tracks, lediglich beim V Farbmodell existieren weniger frag- mentierte Tracks, aber hier konnte das Objekt so gut wie gar nicht getrackt werden. Dies und die schlechte TRDR dieser Sequenz (Diagramm 6.13(c)) zeigen ein prinzipi- elles Problem des Mean-Shift Trackers auf: Das Verfolgen von Objekten mit variabler Objektgröÿe. Im Idealfall wäre eine TRDR ähnlich der TRDR des Quadrates mit konstanter Gröÿe (Diagramm 6.13(c)) zu erwarten. Stattdessen ist ein relativ acher Anstieg der TRDR mit steigender Detektionstoleranz θ zu beobachten, der teilweise auf die stufenweise Grö- ÿenanpassung der Trackers zurückzuführen ist. Der Mean-Shift Tracker wird mit drei Gröÿenstufen aufgerufen: gröÿer, gleich groÿ und kleiner als die letzte bekannte Gröÿe. Anschlieÿend wird von den drei neuen Objektkandidaten mit unterschiedlicher Position und Gröÿe jener ausgewählt, der die beste Übereinstimmung mit dem Objekttempla- te hat (gröÿter Bhattacharyya Koezient, siehe Algorithmus 1 Schritt 4). Auÿerdem ergibt sich aufgrund der monochromen Struktur des Quadrates das Problem, dass die Übereinstimmungen der drei unterschiedlich groÿen Objektkandidaten mit dem Templa- 100 KAPITEL 6. EVALUATION TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R noise_box RGB noise_box YCrCb noise_box SV noise_box Y noise_box V (a) noise_box TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R noise_circle RGB noise_circle YCrCb noise_circle SV noise_circle Y noise_circle V (b) noise_circle TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R zoom_box RGB zoom_box YCrCb zoom_box SV zoom_box Y zoom_box V (c) zoom_box Abbildung 6.13: Tracker Detection Rate (TRDR) des Trackers für die synthetischen Testsequenzen 101 6.4. RESULTATE DES MEAN-SHIFT TRACKINGS TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R k131-1_3_2 RGB k131-1_3_2 YCrCb k131-1_3_2 SV k131-1_3_2 Y k131-1_3_2 V (a) k131-1_3_2 TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R k131-1_5_3 RGB k131-1_5_3 YCrCb k131-1_5_3 SV k131-1_5_3 Y k131-1_5_3 V (b) k131-1_5_3 TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R Altmannsdorf_08 RGB Altmannsdorf_08 YCrCb Altmannsdorf_08 SV Altmannsdorf_08 Y Altmannsdorf_08 V (c) Altmannsdorf_08 TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R Altmannsdorf_09 RGB Altmannsdorf_09 YCrCb Altmannsdorf_09 SV Altmannsdorf_09 Y Altmannsdorf_09 V (d) Altmannsdorf_09 TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R Altmannsdorf_10 RGB Altmannsdorf_10 YCrCb Altmannsdorf_10 SV Altmannsdorf_10 Y Altmannsdorf_10 V (e) Altmannsdorf_10 Abbildung 6.14: Tracker Detection Rate (TRDR) des Trackers für die realen Testse- quenzen 102 KAPITEL 6. EVALUATION te gleichwertig sind, und somit keine eindeutige Gröÿenzuordnung gegeben werden kann, sobald das Objekt gröÿer als der gröÿte Objektkandidat ist. In dieser Situation bleibt der Tracker hängen und passt die Objektgröÿe nicht mehr korrekt an, verfolgt aber sehr wohl die richtige Objektposition. Als Resümee der Evaluation des Trackers über die synthetischen Testsequenzen kann festgestellt werden, dass das RGB und SV Farbmodell konstant gute Ergebnisse für diese Sequenzen liefern. Die beiden einkanaligen Teilräume wie Y und insbesondere V sind für synthetische Sequenzen mit einfärbigen und unstrukturierten Objekten nur bedingt geeignet. Da in den synthetischen Sequenzen nur ein Objekt vorhanden ist, kann es auch zu keinem False Match kommen, daher ist FMR ≡ 0. Die drei Freilandsequenzen zeigen alle ein ähnliches TRDR Diagramm 6.14(c) bis 6.14(e). Die Kurven der unterschiedlichen Farbmodelle liegen alle dicht neben- bzw. überein- ander so dass kein eindeutiger Favorit zu erkennen ist. Bis auf die Altmannsdorf_08 Sequenz ist der Anstieg der TRDR Kurven sehr steil und erreicht bald das Maximum, was bedeutet, dass die Fehler alle getrackten Bounding-Box ähnlich groÿ sind. Der Hell- Dunkel Übergang (beim Schatten der Brücke) ist eine Erklärung für die acheren TRDR Kurven der Altmannsdorf_08 Sequenz, da sich an diesem Übergang die Farbverteilung des Objektes ändert und sich somit eine kontinuierliche Änderung zum Objekttemplate ergibt. Die beiden Sequenzen Altmannsdorf_09 und Altmannsdorf_10 haben eine optimale nTF = 1 und FMR = 0 (bei θ = 50%). Bei der Altmannsdorf_08 Testsequenz mussten je nach Farbmodell 0 bis 3 Objekte neu initialisiert werden, was zu einer nTF von 0,00 (RGB) bis zu 1,08 (YCrCb) führt (siehe Tabelle 6.2). Auÿerdem wurden beim V Farb- modell in vier Frames getrackte Objekte zu falschen Ground Truth Objekten zugeordnet, was zu einer FMR = 0, 01 führt. Bei den Tunnelsequenzen liefern die helligkeitsbasierten Farbmodelle Y und V im Ver- gleich zu den anderen Farbmodellen die besten Resultate (siehe Diagramme 6.14(a) und 6.14(b)). Dies ist wohl darauf zurückzuführen, dass es gerade im Tunnel durch die Schein- werfer und Deckenleuchten oft zu Farbverschiebungen kommt. Dies betrit zwar auch die Helligkeit, wirkt sich hier durch die Quantisierung der Verteilung aber oensichtlich nicht so stark aus wie bei Farbmodellen mit Farbinformation. Auÿerdem mussten die Objekte bei den Tunnelsequenzen öfter neuinitialisiert werden als bei den Freilandsequenzen, was sich in einer höheren normalized Track Fragmentation nTF niederschlägt. In der k131-1_3_2 Testsequenz bendet sich nur ein Fahrzeug, somit ist die FMR gleich Null. Auch bei der Fahrzeugkolonne in Sequenz k131-1_5_3 kommt es nur zu wenigen falschen Objektzuordnungen, was sich in eine FMR von 0,05 für das Y CrCb Farbmodell bzw. 0,01 für das V Modell niederschlägt. Bei den übrigen Farbmodellen 103 6.5. EVALUATION DES GESAMTSYSTEMS dieser Sequenz wurde bei einer Detektionstoleranz von θ = 50% keine einzige falsche Objektzuordnung gemessen. Im Gegensatz zu den synthetischen Sequenzen liefern die einkanaligen Farbmodelle (Y und V ) bei den realen Testsequenzen gute Ergebnisse, teilweise sogar bessere als die vollen Farbräume. Wie schon bei den Tunnelsequenzen beschrieben, könnte dies auf Farbveränderungen durch unterschiedliche Beleuchtung bzw. Schatten zurückzuführen sein, da gerade bei dunklen Farben und Farben mit wenig Sättigung kaum relevante Information in den Farbkanälen enthalten ist und in solchen Fällen die zusätzlichen Farbkanäle das Objektmodell eher stören als robuster machen. Auÿerdem enthalten reale Objekte mehr Struktur als die künstlichen Objekte der Testsequenzen. Dadurch kann auch bei weniger Kanälen ein markanteres Objekttemplate erstellt werden. Für statistische Aussagen über den Verkehrsuss ist die genaue Übereinstimmung der getrackten Objekte mit den Ground Truth Objekten nicht so relevant wie sie Stabilität des Tracks selbst. Hier zeigen die Tests mit Sequenzen in denen mehrere Fahrzeuge ge- trackt wurden (k131-1_5_3, Altmannsdorf_08, Altmannsdorf_09, Altmannsdorf_10 ) gute Resultate. Die normalized Track Fragmentation nTF ist für den SV Farbmodell kleiner gleich 1,14 und über alle Farbmodelle kleiner gleich 1,86. Auch die FMR ist mit 0 für das SV Farbmodell bzw. kleiner gleich 0,05 über alle Farbmodelle sehr klein. 6.5 Evaluation des Gesamtsystems In diesem Kapitel wird die Evaluation des Gesamtsystems beschrieben. Zuerst wird die Systeminitialisierung mit den verwendeten Parameter erläutert. Anschlieÿend werden die Trackingresultate des Gesamtsystems diskutiert. 6.5.1 Systeminitialisierung Alle Objekte werden automatisch initialisiert (Fahrzeugdetektion, Kapitel 3.3 und Kapi- tel 4.2.3) und in den weiteren Frames getrackt. Das Trackingmodul des Gesamtsystems verwendet die Ergebnisse der Vordergrundmaskensegmentierung des Hintergrundmo- dells, das Objektmodell und den Mean-Shift Tracker um die neue Position der Objekten zu ermitteln (Kapitel 4.2). Das Hintergrundmodell wird dabei mit folgenden Parametern initialisiert: 104 KAPITEL 6. EVALUATION • Standardabweichung: σ = (4.0, 3.5, 8.0), • Updatewert der Standardabweichung: ασ = 0.1 • Approximated Median Updatewert: κ = 1 Auÿerdem wird in der Prototypimplementierung ein Schwellwert für die minimale Fläche zur Objektinitialisierung von 64 Pixel verwendet. Das entspricht dem Doppelten der minimalen Blobgröÿe (32 Pixel) des Trackingmoduls. Das Trackingmodul besitzt folgende Parameter und Initialwerte: • 3D-Objektquader: synthetischen Sequenzen: jeweilige Objektgröÿe reale Sequenzen: Breite = 2m, Länge = 5m, Höhe = 1,5m • Durchschnittsgeschwindigkeit: vinit = 80 km/h • Gröÿenfaktor: scale = 10 % ⇒ Mean-Shift Suchfenstergröÿe: 110%, 100%, 90% der geschätzten Objektgröÿe • minimale Kanten bezogen auf den Umfang der Bounding-Box : η = 75% • Objektmaskengewicht: ωm = 0.33 Es wird angenommen, dass der Umriss von Fahrzeugen deutlich als Kanten im Kanten- dierenzbild zu erkennen ist, wohingegen Schatten bzw. durch Scheinwerfer beleuchtete Bereiche keine scharfen Kanten aufweisen. Daher muss die Anzahl der Kantendierenz- pixel im Vergleich zum Umriss der Bounding-Box gröÿer als ein einstellbarer Kanten- schwellwert η sein. Unterschreitet der aus Tracking und Objektmaske resultierende Kondenzwert einen Schwellwert (33%), wird für die weiteren Berechnungen der Schätzwert der Bounding- Box verwendet. Ansonsten wird die Objekt Bounding-Box als gewichteter Mittelwert mit Hilfe des Objektmaskengewichts wm berechnet. BBs = BBm · wm + BBt · (1− wm) (6.3) mit: BBs: Bounding-Box des Gesamtsystems als Vektor: (xlinks, yoben, xrechts, yunten) 105 6.5. EVALUATION DES GESAMTSYSTEMS BBm: Bounding-Box des Objektmodells aus Blobs der Vordergrundmaske (siehe Ka- pitel 4.2) BBt: Bounding-Box des Mean-Shift Trackers wm: Objektmaskengewicht Abschlieÿend werden alle Objekte, deren Kondenzwert einen Minimalwert (20% in der Prototypimplementierung) unterschreitet, aus der Liste der aktiven Objekte gestrichen und nicht mehr weiter getrackt. 6.5.2 Resultate Das Gesamtsystem verwendet die Szenengeometrie, um perspektivische Gröÿenveränder- ungen zu berücksichtigen. Bei den synthetischen Testsequenzen wird eine Vogelperspek- tive auf eine waagrechte Ebene angenommen, das heiÿt die Objekte unterliegen, unab- hängig von der Position im Bild, keiner perspektivischen Verzerrung. Die Gröÿenverän- derung des Quadrates in der zoom_box Testsequenz ist dabei rein zufällig und ist somit weder durch die Szenengeometrie noch das Objektmodell beschreibbar. Wie bei der Evaluation des Mean-Shift Trackers wird auch bei der Evaluation des Ge- samtsystems die Track Fragmentation TF jedesmal um eins erhöht wenn ein neues Ob- jekt initialisiert wird. Die daraus berechnete normalized Track Fragmentation nTF ist in Tabelle 6.4 aufgelistet. Die False Match Rate FMR der Prototypimplementierung ist in Tabelle 6.5 zusammen- gefasst. Um die Gesamtqualität des Prototypen zu beschreiben wurde die Tracker Detection normalized Track Fragmentation Sequenzname RGB Y CrCb SV Y V noise_box 1,00 1,00 1,00 11,00 7,00 zoom_box 4,00 4,00 7,00 4,00 12,00 noise_circle 1,00 1,00 1,00 2,00 1,00 k131-1_3_2 1,00 1,00 1,00 1,00 1,00 k131-1_5_3 0,71 1,42 1,14 1,29 1,14 Altmannsdorf_08 1,03 1,03 1,05 1,18 1,33 Altmannsdorf_09 1,00 1,00 1,00 1,00 1,40 Altmannsdorf_10 1,00 1,00 1,00 1,25 1,25 Tabelle 6.4: normalized Track Fragmentation des Gesamtsystems 106 KAPITEL 6. EVALUATION False Match Rate Sequenzname RGB Y CrCb SV Y V noise_box 0,00 0,00 0,00 0,00 0,00 zoom_box 0,00 0,00 0,00 0,00 0,00 noise_circle 0,00 0,00 0,00 0,00 0,00 k131-1_3_2 0,00 0,00 0,00 0,00 0,00 k131-1_5_3 0,16 0,21 0,07 0,15 0,04 Altmannsdorf_08 0,00 0,00 0,00 0,00 0,00 Altmannsdorf_09 0,00 0,00 0,00 0,00 0,01 Altmannsdorf_10 0,00 0,00 0,00 0,00 0,00 Tabelle 6.5: False Match Rate FMR des Gesamtsystems (Detektionstoleranz θ = 50%) Rate TRDR und das Verhältnis Tracker Detection Rate TRDR zu False Alarm Rate FAR (Receiver Operating Characteristic ROC) für die fünf Farbmodelle (RGB, Y CrCb, SV , Y und V ) berechnet und in den Abbildungen 6.15 und 6.16 bzw. 6.17 und 6.18 dargestellt. Beim Vergleich der TRDR des Gesamtsystems (Abbildung 6.15) mit der TRDR des Mean-Shift Trackers (Abbildung 6.13) ist bei den synthetischen Sequenzen eine ten- denzielle Verbesserung fest zu stellen. Dies ist darauf zurück zu führen, dass das Ge- samtsystem sowohl die Ergebnisse des Mean-Shift Tracker als auch einen Abgleich mit den Blobs der Vordergrundmaske zur Ermittlung der Position eines Objekts verwendet. Durch diese Kombination von zwei unterschiedlichen Methoden kann die Gesamtqualität des Trackings verbessert werden. Insbesondere die TDRD des V Farbmodells, die bei der Mean-Shift Tracker Evaluation sehr schlechte Werte lieferte, wurde dadurch deutlich besser. In der Receiver Operating Characteristic ROC (siehe Diagramm Abbildung 6.17) wird für die Sequenzen mit konstanter Objektgröÿe (noise_box bzw. noise_circle) sogar der optimale Punkt: TRDR = 1, FAR = 0 erreicht, wobei eine Häufung der Messpunkte in dem Bereich um TRDR = 1 zu beobachten ist. Die allgemeine Form der ROC Kurve entlang der zweiten Hauptdiagonale ergibt sich dadurch, dass ein gefundenes Objekt je nach verwendeter Detektionstoleranz θ entweder als TP oder FP gewertet wird und sich der ROC Messpunkt bei unterschiedlichem θ entlang der Diagonale verschiebt. Eine Abweichung von der Diagonale in das rechte obere Dreieck bedeutet, dass weitere Fehl- detektionen aufgetreten sind, zusätzlich zu den FP Detektionen die durch eine geringere Detektionstoleranz θ entstehen. Eine Abweichung der Kurve unter die Hauptdiagonale bedeutet, dass die TRDR bei gleichbleibender FAR sinkt, also einige Ground Truth Objekte gar nicht erkannt werden. 107 6.5. EVALUATION DES GESAMTSYSTEMS TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R noise_box RGB noise_box YCrCb noise_box SV noise_box Y noise_box V (a) noise_box TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R noise_circle RGB noise_circle YCrCb noise_circle SV noise_circle Y noise_circle V (b) noise_circle TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R zoom_box RGB zoom_box YCrCb zoom_box SV zoom_box Y zoom_box V (c) zoom_box Abbildung 6.15: Tracker Detection Rate (TRDR) des Gesamtsystems für die syntheti- schen Testsequenzen 108 KAPITEL 6. EVALUATION TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R k131-1_3_2 RGB k131-1_3_2 YCrCb k131-1_3_2 SV k131-1_3_2 Y k131-1_3_2 V (a) k131-1_3_2 TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R k131-1_5_3 RGB k131-1_5_3 YCrCb k131-1_5_3 SV k131-1_5_3 Y k131-1_5_3 V (b) k131-1_5_3 TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R Altmannsdorf_08 RGB Altmannsdorf_08 YCrCb Altmannsdorf_08 SV Altmannsdorf_08 Y Altmannsdorf_08 V (c) Altmannsdorf_08 TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R Altmannsdorf_09 RGB Altmannsdorf_09 YCrCb Altmannsdorf_09 SV Altmannsdorf_09 Y Altmannsdorf_09 V (d) Altmannsdorf_09 TRDR 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 Detektionstoleranz [%] TR D R Altmannsdorf_10 RGB Altmannsdorf_10 YCrCb Altmannsdorf_10 SV Altmannsdorf_10 Y Altmannsdorf_10 V (e) Altmannsdorf_10 Abbildung 6.16: Tracker Detection Rate (TRDR) des Gesamtsystems für die realen Testsequenzen 109 6.5. EVALUATION DES GESAMTSYSTEMS Receiver Operating Characteristic 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 FAR TR D R noise_box RGB noise_box YCrCb noise_box SV noise_box Y noise_box V (a) noise_box Receiver Operating Characteristic 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 FAR TR D R noise_circle RGB noise_circle YCrCb noise_circle SV noise_circle Y noise_circle V (b) noise_circle Receiver Operating Characteristic 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 FAR TR D R zoom_box RGB zoom_box YCrCb zoom_box SV zoom_box Y zoom_box V (c) zoom_box Abbildung 6.17: Receiver Operating Characteristic (ROC) des Gesamtsystems für die synthetischen Testsequenzen 110 KAPITEL 6. EVALUATION Receiver Operating Characteristic 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 FAR TR D R k131-1_3_2 RGB k131-1_3_2 YCrCb k131-1_3_2 SV k131-1_3_2 Y k131-1_3_2 V (a) k131-1_3_2 Receiver Operating Characteristic 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 FAR TR D R k131-1_5_3 RGB k131-1_5_3 YCrCb k131-1_5_3 SV k131-1_5_3 Y k131-1_5_3 V (b) k131-1_5_3 Receiver Operating Characteristic 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 FAR TR D R Altmannsdorf_08 RGB Altmannsdorf_08 YCrCb Altmannsdorf_08 SV Altmannsdorf_08 Y Altmannsdorf_08 V (c) Altmannsdorf_08 Receiver Operating Characteristic 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 FAR TR D R Altmannsdorf_09 RGB Altmannsdorf_09 YCrCb Altmannsdorf_09 SV Altmannsdorf_09 Y Altmannsdorf_09 V (d) Altmannsdorf_09 Receiver Operating Characteristic 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 FAR TR D R Altmannsdorf_10 RGB Altmannsdorf_10 YCrCb Altmannsdorf_10 SV Altmannsdorf_10 Y Altmannsdorf_10 V (e) Altmannsdorf_10 Abbildung 6.18: Receiver Operating Characteristic (ROC) des Gesamtsystems für die realen Testsequenzen 111 6.5. EVALUATION DES GESAMTSYSTEMS Bei den mehrdimensionalen Farbmodellen (RGB, Y Cr, Cb und SV ) wurde das Objekt bei Sequenzen mit konstanter Objektgröÿe genau ein Mal initialisiert (nTF = 1). Bei den beiden eindimensionalen Teilfarbräumen (Y und V ) konnte das Objekt aufgrund des indierenten Objekttemplates nicht kontinuierlich verfolgt werden und musste daher öfter neu initialisiert werden, was zu einer erhöhten normalized Track Fragmentation nTF führt (siehe Tabelle 6.4). Die Sequenz mit variabler Objektgröÿe (zoom_box ) konnte, im Vergleich zu den Se- quenzen mit konstanter Objektgröÿe, deutlich schlechter getrackt werden. Wie schon im vorigen Kapitel 6.4 beschrieben wurde, kann der Mean-Shift Tracker nur bedingt auf Gröÿenänderungen von Objekten reagieren. Auÿerdem sind die Gröÿenveränderungen in dieser Sequenz nicht durch die Perspektive verursacht und können somit nicht durch die Szenengeometrie und das Objektmodell vorhergesagt werden. Einzig der Abgleich mit den Blobs der Vordergrundmaske kann hier eine Verbesserung der Trackingqualität bringen, was auch ein Vergleich der TRDR des Gesamtsystems (Abbildung 6.15(c)) mit der des Mean-Shift Trackers (Abbildung 6.13(c)) bestätigt. Über alle synthetischen Testsequenzen hinweg haben die Y CrCb und SV Farbmodell die besten Resultate geliefert. Die beiden eindimensionalen Farbräume (Y und V ) haben zwar eine gute TRDR (die Kurven liegen nahe oder über denen der anderen Farbräume) zeigen im ROC Diagramm 6.17 aber eine deutlich höhere FAR. Wie schon bei den synthetischen Testsequenzen konnte die TRDR des Gesamtsystems bei Freilandsequenzen (Altmannsdorf_08, Altmannsdorf_09 und Altmannsdorf_10 ) ge- genüber der TRDR des Mean-Shift Trackers deutlich verbessert werden. So liegt die TRDR aller Freilandsequenzen und aller Farbmodelle für die Detektionstoleranz θ = 50% bei 0,97 oder darüber. Durch das kombinierte Verfahren konnte insbesondere die TRDR der Altmannsdorf_08 verbessert werden, da der Mean-Shift Tracker beim Wechsel der Objekte vom beschat- teten in den hellen Bereich durch die Blobs der Vordergrundmaske unterstützt wird. Die nTF ist für die mehrdimensionalen Farbmodelle (RGB, Y CrCb und SV ) kleiner gleich 1,05. Bei den eindimensionalen Farbmodellen (Y und V ) mussten die Objekte öf- ter neu initialisiert werden, was zu einer höheren nTF von bis zu 1,40 führt. Auÿerdem weisen diese zwei Farbmodelle eine höhere FAR in der ROC (Abbildung 6.18(c) bis 6.18(e)) auf. Bis auf den V Farbraum wurden bei den Freilandsequenzen alle Objekte dem korrekten Ground Truth Objekt zugeordnet. Nur beim V Farbraum der Altmannsdorf_09 Sequenz wurde ein Objekt in zwei Frames einem falschen Ground Truth Objekt zugeordnet, was zu einer FMR = 0, 01 führt (siehe Tabelle 6.5). Die Ergebnisse der Tunnelsequenzen konnten im Gesamtsystem nur teilweise verbessert werden. So konnte bei der k131-1_3_2 Sequenz und dem SV Farbmodell eine optimale 112 KAPITEL 6. EVALUATION TRDR = 1 bei einer Detektionstoleranz θ ≥ 65% erreicht werden, zuvor lag sie aber unter denen des Mean-Shift Trackers. Auch die Ergebnisse der k131-1_5_3 Sequenz liegen unter denen des Mean-Shift Trackers. Dies ist aber durch die unterschiedliche Objektinitialisierung erklärbar. Bei der Evaluation des Mean-Shift Trackers wurden die Objekte mit den Ground Truth Daten initialisiert, wohingegen die Objektinitialisierung beim Gesamtsystem auf Blobs der Vordergrundmaske beruht. Dadurch werden die Ob- jekttemplates schon mit Fehlern (Reexionen der Scheinwerfer, Schatten, etc.) gegenüber den Ground Truth Objekten initialisiert. Dies ist insbesondere bei der Testsequenz k131- 1_5_3 ein Problem, da die Blobs der einzelnen Fahrzeuge in der Kolonne miteinander verschmelzen. Um auch unter diesen Bedingungen eine gute Objektinitialisierung vornehmen zu kön- nen, kann diese nicht alleine auf einem einfachen Hintergrundmodell basieren, sondern es müssen erweiterte Detektions- und Klassikationsalgorithmen verwendet werden. Bei der Sequenz k131-1_5_3 ist zu beobachten, dass die nTF bei dem RGB Farbmodell kleiner als eins ist (siehe Tabelle 6.4). Dies bedeutet, dass, durch die Verschmelzung von Blobs der Fahrzeugkolonne, nicht alle Fahrzeuge als Einzelfahrzeuge erkannt wurden. Auÿerdem weist diese Sequenz beim Y CrCb Farbmodell die höchste FMR von 0,21 auf. Dies bedeutet, dass im Durchschnitt die Trajektorie jedes fünften Fahrzeuges auf ein anderes Fahrzeug übergesprungen ist. Bei den realen Testsequenzen konnte das zweidimensionale SV die besten Resultate liefern. Die TRDR beim V Farbmodell war zwar bei den meisten Sequenzen ähnlich bzw. besser als die des SV Modells, allerdings haben die eindimensionalen Farbmodelle auch eine höhere FAR, wie die ROC Diagramme zeigen. Einzig bei der Testsequenz mit Kolonnenverkehr im Tunnel k131-1_5_3 wäre das V Farbmodell besser. Die restlichen Farbmodelle lieferten bei den Tunnelsequenzen deutlich schlechtere TRDR Resultate, bei den Freilandsequenzen liegen alle TRDR Kurven knapp nebeneinander, sodass hier kein eindeutiger Favorit zu erkennen ist. 6.6 Laufzeit Evaluation Neben der Trackingqualität wurde auch die Laufzeit der Implementierung evaluiert, um eine Gröÿenordnung der Laufzeit des Prototypen zu ermitteln, da das endgültige System in Echtzeit laufen soll. Es wurde zwar bei der Auswahl der Algorithmen Rücksicht auf die besonderen Gege- benheiten von Embedded Systems (beschränkte Ressourcen, emulierte Gleitkommaarith- metik, etc.) genommen, die Implementierung selbst wurde aber als Prototyp und proof of concept erstellt und ist in keiner Weise optimiert, weder auf Algorithmenebene noch 113 6.6. LAUFZEIT EVALUATION plattformspezisch. Daher sind die Messwerte als maximale, obere Grenzwerte zu sehen und nicht als vergleichbare Laufzeit eines optimierten Tracking Systems. Wie die Beispieloptimierungen in TMS320C6000 Programmer's Guide zeigen [34](Seite 5-57, Tabelle 5-10 und 5-11), ist auf einem DSP alleine durch plattformspezische Op- timierung eine Beschleunigung um den Faktor 25 möglich. Es ist klar, dass dieser Wert nicht als genereller Optimierungsfaktor zu verstehen ist, er ist aber ein Beispiel für die Gröÿenordnung der Laufzeitverbesserungen durch DSP spezische Optimierung. Die Laufzeitmessung wurde mit dem C6416 Device Functional Simulator des TI - Code Composer Studio 3.0 durchgeführt, der einen TMS320C6416 DSP mit 1MHz simuliert. Da der Device Functional Simulator selbst sehr viel Rechenzeit benötigt, ist diese Si- mulation sehr zeitaufwendig und wurde darum auf die erste Sekunde jeder Sequenz beschränkt. Die Ergebnisse der einzelnen Sequenzen sind in Tabelle 6.6 aufgelistet. Sequenzname Objekte durchschnittliche in ROI Laufzeit [ms/Frame] Altmannsdorf_08 2 183,8 Altmannsdorf_09 2 247,3 Altmannsdorf_10 0 155,8 k131-1_3_2 0 209,2 k131-1_5_3 0 208,8 noise_box 1 240,5 noise_circle 1 254,5 zoom_box 1 544,2 Tabelle 6.6: Laufzeitmessung der Testsequenzen am DSP Simulator Die benötigte Rechenzeit steigt mit der Anzahl und der Gröÿe der Objekte. Auÿerdem hat eine schlechte Positionsschätzung eine Erhöhung der Iterationsschritte des Mean- Shift Trackers, und somit eine Erhöhung der Laufzeit zur Folge. Die deutlichsten Aus- wirkungen auf die Laufzeit hat aber die absolute Gröÿe des Objektes und laufende Grö- ÿenanpassung der Objekt Bounding-Box, wie bei der Sequenz zoom_box zu beobachten ist. Die restlichen Laufzeiten liegen in der Gröÿenordnung von 4 Bilder pro Sekunde (fps). Somit könnte man schon mit einer Optimierung um den Faktor drei eine Framerate von 12 fps erreichen, was für ein Tracking zur statistischen Auswertung vollkommen aus- reichend ist. Zum Thema Echtzeitfähigkeit des Systems sind noch weitere Punkte zu beachten, insbesondere die schlechte Skalierung bei groÿen Objekten. Hier ist je nach Anwendungsfall zu entscheiden, ob ein best eort Ansatz ausreichend ist, oder ob harte Echtzeit benötigt wird. 114 KAPITEL 6. EVALUATION 6.7 Zusammenfassung Die Initialisierung der Objekte des Gesamtsystems erfolgt durch die Blobs der Vorder- grundmaske und nicht, wie bei der Evaluation des Mean-Shift Trackers, durch Ground Truth Daten. Wie die Resultate zeigen, kann die Kombination aus Mean-Shift Tracker, Berücksichtigung des Hintergrunds und Abgleich mit dem Objektmodell, wie es im Ge- samtsystem verwendet wird, trotz teilweise ungenauer Objektinitialisierung eine gute Tracker Detection Rate erzielen. Dies ist insbesondere in jenen Situationen von Vorteil, in denen Objektblobs mehrerer Fahrzeuge miteinander verschmelzen und ein Tracking alleine durch ein Hintergrundmodell nicht mehr möglich ist. Da der Prototyp auf eine DSP Implementierung ausgelegt ist, wurden bewusst ein- fache Algorithmen verwendet. Wie das Tracker Detection Rate Diagram (Abbildung 6.15 und 6.16) und das normalized Track Fragmentation Diagram (Tabelle 6.4) zeigen, kann auch mit den beschränkten Ressourcen eines Embedded Systems und entsprechen- den Algorithmen ein Trackingsystem entwickelt werden, das Trackingdaten zur weiteren statistischen Auswertung liefert. Insgesamt konnten dabei mit dem zweidimensionales Saturation-Value SV Farbmodell die besten Resultate erziehlt werden. Die Laufzeit der Prototypimplementierung wurde auf dem C6416 Device Functional Simulator gemessen. Da die Prototypimplementierung nicht optimiert ist (weder auf Al- gorithmusebene noch plattformspezisch), sind die Ergebnisse dieser Messung nur als maximale Grenzen zu verstehen. Die Laufzeitsimulation hat allerdings gezeigt, dass ein echtzeitfähiges Fahrzeugverfol- gungssystem auf Embedded Systems mit einfachen Bildverarbeitungsalgorithmen mög- lich ist. 115 6.7. ZUSAMMENFASSUNG 116 7 Conclusio In dieser Arbeit wurde ein Bildverarbeitungssystem zur visuellen Fahrzeugverfolgung mittels Embedded Systems beschrieben und als Prototyp implementiert. Dabei sind die wichtigsten Module in je einem Kapitel beschrieben worden. Auÿerdem wurden diese Module in der Prototypimplementierung zu einem Gesamtsystem integriert und als sol- ches erfolgreich evaluiert. Trotz der bildverarbeitungstechnisch gesehen einfachen Algorithmen konnte ein Sys- tem implementiert werden, das auf Videos von Freilandautobahnen eine ausreichende Trackingqualität für statistische Zwecke (Anzahl der Fahrzeuge, Spurwechsel, etc.) er- reichte. Bei schwierigen Bildern aus Tunneln (überlappende Fahrzeuge, Reexionen der Scheinwerfer, Schatten und stark inhomogene Beleuchtung durch Deckenlampen) fällt die Trackingqualität deutlich ab, und es sind andere Methoden (insbesondere der Ob- jektinitialisierung) notwendig, um eine ausreichende Qualität der Trackingresultate ge- währleisten zu können. Die Arbeit gliederte sich in drei Phasen: 1. Algorithmenauswahl Zuerst wurden in Frage kommende Algorithmen analysiert und evaluiert. Dabei wurde schon bei der Auswahl der Kandidaten auf die Laufzeit und den Ressourcen- bedarf der Algorithmen geachtet. So sind einfache, modular aufgebaute und linear skalierende Algorithmen komplexen, datenintensiven bzw. rekursiven Algorithmen vorzuziehen. Auÿerdem muss berücksichtigt werden, welche Ressourcen der ge- wählte DSP zur Verfügung stellt und welche weiteren Einschränkungen durch die Hardware bzw. Anwendung entstehen. Dazu gehören unter anderem: • unterstützte Zahlentypen / Arithmetiken (Gleitkommaarithmetik in Hard- ware, durch Softwarebibliothek oder nur Fixkommaarithmetik) • vorhandener interner / externer Speicher • Laufzeitvorgaben 117 Um diesen Anforderungen Rechnung zu tragen, wurde für den Prototyp ein Appro- ximated Median Hintergrundmodell anstelle eines Median Modells gewählt (siehe Kapitel 2.2) und der Mean-Shift Algorithmus für einen DSP Einsatz angepasst (siehe Kapitel 4.1). 2. Implementierung in einer Hochsprache Nachdem die grundlegenden Algorithmen ausgewählt worden sind, wurden sie in C auf einem PC-System implementiert. Um DSP spezische Funktionen und Ei- genheiten am PC nachbilden zu können wurde dazu das DSP-via-PC Framework entwickelt (siehe Kapitel 5.2). Durch dieses Framework war es möglich, die gesam- te Entwicklung am PC (ohne DSP Hardware) durchführen zu können, dabei alle Vorteile der Entwicklungssysteme für normale PC Software nutzen zu können und trotzdem quellcodekompatibel zu dem DSP Zielsystem zu bleiben. Des weiteren mussten zusätzliche Module zur Transformation zwischen Bildko- ordinaten und Weltkoordinaten sowie zur Verwaltung der anfallenden Blob- und Objektdaten erstellt werden. 3. Evaluierung In der dritten Phase wurden das entwickelte Gesamtsystem und die einzelnen Al- gorithmen evaluiert. Dabei erfolgte die Evaluierung für unterschiedliche Farbräume bzw. Teilfarbräume. Einerseits sollte damit die Frage beantwortet werden, welchen Einuss unterschiedliche Farbmodelle auf die Trackingqualität des Gesamtsystems haben. Andererseits hängt die Laufzeit direkt von der Anzahl der Dimensionen der verwendeten Farbräume ab. Wenn mit einem Teilfarbraum ähnliche oder so- gar bessere Ergebnisse als mit den vollen Farbmodellen erzielt werden können, so kann dadurch die gesamte Laufzeit verringert werden. Die Evaluierung in Kapitel 6 hat gezeigt, dass mit zwei einfachen Methoden (ei- nem Approximated Median Hintergrundmodell und einem Mean-Shift Tracker) Fahrzeuge auf Freilandautobahnen unter Tageslichtbedingungen getrackt werden können. Bei schwierigen Sequenzen wie Kolonnenverkehr in einem Tunnelabschnitt sind diese Methoden nicht ausreichend. Hier müssten bessere Methoden der Objek- tinitialisierung verwendet werden, um korrekte Objekttemplates für das Tracking erstellen zu können. Von den getesteten Farbmodellen lieferte das SV Modell über alle Testsequenzen die besten Ergebnisse. Eine Alternative dazu wäre das eindimensionale V Modell, das allerdings eine höhere False Alarm Rate FAR aufweist. Es hat sich gezeigt, dass es sehr schwierig ist, einen Algorithmus direkt in eine DSP Implementierung umzusetzen. Durch die besonderen Rahmenbedingungen (z.B. Gleit- kommaarithmetik in Fixkommaarithmetik umsetzen, spezielle DSP Bibliotheken, Unter- scheidung zwischen internem und externem Speicher, etc.) steigt die Programmierfeh- lerwahrscheinlichkeit, auÿerdem ist die Fehlersuche (insbesondere in Bildverarbeitungs- 118 KAPITEL 7. CONCLUSIO software) durch fehlende Visualisierungsmöglichkeiten nur bedingt möglich. Daher wurde der Prototyp zuerst auf einem PC erstellt. Allerdings ist dabei schon berücksichtigt wor- den, dass die eigentliche Zielplattform ein Embedded System ist. Idealerweise ist dabei der selbe Quellcode sowohl am PC als auch auf dem DSP lauähig, wie es durch das DSP-via-PC Framework in der Prototypimplementierung dieser Arbeit erreicht wurde. 7.1 Ausblick Um Laufzeitmessungen mit aussagekräftigen Ergebnissen durchführen zu können, muss die Implementierung optimiert werden. Hier kann das DSP-via-PC Framework helfen, einfache Optimierungen auch am PC durchzuführen. Letzten Endes aber müssen sol- che Optimierungen für jede DSP Familie und jedes Embedded System Design indivi- duell durchgeführt werden, da gerade einer der wesendlichsten Optimierungsbereiche, die Speicheroptimierung, direkt auf den vorhandenen internen und externen Speicher abgestimmt werden muss. Durch den modularen Aufbau des Systems ist es relativ einfach, ein einzelnes Modul aus- zutauschen. So könnte zum Beispiel die Objektinitialisierung mittels einer erscheinungs- basierten Objektdetektion, anstelle der hintergrundbasierten Blobmethode des Proto- typen, verwendet werden. Dies würde zu einer Verbesserung der Objekttemplates und somit direkt zu besseren Trackingergebnissen führen. Weiters ist es möglich, das Tracking Modul durch einen anderen Trackingalgorithmus zu ersetzten, um die Ergebnisse mit denen des Mean-Shift Trackers zu vergleichen. Es ist prinzipiell auch möglich, mehrere unterschiedliche Trackingalgorithmen parallel oder je nach Bedarf zu verwenden. Ein Beispiel dafür ist in der Arbeit von Cucchiara und Piccardi [35] beschrieben, wobei je ein Tracker für Tageslicht- und einer für Nacht- aufnahmen verwendet wird. Dazu muss nur die übergeordnete Logik entsprechend erwei- tert werden, um die zusätzlichen Trackingresultate auszuwerten. Zur Zeit werden hierfür nur die Resultate der Vordergrundmaskensegmentierung und des Mean-Shift Trackers verwendet. 119 Literaturverzeichnis [1] Sen-Ching S. Cheung und Chandrika Kamath: Robust techniques for back- ground subtraction in urban trac video. in III; Wong Ping W Delp, Edward J. (Editor): Security, Steganography, and Watermarking of Multimedia Contents VI, Vol. 5308, Seiten: 881892. SPIE, SPIEThe International Society for Optical En- gineering, January 2004. [2] Reinhard Klette, Andreas Koschan und Karsten Schlüns: Computer Vi- sion - Räumliche Information aus digitalen Bildern, Kapitel 2 Bildaufnahme, Seiten: 3986. Vieweg, 1996. [3] Robert Sablatnig: 3D Vision: Maschinelles Sehen in 3D. Institut für Rechner- gestützte Automation, Arbeitsbereich für Mustererkennung und Bildverarbeitung, 3 Ausgabe, 2006. Lecture Notes: 3D Vision VO18.3129, LU183.130. [4] Steven W. Smith: Digital Signal Processing: A Practical Guide for Engineers and Scientists. Newnes, 2003. [5] Steve Blonstein: The TMS320 DSP Algorithm Standard. techn. Report SPRA581C, Texas Instruments, 2002. [6] Philipp Blauensteiner und Martin Kampel: Visual Surveillance of an Air- port's Apron - An Overview of the AVITRACK Project. in W. Burger und J. Scharinger (Editor): Digital Imaging in Media and Education, Proc. of the 28th Workshop of the Austrian Association for Pattern Recognition (OAGM/AA- PR), Vol. 179, Seiten: 213220. Schriftenreihe der OCG, 2004. [7] University of Reading Team, PRIP Team, INRIA Team Mark Borg, Da- vid Thirde, James Ferryman, Florent Fusier, Valery Valentin, Moni- que Thonnat, François Brémond, Josep Aguilera, Philipp Blauenstei- ner, Horst Wildenauer und Martin Kampel: AVITRACK Project: D3.1: Motion Detection. techn. Report, AVITRACK Consortium, September 2004. xvii Literaturverzeichnis [8] Chris Stauffer undW.E.L. Grimson: Adaptive background mixture models for real-time tracking. in IEEE Computer Society Conference on Computer Vision and Pattern Recognition, Vol. 2, Seiten: 246252. IEEE Computer Society, IEEE Computer Society, June 1999. [9] N.J.B. McFarlane und C.P. Schofield: Segmentation and tracking of piglets in images. Machine Vission and Applications, 8(8):187193, 1995. [10] P. Remagnino, A. Baumberg, T. Grove, T. Tan, D. Hogg, K. Baker und A. Worrall: An integrated trac and pedestrian model-based vision system. in Proceedings of the Eighth British Machine Vision Conference, Seiten: 380389, 1997. [11] Ismail Haritaoglu, Davis Harwood und Larry S. David: W4: Real-Time Surveillance of People and Their Activities. IEEE Transaction Pattern Analysis and Machine Intelligence, 22(8):809830, 2000. [12] Anil K. Jain: Fundamentals of Digital Image Processing, Kapitel 8 - Image Filte- ring and Restoration, Seiten: 267341. Prentice-Hall, 1989. [13] Christof Ridder, Olaf Munkelt und Harald Kirchner: Adaptive Back- ground Estimation and Foreground Detection using Kalman-Filtering. in N. Beki- roglu I. Tunay O. Kaynak, M. Özkan (Editor): Conference on recent Advances in Mechatronics, Seiten: 193199. ICRAM'95, August 1995. [14] Greg Welch und Gary Bishop: An Introduction to the Kalman Filter. techn. Report, Department of Computer Science / University of North Carolina, Depart- ment of Computer Science University of North Carolina at Chapel Hill Chapel Hill, NC 27599-3175, 2004. [15] Instituts für Algorithmen und Kognitive Syste- me der Universität Karlsruhe: Image Sequence Server. http://i21www.ira.uka.de/image_sequences/, Nov 2007. [16] Julius Schärf: Funktionen- und Zahlentafeln. R. Oldenbourg Verlag Wien, 14 Ausgabe, 1990. [17] Norbert Brändle: Bildverstehen. Institut für Rechnergestützte Automation, Arbeitsbereich für Mustererkennung und Bildverarbeitung, 2000. Lecture Notes: Bildverstehen. xviii Literaturverzeichnis [18] Joachim Steinwendner, Werner Schneider und Renate Bartl: Digital Image Analysis, Kapitel 12 Image Understanding Methods for Remote Sensing, Seiten: 337357. Springer, 2001. [19] Nobuo Hayashi, Hiroshi Nittaya, Masahiro Kohno und Masahiro Kato: New Approach to and Implementation of an LSI for High-Speed Image Labeling. in International Conference on Power Electronics and Motion Control, Vol. 2, Seiten: 767771, Nov 1992. [20] Wikipedia:Koordinatensystem. http://de.wikipedia.org/wiki/Koordinatensystem, Nov 2007. [21] Anders Heyden: Handbook of Geometric Computing, Kapitel 10 Three- Dimensional Geometric Computer Vision, Seiten: 305347. Springer, 2005. [22] Dieter Koler, Joseph Weber und Jitendra Malik: Robust Multiple Car Tracking With Occlusion Reasoning. techn. Report, Institute of Transportation Studies California Partners for Advanced Transit and Highways (PATH) (University of California, Berkeley), Jan 1994. [23] Weiming Hu, Xuejuan Xiao, Dan Xie, Tieniu Tan und Steve Maybank: Trac accident prediction using 3-D model-based vehicle tracking. IEEE Transac- tions on Vehicular Technology, 53(3):677694, May 2004. [24] Erhard Gramer und Udo Kamps: Grundlagen der Wahrscheinlichkeitsrechnung und Statistik. Springer, 2007. [25] Keinosuke Fukunaga und Larry D. Hostetler: The estimation of the gradi- ent of a density function, with applications in pattern recognition. IEEE Transaction on Information Theory, 21(1):3240, January 1975. [26] Yizong Cheng: Mean Shift, Mode Seeking, and Clustering. IEEE Transaction Pattern Analysis and Machine Intelligence, 17(8):790799, 1995. [27] Dorin Comaniciu, Visvanathan Ramesh und PeterMeer: Real-Time Tracking of Non-Rigid Objects using Mean Shift. in IEEE Computer Vision and Pattern Recognition or CVPR, Vol. 2, Seiten: 142149. IEEE, June 2000. [28] Dorin Comaniciu, Peter Meer und Visvanathan Ramesh: Kernel-Based Object Tracking. IEEE Transaction Pattern Analysis and Machine Intelligence, 25(5):564577, May 2003. xix Literaturverzeichnis [29] Anil K. Jain: Fundamentals of Digital Image Processing, Kapitel 9 -Image Analysis and Computer Vision, Seiten: 342422. Prentice-Hall, 1989. [30] Texas Instruments: TMS320 DSP Algorithm Standard API Reference. techn. Report SPRU360C, Texas Instruments, 2002. [31] Crispan Cowan, Calton Pu, Dave Maier, Jonathan Walpole, Peat Bakke, Steve Beattie, Aaron Grier, Perry Wagle, Qian Zhang und Heather Hinton: StackGuard: Automatic Adaptive Detection and Prevention of Buer-Overow Attacks. in Proceedings of the 7th USENIX Security Symposium, Seiten: 6378, San Antonio, Texas, Jan 1998. [32] Video-Based Image Analysis for Tunnel Safety (VITUS). http://www.smart- systems.at/rd/rd_video_vitus_de.html. [33] James Black, Tim Ellis und Paul Rosin: A Novel Method for Video Tracking Performance Evaluation. in The Joint IEEE International Workshop on Visual Surveillance and Performance Evaluation of Tracking and Surveillance, Seiten: 125 132, Nice, France, October 2003. [34] Texas Instruments: TMS320C6000 Programmer's Guide. techn. Report SPRU198I, Texas Instruments, 2006. [35] R. Cucchiara und M. Piccardi: Vehicle Detection under Day and Night Illu- mination. in International ICSC Symposium on Intelligent Industrial Automation (ISCS-IIA99), Seiten: 789794, Genoa, Italy, 1999. Special Session on Vehicle Trac and Surveillance. xx