Monday 27 November 2017

Cuda Moving Average Filter


Was ist CUDA. Enroll heute Intro zur parallelen Programmierung Ein offener Online-Kurs von Udacity. Instructors Dr. John Owens, UC Davis und Dr. David Luebke, NVIDIA. CUDA ist eine parallele Rechenplattform und Programmiermodell, das von NVIDIA erfunden wurde. Es ermöglicht drastische Steigerung des Rechnens Leistung, indem sie die Leistung der Grafikverarbeitungseinheit GPU nutzen. Mit Millionen von CUDA-fähigen GPUs, die bisher verkauft wurden, finden Softwareentwickler, Wissenschaftler und Forscher breit angelegte Anwendungen für das GPU-Computing mit CUDA Hier sind ein paar Beispiele. Identify versteckte Plaque in Arterien Herzinfarkte sind die führende Todesursache weltweit Harvard Engineering, Harvard Medical School und Brigham Women s Hospital haben sich zusammengetan, um GPUs zu verwenden, um den Blutfluss zu simulieren und versteckte arterielle Plaque ohne invasive Imaging-Techniken oder explorative Chirurgie zu identifizieren. Analyze Flugverkehrsfluss Die National Airspace System verwaltet die landesweite Koordination des Flugverkehrs. Computermodelle helfen, neue Wege zur Linderung zu identifizieren Staus und halten Flugzeug Verkehr beweglich effizient Mit Hilfe der Rechenleistung von GPUs, ein Team bei NASA erhielt eine große Leistungssteigerung, wodurch die Analyse Zeit von zehn Minuten auf drei Sekunden. Visualisieren Moleküle Eine molekulare Simulation namens NAMD nanoskalige Molekulardynamik bekommt eine große Leistungssteigerung mit GPUs Die Beschleunigung ist ein Ergebnis der parallelen Architektur von GPUs, die es NAMD-Entwicklern ermöglicht, rechenintensive Teile der Anwendung an die GPU mit dem CUDA Toolkit. GPU Computing The Revolution zu portieren. Sie sind mit den Imperativen konfrontiert Problem schnellere Parallelverarbeitung wäre schneller, aber die Lernkurve ist steil isn t it. Not mehr Mit CUDA können Sie C-, C - und Fortran-Code direkt an GPU senden, keine Assembler-Sprache erforderlich. Entwickler bei Firmen wie Adobe, ANSYS , Autodesk, MathWorks und Wolfram Research sind aufwachen, dass schlafende Riese die GPU - um Allzweck-wissenschaftliche und Ingenieur-Computing über eine Klingel zu tun E von Plattformen. Mit hochrangigen Sprachen, GPU-beschleunigte Anwendungen führen die sequentiellen Teil ihrer Arbeitsbelastung auf der CPU, die für Single-Thread-Performance optimiert wird, während die Beschleunigung der Parallelverarbeitung auf der GPU Dies wird GPU Computing. GPU Computing ist möglich, weil Heute s GPU macht viel mehr als Grafik zu machen Es sizzelt mit einem Teraflop von Gleitkomma-Performance und knirscht Anwendungsaufgaben für alles von Finanzen zu Medizin. CUDA ist weit verbreitet durch Tausende von Anwendungen und veröffentlichte Forschungsarbeiten und unterstützt von einer installierten Basis von über 375 Millionen CUDA-fähige GPUs in Notebooks, Workstations, Compute-Clustern und Supercomputern. Visit CUDA Zone für Anwendungsbeispiele in verschiedenen vertikalen Märkten und wecken Sie Ihren GPU-Giganten. Geschichte von GPU Computing. Die ersten GPUs wurden als Grafikbeschleuniger konzipiert, die nur spezifische unterstützen Fix-Pipelines Ab Ende der 1990er Jahre wurde die Hardware zunehmend programmierbar, Gipfelte in NVIDIAs erster GPU im Jahr 1999 Weniger als ein Jahr nachdem NVIDIA den Begriff GPU prägte, waren die Künstlern und die Spielentwickler nicht nur die bahnbrechende Arbeit mit der Technologie. Die Forscher tippten auf ihre hervorragende Fließkomma-Performance. Die Allzweck-GPU-GPGPU-Bewegung War dämmern. But GPGPU war weit davon entfernt, damals, auch für diejenigen, die Grafik-Programmiersprachen wie OpenGL-Entwickler wussten mussten wissenschaftliche Berechnungen auf Probleme, die durch Dreiecke und Polygone dargestellt werden konnte, war GPGPU war praktisch off-Grenzen für diejenigen, die nicht Speicherte die neuesten Grafik-APIs bis eine Gruppe von Stanford University Forscher, um die GPU als Streaming-Prozessor zu refinanzieren. Im Jahr 2003 ein Team von Forschern unter der Leitung von Ian Buck enthüllte Brook, die erste weit verbreitete Programmierung Modell zu erweitern C mit Daten-Parallelität Konstrukte Mit Konzepten wie Streams, Kernel und Reduktionsoperatoren hat der Brook-Compiler und das Runtime-System die GPU als General-p ausgesetzt Urteil Prozessor in einer High-Level-Sprache Am wichtigsten war, Brook-Programme waren nicht nur einfacher zu schreiben als handgestimmt GPU-Code, waren sie sieben Mal schneller als vergleichbare Code. NVIDIA wusste, dass lodernd schnell Hardware musste mit intuitiven Software gekoppelt werden und Hardware-Tools und lud Ian Buck ein, sich dem Unternehmen anzuschließen und eine Lösung für die nahtlose Ausführung von C auf der GPU zu entwickeln. NVIDIA hat die CUDA im Jahr 2006 vorgestellt, die weltweit erste Lösung für das General Computing auf GPUs. Tools und Training. Today, das CUDA-Ökosystem wächst schnell, da immer mehr Unternehmen erstklassige Werkzeuge, Dienstleistungen und Lösungen bieten. Wenn Sie Ihren eigenen Code schreiben möchten, ist der einfachste Weg, um die Leistung von GPUs zu nutzen, mit dem CUDA Toolkit, das bietet Eine umfassende Entwicklungsumgebung für C - und C-Entwickler. Das CUDA Toolkit umfasst einen Compiler, Mathematik-Bibliotheken und Tools zum Debuggen und Optimieren der Leistung Ihrer Anwendungen, die Sie auch finden werden Code-Beispiele, Programmieranleitungen, Benutzerhandbücher, API-Referenzen und andere Unterlagen, um Ihnen zu helfen, loszulegen. NVIDIA bietet all dies kostenlos, einschließlich NVIDIA Parallel Nsight für Visual Studio, die branchenweit erste Entwicklungsumgebung für massiv parallele Anwendungen, die beide verwenden GPUs und CPUs. Learning zur Verwendung von CUDA ist bequem, mit umfassenden Online-Schulungen sowie andere Ressourcen wie Webinare und Bücher Über 400 Universitäten und Hochschulen lehren CUDA-Programmierung, darunter Dutzende von CUDA Centers of Excellence und CUDA Research and Training Centers. Für Entwickler. Gaussian Smoothingmon Namen Gaußscher Glättung. Brief Beschreibung. Der Gaußsche Glättungsoperator ist ein 2-D-Faltungsoperator, der verwendet wird, um Bilder zu verwischen und Detail und Lärm zu entfernen. In diesem Sinne ist es ähnlich dem mittleren Filter, aber es verwendet einen anderen Kernel Das repräsentiert die Form eines Gaußschen Glocken-Humpens Dieser Kernel hat einige besondere Eigenschaften, die unten detailliert sind. Wie ich T Works. Die Gaußsche Verteilung in 1-D hat die Form. wo ist die Standardabweichung der Verteilung Wir haben auch angenommen, dass die Verteilung einen Mittelwert von null hat, dh sie ist auf der Linie x 0 zentriert. Die Verteilung ist in Abbildung 1 dargestellt Abb. 1 1-D Gaußsche Verteilung mit Mittelwert 0 und 1. In 2-D hat ein isotroper, dh kreisförmig symmetrischer Gaußscher die Form. Diese Verteilung ist in Abbildung 2 dargestellt. Abbildung 2 2-D Gaußsche Verteilung mit Mittelwert 0,0 und 1.Die Idee der Gaußschen Glättung ist, diese 2-D-Verteilung als Punkt-Spreizfunktion zu verwenden, und dies wird durch Faltung erreicht. Da das Bild als eine Sammlung von diskreten Pixeln gespeichert ist, müssen wir eine diskrete Annäherung an die Gaußsche Funktion erzeugen Bevor wir die Faltung durchführen können In der Theorie ist die Gaußsche Verteilung überall null, was einen unendlich großen Faltungskern erfordern würde, aber in der Praxis ist es effektiv null mehr als etwa drei Standardabweichungen vom Mittelwert, und so können wir die abschneiden Kernel an dieser Stelle Abbildung 3 zeigt einen geeigneten Integer-bewerteten Faltungskern, der einem Gaußschen mit einem von 1 0 entspricht. Es ist nicht offensichtlich, wie man die Werte der Maske auswählt, um einen Gaußschen zu nähern, den Wert des Gaußschen in der Mitte nutzen könnte Von einem Pixel in der Maske, aber das ist nicht genau, weil der Wert des Gaußers nicht linear über das Pixel variiert. Wir integrierten den Wert des Gaußschen über das ganze Pixel durch Summieren des Gaußschen bei 0 001 Inkrementen Die Integrale sind nicht ganze Zahlen Das Array so skaliert, dass die Ecken den Wert 1 hatten. Schließlich ist die 273 die Summe aller Werte in der Maske. Abbildung 3 Diskrete Annäherung an die Gaußsche Funktion mit 1 0.Wenn ein geeigneter Kernel berechnet wurde, kann die Gaußsche Glättung erfolgen Unter Verwendung von Standard-Faltungsverfahren durchgeführt werden. Die Faltung kann in der Tat ziemlich schnell durchgeführt werden, da die Gleichung für den oben gezeigten 2-D-isotropen Gaußschen in x - und y-Komponenten trennbar ist. Somit kann die 2-D-Faltung erfolgen Indem man zuerst mit einem 1-D-Gauß in der x-Richtung füllt und dann mit einem anderen 1-D-Gaußschen in der y-Richtung füllt. Der Gaußsche ist in der Tat der einzige vollständig kreisförmig symmetrische Operator, der so zerlegt werden kann Zeigt den 1-D x - Komponenten-Kernel, der verwendet wird, um den in Abbildung 3 dargestellten vollständigen Kernel nach der Skalierung von 273 zu erzeugen, um eine Reihe von Pixeln um die Grenze herum zu runden und zu verkürzen, weil sie meistens den Wert 0 haben. Dadurch wird die 7x7-Matrix reduziert 5x5 oben Die y-Komponente ist genau die gleiche, aber ist vertikal orientiert. Figur 4 Eines der beiden 1-D-Faltungskörner, die verwendet werden, um den in Abbildung 3 dargestellten vollständigen Kernel schneller zu berechnen. Eine weitere Möglichkeit, eine Gaußsche Glättung mit einem zu berechnen Große Standardabweichung ist, ein Bild mehrmals mit einem kleineren Gaußschen zu falten Während dies rechnerisch komplex ist, kann es Anwendbarkeit haben, wenn die Verarbeitung mit einer Hardware-Pipeline durchgeführt wird. Der Gaußsche Filter nicht nur Hat Nutzen in der Ingenieur-Anwendung Es ist auch Aufmerksamkeit von Computational Biologen, weil es mit einer gewissen Menge an biologischer Plausibilität zugeschrieben worden ist, zB einige Zellen in den visuellen Pfaden des Gehirns haben oft eine etwa Gaußsche Antwort. Guidelines für Use. The Wirkung von Gaussian Glättung ist, ein Bild zu verschwimmen, in ähnlicher Weise wie der mittlere Filter Der Grad der Glättung wird durch die Standardabweichung der Gaußschen Größere Standardabweichung bestimmt Gaussians erfordern natürlich größere Faltungskern, um genau dargestellt zu werden. Die Gaußschen Ausgänge Ein gewichteter Durchschnitt jeder Pixel-Nachbarschaft, wobei der Durchschnitt mehr auf den Wert der zentralen Pixel gewichtet ist. Dies steht im Gegensatz zum mittleren Filter s einheitlich gewichteter Durchschnitt. Dadurch erhält ein Gaußer eine sanftere Glättung und bewahrt Kanten besser als eine ähnlich große Größe Mittelfilter. Eines der Grundbegriffe für die Verwendung des Gaußschen als Glättungsfilter ist Aufgrund seines Frequenzganges Die meisten faltungsbasierten Glättungsfilter fungieren als Tiefpassfrequenzfilter Dies bedeutet, dass ihre Wirkung darin besteht, hochräumige Frequenzkomponenten aus einem Bild zu entfernen. Der Frequenzgang eines Faltungsfilters, dh seine Wirkung auf unterschiedliche Ortsfrequenzen, ist zu sehen Indem man die Fourier-Transformation des Filters annimmt Fig. 5 zeigt die Frequenzreaktionen eines 1-D-Mittelfilters mit der Breite 5 und auch eines Gaußschen Filters mit 3.Figure 5 Frequenzreaktionen von Box, dh mittlere Filterbreite 5 Pixel und Gaußfilter 3 Pixel Die räumliche Frequenzachse ist in Zyklen pro Pixel markiert und daher hat kein Wert über 0 5 eine reale Bedeutung. Beide Filter dämpfen hohe Frequenzen mehr als niedrige Frequenzen, aber der mittlere Filter zeigt Schwingungen in seinem Frequenzgang Der Gaußer hingegen zeigt Keine oszillationen In der Tat ist die Form der Frequenzgangkurve selbst ein halber Gaußer. Durch die Wahl eines entsprechend großen Gaußschen Filters können wir fair sein Fähigkeit, welchen Bereich der räumlichen Frequenzen nach dem Filtern noch im Bild vorhanden ist, was bei dem mittleren Filter nicht der Fall ist. Dies hat Konsequenzen für einige Kantenerfassungstechniken, wie im Abschnitt über Nulldurchgänge erwähnt Der Gaußsche Filter entpuppt sich auch als Sehr ähnlich dem optimalen Glättungsfilter für die Kantenerfassung unter den Kriterien, die verwendet werden, um den Canny-Randdetektor abzuleiten. Um den Effekt der Glättung mit sukzessiv größeren und größeren Gaußschen Filtern zu veranschaulichen, zeigt die Wirkung der Filterung mit einem Gaußschen von 1 0 und der Kerngröße 5 5. zeigt den Effekt der Filterung mit einem Gaußschen von 2 0 und Kernel Größe 9 9. zeigt die Wirkung der Filterung mit einem Gaußschen von 4 0 und Kernel Größe 15 15. Wir betrachten nun den Gaußschen Filter zur Rauschunterdrückung Das Bild, das durch Gaußsches Rauschen mit einem Mittelwert von null und 8 verunreinigt wurde, das mit 5 5 Gaußschen Ausbeuten glättet. Vergleichen Sie dieses Ergebnis mit dem Mittel - und Mittelfilter. Salz - und Pfeffergeräusch ist für einen Gaußschen Filter anspruchsvoller. Hier werden wir das Bild glätten, das durch 1 Salz - und Pfeffergeräusch verfälscht wurde, dh einzelne Bits wurden mit Wahrscheinlichkeit 1 umgedreht Das Bild zeigt das Ergebnis der Gaußschen Glättung mit der gleichen Faltung wie oben Vergleiche dies mit dem Original. Notice, dass viel von dem Rauschen noch existiert und dass, obwohl es in der Größe etwas abgenommen hat, wurde es über eine größere räumliche Region verschmiert worden Die Erhöhung der Standardabweichung verringert weiterhin die Unschärfe der Intensität des Rauschens, dämpft aber auch Hochfrequenz-Details, z. B. Kanten signifikant, wie in. Interaktives Experimentieren gezeigt. Sie können interaktiv mit diesem Operator experimentieren, indem Sie hier klicken. Von der Gaußschen Rauschmittel 0 aus, 13 korrupte Bildpute sowohl mittlere Filter und Gaußsche Filter Glättung bei verschiedenen Skalen, und vergleichen Sie jeweils in Bezug auf Lärmentfernung vs Verlust von Details Wieviele Standardabweichungen vom Mittelwert ein Gaußscher Fall auf 5 seines Spitzenwertes auf Grund hierfür ist eine geeignete quadratische Kerngröße für einen Gaußschen Filter mit dem Äquivalent der Frequenzgang für einen Gaußschen Filter durch Gaußsche Glättung eines Bildes und Wobei er seine Fourier-Transformation sowohl vor als auch nachher durchführt. Vergleichen Sie dies mit dem Frequenzgang eines mittleren Filters. Wie viel Zeit mit einem Gaußschen Filter zu tun hat, vergleicht die Zeit mit einem mittleren Filter für einen Kernel der gleichen Größe In beiden Fällen kann die Faltung durch die Ausnutzung bestimmter Merkmale des Kernels erheblich beschleunigt werden. E Davies Machine Vision Theorie, Algorithmen und Praktiken Academic Press, 1990, S. 42 - 44.R Gonzalez und R Woods Digitale Bildverarbeitung Addison-Wesley Publishing Company , 1992, p 191.R Haralick und L Shapiro Computer und Roboter Vision Addison-Wesley Publishing Company, 1992, Bd. 1, Kap 7.B Horn Robot Vision MIT Press, 1986, Kap 8.D Vernon Maschine V. Ision Prentice-Hall, 1991, S. 59 - 61, 214.Lokale Informationen. Spezifische Informationen über diesen Betreiber finden Sie hier. Mehr allgemeine allgemeine Beratung über die lokale HIPR-Installation ist im Einführungsbereich der lokalen Informationen verfügbar. Bei der Berechnung eines laufenden gleitenden Durchschnitts , Platziert den Mittelwert in der mittleren Zeitspanne ist sinnvoll. Im vorigen Beispiel berechneten wir den Durchschnitt der ersten 3 Zeiträume und platzierten sie neben Periode 3 Wir hätten den Durchschnitt in der Mitte des Zeitintervalls von drei Perioden platzieren können, Das ist, neben der Periode 2 Das funktioniert gut mit ungeraden Zeiträumen, aber nicht so gut für gleichmäßige Zeiträume Also wo würden wir den ersten gleitenden Durchschnitt platzieren, wenn M 4.Technisch würde der Moving Average bei t 2 5, 3 5 fallen Um dieses Problem zu vermeiden, glätten wir die MAs mit M 2 So glätten wir die geglätteten Werte. Wenn wir eine gerade Anzahl von Ausdrücken beurteilen, müssen wir die geglätteten Werte glätten. Die folgende Tabelle zeigt die Ergebnisse mit M 4.

No comments:

Post a Comment