CS 638-1 | Computational Photography | Spring 2010 |
Homework #5: Your Own Project
Tentative Title and Abstract, plus Paper Review: Friday, April 9
Class Presentations: May 3, 5, and 7
Final Paper and Web Page: Wednesday, May 12 at 5 p.m.
This assignment is to do a project based on
an area of computational photography of your choice. Projects can
be either individual or in teams of two.
The intended effort per person is approximately two times that
of other homework assignments.
You can choose to do any combination of programming,
reading relevant technical papers, and developing new
theory or techniques.
Except in unusual circumstances, a project will involve reading
some papers from the literature, implementing some method(s),
experimentally testing the method(s) on appropriate images, and
writing a report
that describes the problem, the approach implemented,
a summary of experiments, and evaluation of results. The
length will depend a lot on the type of project. Most reports will be
about 10 pages long. The style should
be in the form of a conference paper. That is, title, abstract,
introduction, motivation, problem statement, related work, theory,
method, experimental results, concluding remarks, and references.
If your project is based primarily on a published paper, include a brief summary
of the method's major steps and ideas, emphasizing key points that you want to
stress about it. Also, include a clear description of assumptions of the method
and a list of all the parameters that must be specified by the user.
Be sure to clearly state what parts of your code you wrote yourself and which parts
you got from elsewhere, citing sources of the code you did not write
and the form of the code (e.g.,
from a Matlab toobox or from an individual's implementation).
Citing sources for code you've used is as important as citing publications!
If you're doing a project that's primarily programming, first develop
a specific set of operations to be performed and tested.
If you're doing little or no programming, you can first
focus on selecting a set of readings in an area.
An extended survey would be okay as a project
if there is a large enough
set of related papers compared in a detailed way.
Just abstracting a set of readings is not sufficient.
Ideally, I would prefer some combination of reading,
original ideas, and implementation that could consist of a
simple extension of previous work.
What to Hand In
Due Friday, April 9: A tentative title and abstract of your project,
e-mailed as a text file to the instructor.
These will be posted on the class web page.
In addition, you must select a research paper that is related to your topic, read it, and
write a review of the paper. Your review should include (1) a short paragraph
summarizing the problem attacked or goal of the paper,
(2) a description of one main idea in the paper and why it is interesting,
(4) a description of one idea for what might be done to extend the paper to improve it or eliminate a shortcoming.
Submit this as a pdf or Word document of length about 1 page.
Here is an example report.
Note: This paper does not necessarily need to be what your final
project ends up being about.
Due May 3, 5, and 7: Class presentation summarizing your project.
Include (1) problem statement, (2) motivation, (3) summary of method,
and (4) results. Each presentation will be about 8 minutes plus 2 minutes for questions for 1-person projects, and 13 minutes plus 2 minutes for questions for 2-person projects.
Due Wednesday, May 12 at 5 p.m.: Hardcopy of your final project report. In addition, please
e-mail the instructor a final title and
abstract of your project. Submit your source code electronically to the handin
directory for HW5. If you would like to demo your project, e-mail the instructor to set up a time.
Finally, you must also create a web page for your project and email the link to it to the instructor.
Class Presentation Information
May 3, 5 and 7 are the presentations of your
projects (as completed to that point). Part of your grade on this project will be based on
your presentation and also on your participation in asking questions
during others' presentations.
Your presentation should be about 10 minutes long.
You should organize
your presentation so that you clearly (1) state the problem,
(2) give some motivation by showing an example and describing the
context of the work in terms of the application areas or other methods
for solving this problem, (3) describe the method you are implementing
at a level that focuses on the most interesting aspects of the approach,
(4) show and describe some preliminary results, if possible, and
(5) summarize some of the main advantages and disadvantages of your
method, and how it might be improved or extended in the future.
You may use overhead transparencies (handwritten or created by powerpoint),
powerpoint (you can either bring in your own laptop, bring a USB flash drive, or e-mail a ppt file
to me and I'll put it on my laptop), or html pages that
you access and display from the computer that is in the classroom. I
will not bring my laptop to class unless someone requests it. Finally,
be sure to proofread your presentation for spelling, grammar, and clarity.
See the instructor if you'd like help with your presentation preparation.
Assignments of who will present on each day will be made about 1 week before the first presentation date.
Some Project Topic Suggestions
The following are some sample ideas for topic areas.
These could be used to stimulate your own thinking about
areas of interest and lead to a narrower, more specific
project. I much prefer in-depth treatment of a narrow topic
over shallow treatment of a broader problem.
I encourage you to talk to me about ideas that
you are thinking about early on in order to help you
focus your efforts. Finally, there are digital still and video
cameras available
if you need to digitize some images for your project.
- Creating Arcimboldo-style Images
Extend the idea developed last year by Lorenzo de Carli for creating images in the style
of the Ialian painter Giuseppe Arcimboldo. See
his project page for ideas.
- Seam Carving for Image Resizing
Implement a method for image resizing such as the one using seam carving described in
the paper
Seam Carving for Content-Aware Image Resizing by S. Avidan and A. Shamir.
- Creation of David Hockney-style Joiners
The artist David Hockney has created images, known as "joiners," that consist of a collection of
photos of a scene, taken from a wide range of viewpoints, arranged in a collage to give a
photo-collage yielding a non-realistic but compelling representation of the 3D scene.
Creating these currently involves a lot of manual alignment and artistic skill. This project
would involve creating a tool that would let a user create these images much more quickly,
using an automatic or semi-automatic method given a set of source images.
See L. Zelnik-Manor and P. Perona,
Automating Joiners, Proc. 5th Int. Symp. Non-Photorealistic Animation and Rendering, 2007, for one method.
- Image Abstraction
Implement and extend methods for image abstraction such as those by H. Kang and S. Lee given
here and
here.
- Image Analogies
Implement and extend the Image Analogies
paper by A. Hertzmann.
- Automatic Creation of OOB-style Images
Implement a method for creating OOB style images. Build on ideas in the paper
3D-aware Image Editing for Out of Bounds Photography by A. Shesh et al.
- Mobile Vision
Vision on smart phones is an area of great potential because phones now have cameras, web connection,
and GPS. Applications such as SnapTell and ViPR are early examples. Devise an interesting
application for use on this type of device and prototype it.
- Image Synthesis of Noun Phrases
Given a simple noun phrase such as "Five big red balloons" synthesize an image that
depicts that phrase.
- Visualizing Proper Nouns
Given a proper noun, use an existing search engine to collect a set of images and then select/compose/modify
one or more of them automatically to create an output image.
- Haze Removal
Remove haze from a single input image using the method by K. He et al. in
Single Image Haze Removal using Dark Channel Prior.
- Defocusing
Implement a method for defocusing for improving photo quality such as the one by
Bae and Durand
- Tone Adjustment
Implement and extend a method for tone adjustment such as described in the paper by
Lischinski et al. or the paper by
Bae et al.
- Anonymizing Images
Implement a method for anonymizing a particular class of images such as those containing faces or text.
- Add/Subtract Aerial Perspective in Images
The fact that distant mountains look bluish and the further away they are, the bluer
and brighter they appear is called "airlight," which is a type of "aerial perspective"
that painters such as Leonardo da Vinci have known about since the Renaissance.
Implement a method for adding airlight effects to images or subtracting airlight effects from images
of outdoor scenes.
This and other interesting effects are described in the wonderful books
(1) M.G.J. Minnaert, Light and Color in the Outdoors, and
(2) D.K. Lynch and W. Livingston, Color and Light in Nature.
- Photo Tourism
Implement a version of the
Photo Tourism project at the University of Washington and Microsoft.
- Content Based Image Synthesis
Implement a version of the paper "Content Based Image Synthesis" by N. Diakopoulos et al.
and on their project web page.
- Automatically find good prototypical images for words
Given a word, image search engines return a ranked list of images that have that word in a caption or
as part of the file name, but the top images are frequently not very typical of the word.
Devise a way to rerank these image results so that the top 1-3 images are good prototypes.
See, for example, Y. Jing and S. Baluja,
VisualRank: Applying PageRank to Large-Scale Image Search,
IEEE Trans. Pattern Analysis and Machine Intelligence, 2008.
Another recent project is
Harvesting Image Databases from the Web by F. Schroff et al.
- Using Web Community Image Collections
Very large public image collections are now available on the web, some tagged and some not.
Applications are being developed
that exploit this growing collection for tasks such as image completion (Hays et al., 2007),
Photo Tourism (Snavely et al., 2006), internet stereo (Goesele et al., 2007),
photo clipart (Lalonde et al., 2007), object recognition (Torralba et al., 2008),
and finding paths through a set of photos (Snavely et al., 2008).
Choose one of these to re-implement a part of, or develop your own task and method.
- Use manually-labeled datasets of images for a novel task
Recently a number of online games have been created that ask users to manually label images or segment
images in order to collect a lot of training data for use by vision algorithms. Devise an
interesting task that can make use of one of these sources of data. Some of the games and their
datasets are:
- Video epitomes
Implement a version of video epitomes and use it for a task such as those suggested at
the author's web site
- Where am I?
Develop a method for solving a "where am I" type problem such as:
Given a set of images taken at known GPS locations, find the approximate GPS location of a test image taken
at an unknown location but roughly in the same area (view overlap).
- Video Textures
Implement and extend the
video textures method.