Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Ferienakademie 2013 – Kurs 5 Multi-Core = Multi-Performance Sascha Roloff, Frank Hannig, Jürgen Teich Friedrich-Alexander-Universität Erlangen-Nürnberg.

Ähnliche Präsentationen


Präsentation zum Thema: "Ferienakademie 2013 – Kurs 5 Multi-Core = Multi-Performance Sascha Roloff, Frank Hannig, Jürgen Teich Friedrich-Alexander-Universität Erlangen-Nürnberg."—  Präsentation transkript:

1 Ferienakademie 2013 – Kurs 5 Multi-Core = Multi-Performance Sascha Roloff, Frank Hannig, Jürgen Teich Friedrich-Alexander-Universität Erlangen-Nürnberg Erlangen, 10. Juli 2013

2 Praktischer Teil 1. Woche: Vornehmlich Vorträge 2. Woche: Programmieraufgabe Programmieraufgabe Ziel: Implementierung einer Kette von Bildverarbeitungsalgorithmen in der Programmiersprache X10 Bearbeitung in Teams 2-3 Studenten pro Team Jedes Team implementiert und testet einen Algorithmus separat Integration zu einer Kette Teams arbeiten gemeinsam an der Integration der Algorithmen Absprache über Austausch der Datenstrukturen Testen der gesamten Algorithmenkette 2

3 Die Anwendung: Objekterkennung Typisches Anwendungsszenario aus der Robotik Roboter erkennt ein Objekt und kann ihm folgen (object detection, object tracking) 3 Objekt im Referenzbild Merkmale Erkanntes Objekt im Suchbild Fehl- Erkennungen

4 Die Algorithmen Harris Corner Detection Erkennung der Ecken eines Bildes Verwendung als Merkmale (Features) für nachfolgende Algorithmen SIFT Feature Description SIFT – Scale-Invariant Feature Transform Umwandlung der Harris Corner Features in SIFT Features SIFT Feature Matching Vergleich der SIFT Features des Suchbildes mit den SIFT Features des Referenzbildes und Finden des passendsten Kandidaten Camera Image Harris Corner Detection SIFT Feature Description SIFT Feature Description SIFT Feature Matching Object Location Object Recognition Algorithm 4

5 Die Programmiersprache: X10 Neuartige parallele Programmiersprache von IBM Syntax: Mischung aus Java und Scala Bietet Sprachkonstrukte für Parallelität Thread-level Parallelität (gemeinsamer Speicher) Verteilung von Daten (verteilter Speicher) Synchronisation, Atomarität 5 public class Test { public static def main(args:Array[String](1)) { finish for(p in Place.places()) async at (p) { Console.OUT.println(Hello, World from +here.id); }

6 Implementierung der Algorithmen in X10 Erst sequentiell, dann parallel (wenn genug Zeit vorhanden) Kopplung der Algorithmen über eine X10 Task (Aktor) Bibliothek Implementierung und Integration 6 Harris Corner Detection in X10 SIFT Feature Description in X10 SIFT Feature Description in X10 SIFT Feature Matching in X10 func1 func3 func2 channel actor 1 activities channel actor 2 actor 3 Camera Image Harris Corner Features SIFT FeaturesObject Position

7 Die Plattform Testen der Algorithmenkette auf einer Simulationsplattform 7 SIFT Detection SIFT Detection SIFT Matching SIFT Matching Harris Corner Camera Images

8 Vorbereitungen für die Implementierung Laptop mit installiertem Linux Keine virtuelle Maschine Linux-spezifische Funktionen für Simulation benötigt Testen der Programmiersprache X10 auf eigenem Laptop Download von der X10 Webseite (x10-lang.org)x10-lang.org Version Eclipse-basierte Entwicklungsumgebung X10DT (x86, x86_64) Vorkompilierter Compiler (x86, x86_64) 8

9 Detailliertere Beschreibung der Algorithmen 9

10 Harris Corner SIFT Features Image Source Edges may have FIFO semantic. Pointers can be exchanged instead of concrete data. Create corresponding activities for execution on the allocated resources ( = claim(actor Harris Corner ) ) src sobelX sobelY calculate autocorrelation matrix get max response thresholding response sink … 10

11 Harris Corner Eigenvalues of M: src sobelX sobelY calculate autocorrelation matrix get max response thresholding response sink 1.) 2.) 3.) 11

12 SIFT Feature Descriptor key points Harris Corner SIFT features image source img … src sobelX sobelY calc angles and magnitudes of pixels around each keypoint calc descriptor per keypoint relative to its orientation sink img keypoints calc orientation(s) per keypoint (additional orientations = additional keypoints) based on 36 bin histogram 12

13 SIFT Feature Descriptor src sobelX sobelY calc angles and magnitudes of the gradients of pixels around each keypoint calc descriptor per keypoint relative to its orientation sink img keypoints calc orientation(s) per keypoint (additional orientations = additional keypoints) Angle and magnitudes of pixel orientations (=gradients) can be obtained based on Sobel X/Y (which form x and y of the gradient) Histogram with 36 bins (1 bin represents 10 degrees) build upon angles and magnitudes of pixel gradients in region around the keypoint (e.g. 16x16) Result: maximal orientation; but possibly also further peak orientations new keypoints descriptor of keypoint relative to its orientation based upon orientations of pixels in 16x16 regions around keypoint collected in 4x4 histograms with 8 bins ( 128 dimensions) 13

14 SIFT Feature Matching src find nearest neighbor feature in model (represented as kdTree for fast search) for each SIFT descriptor SIFT descriptors filter matches; only accept good (close) matches register matches (not on the feature vector but on the coordinates); e.g., using RANSAC sink Harris Corner SIFT features SIFT descriptors Feature matching … … model 14


Herunterladen ppt "Ferienakademie 2013 – Kurs 5 Multi-Core = Multi-Performance Sascha Roloff, Frank Hannig, Jürgen Teich Friedrich-Alexander-Universität Erlangen-Nürnberg."

Ähnliche Präsentationen


Google-Anzeigen