Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Altenhofen, Jung 1 Bildverarbeitung mit Cuda Erkennen von Strukturen mittels Hough Transformation."—  Präsentation transkript:

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

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

3 Altenhofen, Jung3 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.

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

5 Altenhofen, Jung5 Bildverarbeitung Einsatzgebiete:  modernen Mikroskopie, medizinischen Diagnostik, Astronomie, Maschinenbau, Umweltbeobachtung, Spionage

6 Altenhofen, Jung6 Modell der Bildverarbeitung

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

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

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

10 Altenhofen, Jung10 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.

11 Altenhofen, Jung11 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.

12 Altenhofen, Jung12 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

13 Altenhofen, Jung13 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.

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

15 Altenhofen, Jung15 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.

16 Altenhofen, Jung16 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.

17 Altenhofen, Jung17 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.

18 Altenhofen, Jung18 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.

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

20 Altenhofen, Jung20 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.

21 Altenhofen, Jung21 Praxis

22 Altenhofen, Jung22 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()

23 Altenhofen, Jung23 Sequenzieller Algorithmus Programmbeispiel…

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

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

26 Altenhofen, Jung26 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.

27 Altenhofen, Jung27 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.

28 Altenhofen, Jung28 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

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

30 Altenhofen, Jung30 Parallelisierung mit Cuda Programmcode…

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

32 Altenhofen, Jung32 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.

33 Altenhofen, Jung33 Quellen Jähne, Bernd: Digitale Bildverarbeitung. 5. überarb. und erw. Aufl.. Berlin : Springer, – 618 S. Diplomarbeit von Christian Rathemacher html

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


Herunterladen ppt "Altenhofen, Jung 1 Bildverarbeitung mit Cuda Erkennen von Strukturen mittels Hough Transformation."

Ähnliche Präsentationen


Google-Anzeigen