Dienstag, 2. Oktober 2012

Semantics and Media Analysis @tele-TASK Symposium

Im Rahmen des 6. tele-TASK Symposiums am HPI (www.tele-task.de/symposium) werden am 9. Oktober neben Harald Sack auch Raphael Troncy und Olivier Aubert über das Thema "Semantics and Media Analysis" in Videos sprechen. Das versprechen sehr interessante Vorträge zu werden die natürlich mit Hinblick auf unser vergangenes Seminar auch für euch spannend sind! Daher seid ihr herzlich eingeladen, euch die Vorträge anzusehen!

Noten

Nach ausführlicher Begutachtung eurer Seminararbeiten und des Quellcodes liegen die Noten für das Seminar jetzt bei Frau Pamperin zur Einsichtnahme.

Mittwoch, 4. Juli 2012

Abgabe der lauffähigen Programme

Da wir bis Mittwoch nächster Woche zur Abschlusspräsentation die Evaluation durchgeführt haben müssen (letztmöglicher Termin in diesem Semester), müssen wir die Abgabe eurer Software leider vorziehen:

Freitag, 6.7.2012, 12Uhr

Wir wissen natürlich, dass euer Code zu diesem Zeitpunkt noch nicht perfekt sein wird, es reicht für den Freitag, wenn alles robust läuft und wir zwei Videos auf unseren Debian Servern durchlaufen lassen können. Zeit fürs Refactoring und für saubere Dokumentation habt ihr dann noch bis zur Abgabe der Seminarausarbeitung (10.8.2012).

Montag, 2. Juli 2012

Mittwoch, 27. Juni 2012

Evaluation der Keyframeextraktion

Am Ende des Seminars sollen die Ergebnisse aller Gruppen untereinander verglichen werden. Hierfür werden wir euch ein Tool bereitstellen, mit dessen Hilfe jeder Seminarteilnehmer die Ergebnisse aller Gruppen evaluiert.

Es wird 3 Evaluationstasks geben:
  1. (Task 1) Videozusammenfassung
    • Ein vorgegebenes Video soll durch eine beliebige Anzahl an Keyframes bestmöglich zusammengefasst werden. Im Evaluationstool sollen die Ergebnisse nach den Kriterien 'Redundanz' und 'Reproduzierbarkeit der Handlung' miteinander verglichen und bewertet werden.
  2. (Task 2) Segmentzusammenfassung
    • Ein vorgegebenes Videosegment soll durch eine beliebige Anzahl an Keyframes bestmöglich zusammengefasst werden. Im Evaluationstool sollen die Ergebnisse nach den Kriterien 'Redundanz' (bei >1 Keyframes pro Segment) und 'Reproduzierbarkeit der Handlung' miteinander verglichen und bewertet werden.
  3. (Task 3) Keyframequalität
    •  Jedes Segment eines vorgegebenen Videos soll durch ein Keyframe repräsentiert werden. Die Keyframes aller Gruppen zu einem Segment werden nach den Kriterien 'Schärfe', 'Vollständigkeit' und 'Informationsgehalt' miteinander verglichen und bewertet.
Euer Keyframe Extraction-Tool muss auf einem Debian 6.0 System stabil laufen. Die OpenCV in der Version 2.3.1 ist dort vorinstalliert. Solltet ihr zusätzliche Bibliotheken benötigen, meldet euch bitte rechtzeitig vorher.

Euer Programm erhält als Input ein (bisher unbekanntes) Video und die zugehörige Schnittliste. Letztere könnte, aber müsst ihr nicht nutzen, insbesondere bei der Videozusammenfassung kann es sinnvoll sein, mehr als nur ein KF pro Segment zu wählen oder Segmente garnicht zu berücksichtigen. Solltet ihr mehr als ein KF pro Segment zurückgeben, fügt eurer Ergebnisliste bitte die priority des Keyframes für das Segment hinzu (zur Evaluation der Keyframequalität wählen wir pro Segment das Frame mit der höchsten priority aus). Der Wert für die priority liegt in [0.0;1.0].

Die Ergebnisse schreibt bitte in ein Textfile mit folgendem Format:

keyframe run_id video_id priority

Solltet ihr hierzu Fragen haben, stellt diese bitte über die Kommentarfunktion des Blogs, damit wir sie gleich für alle Gruppen beantworten können!

Verfassen wiss. Arbeiten

Wie ihr wisst, soll am Ende des Seminars von allen Gruppen eine Abschlussarbeit zu den gewählten und implementierten Keyframe-Extraktionstechniken geschrieben werden. Als Basis dient ein Latex-Template für ein wissenschaftliches Paper, welches wir euch zur Verfügung stellen werden.
Zusätzlich bieten wir einen Sondertermin an, zu dem wir euch zeigen, wie man eine wissenschaftliche Arbeit verfasst:

Montag, 2.7.2012, 13:30 – 15:00, A-1.1


Donnerstag, 14. Juni 2012

Termin für Abschlusspräsentation und Code-Abgabe

Da das Semesterende nicht mehr sehr weit weg ist, haben wir einen Termin für die Abschlusspräsentation festgelegt:

Mittwoch, 11.7.2012, 9-11Uhr

Der Raum wird noch bekannt gegeben. Diesmal habt ihr etwas mehr Zeit pro Vortrag: 15Minuten mit anschließender Diskussion pro Team.

Damit wir bereits am Mittwoch wissen, ob eure Software läuft, bitten wir euch, den Code als Debian-6.0-kompilierfähige Version (inklusive Build-Anleitung) bis spät. Montag, 9.7.2012 Freitag, 6.7.2012, 12Uhr (Mittags) bei Jörg oder Christian abzugeben.

Dienstag, 5. Juni 2012

Raum für Zwischenpräsentationen

Wir treffen uns morgen
9 Uhr 
im 
Raum A-1.1

Seid bitte pünktlich, damit wir die Zeiten einhalten können!
Bis morgen!

Mittwoch, 23. Mai 2012

[UPDATE] Termin Zwischenpräsentation

Wie heute diskutiert müssen wir den Termin für die Zwischenpräsentation verschieben. Der neue Termin ist der

Mi, 6.6.2012, 9:15-11:15

Es gibt ein Doodle, wo ihr eure bevorzugte Zeit reservieren könnt (pro Gruppe). Geplant sind 10min Vortrag und 5min anschließende Diskussion/Feedback: http://www.doodle.com/myccnywfag9inaip

Damit verschiebt sich natürlich auch das Grillen um eine Woche - das alte Doodle bleibt, nur das Datum ändert sich auf den 6.6.: http://www.doodle.com/wq6guvey8yq8tbfd

Wie bereits besprochen wird es im Seminar eine Zwischenpräsentation geben, die es Euch ermöglicht, Euren aktuellen Stand zu präsentieren. Dazu haben wir folgenden Termin ausgewählt:

Mi, 30.5.2012, 9:15-11:15

Die Präsentation wird einen Umfang von 10 Minuten haben. Inhalte sollen sein:
  • Beschreibung der Aufgabenstellung
  • vorgeschlagene Idee/Ansatz zur Lösung des Problems
  • aktueller Stand der Arbeiten
  • was sind die nächsten Schritte
Wir möchten Euch bitten, Euch an die vorgegebene Zeit zu halten!!
Es wäre gut, wenn trotz der knappen Zeit jeder im Team zu Wort kommt.
Fragen zur Präsentation beantworten wir gern noch während des nächsten Seminartermins (23.5.).

Um den ersten Meilenstein des Seminar mit euch zu feieren, laden wir Euch zum Grillen am Nachmittag der Zwischenpräsentation ein (ab 16:30 auf dem Grillplatz hinter dem Haupthaus).
Da vermutlich nicht alle können und wir ein bischen planen müssen, tragt euch bitte in folgendes Doodle ein:
http://www.doodle.com/wq6guvey8yq8tbfd

Donnerstag, 3. Mai 2012

Schnittgrenzen Update

Bitte beachten Sie, dass die Schnittgrenzen automatisch erstellt wurden, d.h. sie sind möglicherweise nicht immer 100% korrekt.
Wie bereits von einigen schon bemerkt, sind z B. in Beispiel 9 („NBC5ChicagoNews.mp4.mp4“) keine FadeOut sondern FadeIn's gemeint. Anbei habe ich eine korrigierte Version der Schnittgrenzen angehängt.
Bitte jetzt diese verwenden. Ansonsten, wenn es weiteren Bedarf an Korrekturen gibt, korrigieren Sie diese bitte direkt in den Schnittlisten und stellen Sie uns und Ihren Kommilitonen die korrigierte Schnittliste wieder zur Verfügung. Bei der Korrektur der Schnittgrenzen bitte die Annotationssyntax aus den Beispielen verwenden.

Vielen Dank und viele Grüße
Bernhard Quehl

0 22 0 HardCutTimestamp
1 49 0 HardCutTimestamp
2 375 0 HardCutTimestamp
3 454 0 HardCutTimestamp
4 611 0 HardCutTimestamp
5 804 0 HardCutTimestamp
6 927 0 HardCutTimestamp
7 1056 0 HardCutTimestamp
8 1259 0 HardCutTimestamp
9 1335 0 HardCutTimestamp
10 1380 0 HardCutTimestamp
11 1444 0 HardCutTimestamp
12 1670 0 HardCutTimestamp
13 1745 0 HardCutTimestamp
14 1790 0 HardCutTimestamp
15 2201 0 HardCutTimestamp
16 5520 0 HardCutTimestamp
17 5903 0 HardCutTimestamp
18 6280 0 HardCutTimestamp
19 6334 0 HardCutTimestamp
20 6450 0 HardCutTimestamp
21 6481 0 HardCutTimestamp
22 6531 0 HardCutTimestamp
23 6618 0 HardCutTimestamp
24 6727 0 HardCutTimestamp
25 7404 0 HardCutTimestamp
26 7611 0 HardCutTimestamp
27 8308 0 HardCutTimestamp
28 8548 0 HardCutTimestamp
29 8633 0 HardCutTimestamp
30 8878 0 HardCutTimestamp
31 8952 0 HardCutTimestamp
32 6682 1 DropOut
33 1188 17 FadeIn
34 7621 11 FadeIn

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