Computer Science, 2017-05-24

Module: 
Computer Science
Examiner: 
Ulf Krumnack & Vornberger
Assessor: 
Ulf Krumnack & Vornberger
Date: 
Wed, 2017-05-24

Kurse: Info A + Computer Vision

COMPUTER VISION
Da CV auch für das Info Modul zählt, ist diese Kombination möglich. Ich hatte Ulf Krumnack im Vorhinein angesprochen ob er bereit wäre zu prüfen und das war er; zudem war es seine erste mündliche Prüfung.

Inhaltlich hatten wir vereinbart dass mich auf Lecture 10-12 (Template Matching, Pattern Recognition und Local Features) spezialisere, allerdings einen "groben Überblick" von allem haben sollte.

Fragen:

Fangen wir mal leicht an: Template Matching, was ist das denn?
-> Model based top down approach, sliding predefined template over image and compute similiarity based on a metric. One of the metric we used is Mean Absolute Difference.

Unterbricht. Can you provide a formula?
-> Aufgeschrieben. Gesagt, dass wir das Template mean subtracten. Kurz Vor- + Nachteile genannt (nicht rotation,scale, grey value shift invariant, anders als CC). Gesagt, dass wir bei CC einfach den Pearson Korrelationskoeffizient berechnen aus der deskriptiten Statistik.
Unterbricht. Can you provide a formula?
--> Aufgeschrieben. Erzählt, was Vor- und Nachteile sind, erzählt welche Werte gut sind (1, -1).

What type of operator is Template Matching?
Das war eine Frage die tatsächlich Wissen über andere Vorlesungen verlangte, weil ja die ganzen Operatoren (local, global, point, linear, homogeneous) relativ am Anfang definiert werden. Hatte mir diese Frage vorher nie gestellt, hab dann gesagt, dass es local und homogeneous ist, er hat dann explizit gefragt, ob es linear ist. Da war ich mir unsicher und habe gesagt, ich tendiere zu ja, weil CC ja quasi ne Convolution (linear) ist, meinte aber auch dass ich bei MAD nicht ganz sicher bin, wegen dem Betrag. (Ist natürlich nicht linear wegen der Betragsfunktion, war mir aber in der Drucksituation nicht direkt klar).

Okay, let's change the topic, what are local features? Characteristic, salient parts of objects. Instead of defining an object by a template, we can define it as a set of local features. Dann Vorteile genannt (less likely to be occluded, robust against disruptions).

And how can I extract local features and make sense of them?
Das war bewusst als offene Fragen formuliert, habe gefragt, ob ich SIFT beschreiben soll, aber es ging ihm ums Allgemeine. Habe gesagt, um IPs aus dem Bild zu extrahieren muss man ein saliency measurement definieren, dass quasi "local feature" oder "IP" definiert. Üblicherweise sind das eben Maxima in Gradientenbildern. Dann gesagt, dass man optimalerweise auf mehreren Ebenen sucht (Skaleninvarianz). Jetzt braucht man natürlich eine eindeutige Quantifizierung des Featurers, das geschieht über Descriptors (Feature Vectors). Dieser Vektor kann zum Beispiel die Richtung und Intensität der Gradienten in der lokalen Umgebung eines IP beschreiben. Optimalerweise sind die Gradientenrichtungen dann relativ zur Orientierung des IP selbst, damit der Descriptor rotationsinvariant ist. Der Vektor kann dann als Punkt in einem hochdimensionalen Raum verstanden werden (SIFT 128) und wir können einen neu entdeckten Deskriptor dann via Euclidean distance mit gelabelten Deskriptoren aus einer Datenbank vergleichen um mögliche Schlüsse über die Entität eines local features zu ziehen.

And how are IPs actually detected in SIFT?
Habe den scale space nicht erklärt, sondern nur, dass pro Octave jeweils DOGs zwischen adjazenten scaling levels (also Gaussblurrings mit unterschiedlichem sigma) gebildet werden. In diesen DOGs wird dann nach lokalen Maxima gesucht und zwar in der 3D Neighborhood (3^3 -1 Vergleiche). Das Resultat ist eine Menge an IP candidates, von denen wir jetzt noch die besonders stabilen auswählen müssen. (Wenn man sich die IP candidates bei SIFT mal plottet sieht man dass das echt unfassbar viele sind.)
Zur Elimierung gibt es 2 Verfahren, zum einen werden diejenigen candidates, deren lokalen Maxima/Minima im Absolutbetrag unterhalb einer Schwelle liegen, gelöscht - weil sie nicht salient genug sind. Als zweites, etwas "more sophisticated" Verfahren versucht man wie beim Harris Corner detector die Hessematrix an jedem IP Kandidaten zu approximieren, indem man die Gradienten in x und y Richtung betrachtet. Habe dann kurz die Hessematrix hingeschrieben und gesagt, dass wir jetzt an den Eigenwerten interessiert wären weil die uns etwas über die Hauptkrümmungen/principal curvatures der Gradienten sagen. Daher 2 große EV -> 2 starke Krümmungen -> Ecke -> interessant. Wohingegen: 1 großer + 1 kleiner EV -> eine starke Krümmung (entgegen der Kante) und eine schwache (entlang der Kante). Dann gesagt, dass es in SIFT ja so ist, dass nur Ecken zugelassen, Kanten aber verworfen werden. EV müssen also beide groß sein.

And why are edges rejected in SIFT?
Da stand ich relativ auf dem Schlauch. Hab gesagt, dass Lowe in seinem Paper SIFT eben so implementiert hat und das ja auch in accordance mit dem Harris Corner Detector ist und irgendwas gefaselt, dass es bei Ecken weniger wahrscheinlich ist als bei Kanten, dass sie durch view transforms oder occlusion so verzerrt werden, dass sie nicht mehr wieder erkannt werden, aber das war geraten. Wurde aber als Antwort akzeptiert.

INFO A:
Für Info A liste ich mal nur die Fragen, Antworten gibt es ja hinreichend.
- Was ist ein Graph?
- Erklären Sie mal den Chinese Postman (inklusive Floyd, Matching)
- Was für Probleme kennen Sie sonst am ungerichteten Graphen --> Minimaler Spannbaum --> Kruskal Algo --> Heap
- Welche Methoden hat der Heap? Wie lange dauert es den zu initialisieren?

STIMMUNG:
Im Allgemeinen war die Stimmung ernst und sachlich, aber in einem freundlich wohlwollenden Sinne. Fande ich auch ehrlich gesagt der Situation eher angemessen als eine betont lockere Stimmung. Nach der Prüfung wude etwa 30 Sek beraten und dann die Note mit den Worten "Gab's ja nichts zu diskutieren, wir haben Ihnen ne 1.0 verpasst" verkündet.
Danach noch die üblichen Fragen wie es jetzt weitergeht etc.