PRIP-Preis. Effizientes Object Tracking durch Programmierung von Mehrkernprozessoren und Grafikkarten

Ähnliche Dokumente
General Purpose Computation on GPUs

Grafikkarten-Architektur

RST-Labor WS06/07 GPGPU. General Purpose Computation On Graphics Processing Units. (Grafikkarten-Programmierung) Von: Marc Blunck

Gliederung. Was ist CUDA? CPU GPU/GPGPU CUDA Anwendungsbereiche Wirtschaftlichkeit Beispielvideo

Entwurf eines FPGA-Cores zur Simulationsbeschleunigung zeitkontinuierlicher Modelle im HiL Kontext

OpenCL. OpenCL. Boris Totev, Cornelius Knap

Implementation of a Framework Component for Processing Tasks within Threads on the Application Level

High-Performance Bildverarbeitung (nicht nur) mit JAVA. Prof. Dr.Thomas Netzsch - Hochschule Darmstadt - University of Applied Sciences

Game Engine Architecture and Development. Platform Unabhängiger Code Multi Threading in Game Engines Profiling

Einführung. GPU-Versuch. Andreas Schäfer Friedrich-Alexander-Universität Erlangen-Nürnberg

Multicore Architektur vs. Amdahl`s Gesetz

Implementierung und Evaluierung von Video Feature Tracking auf moderner Grafik Hardware

Kirchstrasse 11 CH Sins Telefon: Fax: info@tinline.ch

World of Warcraft. Mindestvoraussetzungen

OpenCL. Seminar Programmiersprachen im Multicore-Zeitalter Universität Siegen Tim Wiersdörfer

2 Rechnerarchitekturen

Diplomarbeit. Neue Möglichkeiten durch programmierbare Shader. Unter der Leitung von: Prof. Dr.-Ing. Detlef Krömker

Architektur moderner GPUs. W. Sczygiol - M. Lötsch

Matrox Imaging Library MIL die weltweit hochprämierte und industrieerprobte Bildverarbeitungs-Bibliothek

Thema: Hardware-Shader

Paralleles Rechnen. (Architektur verteilter Systeme) von Thomas Offermann Philipp Tommek Dominik Pich

Die Vision Landschaft und was sie mit Moore s Gesetz zu tun hat

Compute Unified Device Architecture CUDA

MITK-OpenCL: Eine Erweiterung für das Medical Imaging Interaction Toolkit

Digitale Bildverarbeitung in BA/MA

Moderne parallele Rechnerarchitekturen

CUDA. Jürgen Pröll. Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg Jürgen Pröll 1

Seminar: Grafikprogrammierung

Anwendungsentwicklung mit dem Windows Phone 7

Programmierbeispiele und Implementierung. Name: Michel Steuwer

EIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217

Kick-Off Paralleles Programmieren

Multimedia/Graphics Libraries & Systems

Konzepte von Betriebssystem-Komponenten. Programmstart & dynamische Bibliotheken SS 05. Wladislaw Eckhardt.

Die Sandy-Bridge Architektur

Proseminar: Virtuelle Präsenz. Vortrag: Steve Rechtenbach

Extrablatt IT. MADE IN GERMANY.

Praxiseinheit: Realisierung einer hardwarebeschleunigten Disparitätenberechnung zur automatischen Auswertung von Stereobildern

Multicore-Architekturen

GPGPU mit NVIDIA CUDA

Seminarvortrag Bildverarbeitung im Projekt FAUST mit dem Schwerpunkt Skelettierung

Standardsoftware für die Industrielle Bildverarbeitung

GPGPU-Architekturen CUDA Programmiermodell Beispielprogramm. Einführung CUDA. Ralf Seidler. Friedrich-Alexander-Universität Erlangen-Nürnberg

technische universität dortmund Lehrstuhl für Hochfrequenztechnik Übertragungssysteme

Betriebssysteme Betriebssysteme und. Netzwerke. Netzwerke Theorie und Praxis

Sensorsimulation in Hardware in the Loop-Anwendungen

High Level-Synthese eines Keypoint-Detection- Algorithmus für FPGAs

RatSLAM. Torben Becker. 24. Mai HAW Hamburg

Superpixels for Skin Segmentation

Komponentenorientierte Software-Entwicklung. Seite 1 / 42

FPGA Beschleuniger. Your Name. Armin Jeyrani Mamegani Your Organization (Line #2)

2. Der ParaNut-Prozessor "Parallel and more than just another CPU core"

Bildsegmentierung mit Level Sets

Seminar Seminarname SS 2003

Assembler - Einleitung

Multicore Herausforderungen an das Software-Engineering. Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück

Sowohl RTX64 als auch RTX bieten harten Echtzeitdeterminismus und symmetrische Multiprocessing- Fähigkeiten (SMP).

Software-Praktikum für! Anfänger und Fortgeschrittene!

Yilmaz, Tolga MatNr: Mesaud, Elias MatNr:

Tag der Umweltmeteorologie Michael Kunz

Digitale Bildverarbeitung

UIKit (Cocoa Touch) Framework für ios Apps. Objective C. Model View Controller Pattern

Seminar Ausgewählte Themen der medizinischen Visualisierung

Analyse der Einsatzmöglichkeiten von Graphikprozessoren in der Optimierung und in Simulationen

Seminar Game Development Game Computer Graphics. Einleitung

Inhalt. Prozessoren. Curriculum Manfred Wilfling. 28. November HTBLA Kaindorf. M. Wilfling (HTBLA Kaindorf) CPUs 28. November / 9

One of the few resources increasing faster than the speed of computer hardware is the amount of data to be processed. Bin Hu

Die Integration zukünftiger In-Car Multimedia Systeme unter Verwendung von Virtualisierung und Multi-Core Plattformen

Android: Property Animation

Programmierung von Multicore-Rechnern

RealTime Linux. Paul Seidel Seminar Prozessteuerung und Robotik WS 08/09 Lehrstuhl BS und Middleware Prof. Polze Hasso-Plattner-Institut Potsdam

Datenflussrechnen mit FPGAs für die biomedizinische Bildverarbeitung

Dynamic Ressource Management

Industrielle Bildverarbeitung mit OpenCV

Vortrag zum Hauptseminar Hardware/Software Co-Design

Erfolg mit Embedded Vision Systemen. Dipl.-Ing. Carsten Strampe Embedded Vision Systeme 1

Integration eines pneumatischen Roboters in die Robotics API

Performant Rendern mit Solidworks Visualize und PNY

SOLISYON GMBH CHRISTIAN WOLF, BENJAMIN WEISSMAN. Optimierung von Abfragen in MS SQL Server DWH-Umgebungen

Staff. Tim Conrad. Zeitplan. Blockseminar: Verteiltes Rechnen und Parallelprogrammierung. Sommer Semester Tim Conrad

ArcGIS 9.0 Highlights oder was gibt s neues von ESRI? Katrin Twiehaus ESRI Niederlassung Hannover

Das Softwaresystem BASEMENT

Viola-Jones Gesichtserkennung mit WebGL

Stereoskopisches 3D Gaming

Bildverarbeitung: Filterung. D. Schlesinger () Bildverarbeitung: Filterung 1 / 17

Technische Möglichkeiten der Zusammenarbeit bei big BIM

OpenCL Implementierung von OpenCV Funktionen

SIMATIC S7-modular Embedded Controller

Java Garbage Collector: Funktionsweise und Optimierung. Mathias Dolag Prof. Dr. Peter Mandl (DOAG 2012, )

Virtualisierung im Echtzeitbereich. Andreas Hollmann FH Landshut EADS Military Air Systems

Modulliste. für den Bachelorstudiengang. Informatik. an der Otto-von-Guericke-Universität Magdeburg Fakultät für Informatik

MARKERLESS AUGMENTED REALITY. Henrik Brauer

White Paper. Embedded Treiberframework. Einführung

High-Speed-Mikroskopie für die automatisierte Qualitätssicherung von Elektronik-Komponenten

Eine Einführung in die Architektur moderner Graphikprozessoren

Marc Simons Proseminar Technische Informatik Institut für Informatik, Betreuer Prof. Dr. Marcel Kyas

Computerorientierte Physik

XEN Performance. Projektpraktikum Informatik. Arne Klein Arne Klein () XEN Performance / 25

Effiziente Java Programmierung

Intelligente Videotechnologien des

Transkript:

Masterarbeit @ PRIP-Preis Effizientes Object Tracking durch Programmierung von Mehrkernprozessoren und Grafikkarten Michael Rauter Pattern Recognition and Image Processing Group Institute of Computer Aided Automation Betreuer: Martin Kampel Kontakt: michael.rauter@chello.at

Motivation und Zielsetzung 1 Performance Optimierung Bessere Tracking-Ergebnisse, dank höherer Videoauflösungen mehr Details, kleinere Objekte können erkannt werden höherer Bildwiederholraten zu trackende Objekte örtlich näher in aufeinanderfolgenden Bildern Mehr Zeit für andere Berechnungsschritte Komplexere Algorithmen möglich Michael Rauter 1 03.12.2007

Motivation und Zielsetzung 2 Object tracking für PAL D1 Video (768 576 3) @ 25 fps Video < 768 576 3 @ 25 fps: CPU Ressourcen werden frei Einsatz von state-of-the-art Algorithmen Echtzeitfähigkeit (gemäß obiger Def.) bei konventioneller serieller CPU Programmierung nicht gegeben (< 3 fps) Argument des Wartens auf bessere Hardware in der Industrie nicht haltbar (Zeitdruck) keine zusätzlichen Kosten (etwa durch DSPs, Spezialhardware) repräsentative Algorithmen (modularisiert austauschbar) Michael Rauter 2 03.12.2007

Methoden und Lösungsansätze 1 Ausgelagerte Algorithmen, Berechnungen auf dem Grafikprozessor (GPU) Multi-Threading für die Ausnutzung mehrerer CPU- Kerne einer Multi-Core CPU Bestmögliche Verwendung beider Prozessoren Auswahl geeigneter Algorithmen für Umsetzung auf der GPU Restliche Algorithmen, weitere Berechnungen auf der CPU Verfolgen des Ansatzes einer ineinander verzahnten Abarbeitungsreihenfolge durch Multi-Threading Michael Rauter 3 03.12.2007

Methoden und Lösungsansätze 2 Warum wurde dieser Ansatz verfolgt? Bisher: Performance-Steigerung eines Bildverarbeitungssystems durch gemeinsame Nutzung von Grafikkarten und Multi-Threading nicht untersucht Bedarf an wissenschaftlicher Abhandlung des Themas Ansatz für einen industriellen Einsatz interessant Brachliegende Ressourcen nutzen (Grafikkarte, CPU-Kerne) Kostenersparnis Absolviertes Praktikum am PRIP zum Thema Bildverarbeitung auf der Grafikkarte als Ausgangsbasis für die Masterarbeit Michael Rauter 4 03.12.2007

Verwendung der Grafikkarte Effiziente Nutzung der Grafikkarte für: Bewegungserkennung + Schatten/Glanzlicht Detektion Post-processing: Morphologische Operationen Pre-processing für den Tracking Algorithmus Momentbild-Berechnung für Integralbild-basierenden Mean Shift Tracker Michael Rauter 5 03.12.2007

Verwendung der CPU CPU wird für alle restlichen Aufgaben verwendet Datenerfassung Object tracking auf den GPU-verarbeiteten Bildern Mean Shift Tracker basierend auf Integralbildern Data association inklusive der Regionsbestimmung Suche neuer Objekte im gesamten Bild (keine Portale) Visualisierung der Ergebnisse Michael Rauter 6 03.12.2007

Bewegungserkennung Algorithmen 1 Hintergrund-Modellierung im IHLS-Farbraum ermöglicht Klassifizierung von Pixel eines neuen Bildes in Vordergrund- oder Hintergrundpixel Schatten- und Glanzlicht-Erkennung und Entfernung Michael Rauter 7 03.12.2007

Object Tracking Algorithmen 2 Mean Shift Tracker basierend auf Integralbildern Mean Shift Iteration: nur 10 arithmetischen Operationen und 12 Array-Zugriffen nötig Integralbild-Berechnung nur einmal pro Bild Connected Components Analysis Algorithmus Regions-Segmentierung und -Labeling Region-Labeling mittels Konturverfolgung lineare Laufzeit Ergebnis ist eine Liste von Regionen + Attribute (id, Position, Breite, Höhe, Pixelanzahl) Michael Rauter 8 03.12.2007

Multi-Threading 1 Implementierung des Multi-Threaded Systems Pipeline model (Fließbandarbeit) festgelegte Verarbeitungskette Thread reicht Rechenergebnis nächstem Thread weiter Zusammenspiel der Threads im System Michael Rauter 9 03.12.2007

Multi-Threading 2 Vergleich: Verarbeitung der Input-Bilder Serielle Abarbeitung der Berechnungsschritte Parallele Abarbeitung der Berechnungsschritte Michael Rauter 10 03.12.2007

Programmiersprachen und Bibliotheken Programmierung: C, C++ Graphics-API: OpenGL Shader-Programmierung: Cg Bibliotheken Glut, Glew (OpenGL-Context, -Extensions) Boost::Thread (Multi-Threading) OpenCV (grundlegende Bild/Videoverarbeitung) Gtk+ (Graphical User Interface) unter Windows XP entwickelt, aber alle tools & libraries auch für Linux erhältlich Michael Rauter 11 03.12.2007

Resultate Das Object Tracking System Video zur Demo-Applikation Michael Rauter 12 03.12.2007

Resultate - Performance 1 Trackt 100+ Objekte in Echtzeit Suche für neue Objekte im ganzen Bild Mehr als 30 fps für ein Video mit 768 576 pixel und 3 Farbkanälen (CPU-Last: ~64%) (Testsystem: Intel Core2 6300, Geforce 7950 GT) Speed-up um mehr als den Faktor 9.5 (im Vergleich zur optimierten (OpenCV-SSE- Unterstützung) Single-Core CPU Implementierung) Michael Rauter 13 03.12.2007

Resultate - Performance 2 Michael Rauter 14 03.12.2007

Resultate - Performance 3 Michael Rauter 15 03.12.2007

Resultate - Performance 4 Michael Rauter 16 03.12.2007

Ausblick und mögliche Verbesserungen Zu erwartende Hardwareentwicklungen Mehr Flexibilität bei der GPU-Programmierung Bessere Performance sowohl bei CPUs als auch GPUs mehr CPU-Kerne pro CPU (Multi-Threading zwingend nötig) Verbesserungspotential noch komplexere Algorithmen einsetzen gaussian mixture model für Hintergrund-Modellierung occlusion handling: Verdeckungsprobleme lösen multi-model approach multi-camera approach Michael Rauter 17 03.12.2007