ROBO/MCEN 5228: Advanced Computer Vision

Geometry and Learning-based Methods in Computer Vision


Fall 2024





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, 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. Alternatively, students are allowed to use their local machines for assignments.

Lectures


No. Topic Slides
1. Introduction Link
2. Perception and Image Formation Link
3. All About Features Link
4. Projections and Transformations Link
5. Non-Rigid Transformations and Camera Models Link
6. Camera Calibration and Introduction to Computer Graphics Link
7. Curves and Rendering Link
8. Single View Geometry Link
9. Computational Imaging Link
10. Coded Deep Depth Link
11. Two View Geometry and Stereopsis Link
12. Structure From Motion 1 - Epipolar Geometry 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
19. Introduction to Deep Learning and Neural Networks Link
20. Neural Networks Architectures Link
21. More Neural Networks and Transformers Link
22. Diffusion Models Link
23. AI Applications in Computer Vision - 1 Link

Assignments


This course consists of four assignments that are to be done in groups of TWO, 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 5, 2024 Sep 25, 2024
2. Homework: Calibrate My Camera Sep 27, 2024 Oct 7, 2024
3. P2: Coded Deep Depth | Part 1 | Part 2 Oct 8, 2024 Oct 31, 2024
3. P3: Blob The Builder: Gaussian Splatting | Part 1 | Part 2 Nov 3, 2024 Nov 27, 2024

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.