SoC2007 projects

From PanoTools.org Wiki
Revision as of 22:27, 18 February 2007 by Pablo (talk | contribs) (First version of available projects for google SoC 2007)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Introduction

This is the work in progress list of possible projects for the Google_SoC_2007

TODO: improve general introduction + motivation

Panoramic imaging is a very broad field and touches many different areas of expertise, such as photography, computer vision, art and programming. There is a thriving community with experience from arts to science that provides many interesting ideas and explores new territory in panoramic imaging. In addition to the mentors, this open community will provide good support and innovative ideas.

Generally, all development should done with multiple platforms in mind (at least Windows, OSX and Linux/Unix). We have an open communication culture via mailing-lists and mostly develop using C and C++.

The project below are just suggestions. If you are an interested student and have questions or new ideas, please let us know on the relevant Discussion_lists, for example panotools-devel or hugin-ptx.

Possible projects

Intuitive yet powerful GUI for panorama creation

Goal: Redesign the graphical user interface of [Hugin] with respect to ease of use. This includes (but not limited to):

  • Providing a simple, yet helpful user interface that suggests/highlights potentially useful next steps.
  • Intuitive panorama editor
  • Batch processing
  • Experts option to do advanced stuff, since there will always be a situation where an "intelligent" context sensitive GUI will not work.

Required knowledge or interest in:

  • Workflow analysis and UI design skills
  • Experience with building cross platform GUI programs, preferably with C++ and wxWidgets
  • Interest in creative use of panoramic imaging

Mentor: Pablo, ?

License: GPL

SURF Feature matching

Goal: Robust matching of features between multiple images using the SURF algorithm. Like SIFT, SURF is state of the art algorithm for identifying corresponding points, but it is not patented and should be a lot faster The SURF algorithm should be extended to handle images with known distortions, such as fisheye and wide angle images. A desired result of the project would be:

  • C or C++ library that can be easily embedded into applications
  • Standalone executable that implements the extended SURF algorithm

and produces panotools script files, similar to Autopano-sift and Autopano

Required knowledge or interest in:

  • signal or image processing background
  • C or C++ development skills (for algorithms, GUI experience

not required.)

Mentor: Pablo, ?

License: GPL

Interactive panoramic viewer

Goal: The FreePV panoramic viewer aims to provide a superior viewing experience for panoramas on all major platforms (Windows, Mac and Linux/Unix), based on exploiting powerful graphics hardware using OpenGL. Currently it provides basic but solid viewing capabilites for Quicktime VR, cylindrical, cubic and equirectangular panoramas. Plugins for Mozilla/Firefox and a standlone viewer are available. Several important features are still missing from the viewer include:

  • Support for hotspots
  • Optimisation for panoramas larger than the Video RAM
  • Display of high dynamic range panoramas with adaptive exposure
  • Support for reading a SPi-V compatible .xml file, for platforms where SPi-V is not available (Linux/Unix).
  • Fallback software renderer

Required knowledge or interest in:

  • OpenGL or other 3D programming experience.
  • Creating cool and nice looking interactive experiences.

Mentor: Pablo, ?

License: LGPL

Anti-ghosting HDR panorama blending and merging algorithm

Goal: Most HDR creation algorithms are designed to work only with very small variations in camera viewing direction. Assume that registration and response curve estimation has already happened. An improved blending method for HDR images together that have not been shot using the traditional exposure stack method. It should avoid ghosting and be insensitive to small misregistrations. This is a challenging research problem, and quite some time will probably be spend with algorithm development.

Required knowledge or interest in:

  • Strong background signal/image processing and mathematics
  • Creative mind with ideas beyond the state of the art in computer vision/graphics research.

Mentor: Pablo, ?

License: GPL