Bildverarbeitung mit Cuda

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Objektbewegungsdetektion in Bildfolgen
3. 3D-Betrachtungstransformationen
Gruppenwettbewerb. Gruppenwettbewerb Aufgabe G1 (8 Punkte)
Schnelle Matrizenoperationen von Christian Büttner
Vom graphischen Differenzieren
Verteidigung Bachelorarbeit
Wasserfall-Ansätze zur Bildsegmentierung
Genetische Algorithmen für die Variogrammanpassung
Kollisionen erkennen Kollisions- und Schnittpunkttests auf Dreieckbasis Kollisions- und Schnittpunkttests auf Viereckbasis Einsatz von achsenausgerichteten.
Grundlagen der Geometrie
Dachbodenausbau by Michael Lameraner und Florian Kerschbaumer
Einführung Übersicht Einsatz der Zielwertsuche Einsatz des Solvers
Anwendung und Visual Basic
Graphische Datenverarbeitung IV Dr. Markus Heitz.
Konzeption und Realisierung eines Text- Analysesystems zur Automatisierung der Bewerberauswahl von diesem Datenformat jede beliebige Anwendung adaptieren.
Zeichnen für Anfänger -für das Zeichnen benutzten wir das Programm „Autosketch“ Dafür gehen wir in das Startmenü, dann auf Programm und danach auf Autosketch.
Java2D Richard Göbel.
Spektrale Analysen in EMU-R: eine Einführung
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
Computerkurs: Quantitative Auswertung biochemischer Experimente Tag 8 Einführung in die numerische Integration Aufgabe 18: Simulation einer Assoziationskinetik.
Inhaltsverzeichnis Einleitung Der Skalenraum Anwendungsbeispiele
Programmieren mit JAVA Teil V. Grafikausgabe mit JAVA, das AWT Java wurde von Anfang an mit dem Anspruch entwickelt, ein vielseitiges, aber einfach zu.
Globaler Ansatz Hough-Transformation
Thorsten Jost INF-M2 – AW1 – Sommersemester Mai 2008
Beispielrelation Buchbestellungen H = Menge der bedeutenden Ziele = {a, d} Schwelle T = 4 Stichprobe S = {a, b, a, a, a, a} mit s = |S| = 6 N = Anzahl.
Computergrafik Begriff: Was ist Computergrafik?
Modellierung von Baumstrukturen mit einem einzigen Polygonnetz
Random Heightmap on GPU
Matrix Multiplication on CUDA
Objekt- und Selbstlokalisation in der Robotik
Duo- und Quad Prozessor-Architektur
Übersicht Motivation Konzeption Umsetzung/ Implementierung
in der medizinischen Bildverarbeitung
Clustering mittels Grafikprozessor
Die Welt der Fraktale Eine Kurzeinführung.
Kurvendiskussion Los geht´s Klick auf mich! Melanie Gräbner.
Computergraphische Visualisierungs- verfahren für 3D-Stadtmodelle
Basisinformationstechnologie I
Project Perseus Der volle Projektname lautet Perseus Digital Library Project. Das Projekt begann in 1985 als Experiment zur Digitalisierung von Bibliotheken.
X y Bild I.
Polynome und schnelle Fourier-Transformation
Geometrie : Rekonstruktion
Methode der kleinsten Quadrate
Bildbearbeitung Nicolas Ruh.
ProSeminar WS 2007/08 Leo Hackstein
Ein Überblick über verschiedene Verfahren
Quadrat in Rechteck umwandeln
Übersicht Täuschung des Tages kurze Wiederholung
Klassifikation und Regression mittels neuronaler Netze
Kapitel 3.7: Berechnung von Änderun-gen der Enthalpie und inneren Energie Prof. Dr.-Ing. Ch. Franke.
Stoppen der Eingabeaufforderung einer Abfrage j drücken Sie dann F5, oder klicken Sie auf Bildschirmpräsentation > Von Beginn an, um den Kurs zu starten.
Lisa Blum - Kathrin Kunze - Michael Kreil
Vom graphischen Differenzieren
Das Newton-Verfahren – Vorstellung
AGP, PCIE Bus im Vergleich AGP: Accelerated Graphic Port 1997 von Intel entwickelt. Ab 1998 AGP dann in großem Stil in PCs als Grafikkartensteckplatz verwendet.
Direkte Darstellung von Faserinformation durch Kohärenzmaße
Wichtige Transformationen
Routenplanung querfeldein - Geometric Route Planning
Institut für Informationssysteme Technische Universität Braunschweig Institut für Informationssysteme Technische Universität Braunschweig Verdrängung von.
Aktueller Stand der Technik. Auf dem Markt sind heute bereits 64-Bit Mikrocontroller. Die meiste Verwendung finden allerdings noch immer die 8-Bit Modelle.
Binärbäume.
Zeitreise Eine Signalübertragung mit unendlich hoher Geschwindigkeit ist möglich („Hyperfunk“)! Leider hätte dies drastische Konsequenzen. Einstein hat.
- Seite 1 TIME INTELLIGENCE ® by Zeichenrand – Löschen! Titel.
Institut für Eisenhüttenkunde Department of Ferrous Metallurgy Methoden der digitalen Bildverarbeitung zum Auffinden von fluoreszierenden Punkten auf Messproben.
Spärliche Kodierung von Videos natürlicher Szenen Vortragender: Christian Fischer.
 Gegenstandsbereich der Testtheorie: Analyse der Charakteristika von Tests:  Güte von Tests.  Struktur von Tests.  Schwierigkeit von Tests.  Gruppenunterschiede.
Prognose von Zeitreihen Hans Nübel Hans Nübel Prognose von Zeitreihen Aufbau 1.Motivation 2.Holt-Winters-Verfahren 3.Prognose.
Rechen- und Kommunikationszentrum (RZ) Selektionsstrategien auf Graphstrukturen Sven Porsche Seminarvorträge Aachen.
Independent Component Analysis: Analyse natürlicher Bilder Friedrich Rau.
 Präsentation transkript:

Bildverarbeitung mit Cuda Erkennen von Strukturen mittels Hough Transformation Altenhofen, Jung

Inhalt: 1. Theorie 2. Praxis Was versteht man unter Bildverarbeitung Wie funktionieren die einzelnen Schritte 2. Praxis Sequenzielles Bespiel mit OpenCV Paralleler Algorithmus mit Cuda Altenhofen, Jung

Bildverarbeitung Unter Bildverarbeitung versteht man die Aufbereitung (Kalibrierung, Restauration, Rekonstruktion) von Daten zur visuellen Darstellung. Im Gegensatz zur Bildbearbeitung, welche sich mit der Manipulation von Bildern zur anschließenden Darstellung beschäftigt. Altenhofen, Jung

Bildverarbeitung Extraktion von Information aus den Ursprungsdaten: z. B. Bewegungsbestimmung, Mustererkennung (Kreise, Geraden), Erkennen von Gesichtern… Altenhofen, Jung

Bildverarbeitung Einsatzgebiete: modernen Mikroskopie, medizinischen Diagnostik, Astronomie, Maschinenbau, Umweltbeobachtung, Spionage Altenhofen, Jung

Modell der Bildverarbeitung Altenhofen, Jung

Beispiel: Erkennen von Kreisen Idee: Finden von geometrischen Objekten (Kreisen) in Bildern. Methoden: Filterung und Hough-Transformation Altenhofen, Jung

Beispiel: Erkennen von Kreisen Vorgehen: 1. Umwandeln der Farbinformationen in Graustufen. cvCvtColor( frame, gray, CV_BGR2GRAY ); Altenhofen, Jung

Beispiel: Erkennen von Kreisen Vorgehen: 2. Anwenden eines Kantenfilters (z.B. Sobelfilter) Altenhofen, Jung

Exkurs: Filter Filter berechnen den Wert der einzelnen Pixel mit Hilfe einer (meist quadratischen) Filtermatrix (Filtermaske) aus den Werten der Nachbarpixel. Die Randwerte sind unbestimmt. Altenhofen, Jung

Kanten Eine Kante in einem Graustufenbild ist definiert als Änderung des Grauwertes von einem Pixel zum Nachbarpixel. Da man diese Änderung des Wertes als Steigung der „Bildfunktion“ ansehen kann werden Kantenfilter oft als erste Ableitung bezeichnet. Altenhofen, Jung

Der Sobelfilter Wir definieren das Originalbild als Matrix A, und können so mit Hilfe der Sobeloperatoren Sx und Sy die gefalteten Resultaten Gx und Gy berechnen. mit vertikalem Sobel gefaltet mit horizontalem Sobel gefaltet Altenhofen, Jung

Der Sobelfilter Richtungsunabhängige Information durch Kombination der Ergebnisse aus vertikalem und horizontalem Sobel. Die Bereiche der größten Intensität sind dort, wo die Helligkeit des Originalbildes sich am stärksten ändert und somit die größten Kanten darstellt. Altenhofen, Jung

Andere Kantenfilter Prewitt-Operator Laplacefilter „einfache“ Form des Sobelfilters Laplacefilter Bestimmt Nulldurchgänge, ist sehr „rauschanfällig“ Altenhofen, Jung

Beispiel: Erkennen von Kreisen Vorgehen (Hough-Transformation): Das Verfahren wurde 1962 von Paul V. C. Hough entwickelt Dient zur Erkennung von Geraden, Kreisen oder beliebigen anderen parametrisierbaren geometrischen Figuren in einem Gradientenbild. Altenhofen, Jung

Beispiel: Erkennen von Kreisen Vorgehen: 3.Der Hough Raum Der Hough Raum wird über alle Parameter des gesuchten geometrischen Objektes aufgespannt. Speziell für Kreise (drei Parameter, x,y und r) wäre der Hough Raum dreidimensional, was die Berechnung deutlich verkomplizieren würde. Altenhofen, Jung

Beispiel: Erkennen von Kreisen Vereinfachung: Suche nach Kreisen mit festen Radien. Nur noch zwei freie Parameter (x,y). Hough Raum ist nur noch zweidimensional. Um jeden Kantenpunkt wird ein Kreis mir Radius r gezeichnet. Für jeden Punkt, der auf dem Kreis liegt wird der Wert im Hough Raum inkrementiert. Altenhofen, Jung

Beispiel: Erkennen von Kreisen Vorgehen: 4. Einzeichnen der gefundenen Kreise im Originalbild. Die Punkte mit dem größten Wert im Hough-Raum repräsentieren die Kreismittelpunkte für Kreise mit Radius r. Hat man ein oder mehrere Maxima gefunden zeichnet man einen oder eben mehrere Kreise mit Radius r und dem Maximum als Kreismittelpunkt in das Originalbild. Altenhofen, Jung

Vorgehe: Einfaches Erkennen von Kreisen in Graustufen umwandeln Kantenfilterung mittels Sobel Bild einlesen Maxima (Kreismittel-punkte) suchen Hough-Parameterraum füllen Kreise in Originalbild einzeichnen Altenhofen, Jung

Nachteile Hough-Transformation Es ist eine Art „Brute-Force-Ansatz“ und damit sehr rechenaufwändig Der Speicherbedarf des klassischen Ansatzes ist sehr groß Es gibt Variationen der gezeigten Vorgehensweise, die den Aufwand verringern. Altenhofen, Jung

Praxis Altenhofen, Jung

Open CV Open Source Computer Vision Library 2006 Von Intel entwickelte Bilbliothek für C, C++ zur Bildverarbeitung. Stellt viele Funktionen zur Verfügung, z.B. cvCaptureFromCAM() cvNamedWindow() cvHoughCircles() Altenhofen, Jung

Sequenzieller Algorithmus Programmbeispiel… Altenhofen, Jung

Sequenzieller Algorithmus Auswertung: Je nachdem wie viele Kreise gefunden wurden schwankt die Geschwindigkeit zwischen ca 62 FPS (keine Kreise) und 6 FPS (viele Kreise). Altenhofen, Jung

Parallelisierung mit Cuda 1. Graustufen Graustufen werden weiterhin sequenziell mit cvCvtColor( frame, gray, CV_BGR2GRAY ); erstellt. Altenhofen, Jung

Parallelisierung mit Cuda 2. Sobelfilter Jeder Thread berechnet einen Pixel mit Hilfe des Sobel-Operators. Jeder Thread muss prüfen ob er sich am Rand des Bildes befindet oder nicht. Noch nicht optimal. Altenhofen, Jung

Parallelisierung mit Cuda 3. Hough-Raum Jeder Thread berrechnet einen Kreis in den Hough-Raum. Jeder Thread muss prüfen ob sein Kreis in das Bild passt oder nicht. Die Rasterisierung der Kreise erfolgt mit Hilfe der Methode von Horn realisiert. Altenhofen, Jung

Die Methode von Horn wurde 1976 von Horn vorgestellt. Dient der Rasterisierung von Kreisen. Betrachtet einen ein Pixel breiten Bereich um den idealen Kreisbogen. Vorteil: Benutzt nur Addition und Subtraktion Altenhofen, Jung

Parallelisierung mit Cuda 4. Zeichnen der Kreise Die gefundenen Kreise werden weiterhin sequenziell mit cvCircle( frame, center, radius, color , thickness, line_type, shift ); gezeichnet. Altenhofen, Jung

Parallelisierung mit Cuda Programmcode… Altenhofen, Jung

CPU version with OpenCV own CPU version GPU – fast and easy ideal GPU- version Capture Cam (OpenCV) Capture Cam (OpenCV) Capture Cam (OpenCV) Capture Cam (OpenCV) Sobel- Filter (shared memory) Convert to grayscale image (OpenCV) Sobel- Filter Sobel- Filter Fill Hough parameter space with circles (shared memory) Fill Hough parameter space with circles Fill Hough parameter space with circles Find spheres by Hough transform (OpenCV: cvHoughCircles) find maxima find maxima find maxima Display image and spheres (OpenCV) Display image and spheres (OpenGL) Altenhofen, Jung

Fazit Da es sich bei den durchgeführten Berechnungen fast ausschließlich um Matrixberechnungen handelt ist eine effiziente Parallelisierung möglich. Jedoch ist der Performancegewinn stark von der verwendeten Implementierung abhängig. Altenhofen, Jung

Quellen www.wikipedia.de Jähne, Bernd: Digitale Bildverarbeitung. 5. überarb. und erw. Aufl.. Berlin : Springer, 2002. – 618 S. Diplomarbeit von Christian Rathemacher http://www.nvidia.com/object/cuda_home.html Altenhofen, Jung

Ende Vielen Dank für Ihre Aufmerksamkeit. Viel Spaß beim Halbfinalspiel! Altenhofen, Jung