ECE 6504: Computational Photography, Fall 2016

Course overview

Computational Photography 

Computational photography is an emerging field involving computer graphics, computer vision, applied optics, and photography. It aims to extend the capacity and overcome limitations of traditional cameras and image processing tools by using computational techniques to capture, enhance, manipulate, and interact images and videos for producing a richer and more vivid visual experience.

We will emphasize the software side and cover topics such as: camera image formation, image and video processing (filtering, template matching, pyramids), image manipulation (growing, cutting, pasting, warping, morphing), single-view modeling and reconstruction, correspondence and alignmet, and several advanced topics.

Image credit: James Hays (Georgia Tech)

Lectures

Where: Robeson Hall (ROB) 105
When: Monday, Wednesday 4:00 – 5:15 PM
Instructor: Jia-Bin Huang (jbhuang at vt.edu)
Office Hours: TBD

Textbook and optional references

Lectures are not based on any particular textbook. Our primary reference for this course is:

Computational Vision: Algorithms and Applications 

Computer Vision: Algorithms and Applications, Richard Szeliski, 2010

The electronic copy of the book in PDF is freely available on the web page: http:szeliski.org/Book

Other usful references:

  • Photography (8th edition), London and Upton, (a great general guide to taking pictures)

  • Vision Science: Photons to Phenomenology, Stephen Palmer (a great book on human visual perception)

  • Digital Image Processing, 2nd edition, Gonzalez and Woods (a good general image processing text)

  • The Art and Science of Digital Compositing, Ron Brinkmann (everything about compositing)

  • Multiple View Geometry in Computer Vision, Hartley & Zisserman (a bible on recovering 3D geometry)

  • The Computer Image, Watt and Policarpo (a nice “vision for graphics” text, somewhat dated)

  • 3D Computer Graphics (3rd Edition), Watt (a good general graphics text)

  • Fundamentals of Computer Graphics, Peter Shirley (another good general graphics text)

  • Linear Algebra and its Applications, Gilbert Strang (a truly wonderful book on linear algebra)

Assignments and grading

  • Projects (60%): Five programming projects. Each project is worth up to 100 points. You can earn 500 points through completing the six standard projects. Students are graded out of 600 points. Note that a perfect project score requires more than 500 points. Extra credits can be earn by implementing the suggested extensions to projects of interests (“bells and whistles”). For example, in addition to completing the five standard projects (500 points), a student needs to earn 100 points in bells and whistles in order to receive full a perfect project score, i.e., 60% of the final grade.

  • Exam (20%): The exam will cover a variety of conceptual and paper-and-pencil problems related to the topics of lectures.

  • Final project (20%): Do a final project of your choice in groups of 2-3. You could implement a paper that you find interesting, something discussed in class, a significant extension of one of the course projects, or something entirely of your own design. See Final project for more details.

  • Class Participation: Attendance is expected and is necessary to get the most from the course. I will post lecture slides on the course website. However, the slides will be difficult to interpret without attending lectures.

  • Late policy: You will have a total of five free late days per semester. Additional late days come at a penalty of ten points per day late. A late day is anything from 1 minute to 24 hours.

Prerequisites

Good knowledge of linear algebra and calculus. Previous experience with MATLAB, computer graphics, computer vision, or image processing will be helpful. Students are recommended to own or purchase a digital camera (or use the camera on your smartphone).

Course objectives

Having successfully completed this course, the student will be able to

  • program software to create optical illusions, seamlessly add/remove objects from a photograph, smoothly morph between faces, automatically stitch and blend multiple photographs into panoramas, and more.

  • describe and explain core principles of computer vision and computer graphics, including image formation, filtering, correspondence, and alignment.

  • identify the applications of the techniques learned in the class in other fields, e.g., visual media design, art, photography, information visualization, and gaming entertainment technology.

  • understand the background required to use the techniques in their own research work or applications.

Academic integrity

Feel free to discuss projects with your classmates, but please refrain from showing or sharing any code. Any existing code from the Internet cannot be used in your project assignments unless it is specifically approved by the instructor. Be sure to acknowledge any help that you do get from other students or outside works, even if it’s just a small suggestion. Note taht violations of academic integrity will go on record at the university, and zero points for the entire project assignment.

Similar courses in other universities

Credits and Course Notes

The course material builds upon many preceding efforts to design excellent course projects and wonderful course notes. Feel free to use and modify any of the slides for academic and research purposes. Please do credit the original sources where appropriate.