MIN-Fakultät
Fachbereich Informatik
Szenenanalyse und Visualisierung (SAV)

Infoseite zu dem Masterprojekt Bildverarbeitung (Mi 14-18) im SoSe 2016 Teil 1

Beschreibung des Projekts

Entgegen der Beschreibung in Stine, wird in diesem Projekt das aktuelle Forschungsfeld der Manuskriptkulturen bearbeitet. Dieses umfasst die Erprobung und Analyse vorhandener BV-Algorithmen, wie z.B. der Layoutanalyse oder der Schreiber-Erkennung historischer Manuskripte unterschiedlicher Kulturen.

Zum Ende der vorlesungsfreien Zeit (1. Oktober 2016)

Zum Ende der vorlesungsfreien zeit sollte das gewählte Thema vorerst abgeschlossen werden. Hierzu gehören:

  • Ein Projektbericht über das Verfahren, den Stand und Mittel der verwendeten Implementierung, Ergebnisse und eine abschließende Diskussion dieser,
  • Lauffähiger Quelltext der erstellten Software sowie ein
  • Manual zur Software, das den Umgang mit dieser beschreibt.

Ein Beispiel für einen gelungenen Bericht habe ich hier hinterlegt: Carstens, Martens: Ausarbeitung zu SIFT.

Am 13.07.2016: Endpräsentation der Gruppen (1. Teil des Projekts)

An diesem Termin stellen die Gruppen die vorläufigen Endresultate dar, die bis zum Ende des ersten Teils erreicht werden konnten. Hierbei sollen zudem auch weiterführende Aufgaben vorgeschlagen werden, die im zweiten Teil des Projekts (im WiSe 16/17) bearbeitet werden können.

29.06.2016: Einführung in die interaktive Bildverarbeitung

An diesem gtermin wird die Verwendung von Qt5 zur interaktiven Bildverarbeitung demonstriert. Die Präsentation zur Qt Einführung kann hier heruntergeladen werden: QtIntroduction.pdf. Die Präsentation zur grafischen Visualisierung kann hier heruntergeladen werden: QGraphicsView.pdf. Die ebenfalls an diesem Termin vorgestellte GUI, kann hier heruntergeladen werden: VigraQImageViewer.zip. Die GUI benötigt Qt5 und verwendet CMake-Makefiles zur Erstellung der ausführbaren Datei. Nach dem Entpacken sollte daher die bereits weiter unten beschriebene Vorgehensweise zum Ziel führen.

Am 22.06.2016: Zwischenpräsentation der Gruppen

An diesem Termin stellen die Gruppen die bisher erreichten Fortschritte in Bezug auf die Zielsetzungen vom 25.05.2016 dar. Hierbei können neben Fortschritten auch Probleme und Schwierigkeiten angesprochen werden.

Zum 25.05.2016: Analytischer Bericht

Zum Termin nach den Pfingstferien erwarten wir einen analytischen Bericht, in dem die gewählten Themen der Teams vorgestellt und analysiert werden. Dieser sollte folgendes umfassen:

  • Die Namen der Team-Mitglieder
  • Einen Projekt-Namen
  • Für jedes gewählte Teilthema:
    • Referenz, ein (langes) oder mehrere Paper zum Ansatz bzw. zum Verfahren
    • Zusammenfassung des Inhalts der Referenz(en) in eigenen Worten.
    • Herausarbeiten der verwendeten, grundlegenden Verfahren und Nennung der Funktionalität in der VIGRA-Bibliothek.
      Auch nennen, wenn keine Korrespondenz gefunden werden konnte.

Am 25.05.2016 werden wir die Einführung in C++11 noch nachholen. Anschließend werden die Themen anhand der erstellten Berichte noch einmal im Plenum diskutiert.

Material

Introduction into Manuscript Cultures:

Selected articles for proposed topics:

  • Noise Estimation
    • Stanislav Pyatykh, Jürgen Hesser, and Lei Zheng (2013): Image Noise Level Estimation by Principal Component Analysis (Download)
    • Ce Liu, William T. Freeman, Richard Szeliski, Sing Bing Kang (2006): Noise Estimation from a Single Image (Download)
  • Estimating the Point Spread Function (PSF)
    • Neel Joshi, Richard Szeliski, David J. Kriegman (2007): PSF Estimation using Sharp Edge Prediction (Download)
    • Xiang Zhu, Scott Cohen, Stephen Schiller, Peyman Milanfar (2013): Estimating Spatially Varying Defocus Blur From A Single Image (Download)
    • Amit Goldstein, Raanan Fattal (2011): Blur-Kernel Estimation from Spectral Irregularities (Download)
    • Libin Sun, Sunghyun Cho, Jue Wang, James Hays(2013): Edge-based Blur Kernel Estimation Using Patch Priors (Download)
    • Taeg Sang Cho, Sylvain Paris. Berthold K. P. Horn. William T. Freeman (2011): Blur Kernel Estimation using the Radon Transform (Download)
  • Super Resolution
    • Daniel Glasner Shai Bagon Michal Irani (2009): Super-Resolution From a Single Image (Website)
    • Yoav HaCohen, Raanan Fattal, Dani Lischinski (2010): Image Upsampling via Texture Hallucination (Website)
    • William T. Freeman, Thouis R. Jones, Egon C. Pasztor (2002): Example-Based Super-Resolution (Download)
    • Raanan Fattal (1995): Image Upsampling via Imposed Edge Statistics (Download)
    • Qi Shan, Zhaorong Li, Jiaya Jia, Chi-Keung Tang (2008): Fast Image/Video Upsampling (Website)

Einführender C++-Kurs, angepasste und neu aufgeteilte Folien nach U. Schroeder, RWTH Aachen:

  1. Teil: Von Java zu C++
  2. Teil: Datentypen, Pointer, Referenzen und 1D-Arrays
  3. Teil: Funktionspointer, ADTs und nD-Arrays
  4. Teil: Klassendefinitionen
  5. Teil: Die STL
    Außerdem hilfreich: Dokumentation zu Boost 1.58.0
  6. Teil: Introduction to Modern C++ (Folien von Olve Maudal)
    Weitere Literatur: Top 11 der Features von C++11 (Heise Developer)

Als Grundlage der Bildverarbeitung verwenden wir die VIGRA-Bibliothek. In den ersten Wochen werden wir das zugehörige Tutorial nach folgendem Schema durch arbeiten.

  1. Teil: MultiDimensionalArrayTutorial, bis inkl. "One-dimensional Indexing and Scan-Order Iterator",
            außerdem: Image Input/Output
  2. Teil: MultiDimensionalArrayTutorial, ab "Important MultiArray Methods"
  3. Teil: Mathematics with Multi-Dimensional Arrays, bis inkl. "STL-style transformation algorithms"
  4. Teil: Mathematics with Multi-Dimensional Arrays, ab "Feature Accumulators"
  5. Teil: Image Processing
  6. Teil: Writing your own functions,
            außerdem: VIGRA Python Bindings

Software

Wir arbeiten in diesem Projekt mit der Sprache C++ und der VIGRA-Bibliothek. Diese ist generell unter allen Betriebssystemen lauffähig. Es empfiehlt sich hierbei folgendes:

  • Unter Windows:
    Benutzt MS Visual Studio 2012 Ultimate (UHH Dreamspark) und befolgt diese Anleitung.
  • Unter Linux:
    Befolgt die Installationsanweisungen auf der VIGRA-Homepage
  • Unter Mac OS X:
    Installiert das MacPorts Paketsystem und installiert die vigra über die Konsole durch die Eingabe von:
    sudo port install vigra

Um die Arbeit mit dem C++ Compiler zu vereinfachen werden wir das Build-System CMake verwenden. Dieses System ist in der Lage, ausgehend von einer Projektbeschreibung in CMake-Notation, diverse Formate zu generieren, wie z.B. Visual Studio, XCode, Makefiles. Ihr findet hier ein Musterprojekt, welches CMake verwendet. Dieses könnt ihr (unter Mac, Unix) wie folgt übersetzen:

cd TUTORIAL_VERZEICHNIS
mkdir build
cd build
cmake ..
make

Ihr könnt es aber auch dazu verwenden, ein XCode-Projekt für euch erstellen zu lassen:

cd TUTORIAL_VERZEICHNIS
cmake -G Xcode .

Auch für Windows bietet CMake einen passenden Generator an. Für 64 Bit-Übersetzung mit oben genanntem Tutorial führt folgender Aufruf zum automatischen Erzeugen der VS-Projektdateien:

cd TUTORIAL_VERZEICHNIS
cmake -G "Visual Studio 11 2012 Win64" .

Unterscheidung 32/64 Bit: Für 32 Bit einfach das Suffix "Win64" weg lassen.

ACHTUNG: Im Systempfad (%PATH%) müssen immer die passenden Bibliotheken eingebunden werden - CMake prüft dies nicht! Meine Empfehlung: Unter modernen Windows-Versionen und Architekturen stets 64 Bit verwenden.

Für die Verwendung von C++11 Features muss die CMakeLists.txt Datei ergänzt werden:

set(CMAKE_CXX_STANDARD 11)

oder (für ältere Versionen von CMake):

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

Literatur:

  • Richard Szeliski (2010): Computer Vision: Algorithms and Applications (Homepage and eBook download)
  • Sonka, Hlaváč und Boyle (3. Auflage 2008): Image Processing, Analysis and Machine Vision, Thomson
  • D.A. Forsyth, J. Ponce: Computer Vision, A Modern Approach, Prentice-Hall 2003
  • R.C. Gonzalez, R.E. Woods: Digital Image Processing, Prentice-Hall 2001
  • B. Jähne (1997): Digitale Bildverarbeitung (4. Auflage), Springer-Verlag
  • R. Klette, A. Koschan, K. Schluns (1996): Computer Vision, Vieweg
  • R.M. Haralick, L.G. Shapiro (1993): Computer and Robot Vision, Vol. I & II, Addison-Wesley