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 |
| 5. | Non-Rigid Transformation and Camera Models | Link |
| 6. | Camera Calibration and Introduction to Computer Graphics | Link |
| 7. | Curves and Rendering | Link |
| 8. | Single View Geometry | Link |
| 9. | Intro to Computational Imaging | Link |
| 10. | Coded Deep Depth | Link |
| 10b. | Coded Deep Depth - 2 | Link |
| 11. | Two View Geometry and Stereopsis | Link |
| 12. | Structure from Motion - 1 | Link |
| 13. | Structure from Motion - 2 | Link |
| 14. | Volumetric Rendering | Link |
| 15. | Neural Radiance Fields | Link |
| 16. | More NeRFs | Link |
| 17. | 3D Gaussian Splatting | Link |
| 18. | Motion Fields and Optical Flow | 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 |
| 3. | P2: Coded Deep Depth Part 1 | Part 2 | Sep 30, 2025 | Oct 20, 2025 |
| 4. | P3: Blob the Builder Part 1 | Part 2 | Oct 25, 2025 | Nov 19, 2025 |
| 5. | MidTerm (In-Class) | Nov 11, 2025 | — |
| 6. | P4: Monocular Visual Odometry | Dec 2, 2025 | Dec 12, 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-day-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 Canvas about the usage of a late day. We expect you to keep track of the number of late days you have remaining and notify us of the usage of one or more late days. We will default to a penalty if we don't see the mention of late-day usage as a comment on Canvas on that particular assignment.
Collaboration Policy and Honor Code
Collaboration is encouraged, but it is essential to understand the distinction between collaboration and cheating. Cheating is strictly prohibited and will result in 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 a 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, journals 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 the CU Boulder Code of Academic Integrity applies. Unless otherwise specified, you should assume that the CU Boulder Code of Academic Integrity applies.
For previous courses offered by Chahat Deep Singh, please visit here or here.