Freitag, 27. April 2012

Evaluationsinterface

Liebe Studenten,
wir haben für Euch unter diesem Link ein Interface zum Vergleichen der Keyframes vorbereitet.


Hier die kurze Anleitung:

Gebt in die entsprechenden Eingabefelder neben dem Videoplayer eine Liste nach dieser Formatierung ein
100 0 1
101 0 1
102 0 1
usw.

Die erste Zahl steht dabei für das Frame des Videos, die letzte für die Video ID selbst.
Die Zahl in der Mitte ist eine selbstgewählte Run ID. Diese spielt aktuell noch keine Rolle. Gebt hier bitte immer 0 ein.

Wenn ihr beide Eigabefelder mit Listen füllt, könnt ihr die Keyframes leicht vergleichen.
Per Klick auf ein Thumbnail springt der Player an die entsprechende Stelle.

Viel Spaß beim Ausprobieren und Vergleichen!

Mittwoch, 25. April 2012

Leistungserfassungskriterien

Wie heute morgen im Seminar angekündigt, hier noch einmal die Leistungserfassungskriterien für das Seminar. Die Note im Seminar ist eine Gesamtnote für die Gruppenleistung. Sie setzt sich aus den folgenden Komponenten zusammen:
  1. schriftliche Seminarausarbeitung, bewertet werden:
    • Vollständigkeit
    • Fehler
    • Detailierungsgrad
    • formale Aspekte (Berücksichtigung der formalen Vorgaben, wie z.B. Umfang, äußere Form, korrekte Zitierweise, etc.)
  2. Seminarpräsentation, bewertet werden bei Zwischen- und Abschlusspräsentation:
    • Slides
    • Vortragsform
    • formale Aspekte (Berücksichtigung der formalen Vorgaben, wie z.B. Vortragszeit)
  3. Zusammenarbeit, bewertet werden:
    • Software und Dokumentation
    • wissenschaftliches Arbeiten (Innovative Lösungsfindung, Eigenantrieb, Darstellung der erzielten Ergebnisse, Sorgfalt, etc.)
Dabei gehen die drei Komponenten im Verhältnis 2:1:1 in die Gesamtnote ein, d.h. die schriftliche Ausarbeitung bestimmt die Hälfte der Gesamtnote.

Zur letzten Konsultation vor der Zwischenpräsentation werden wir Ihnen wie angekündigt bzgl. der Zusammenarbeit jeweils ein gezieltes Feedback geben. Gegen Ende des Semesters werden wir noch vor der Abschlusspräsentation einen Plenumstermin zusammen mit allen Seminarteilnehmern anbieten, in denen wir Ihnen unsere Musterausarbeitung in LaTeX vorstellen und Ihnen in ca. 45 Minuten die Kriterien für das erfolgreiche Abfassen einer wissenschaftlichen Arbeit nahebringen wollen.

Implementierungsaufgabe Keyframe Extraction


Zum Einstieg in den Umgang mit dem OpenCV Framework sollen bis nächste Woche (02.05.2012) zwei einfache Aufgaben zur Keyframe Exraction umgesetzt werden. Basierend auf der automatisch erstellten Segmentierung werden pro Szene ein bis drei Frames als Keyframes extrahiert.

Aufgabe 1:
Die erste naive Methode bezieht sich rein auf statistische Daten. Das heißt, es soll pro Video Segment jeweils der Anfangsframe, Mittelframe und Endframe extrahiert werden.
(Beachten Sie dabei die Schnittlänge...)


Aufgabe 2:
Die zweite Aufgabe bezieht sich auf den Bildinhalt und extrahiert pro Szene genau ein Keyframe. Das resultierende Keyframe beschreibt die minimal Differenz zum Durchschnittsbild der Szene. 
(Überlegen Sie sich dabei, welchen Einfluss die Wahl eines oder mehrerer Farbkanäle bzw. Farbräums auf das Ergebnis haben könnte bzw. probieren Sie es einfach aus...)

Donnerstag, 19. April 2012

Folien

Liebe Studenten,

Sie finden die Folien der bisherigen Termine nun im HPI-Intranet unter: Materialien/Seminar_Multimedia-Analyse-Technologien

Frohes Schaffen!

Wie geht's jetzt weiter ??

Liebe Studenten,

nachdem nun alle technischen und theoretischen Voraussetzungen geklärt sind geht es endlich richtig los ...

Kommende Woche werden wir uns persönlich mit den einzelnen Gruppen treffen (im Büro von Harald Sack, Raum H.39). Den Termin habt ihr euch ja im Doodle ausgesucht.

Es wäre toll, wenn ihr bis dahin folgende Vorbereitungen treffen könntet:
  • OpenCV läuft bei euch.
  • Ihr habt eine Literatur-Recherche begonnen (zum Einstieg haben wir ein paar Arbeiten unter 'Related Work' hinterlegt).
  • Ihr habt evtl. schon ein paar Ideen, die wir diskutieren könnten.

Konsultationstermine Mittwochs

Liebe Seminarteilnehmer,

die Gruppen stehen fest, vielen Dank für Ihre schnelle Rückmeldung!
Für die Festlegung der Uhrzeit der Konsultationstermine (6x á 20min) haben wir ein weiteres Doodle aufgesetzt.

Bitte verständigen Sie sich untereinander über die für Ihre Gruppe ideale Uhrzeit, jeweils am Mittwoch um [09:15 | 09:35 | 09:55 | 10:15 | 10:35 oder 10:55 Uhr] und tragen Sie diese ins Doodle ein.

Falls die 6. Gruppe den 10:55 Termin nicht wahrnehmen kann, bitten wir um eine kurze Rückmeldung und wir vereinbaren einen Alternativtermin am Montag.

Die Umfrage läuft bis Sonntag (22. April 2012)

Dienstag, 17. April 2012

Viel Stoff ...

Morgen früh, zum regulären Seminartermin, gibt es einen hoch-kondensierten Überblick über alle Aspekte der Video-Analyse-Technologien. Beginnend mit einer kurzen Einführung in die Physik des menschlichen visuellen Wahrnehmungssystems werden Farb-Modelle besprochen und es wird erklärt, wie natürliche Bilder überhaupt im Computer repräsentiert werden können. Die JPEG Komprimierung wird Schritt für Schritt erläutert und anschließend wird veranschaulicht, wie MPEG Video-Datenströme aufgebaut sind.
Danach geht es um visuelle Analyseverfahren; von Filtern, Kantendetektion, und morphologischen Operationen bis hin zu komplexen Analysemethoden und maschinellen Lernverfahren.
Abschließend, wenn die Zeit noch ausreicht, wird es eine Demo der Analysekomponenten eines unserer aktuellen Projekte (SEMEX) geben.

Montag, 16. April 2012

Installation OpenCV (Debian Squeeze-amd64)

Heute stellen wir Euch in der ersten Seminarveranstaltung einige Werkzeuge vor, die wir im Seminar verwenden werden. Dazu zählen ffmpeg und die OpenCV. Für verschiedene Betriebsysteme existieren diese Programme/Libraries bereits vorkompiliert. Dennoch ist es häufig nötig sie manuell zu kompilieren. Damit das bei euch möglichst reibungslos klappt, werden wir das heute gemeinsam machen.Hier schon mal im Voraus die Anleitung für Debian Linux (Squeeze 6.0.4).

Prepare local install dir:
  • cd ~
  • mkdir ~/.local
  • cd ~/.local
Download and install ffmpeg:
  • wget http://ffmpeg.org/releases/ffmpeg-0.10.2.tar.bz2
  • tar xjvf ffmpeg-0.10.2.tar.bz2
  • cd ffmpeg-0.10.2
  • ./configure --prefix=/home/username/.local --enable-pic --enable-shared --enable-gpl --enable-nonfree --enable-postproc --enable-version3
  • make
  • make install
Achtung: bei der Angabe des Prefix --prefix darf keine Tilde ~ im Pfad verwendet werden, um z.B. das Home-Verzeichnis zu referenzieren.

Mac User sollten noch -cc=clang angeben.


Update Environment Variables:

Damit OpenCV auch das ffmpeg findet, das ja nicht im System, sondern lokal installiert ist, müssen einige Umgebungsvariablen aktualisiert werden:

in ~/.bashrc:

  • LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/.local/lib
  • export LD_LIBRARY_PATH
  • PKG_CONFIG_PATH=$PKG_CONFIG_PATH:~/.local/lib/pkgconfig
  • export PKG_CONFIG_PATH
in ~/.bash_profile:
  • if [ -f ~/.bashrc ];
  • then
  • source ~/.bashrc
  • fi
einmalig:
  • source ~/.bashrc

Download and install OpenCV:
  • wget http://dfn.dl.sourceforge.net/project/opencvlibrary/opencv-unix/2.3.1/OpenCV-2.3.1a.tar.bz2
  • tar xjvf OpenCV-2.3.1a.tar.bz2
  • cd OpenCV-2.3.1
  • mkdir build
  • cd build
  • cmake -D CMAKE_INSTALL_PREFIX=~/.local ../
  • make
  • make install
Damit ist die installation abgeschlossen. Hier nun ein kleines Beispielprogramm, das aus einem Video jedes 100ste Frame auf die Festplatte schreibt:

    #include <iostream>
    #include <string>
    #include <opencv2/opencv.hpp>

    int main(int argc, char** argv) {
         cv::VideoCapture capture(argv[1]);
         if(!capture.isOpened())
              return -1;
         cv::Mat frame;
         int frameCnt = 0;
         while(1){
              if(!capture.read(frame))
                   break;
              if (frameCnt % 100 == 0) {
                   std::stringstream ss;
                   ss << "frames/" << frameCnt << ".jpg";
                   std::string filename = ss.str();
                   cv::imwrite(filename, frame);
              }
              ++frameCnt;
         }
         std::cout << "Extracted " << frameCnt << " frames from videofile " << argv[1] << std::endl;
    }
Das Projekt kann dann kompiliert werden via:
  • g++ `pkg-config --cflags opencv` frameextractor.cpp -o frameextractor `pkg-config --libs opencv`

Mittwoch, 11. April 2012

Team Formation

Liebe Studenten, bitte findet euch per Doodle zu Gruppen zusammen. Die Gruppen sollten zwei oder drei Studenten umfassen. Die endgültige Gruppeneinteilung erfolgt dann zum übernächsten Seminartermin (18.04.).

Montag, 9. April 2012

Los geht's...


Eadward Muybridge,
The Horse in Motion, 1878

Am Mittwoch nach Ostern startet unser diesjähriges "Multimedia Analyse Technologien" (Bachelor-) Seminar am 11.04.2012 um 9.15 Uhr in A-1.1.

Diesmal wird sich das Seminar thematisch um die visuelle inhaltliche Zusammenfassung von Videodaten drehen. Dazu versucht man eine Art visuelles Inhaltsverzeichnis des Videos aus relevanten Einzelbildern (Keyframes) zu erzeugen. Aber wieviele von diesen Keyframes benötigt man, um den Inhalt eines Videos zu beschreiben? Benötige ich für jede Szene eines oder mehrere, reichen ein, zwei oder drei Keyframes aus? Gute Frage. Und nach welchen Kriterien sollen diese Keyframes ausgewählt werden? Geht es dabei nur um Statistik? Welchen Einfluss haben bestimmte visuelle Faktoren? Gibt es bestimmte dramaturgische Regeln, nach denen eine inhaltliche Zusammenfassung eines Videos erstellt werden sollte?

Es geht also um die folgenden Themengebiete:

  • (zeitbezogene) strukturelle Analyse von Videodaten
  • effiziente Extraktion von visuellen Bildeigenschaften (Features)
  • Aggregation von Low-level Features zu semantischen Abstraktionen
  • Aufstellen dramaturgischer Regeln zum Erstellen visueller Inhaltsverzeichnisse
  • neue Ideen zur Umsetzung der gestellten Aufgabe...

Um das Ganze auch noch spannender zu machen, werden wir am Mittwoch das Seminarthema als "Challenge" präsentieren, in der die einzelnen Seminar-Projektteams gegeneinander antreten werden.

Am Mittwoch erwartet Sie also folgendes:

  • Vorstellung des Seminarthemas und der Betreuer
  • Administratives 
  • Informationen zum Ablauf des Seminars
  • Informationen zur Leistungserfassung im Seminar

In der zweiten Seminarwoche werden wir die Projektteams festlegen und Ihnen eine allgemeine/technische Einweisung in das Themengebiet und den dabei einzusetzenden Technologien geben. Ab der dritten Seminarwoche werden wir uns mit den Projektteams immer in Einzel-Konsultationen (je ca. 20-30 Minuten) zusammensetzen. Hier sind wir terminlich dann auch etwas flexibler, falls es kollidierende zeitliche Rahmenbedingungen geben sollte.

Also....bis Mittwoch...Wir freuen uns auf Sie!

Donnerstag, 5. April 2012

Multimedia Analyse Techniken

Multimedia dominiert heute das Internet und ist verantwortlich für dessen enorme Popularitä̈t. Videoportale wie YouTube, sevenLoad, hulu oder auch yovisto.com stellen dies tagtäglich unter Beweis. Multimedia Datenbanken sind häufig auf textuelle Metadaten angewiesen, die deren Inhalte beschreiben.

Semantische Videosuchmaschinen sollten schnell einen Überblick über die gefundenen Filme liefern - also ein visuelles Inhaltsverzeichnis bereitstellen. Aber was zecihnet einen Film aus? Welches sind die wichtigsten Szenen, aus denen Standbilder in das visuelle Inhaltsverzeichnis übernommen werden sollten?

Das Seminar 'Multimediale Analyse Technologien' untersucht und erprobt Verfahren und Methoden zur automatischen Keyframe-Extraktion in Videos verschiedener Genres:

  • Feature-Film
  • Stummfilm
  • Sport
  • Nachrichten
  • Interview
  • Dokumentation
  • Animation
  • Vorlesung
  • Timelapse
  • Musikvideo

Seminarinhalte
  • Keyframe-Extraktion mithilfe analytischer Verfahren bzw. maschinellen Lernens
  • Genre Detection
  • Evaluationsverfahren
Allgemeine Informationen und Termine
 
Montag, 13:30 – 15:00, A-1.1
Mittwoch, 9:15 – 10.45 Uhr, A-1.1
SWS / Belegungspunkte: 4 / 6.0 (benotet)

Leistungserfassung
  • Schriftliche Ausarbeitung zum Vortragsthema
  • Umsetzung einer vorgegebenen Implementierungsaufgabe
  • Präsentation der Ergebnisse