PRAISe Lab

Fall 2026

MCEN 5228 Advanced Computer Vision

Geometry and Learning-based Methods in Computer Vision

Announcements

  1. Schedule

    Course page updated with a PDF syllabus, grading weights, submission guidelines, and tips for working in pairs. The midterm is in class on Tuesday, November 10.

  2. Lecture

    Lecture 19 (Motion Fields and Optical Flow) slides are now posted.

  3. Assignment

    P3: Blob the Builder Part 1 is released. Part 2 will be released in class on Thursday, November 12. P3 is due Thursday, December 10, 2026.

  4. Lecture

    Lecture 18 (3D Gaussian Splatting) slides and recording are now posted.

  5. Lecture

    Lectures 16 and 17 (Neural Radiance Fields and More NeRFs) slides and recordings are now posted. Lecture 17 is online only and optional.

Quick Information

Instructor
Chahat Deep Singh
Class Hours
Tue/Thu, 3:30 PM–4:45 PM ECCS 1B14
Syllabus
Download PDF
Course Materials
This page: slides, recordings, notebooks, due dates, policies
Announcements & Questions
Piazza
Submissions & Grades
Canvas
Advanced Computer Vision course banner

Sign up for Piazza using your colorado.edu ID. 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 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, PyTorch, NumPy, scikit-learn, and Matplotlib. Assignments will use Google Colab; you may also work on your own machine.

A GPU is only required for P2 Part 2 and P3 Part 2. The free Colab tier gives you an NVIDIA T4 GPU (16 GB), which is enough for both — you do not need to pay for anything in this course. Enable it with Runtime → Change runtime type → T4 GPU. Colab Pro (about $10 per month) is entirely optional and only makes training faster.

Training time

Rough estimates. Free-tier sessions disconnect, but the starter notebooks checkpoint each epoch to Google Drive and resume automatically. Start early regardless.

Assignment Free tier (T4) Colab Pro (A100)
P2: Coded Deep Depth — Part 2 2–4 hours 45–75 minutes
P3: Blob the Builder — Part 2 3–5 hours 1–1.5 hours

Lectures

Slides are posted here before each lecture. Recordings are added after class.

No. Topic Slides Video†
1 Introduction Link Link
2 Image Formation Link Link
3 All About Features! Link Link
4 Projections and Transformations Link Link
5 Non-Rigid Transformation and Camera Models Link Link
6 Camera Calibration and Introduction to Computer Graphics Link Link
7 Curves and Rendering Link Link
8 Single View Geometry Link Link
9 Introduction to Computational Imaging Link Link
10 Coded Deep Depth Link Link
11 Coded Deep Depth — 2 Link Link
11b Project 2 Release Link —
12 Two-View Geometry and Stereopsis Link Link
13 Structure from Motion — 1 Link Link
14 Structure from Motion — 2 Link Link
15 Volumetric Rendering Link Link
16 Neural Radiance Fields Link Link
17 More NeRFs (online only, optional) Link Link
18 3D Gaussian Splatting Link Link
19 Motion Fields and Optical Flow Link —
20 Introduction to Deep Learning and Neural Networks — —
21 Neural Network Architectures — —
22 More Neural Networks and Transformers — —
23 Diffusion Models — —
24 AI Applications in Computer Vision — 1 — —
25 AI Applications in Computer Vision — 2 — —
26 Neuromorphic Vision and Robot Autonomy — —

† Lecture videos are available only to CU Boulder members signed in with a colorado.edu account.

Assignments

This course consists of four assignments and one homework, all of which may be completed in groups of two, plus one in-class midterm examination. Solving and submitting the homework individually earns 25% extra credit.

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! Sep 2, 2026 Sep 21, 2026
2 Homework: Calibrate My Camera Sep 22, 2026 Sep 30, 2026
3 P2: Coded Deep Depth — Part 1 / Part 2 Sep 30, 2026 Oct 20, 2026
4 P3: Blob the Builder — Part 1 / Part 2 (releases Nov 12) Nov 2, 2026 Dec 10, 2026
5 Midterm — In Class Nov 10, 2026 —
6 P4: Monocular Visual Odometry Nov 17, 2026 Dec 10, 2026

Grading

Component Weight
P1: Panorama! 16%
P2: Coded Deep Depth 20%
P3: Blob the Builder 25%
P4: Monocular Visual Odometry 16%
Homework: Calibrate My Camera 8%
Midterm (in class) 15%
Total 100%

Working in Pairs

Projects are done in pairs, but each partner should understand every part of the submission. Splitting the work so that one person writes all the code and the other writes the report means each of you misses half of what the project teaches. Some ways to divide the work:

  • Work through the core algorithm together. Pair-program the key step of each project (for example, homography estimation in P1) or implement it separately and compare results.
  • Split by role, then swap. One partner leads the implementation and the other leads experiments and the report; switch roles on the next project.
  • Review each other's work. Before submitting, each partner reads and runs the other's code and edits the other's sections of the report.

Each report should end with a short Contributions paragraph stating what each partner did.

Submission Guidelines

These apply to every project. Each project's release slides list the specific results its report must include.

Submit one zip file per group on Canvas, named student1_student2_pN.zip (for example, smith_lee_p1.zip) and no larger than 300 MB. It must contain:

  1. Report.pdf: your report, typeset in LaTeX using the IEEE Transactions or Conference format.
  2. PN.txt: the link to your Google Colab notebook (for example, P1.txt). Set the notebook's sharing to Anyone with the link so it can be opened for grading, but do not post or send the link to anyone outside your group.
  3. A PDF export of your Colab notebook with all outputs and results visible.

The report must:

  • Show the input and output images for each step of the pipeline, and the final results for every dataset. Put all images in Report.pdf.
  • Explain the design choices you made and how you handled difficult cases, as each project asks.
  • Cite collaborators and outside sources (see the Collaboration Policy below) and end with a Contributions paragraph.

A reference PDF for each project is posted on Piazza. If you are using late days, follow the steps in the Late Policy below.

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:

  1. Include “USING X LATE DAY(S)” in the submission title.
  2. Add a Canvas comment identifying the late-day usage.
  3. 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.

Use of AI Tools

You may not use generative AI tools (such as ChatGPT, Claude, Gemini, or Copilot) to write any text you submit, including your report. You may use them to check your own writing for errors such as spelling and grammar. Submitting AI-written text is treated as unauthorized assistance under the Honor Code.

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.