Die Bestimmung des Optical Flow aus Bildsequenzen

Slides:



Advertisements
Ähnliche Präsentationen
Powerpoint-Präsentation
Advertisements

Imperative Programmierung
Rekursion: Rekurrenz: Algorithmen rufen sich selbst (rekursiv) auf.
Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Suche in Texten (Stringsuche )
3. Kapitel: Komplexität und Komplexitätsklassen
Kapitel 3: Listen Lineare Liste: endliche Folge von Elementen eines Grundtyps (n>=0), leere Liste falls n=0 Listenelemente besitzen.
5. Sortier-Algorithmen Vorbemerkungen:
A Model of Saliency-Based Visual Attention for Rapid Scene Analysis
Faltung Entfaltung Bestimmung der (unbekannten) Funktion f aus den (bekannten) Funktionen h und g. Bezeichnung h(x) … Messdaten f(y) … Physikalisches Profil.
C.M. Presents D.A.R. und Ein Bisschen dies und das!
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Dynamische Programmierung (2) Matrixkettenprodukt
Prof. Dr. S. Albers Prof. Dr. Th. Ottmann
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Prof. Dr. S. Albers Prof. Dr. Th. Ottmann
Halbzeit: Kurze Wiederholung
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen Halbzeit: Was haben wir bisher gelernt? Prof. Th. Ottmann.
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Beispiele für Gleichungssysteme
Zusammenfassung Vorwoche
Thorsten Jost INF-M2 – AW1 – Sommersemester Mai 2008
Special Effects Realistischeres Rendern einer Scene.
Matrix Multiplication on CUDA
Gymnasium Horn – Bad Meinberg
Seminar: Informationstechnik in der Medizin Universität Dortmund Skin Detection Fakultät für Elektrotechnik und Informationstechnik Lehrstuhl für Kommunikationstechnik.
Effiziente Algorithmen
Programmierung paralleler Algorithmen mit MPI
Splay Trees Von Projdakov Benjamin.
Die t-Verteilung und die Prüfstatistik
zur Präsentation vom Vergütungssystem
Präsentation #1 2 x 2 = 4.
Multiplikation großer Zahlen mit Standard-FFT
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/ /23.1.
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Polynome und schnelle Fourier-Transformation
Dynamische Programmierung mit Anwendung auf Sequence Alignment Problem
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Bestimmen von Prozentwert, Grundwert und Prozentsatz
Technische Informatik Reihungen – Felder - Arrays.
AES – Advanced Encryption Standard
Wir helfen Menschen, wie Ihnen ein glückliches und vitales Lebensgefühl zu erreichen. Sie sind auf der Suche nach Ihrer Wunschfigur und Sie haben den Glauben.
Scaffold 29S: Komplexe Zahlen
Methoden Die klassische Methode der Psycholinguistik (genauso wie der experimentellen Psychologie im Allgemeinen) ist die Messung von Reaktionszeiten.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
The PicSOM Retrieval System 1 Christian Steinberg.
GAME PROGRAMMING PATTERNS – FLYWEIGHT & OBSERVER Robert Nystrom Softwaretechnologie II Teil 2 Anike Schulz.
Pointer. Grundsätzliches: Im Arbeitsspeicher werden Daten gespeichert. Um auf die Daten eindeutig zugreifen zu können, werden diesen Daten Adressen zugeordnet.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Hilfs-Indikator Indikator
 Präsentation transkript:

Die Bestimmung des Optical Flow aus Bildsequenzen Busa Fekete Robert Horvath Peter

Die Algorithmen

Was bedeutet eigentlich: Optical Flow? Optical Flow: Vektoren, die die Bewegungen zwischen 2 Bildsequenzen zeigen

Bestimmung maximal 1 Pixel großer Bewegungen

Wie könnte man die Bewegungen detektieren, die größer sind als 1 Pixel Verkleinert man das Bild, dann werden auch die Bewegungen im Bild verkleinert, zB. ist die 2 Einheiten große Bewegung im oberen Bild im unteren Bild, das nur halb so gross ist, nur noch 1 Einheit groß.

Aufbau der Pyramide Den vorherigen Gedankengang fortführend: wenn man das Bild n-mal verkleinert, dann würden die 2n großen Bewegungen im n-sten Bild nur noch 1 groß sein. Also wenn wir wissen, dass es maximal n große Bewegungen gibt, dann müssen wir log2 n Stück Bilder fertigen.

Anfertigung der Pyramide 1. Als Maske benutzen wir die normal verteilte Gauss 2D Standard Matrix (die Summe der Einträge der Matrix ist auf 1 normalisiert). Am schnellsten funktioniert es, wenn wir 3x3 große Matrix anwenden, aber ich empfehle die Größe 5x5 oder 7x7.

Anfertigung der Pyramide 2. Wir koennen auf folgende Weise von einem 2n+1 x 2n+1 großen Bild eines der Größe n+1 x n+1 erzeugen.

Backwards- Strategie 1. Vom kleineren OF der Pyramide können wir das größere so aufbauen: 1. Man verdoppelt die Vektoren 2. Die (2i, 2j), (2i+1, 2j), (2i, 2j+1), (2i+1, 2j+1)-sten Vektoren des großen OF bekommen den Wert des Doppelten der Größe des (i, j)-sten Vektors des kleinen OF.

Backwards- Strategie 2. 3. Verfeinerung: Suche der maximal 1 Pixel großen Bewegung. Wir haben grobe Schätzungen hinsichtlich der Bewegungen. Jetzt wird dies verfeinert mit Hilfe der früher gezeigten Methode.

Mehr als zwei Sequenzen Wenn wir mehr als zwei Sequenzen haben, dann kann bei der Anfertigung des n+1-sten Bildsequenzes das n-ste helfen. Wenn die Sequenzen einander zeitlich häufig folgen, werden mit großer Wahrscheinlichkeit die Vektoren der Bewegungen im n-sten Bild nur etwas abweichen von denen im n+1-sten Bild.

Homogene Gebiete Der Algorithmus kann in seinem gegenwärtigem Stand nicht zur Detektierung homogener Gebiete benutzt werden (zB.: rote Schnee fällt im roten Hintergrund  ), in solchen Fällen erachten wir es als eine gute Lösung, wenn hierbei der Wert der Bewegung 0 ist. Deshalb wird die 3x3 Matrix vor der Aussiebung des Minimums mit einer N(0.0, 3.0) Standard normal verteilten Gauss Matrix multipliziert. Dies beeinflusst in derart geringem Maß die Untersuchung der nicht homogenen Gebiete, dass es in der Praxis keine Probleme bereitet, trotzdem werden die homogene Gebiete gut ausgefiltert.

Glätten 1. Zwecks Beseitigung der auftretenden Fehler glättet man die Vektoren zu ihrer Umgebung. Mehrere solche Methoden können angewandt werden, z.B.: 3x3 Maske: Man benutzt im gegenwärtigen Algorithmus die früher vorgestellte Gauss N(0.0, 1.5) Matrix in der Größe 5x5.

Glätten 2. OF ohne Erweichung: Erweichte OF:

Paralelle Rechnungen Weil jede Operation nur lokale Bildinformationen benutzt, so koennen wir die Algorithme auf paralelle Rechner implementieren. Also mit Hilfe der Pixel paralelle Rechnungen kann man die Prozesse verschnellern.

Laufzeit Laufzeit: Aufbau der Pyramide: Backwards-Strategie: Erweichung: Insgesamt:

Erneuerungen Gauss Pyramide Homogene Bereiche Erweichung

Implementation

Das gegenwärtige System ANSI C++ Unter Windows entwickelt, aber nur mit Verwendung von Standard Headers, so ist es platformunabhängig Es behandelt Portable Grayscale Map (.pgm 8 bit) und Portable Pixel Map (.ppm 24 bit color) Bilddaten Erreichbar: http://www.stud.u-szeged.hu/Horvath.Peter.3

Class Diagramm

CGaussMatrix class CGaussMatrix::CGaussMatrix(int size, double muf, double sigmaf) { ... const1 = 1 / (sqrt(2*M_PI)*sigma); for (i=0;i<size;i++){ for (j=0;j<size;j++){ tav = sqrt((-((size-1)/2)+i)*(-((size-1)/2)+i)+(-((size-1)/2)+j)*(-((size-1)/2)+j)); Elements[i][j] = const1 * exp( - ( ( (tav - mu)*(tav - mu) ) / (2*sigma*sigma) )); } i=0; norm += Elements[i][j]; Elements[i][j] *= (1/norm); printf("CGaussMatrix class (new Gaussmatrix %d x %d): succesfull...\n", size, size);

CImagePyramid Class CImagePyramid::CImagePyramid(char *FileName, int Depth, int GaussSize) { ... if (Depth > 0){ for (int i = 1; i < Depth; i++){ sx = sx >> 1; sy = sy >> 1; if (sx < 1) sx = 1; if (sy < 1) sy = 1; Pyramid[i] = new CPMImage(sx, sy); } for(int i = 0; i < Depth-1; i++){ for (incX = 0; incX < Pyramid[i]->GetSizeX(); incX+=2){ for (incY = 0; incY < Pyramid[i]->GetSizeY(); incY+=2){ tmpr = 0.0; tmpg = 0.0; tmpb = 0.0; for (GaussX = - GaussSize / 2; GaussX < GaussSize / 2 + 1; GaussX++){ for (GaussY = - GaussSize / 2; GaussY < GaussSize / 2 + 1; GaussY++){ r += (double)(Pyramid[i]->GetPixel(incX + GaussX, incY + GaussY) & 0x0000FF) * Gauss->GetXY(GaussX, GaussY);

Experimentelle Ergebnisse

Testumgebung Rechner: PIII Celeron 1200Mhz CPU, 128 Mb RAM Bildgröße Laufzeit (s) 3x3 Gauss 7x7 Gauss 256x256 15.85 17.34 512x512 61.49 70.17

Experiment 1. Rotation (3 Grad nach links):

Experiment 2. Verschiebung (x->5 pixel, y->3)

Experiment 3. Scale (103%)

Referenzen

Referenzen [1] P. J. Burt and E. H. Adelson: The Laplacian Pyramid as a Compact Image Code [2] P. Anandan: A Comutational Framework and an Algorithm for the Measurement of Visual Motion [3] P. Bouthemy and E. Francois: Motion Segmentation and Qualitative Dynamic Scene Analysis from an Image Sequence [4] T. Lin J. L. Barron: Image Reconstruction Error for Optical Flow