Computational Photography Spring

Learn by building your own camera.

In this project-based class, students will learn to: (1) build a simple imaging system using the arducam (or similar camera); (2) apply simple and not-so-simple image processing algorithms to your images; (3) build a simple machine-learning algorithm to recognize (classify) objects; and (4) explore unconventional cameras such as lens-free cameras, multi-spectral cameras, depth cameras, etc. The students are expected to work in small teams, and will need to purchase arducam (or similar low cost) camera modules. Prior knowledge of python or matlab (or something similar) is expected. The class is offered in a hybrid format, where meetings in the instructor’s lab and synchronized meetings on zoom will be interspersed throughout the semester. All resources, required code, documentation, papers will be provided. There is no single textbook.

This class is a combination of lectures, project work and independent study as noted below.

All student teams are expected to complete a technical (journal quality) paper to be submitted for peer review at the end of the semester.

Grading: 30% assignments; 35% class presentations; 35% final technical paper.

Class format: Hybrid. Zoom lectures & in lab/conference room meetings.per schedule below. Zoom info to be sent via canvas. Labs will be in MEB 1541 and Meeting conference room TBD. Meeting times Tue/Thu: 12:30p-1:30pm.

Photos from Spring 2023

Spring 2022 Schedule

DateTitleNotesAssignments/Resources
01/11Overview of course
(Lecture notes)
Zoom lecture
Thin-lens applet
Kari Pulli lecture
OpenCV
Arducam
01/13Introduction to project ideas. Discussions, Brainstorming.Zoom lecture
01/18Basics of Geometrical optics 1 [Apratim Majumder]Zoom lectureChoose teams & topic
01/20 [10am MT]3D Optix guest lecture & tutorial (Gil Noy, CEO)Zoom (guest) lectureNote time change.
01/25Basics of Geometrical optics 2 (examples & tutorials) [Apratim Majumder]Zoom (guest) lectureSelect cameras to order.
01/27Synopsis software overview [Dr. Mary Kate Crawford]Zoom (guest) lecture
02/01Camera setup & preliminary testing.In lab
02/03Dataset generation methods.In lab / brainstorming.Simulate your setup. Submit report.
02/08Camera imaging models [Peter Catrysse, Stanford]Zoom (guest) lecture
02/10Generate your own datasetsIndependent study
02/15Introduction to Machine LearningZoom lecture
02/17ML simple examples [Soren Nelson, BU]Zoom (guest) lecture & tutorial 1st version of software tools submitted to github.
02/22ML training using acquired data sets.Independent study
02/24Machine Learning Theory.Zoom lecture
3/1ML training using acquired data sets.In lab/Brainstorming.
3/3ML results presentation (assignment)Zoom presentation.Presentation of 1st results from your cameras.
3/8Spring break
3/10Spring break
3/15Linear algebraic techniques for inverse problems [Fernando Vasquez, Math]Zoom (guest) lecture
3/17Optimization of Electromagnetic Design : Millimeter-wave Computational Imaging applications [Naren Viswanathan]Zoom (guest) lecture
03/22Experiments & AnalysisIn-lab meeting.
03/24Cannula ImagingIn-lab lecture & lab tour. Complete 1st draft of technical paper. Focus on experiments.
03/29ADMM (linear algebra for inverse problems)Zoom (guest) lecture
3/31Experiments & Analysis Independent study
4/5Hyper-spectral imagingLecture & lab tour.
4/7Experiments & AnalysisIndependent study2nd version of software tools submitted to github.
4/12Experiments & AnalysisIndependent study
4/14Paper study (TBD) Zoom lecture & discussionFinal technical paper for submission.
4/19ExperimentsMeet in lab for final project debriefing.
04/21Fnal presentationsFinal presentation.
04/22 (12pm)Industry lecture: Kunjal Parikh (Intel)Note change of date & time. Submit final software & data to github due April 26.