Mathematical background: Basic courses in Linear Algebra, Calculus and Probability.
Programming skills: All class assignments will be in Python. If you have a lot of programming experience but in a different language (e.g. C/C++/Matlab/Javascript) you will probably be fine.
We also encourage students to take “Introduction to Computer Vision” course, which provides complimentary fundamental knowledge to ours.
Introduction & ML Basics
Basics of Neural Networks
Convolutional Neural Network
Advanced Neural Networks Training
Detection / Segmentation
Visualizing and Understanding
Sequences (Recurrent Neural Networks, Attention, Transformers)
Generative Models (GANs, VAEs)
Self-supervision in Images, Videos and Sound
Learning from Videos
CNN as representations and optimizers
Implicit 3D representation
Graph Neural Networks
Deep Learning Theory
Upon successful completion of the course the students will be able to have:
In-depth understanding of the fundamentals of deep-learning based methodologies in computer vision (e.g., convolutional neural networks, optimization, back-propagation, generative image models)
Gain knowledge about core deep learning algorithms, modern approaches and cutting-edge research for various visual tasks.
Hands-on experience with deep learning for computer vision:
Implement neural networks and their components from scratch.
Train, run and debug CNN models using leading frameworks (PyTorch)
https://www.deeplearningbook.org/
Some of our basic topics are also covered in Stanford CS231n