MCEN 5228: Advanced Computer Vision

Geometry and Learning-based Methods in Computer Vision


Fall 2025



For previous year's course lectures and assignments, visit here



Course Description


Sign up for Piazza here using colorado.edu ID, if you haven't.


Welcome to MCEN 5228-005: Advanced Computer Vision course by Prof. Chahat Deep Singh at the University of Colorado, Boulder. This is an advanced graduate course that deals with classical (or geometric) and deep learning methods in computer vision. This course starts by exploring the mathematical foundations of computer vision and advances to the recent deep learning advancements. The course objective is to introduce formal tools in perception for students who are interested in Robot Autonomy and 3D Perception. This course will explore camera sensor and calibration, image formation, single-view geometry, projective transformation, multi-view geometry, structure from motion, optical flow, computational imaging methods, radiance fields, volumetric rendering, and deep learning-based depth and reconstruction methods.
Note: Pre-requisites include Linear Algebra and proficiency with Python (or any other scripting language).
Students DO NOT require an understanding of computer vision before enrolling in this course.


Course Logistics


All the course announcements will be made through Piazza, which will be the main mode of communication during this course. Sign up for Piazza here, if you haven't. Please do NOT contact the Instructor or the TA via email unless it is an emergency. DO NOT contact the Instructor or the TA on any social media platform such as Facebook or WhatsApp (please respect their privacy) regarding course content. Canvas will only be used for Grading and uploading student assignments.

Software Environment


We will use Python 3 as the programming platform throughout this course, along with packages from OpenCV, TensorFlow, PyTorch, Numpy, Scikit, and Matplotlib. We will be using Google Colab for assignments. You can get free Google Colab with GPU access for 1 year. A tutorial can be found here. Alternatively, students are allowed to use their local machines for assignments.

Lectures


No. Topic Slides
1. Introduction Link
2. Image Formation Link
3. All About Features! Link
4. Projections and Transformations Link

Assignments


This course consists of four assignments that are to be done in groups of TWO, one in-class midterm exam and one homework to be submitted individually. During this course, you are allowed to discuss concepts among your team members or other class members but DO NOT copy each other. For further details, read the Collaboration Policy and Honor Code.

No. Assignment Release Date Due Date
0. Python Tutorial | OpenCV Tutorial
1. P1: Panorama! Sep 01, 2025 Sep 22, 2025
2. Homework: Calibrate My Camera Sep 23, 2025 Sep 29, 2025

Late Policy


This course is fast-paced, with concepts building upon each other. Staying up to date with the course is crucial. Late assignments incur a 20% penalty per day, but we understand life happens. You have a total of six late days for this course that can be used across different assignments (except the final project). To get full credit on a 2-days-late assignment, you'd need to use two late days. Late days can only be spent as full days (i.e., you can't use only half a late day for an assignment you submit 12 hrs late). If you are using a late day, mention it in the title of your submission as "USING X LATE DAY(S)" and post a comment on ELMS about the usage of a late day. We expect you to keep track of number of late days you have remaining and notify us of usage of one or more late days. We will default for penalty if we don't see the mention of late day usage as a comment on ELMS on that particular assignment.

Collaboration Policy and Honor Code


Collaboration is encouraged, but one should know the difference between collaboration and cheating. Cheating is prohibited and will carry serious consequences. Cheating may be defined as using or attempting to use unauthorized assistance, material, or study aids in academic work or examinations. Some examples of cheating are: collaborating on an take-home exam or homework unless explicitly allowed; copying homework; handing in someone else's work as your own; and plagiarism. You are welcome to collaborate with your peers on Piazza and in person. However it's important that the work you submit is an expression of your understanding, and not merely something you copied from a peer. So, we place strict limits on collaboration: Firstly, you must clearly cite your collaborators by name at the top of your report. This includes Piazza posts reference. You may not share or copy each other's code. You can discuss how your code works, and the concepts it implements, but you can't just show someone your code. You may use free and publicly available sources, such as books, journal and conference publications, and web pages, as research material for your answers. (You will not lose points for using external sources.) You may not use any service that involves payment, and you must clearly and explicitly cite all outside sources and materials that you made use of. We consider the use of uncited external sources as portraying someone else's work as your own, and as such it is a violation of the University's policies on academic dishonesty. Instances will be dealt with harshly and typically result in a failing course grade. Unless otherwise specified, you should assume that that the CU Boulder Code of Academic Integrity applies. Unless otherwise specified, you should assume that that the CU Boulder Code of Academic Integrity applies.



For previous courses offered by Chahat Deep Singh, please visit here or here.