1 / 34

Bildverarbeitung mit Cuda

Bildverarbeitung mit Cuda. Erkennen von Strukturen mittels Hough Transformation. Inhalt:. 1. Theorie Was versteht man unter Bildverarbeitung Wie funktionieren die einzelnen Schritte 2. Praxis Sequenzielles Bespiel mit OpenCV Paralleler Algorithmus mit Cuda. Bildverarbeitung.

vanig
Download Presentation

Bildverarbeitung mit Cuda

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. 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

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

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

  6. Modell der Bildverarbeitung Altenhofen, Jung

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

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

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

  10. 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

  11. 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

  12. 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

  13. 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

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

  15. 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

  16. 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

  17. 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

  18. 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

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

  20. 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

  21. Praxis Altenhofen, Jung

  22. 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

  23. Sequenzieller Algorithmus • Programmbeispiel… Altenhofen, Jung

  24. 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

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

  26. 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

  27. 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

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

  29. 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

  30. Parallelisierung mit Cuda • Programmcode… Altenhofen, Jung

  31. 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) Sobel- Filter Sobel- Filter Convert to grayscale image (OpenCV) 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

  32. 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

  33. 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

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

More Related