|The Lytro Camera captures a 4D light field of a scene, enabling photographs to be digitally refocused after images are captured.||Computational illumination is used within the movie industry to render the performances of live actors into digital environments.||The Nvidia Tegra Shield is an Android-based tablet that features a 5-megapixel camera with an easy to use camera API.|
To teach the fundamentals of modern camera architectures and give students hand-on experience acquiring, characterizing, and manipulating data captured using a modern camera platform. For example, students will learn how to estimate scene depth from a sequence of captured images.
This course is the first in a two-part series that explores the emerging new field of Computational Photography. Computational photography combines ideas in computer vision, computer graphics, and image processing to overcome limitations in image quality such as resolution, dynamic range, and defocus/motion blur. This course will first cover the fundamentals of image sensing and modern cameras. We will then continue to explore more advanced topics in computer vision. We will then use this as a basis to explore recent topics in computational photography such as motion/defocus deblurring cameras, light field cameras, and computational illumination.
This course will consist of six homework assignments and no midterm or final exam. We will provide a Nvidia Tegra tablet for each student in the course. Students will write programs that run on the phone to capture photos. Enrollment is limited to 30 students.
EECS 211 and/or 230 or permission from instructor. Students should have experience with Python programming. If you are interested, please contact the instructor to discuss!
Tuesdays and Thursdays 1:00pm-2:20pm CT CS331 lecture: All lectures will held live on zoom and linked through canvas. Lectures will also be recorded for those who cannot attend during scheduled class times.
Oliver Cossairt Office Hours: Thursday 3-5PM - write an email to oliver.cossairt (a) northwestern.edu to book a 10min slot.
Florian Schiffers Mail: florian.schiffers (a) northwestern.edu Office hours are replaced with increased Campuswire activity on myside. For coding questions that involve your own code, please make a private thread that is only visibile to TA/Instructor.
If serious problem regarding an assignment arise, I am available for zoom session on an individual basis. However, a requirement for a zoom session is to have an active Campuswire thread.
Grading: Homeworks 1 through 7 are each graded Pass/Fail. Each homework consists of a coding and a technical writeup. Your coding must be correct, and your writeup must be clearly written (see latex template here: ) in order to receive a passing grade. For each assignment that you fail, your grade gets lowered by one letter. So if you pass all seven assignments you get an A, if you fail one assignment you get a B, if you fail two you get a C, and so on. You can resubmit up to three homework assignments that you received a failing grade for. We plan to stick closely to these grading guidelines, but some exceptions may be made for partial credit (e.g. A-/B+, etc.).
When and Where to Submit Assignments: A latex writeup report for each assignment must be submitted on Canvas by 11:59pm on the due date. Your code must be pushed to your individual GitHub Classroom code repository, also at 11:59pm on the due date.
Late Policy: If EITHER there is nothing on Canvas OR your code has not been pushed to by 11:59pm on the due date, you fail the assignment. The most recent code on github at 11:59pm on the due date is the code we will grade. The most recent submission in Canvas at that point, is the one we grade. A good approach is to continually check in and push to GitHub as you work. Also, put up a “safety” submission on Canvas with what you currently have, an hour prior to the deadline. You can resubmit up to three homework assignments that you received a failing grade for.
Cheating & Academic Dishonesty: Do your own work. This includes free response answers and code. Penalties include failing the class and can be more severe than that. If you have a question about whether something may be considered cheating, ask, prior to submitting your work. We will be checking for code duplication. Academic dishonesty will be dealt with as laid out in the student handbook.
Attendance is not graded.
Announcements and discussions will take place on CampusWire. You can sign up for the page at that link using the sign-up code 6624.
This is a prediction of what will be covered in each week but the schedule is subject to change as the course progresses.
|Week of||Lecture of week||Topic|
|09/24||Thu||Image Processing I|
|09/29||Tue||Image Processing II|
|10/08||Thu||Flash and Lighting|
|10/22||Thu||Shape from Shading|
|10/27||Tue||Depth from Focus|
|10/29||Thu||Structured Light 3D Imaging|
See CANVAS for the link to invite your to create your Github repository for the assignments.
Homework is due and assigned on the dates below. It is a fairly tight schedule to ensure we cover many different topics.
|09/17||HW 0: Install Environment|
|09/22||HW 1: Image Processing||HW 0: Install Environment|
|09/29||HW 2: Sensor Noise||HW 1: Image Processing|
|10/11||HW 3: Flash/No Flash Photography||HW 2: Sensor Noise|
|10/22||HW 4: HDR Imaging||Flash/No Flash Photography|
|11/03||HW 5: Depth from Defocus||HW 4: HDR Imaging|
|11/14||HW 6: Lightfields||HW 5: Depth from Defocus|
|11/24||HW 6: Lightfields|
Similar Courses in Other Universities
Conferences: ICCP 2011, ICCP 2010, ICCP 2009, SIGGRAPH, SIGGRAPH Asia, CVPR, ICCV, ECCV, ..
Many of the course materials are modified from the excellent class notes of similar courses offered in other schools by Shree Nayar, Marc Levoy, Jinwei Gu, Fredo Durand, and others. The instructors are extremely thankful to the researchers for making their notes available online.