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 ...
Nächste SlideShare
Wird geladen in …5
×

Gesichtserkennung in Kamerastreams

1.350 Aufrufe

Veröffentlicht am

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.

Veröffentlicht in: Bildung, Technologie, Kunst & Fotos
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.350
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
4
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

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 />

×