You have a good bit of freedom in choosing your final project. You are expected to implement one (or more) related research papers, or think of some interesting novel ideas and implement them using the techniques discussed in class. Below, we list some possible projects. However, you are welcome to come up with your own ideas - in fact we encourage this.
This project will require programming as well as the manipulation of cameras, light sources, images and/or video. Most likely, you will need to write a program with a user interface (i.e., a demo) so that you can show the results. It is also strongly recommended that you evaluate your system with varying input parameters. A comparion to other work is welcome, but not required. You can use your favoriate programming languages (e.g., Matlab, C, C++, Python, Java, etc.).
You are allowed to work on a project in groups of two. In your submission, please clearly identify the contribution of both group members. Please note that members in the same group will not necessarily get the same grade.
The project is expected to be carried out through the remaining portion of the quarter. There will be three checkpoints: a project proposal, an intermediate milestone report, and a final project report.
Create a webpage for the final project. This page should include the three reports, the interesting implementation details, some results (e.g., images, videos, etc.), and so on. Your website should also includes downloadable source and executable code. Do not modify the website after the due date of the assignment. Also, send an email to jwgu@cis.rit.edu with the URL of your webpage BEFORE the due dates. Please also submit the proposal, the intermediate report, and the final report to dropbox in myCourse.
This will be a short report (usually one or two pages will be enough). You will explain what problem you are trying to solve, why you want to solve it, and what are the possible steps to the solution. Please include a time table.
In this report, you will need to give a brief summary of current progress, including your current results, the difficulties that arise during the implementation, and how your proposal may have changed in light of current progress. Please keep in mind that the goal is to go around obstacles not stop working when you reach them.
This will be a short presentation in class about your project. It will 15 to 25 minutes per project.
Assemble all the materials you have finished for your project in the final report, including the motivation, the approach, your implemention, the results, and discussion of problems encountered. If you have comparison results or some interesting findings, put them on the webpage and discuss these as well.
In HW1, you will learn HDR imaging and tone mapping. It requires capturing an additional calibration image. Can you implement the algorithm in [Debevec et al. 1997], which calibrates the camera and generates HDR at the same time? There is another paper about camera radiometric calibration and HDR imaging. Check whether you can implement it.
In HW2, you will learn about Nokia N900 programming for some basic algorithm. Try to use this tool and implement more advanced image processing and computer vision algorithms with the N900 platform, such as flutter shutter photography, flash/no flash photography, depth from focus/defocus, image stitching, face detection and tracking, etc.
In HW3, you will learn about photometric stereo in the simplest setting: known light sources, Lambertian surfaces. What if we do not know the light source directions? What if the surfaces are non-Lambertian? Here is a paper about photometric stereo under unknown light sources. Here is a paper of photometric stereo for general materials. Implement one or both features in photometric stereo.
In HW4, you will learn how to separate direct and global illumination using active illumination. Active illumination has been used in many computer vision tasks for scene recovery, such as photometric stereo, structured light range scanning. Choose one of the scene recovery application and implement it with and without direct/global separation. Compare the scene recovery results and discuss the differences.
You will implement a light field viewer based on the techniques described by Levoy & Hanrahan 96. Given the input as a light field, the viewer you need to implement should allow the user interactively move the camera, and generate an image corresponding to that particular view. In other words, it should perform the following operations:
Here are some single-slab light field data (buddha, crayons, dragon, lion). Here is the format of the light field data. Here is multi-slab light field data.