Sign up for Piazza using your
colorado.eduID. Piazza is the primary communication channel for this course.
Course Description
Welcome to MCEN 5228-010: Advanced Computer Vision, taught by Prof. Chahat Deep Singh at the University of Colorado Boulder. This advanced graduate course covers classical, geometric, and deep learning methods in computer vision. The course begins with the mathematical foundations of computer vision and progresses to recent deep-learning advances. Its objective is to introduce formal perception tools for students interested in robot autonomy and 3D perception.
Topics include camera sensors and calibration, image formation, single-view geometry, projective transformations, multi-view geometry, structure from motion, optical flow, computational imaging, radiance fields, volumetric rendering, and deep-learning-based depth and reconstruction methods.
Prerequisites: Linear algebra and proficiency with Python or another scripting language. Prior computer vision experience is not required.
Course Logistics
All course announcements will be made through Piazza, which is the main mode of communication during the course.
Please do not contact the instructor or teaching assistant by email unless the matter is an emergency. Do not contact the instructional staff through social-media platforms regarding course content. Canvas will be used only for grading and assignment submissions.
Software Environment
We will use Python 3 throughout the course, together with OpenCV, TensorFlow, PyTorch, NumPy, scikit-learn, and Matplotlib.
Assignments will use Google Colab. CU Boulder students can obtain free Google Colab GPU access for one year. A setup tutorial is available here. Students may alternatively use their own local machines.
Lectures
| No. | Topic | Slides |
|---|---|---|
| 1 | Introduction | — |
| 2 | Image Formation | — |
| 3 | All About Features! | — |
| 4 | Projections and Transformations | — |
| 5 | Non-Rigid Transformation and Camera Models | — |
| 6 | Camera Calibration and Introduction to Computer Graphics | — |
| 7 | Curves and Rendering | — |
| 8 | Single View Geometry | — |
| 9 | Introduction to Computational Imaging | — |
| 10 | Coded Deep Depth | — |
| 10b | Coded Deep Depth — 2 | — |
| 11 | Two-View Geometry and Stereopsis | — |
| 12 | Structure from Motion — 1 | — |
| 13 | Structure from Motion — 2 | — |
| 14 | Volumetric Rendering | — |
| 15 | Neural Radiance Fields | — |
| 16 | More NeRFs | — |
| 17 | 3D Gaussian Splatting | — |
| 18 | Motion Fields and Optical Flow | — |
Assignments
This course consists of four assignments completed in groups of two, one in-class midterm examination, and one homework completed individually.
Students may discuss concepts with team members and other class members, but may not copy another student's work. Refer to the Collaboration Policy and Honor Code below for details.
| No. | Assignment | Release Date | Due Date |
|---|---|---|---|
| 0. | Python Tutorial | OpenCV Tutorial | — | — |
| 1 | P1: Panorama! | — | — |
| 2 | Homework: Calibrate My Camera | — | — |
| 3 | P2: Coded Deep Depth — Part 1 / Part 2 | — | — |
| 4 | P3: Blob the Builder — Part 1 / Part 2 | — | — |
| 5 | Midterm — In Class | — | — |
| 6 | P4: Monocular Visual Odometry | — | — |
Late Policy
This course is fast-paced, with concepts building upon each other, so staying current is important. Late assignments incur a 20% penalty per day.
Students have a total of six late days that may be used across assignments, except the final project. Late days must be used as full days. For example, receiving full credit on an assignment submitted two days late requires using two late days.
When using late days:
- Include “USING X LATE DAY(S)” in the submission title.
- Add a Canvas comment identifying the late-day usage.
- Track the number of late days remaining.
A late penalty will be applied when late-day usage is not identified in the Canvas submission.
Collaboration Policy and Honor Code
Collaboration is encouraged, but students must understand the distinction between collaboration and cheating. Cheating is strictly prohibited and may include using unauthorized assistance, materials, or study aids; collaborating when collaboration is not permitted; copying homework; submitting another person's work; or plagiarism.
Students may collaborate through Piazza and in person, but submitted work must reflect each student's own understanding.
The following limits apply:
- Clearly cite collaborators by name at the top of the report, including relevant Piazza posts.
- Do not share or copy code.
- Discussion of concepts and how code works is permitted.
- Free and publicly available books, journal articles, conference papers, and webpages may be used as research materials.
- Paid solution services may not be used.
- Clearly and explicitly cite all outside sources and materials.
Uncited use of external sources is treated as presenting another person's work as your own and violates university academic-integrity policy. Unless otherwise specified, the CU Boulder Code of Academic Integrity applies.