CSc 59866
Senior Capstone Course
Course Description
In this project-based course, students are grouped into teams to work on
projects of practical importance in digital image processing, computer
graphics, and computer vision.
The capstone course will last two semesters.
In the first semester, we will study key principles in these imaging fields.
The second semester will focus on implementation of exciting real-world problems.
Available project topics span the fields of image processing, computer
vision, and computer graphics.
Some possible topics are listed below.
Suggested Project Topics
-
Consider a book scanner that consists of a high resolution camera
looking down at an open book.
A photograph of the two open pages is plagued with artifacts that
must be corrected: (1) the pages do not lie flat and so the image
is warped; and (2) the intensity reflectance falls off near the book spine.
Inverting the warp and lighting artifacts is an area of active research.
The team members will consider several solutions in parallel.
-
We have access to an integrated stereo camera system consisting of two
cameras, each with a 4mm focal length.
The camera system, made by Point Grey Research (www.ptgrey.com),
is called the Bumblebee.
It comes with an SDK (software development kit) that enables the
programmer (you) to write software to recover depth.
Several interesting applications have been recently commercialized
that allow a client to track gestures or the tip of a pointing tool.
You will either use the SDK or write your own equivalent library to
implement a software product that can track the tip of a stylus or finger
in 3D space.
Examples of this work can be found in the demonstration videos on
www.clarontech.com/gallery.htm
-
Write a music visualization program such as those found in iTunes or Winamp.
Your program should extend the visualizer to enable the user to control,
through a variety of sliders and other GUI widgets, the underlying parameters.
Consider how your next-generation music visualizer can engage the user to
be a more active participant rather than just a passive viewer.
There's a lot of room for creativity here.
-
Develop a computer graphics software system to implement
(non)photorealistic rendering
-
Write a multiresolution registration system to perform image mosaicing
to create a large panorama image from a set of overlapping images.
Design your system to have a GUI that is competitive to commercial
systems such as Realviz Stitcher (www.realviz.com).
-
Write an image inpainting system that can fill in gaps/holes in images
with a reasonable approximation to the background that should have been there.
The holes may be introduced by the user for the purpose of removing unwanted
foreground elements (e.g., people, noise) from the scene.
A good background can be found in www-mount.ee.umn.edu/~guille/inpainting.htm
-
Other topics based on the interests of the students and professor
Two-Semester Course
In the first semester, after fundamental principles are introduced,
each team chooses one topic and performs research and development
to specify deliverables, milestones, and implementation considerations.
Each group must read a collection of papers on their chosen topic,
present them to the class, demonstrate a deep understanding of
the principles and algorithms, and outline a working plan to implement
the software complete with milestones and deliverables.
In the second semester, each team continues their project with detailed
design, implementation, integration, testing, experiment evaluation.
The project is finally delivered with full documentation at the end
of the second semester.
Programming
Programming can be done in C/C++ or Java.
High-level C++ GUI toolkits such as Qt (www.trolltech.com) will be
introduced to the students so that they can integrate their work
directly into a professional graphical user interface.
The OpenGL graphics API will be introduced so that the student
can implement high quality graphics rendering using the same tools
that are currently in use by producers of video games and computer animations.
Background in image processing, computer graphics, or computer vision
is helpful but not necessary.
The course material will be entirely self-contained.
Course Objectives
Through this large project of considerable technical depth, students are
expected to expose themselves to the forefront of research and development
in digital imaging with a concentration on image processing, graphics,
and vision.
Furthermore, students have a chance to apply their software engineering
knowledge in a large project full of technical challenges.
Consequently this course provides the following benefits:
-
To gain deeper insights into the workings of real world software engineering.
-
To receive valuable hands-on experience in basic research.
-
To better understand non-conventional imaging algorithms and systems
in an efficient and effective manner.
Lectures
Monday, Wednesday 12:30-1:45PM, NAC 6/213 (Spring 2008)
Instructor
Professor George Wolberg
Office Hours: Monday, 3:30-4:30pm, Room NAC 8/202I
wolberg@cs.ccny.cuny.edu
Teaching Assistant
Hadi Fadaifard
Office Hours: Tuesday, 1:00 - 2:00pm, Unix Lab (NAC 7/105)
NOTE: Always include course number (CSc 59866) in email subject line
cs1025cd@yahoo.com
George Wolberg, November 1, 2007