Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Gesichtserkennung in Kamera-Streams<br />
Inhalt<br />Bild-Vor- und Bearbeitung auf der GPU<br />Einstieg Biometrische Erkennung und Gesichter<br />ElasticBunch Gra...
OpenCL Platform Model<br />One Host + one or more Compute Devices<br />Each Compute Device is composed of one or more Comp...
Kernel Execution<br />Total number of work-items = Gx * Gy<br />Size of each work-group = Sx * Sy<br />Global ID can be co...
Compute Unit 1<br />Compute Unit N<br />OpenCL Memory Model<br />Private Memory<br />Private Memory<br />Private Memory<br...
Memory Objects<br />Buffer objects<br />1D collection of objects (like C arrays)<br />Scalar types & Vector types, as well...
OpenCL C Language Restrictions<br />Pointers to functions not allowed<br />Pointers to pointers allowed within a kernel, b...
Bildverarbeitung auf der Grafikkarte<br />Mögliche Vorverarbeitungsschritte auf GPU<br />Kontrast- und Helligkeitsanpassun...
Bildverarbeitung - Invertierung<br />Einfaches Beispiel: Invertierung<br />Nutzung einer Zwischenklasse zur Kapselung vers...
Bildverarbeitung - Invertierung<br />Ergebnis ! Und das mit min. 4-facher Geschwindigkeit als mit C+OpenMP !<br />
Bildverarbeitung – Rekursive Filter<br />Filterung (Kanten, Rauschen) als Matrix-Operation sehr gut für GPU geeignet<br />...
Bildverarbeitung – Rekursive Filter<br />Erklärung des Algorithmus<br />Transposed Image<br />Work-Items<br />Work-Items<b...
Einstieg Biometrische Erkennung und Gesichter<br />Biometrische Verfahren – 2 Phasen<br />Enrollment (Training): Training ...
Upcoming SlideShare
Loading in …5
×

Gesichtserkennung in Kamerastreams

1,530 views

Published on

Vortrag zur Bildbe- und verarbeitungauf der Grafikkarte mit Hilfe von OpenCL. Hintergrund ist die Bildvorverarbeitung und Verbesserung zur bei Gesichtserkennungsverfahren zur Erhöhung der Wiedererkennungsrate.

  • Be the first to comment

  • Be the first to like this

Gesichtserkennung in Kamerastreams

  1. 1. Gesichtserkennung in Kamera-Streams<br />
  2. 2. Inhalt<br />Bild-Vor- und Bearbeitung auf der GPU<br />Einstieg Biometrische Erkennung und Gesichter<br />ElasticBunch Graph Matching<br />Eigenface und Eigenspace<br />Eigenes Gesichtserkennungsprogram<br />
  3. 3. OpenCL Platform Model<br />One Host + one or more Compute Devices<br />Each Compute Device is composed of one or more Compute Units<br />Each Compute Unitis further divided into one or more Processing Elements<br />
  4. 4. Kernel Execution<br />Total number of work-items = Gx * Gy<br />Size of each work-group = Sx * Sy<br />Global ID can be computed from work-group ID and local ID<br />
  5. 5. Compute Unit 1<br />Compute Unit N<br />OpenCL Memory Model<br />Private Memory<br />Private Memory<br />Private Memory<br />Private Memory<br />Local Memory<br />Local Memory<br />Work Item 1<br />Work Item M<br />Work Item 1<br />Work Item M<br />PE<br />PE<br />PE<br />PE<br />Global / Constant Memory Data Cache<br />Compute Device<br />Address spaces<br />Private - private to a work-item<br />Local - local to a work-group<br />Global - accessible by all work-items in all work-groups<br />Constant - read only global space<br />Global Memory<br />Compute Device Memory<br />
  6. 6. Memory Objects<br />Buffer objects<br />1D collection of objects (like C arrays)<br />Scalar types & Vector types, as well as user-defined Structures<br />Buffer objects accessed via pointers in the kernel<br />Image objects<br />2D or 3D texture, frame-buffer, or images<br />Must be addressed through built-in functions<br />Sampler objects<br />Describe how to sample an image in the kernel<br />Addressing modes<br />Filtering modes<br />
  7. 7. OpenCL C Language Restrictions<br />Pointers to functions not allowed<br />Pointers to pointers allowed within a kernel, but not as an argument<br />Bit-fields not supported<br />Variable-length arrays and structures not supported<br />Recursion not supported<br />Writes to a pointer of types less than 32-bit not supported<br />Double types not supported, but reserved<br />3D Image writes not supported<br />Some restrictions are addressed through extensions<br />
  8. 8. Bildverarbeitung auf der Grafikkarte<br />Mögliche Vorverarbeitungsschritte auf GPU<br />Kontrast- und Helligkeitsanpassung<br />Gamma-Skalierung<br />(punktweise) Histogramskalierung<br />Tiefpassfilter (FFT) / Glättung<br />Schärfung<br />Rausrechnen von Vignettierung<br />…<br />
  9. 9. Bildverarbeitung - Invertierung<br />Einfaches Beispiel: Invertierung<br />Nutzung einer Zwischenklasse zur Kapselung verschiedener GPGPU-Technologien<br />Anlegen einer Kommandowarteschlange<br />Laden der Funktion aus Code-String in die Kernels<br />Erstellen der Datenpuffer für Ein- und Ausgabebild<br />Kopieren der Eingangsbilddaten in globalen GPU-Puffer<br />Setzen der Kernelargumente und Ausführen des Kernels<br />Kopieren des GPU-Out-Puffers in neue Bilddaten<br />
  10. 10. Bildverarbeitung - Invertierung<br />Ergebnis ! Und das mit min. 4-facher Geschwindigkeit als mit C+OpenMP !<br />
  11. 11. Bildverarbeitung – Rekursive Filter<br />Filterung (Kanten, Rauschen) als Matrix-Operation sehr gut für GPU geeignet<br />Portierung von variablen Filtern auf GPU schwierig<br />Keine variable Filterbreite, da dazu Rekursion nötig (oder man verliert Geschwindigkeits-vorteil)<br />Daher: Feste Filterbreite und variable Filterstärke<br />Beispiel: Portierung des 3x3-Gaußfilters mit variablem Sigma<br />Nötig dafür: „Quasi-Rekursivität“<br />
  12. 12. Bildverarbeitung – Rekursive Filter<br />Erklärung des Algorithmus<br />Transposed Image<br />Work-Items<br />Work-Items<br />GPU-for<br />GPU-for<br />Work-Groups<br />Work-Groups<br />BLUR<br />Kernel variabel/flexibel<br />
  13. 13. Einstieg Biometrische Erkennung und Gesichter<br />Biometrische Verfahren – 2 Phasen<br />Enrollment (Training): Training eines biometrischen Systems mit Beispiel-Datensätzen<br />Recognition (Erkennung): getrennt in „Identifikation“ und „Verifikation“<br />2 Hauptkategorien für Gesichtserkennung:<br />Konzentration auf Bildaspekte (Bildähnlichkeiten, Bildmerkmale)<br />Konzentration auf biologische/biometrische Aspekte<br />

×