Ever wonder how robots can navigate space and perform duties, how search engines can index billions of images and videos, how algorithms can diagnose medical images for diseases, how self-driving cars can see and drive safely or how instagram creates filters or snapchat creates masks? In this class, we will explore all of these technologies and learn to prototype them. Lying in the heart of these modern AI applications are computer vision technologies that can perceive, understand and
reconstruct the complex visual world. Computer Vision is one of the fastest growing and most exciting AI disciplines in today’s academia and industry. This 10-week course is designed to open the doors for students who are interested in learning about the fundamental principles and important applications of computer vision. We will expose students to a number of real-world applications that are important to our daily lives. More importantly, we will guide students through a series of well designed projects such that they will get to implement a few interesting and cutting-edge computer vision algorithms.
Class Time and Location
Tu/Th, 1:30pm to 2:50pm
Fri, 12:30pm to 1:20pm
*See syllabus for dates
Link to details on when assignments are due and what will be taught every day.
Recommended but not required: Computer Vision: A Modern Approach by Forsyth & Ponce
Details on how to work on and submit each assignment.
Mon 7pm – 10pm
Tu 10am – 1pm
Wed 9am – 12pm
Thur 4:30pm – 7:30pm
- Assignment 0: 8%
- Assignment 1-8: 9%
- Final: 20%
- Extra Credit: up to 10%
Assignment 0 is a simple assignment to get you acquainted with python and basic libraries we will be using in the course. Each assignment (1 through 8) will be worth 9% each. You will have one week to complete every assignment but all the assignments will be available 2 weeks before they are due. It will be due on Fridays at 11:59pm.
The final exam will be a 3 hour exam where you will be tested on the concepts, applications and theories taught in the class.
Throughout the course you will have opportunities to earn extra credit. They can be earned by completing the extra credit questions in every assignment or by improving the existing course notes. These extra credit points are designed to allow students to delve deeper into the topics that they find most interesting. You can improve your final class grade by 1 letter point using extra credit, i.e. you can go from a B+ to an A+ or a B to an A if you do all the extra credit.
Extra Credit Class notes
The course staff believes that the best way to learn something is to teach it to someone else. Since we have changed the class last year and its assignments from previous years, we ask that all the students contribute to help teach one another by contributing to the class notes. You can choose to add to the existing notes from last year. There are new materials that have been added this year that don’t have any notes, meaning that there are plenty of opportunities to earn extra credit.
These notes will be worth 3% of your extra credit.
The class notes will be graded based on fluency (grammatically correct complete English sentences), consistency (the entire lecture should be a coherent message), coverage (all topics in the lecture are included).
You will have a total of 7 late days that you can use in whichever assignments you prefer. There is a limit of 3 late days used per assignment, which means that the hard deadline for each assignment is on Monday at 11:59pm.
Once you have used all your late days (or 3 late days for an assignment), penalty is 25% for each additional late day.
Proficiency in Python (NumPy)
All class assignments will be in Python (with numpy.) Please review this NumPy tutorial to help with your assignments.
Linear Algebra (e.g. MATH 51)
We will use matrix transpose, inverse, rotation, translation and other algebraic operations with matrix expressions. If you are a quick learner you should be able to learn them during the class if you haven’t yet. We will have review sessions and provide review materials.
Calculus (e.g. MATH 19 or 41)
You’ll need to be able to take a derivative, and maximize a function by finding where the derivative=0.
Probability and Statistics (e.g. CS 109)
You should know basics of probabilities, gaussian distributions, mean, standard deviation, etc.