CSCI 129 Computational Photography
Spring 2011, MWF 11:00 to 11:50, CIT 506.
Instructor: James Hays
HTA: Travis Webb
UTA: David Dufresne

Course Description
Course Catalog EntryComputational Photography describes the convergence of computer graphics, computer vision, and the Internet with photography. Its goal is to overcome the limitations of traditional photography using computational techniques to enhance the way we capture, manipulate, and interact with visual media. In this course we will study many interesting, recent image based algorithms and implement them to the degree that is possible. We will cover topics such as
- Cameras and image formation
- Human visual perception
- Image processing (filtering, pyramids)
- Image blending and compositing
- Texture synthesis, super-resolution, denoising.
- Image completion / inpainting
- Image based lighting and rendering
- High dynamic range
- Depth and defocus
- Flash / no flash photography
- Coded aperture photography
- Single / multi view reconstruction
- Photo quality assessment
- Non photorealistic rendering
- Modeling and synthesis using Internet data
- ... more interesting topics.
Prerequisites
This course requires programming experience as well as linear algebra, basic calculus, and basic probability. Previous knowledge of computer graphics or computer vision will be helpful. It is strongly recommended that students have taken one of the following courses (or equivalent courses at other institutions):- CSCI 1230, Introduction to Computer Graphics
- CSCI 1430, Introduction to Computer Vision
- ENGN 1610, Image Understanding
Assignments | Winning projects | All Results |
Image alignment with pyramids | Paul Sastrasinh, Kefei Lei | Proj 1 |
Gradient domain fusion using Poisson blending | Paul Sastrasinh, Andy Loomis | Proj 2 |
Image completion with graph cuts | Libin "Geoffrey" Sun, Roger Fong | Proj 3 |
Stereo Pinhole Camera |
Technical: Paul Sastrasinh Artistic: Genevieve Patterson and Libin "Geoffrey" Sun | Proj 4 |
Image Filtering | ||
Camera Phone HDR | Proj 5 | |
Camara Phone Automatic Panorama | Proj 6 | |
Your choice for final project |
Public Final Projects *All Final Projects *(Internally available only) |
Equipment
Some course projects will make use of the open-source FCam (Frankencamera) platform. Nokia has generously donated a classroom set of linux-powered N900 camera phones.Students are expected to capture their own photographic data for their projects. There's no need for anything fancy -- any digital camera with manual controls should work. See the professor if this is a problem.
Textbook
Readings will be assigned in the free, online textbook "Computer Vision: Algorithms and Applications" by Richard Szeliski.Grading
Your final grade will be made up from- 60% 6 programming projects
- 20% final project
- 20% 2 written examinations
Graduate credit is available and each project will specifiy the minimum requirements to earn such credit.
Important Links:
Contact Info and Office Hours:
You can contact the professor or TA staff with any of the following:- Professor James: hays[at]cs.brown.edu
- HTA and Professor: cs129headtas[at]cs.brown.edu
- TAs and Professor: cs129tas[at]cs.brown.edu
- James Hays (hays), Monday and Wednesday 1:00-2:00
- Travis Webb (jtwebb), Monday 5:00-7:00
- David Dufresne (ddufresn), Wednesday 3:00-5:00
Syllabus
Class Date | Topic | Materials | Out | Due |
W, Jan 26th | Introduction to computational photography | .ppt Szeliski chapter 1 |
||
F, Jan 28th | Matlab Tutorial by Travis Webb | Matlab tutorial | Optional Project 0 | |
M, Jan 31st | Cameras and optics | .ppt Szeliski chapter 2 |
Project 1 out | |
W, Feb 2nd | Capturing light, man vs machine | .ppt Szeliski chapter 2 |
||
F, Feb 4th | Sampling and reconstruction | .ppt Szeliski Chapter 2 |
||
M, Feb 7th | Linear Filters | .ppt Szeliski Chapter 3.2 |
Project 1 due | |
W, Feb 9th | Project 1 Presentations, Frequency Domain | .ppt Szeliski Chapter 3.4 |
Project 2 out | |
F, Feb 11th | Blending and compositing | .ppt
Szeliski Chapter 3.3 and 9.3.4 |
||
M, Feb 14th | Morphology and Point Processing | morphology.ppt, PointProcessing.ppt
Szeliski Chapter 3.3.2 and 3.1 |
||
W, Feb 16th | Lecture by Deva Ramanan, B&H 190 | |||
F, Feb 18th | Project 3 introduction, Video and texture | VideoTextures.ppt,
project3intro.pptx
Szeliski Chapter 13.5 |
Project 3 out | Project 2 due |
M, Feb 21st | No Classes | |||
W, Feb 23th | Project 2 presentations, Texture synthesis and filling | Texture1.ppt Szeliski Chapter 10.5 |
||
F, Feb 25th | Image completion, Graph cut, Scene completion | Texture2.ppt, Scene Completion
Szeliski Chapter 9.3.2 |
||
M, Feb 28th | Image Warping, Exam review | warping.ppt
Szeliski 3.6.1 |
||
W, Mar 2nd | Stereo, Project 4 intro | stereo.pptx Szeliski Chapter 11 |
Project 3 due | |
F, Mar 4th | Exam 1 | |||
M, Mar 7th | Project 3 presentation, leveraging the Internet | .pptx |
Project 4 out | |
W, Mar 9th | Exam recap, Data driven methods: Tiny Images | .pptx Szeliski 15.5.1 |
||
F, Mar 11th | Data driven methods: gist and sift descriptors | .pptx Szeliski 15.4.4 and 4.1 |
||
M, Mar 14th | Data driven methods: more features with im2gps | .pptx Szeliski 15.4.3 |
||
W, Mar 16th | Matting, Transparency, and Illumination | .ppt Szeliski 10.4 and 13.4 |
Project 4 due | |
F, Mar 18th | Project 4 presentations, Camera phone introduction | .pptx | Optional phone intro project | |
M, Mar 21st | Modeling light and lightfields | .ppt Szeliski chapter 13.3 |
||
W, Mar 23rd | Recovering High Dynamic Range | .pptx Szeliski 10.2 |
||
F, Mar 25th | Tone mapping and Exposure Fusion | tone mapping,
exposure fusion Szeliski 10.2 |
Project 5 out | |
M, Mar 28th | No classes, spring break | |||
W, Mar 29th | No classes, spring break | |||
F, Apr 1st | No classes, spring break | |||
M, Apr 4th | Homographies and mosaics | .ppt Szeliski chapter 9.1 |
||
W, Apr 6th | Automatic image correspondence | .pptx Szeliski chapter 4.1 |
||
F, Apr 8th | RANSAC and mosaic wrapup | .pptx Szeliski chapters 6.1 and 9.1.6 |
Project 6 out | Project 5 due |
M, Apr 11th | Project 6 intro, Image-based lighting | .ppt | ||
W, Apr 13th | Invited Lecture by Kimo Johnson | |||
F, Apr 15th | Project 5 presentations, Coded Aperture Photography | .ppt, Levin et al., SIGGRAPH 2007 | ||
M, Apr 18th | Taking good photographs | |||
W, Apr 20th | Photo quality assessment | .ppt | Final out | Project 6 due |
F, Apr 22nd | Exam 2 | |||
M, Apr 25th | Invited Lecture by Mathias Eitz | |||
W, Apr 27th | Project 6 presentations, Exam 2 recap, Final project discussion | |||
Thursday, Apr 28th | IPP Symposium on Visual Computing | |||
F, Apr 29th | No classes, reading period | |||
M, May 2nd | No classes, reading period | |||
W, May 4th | No classes, reading period | |||
F, May 6th | No classes, reading period | |||
W, May 11th, 9:00AM (exam period) |