Schedule
A tentative schedule below (subject to change as we progress).
Date Topics Readings Items due Week 1 (Mon: 08/26)
Introduction to Computer Vision
Lecture Slides 1
Course logistics
Introduction to computer vision
Week 1 (Wed: 08/28)
Image Filtering: cross-correlation
Lecture Slides 2
In-class activity #1 (image filtering cross-correlation)
Pillow concepts
Pillow tutorial
Image.open(path)
Image.save(path)
Image.new('L', (width, height), color=0)
Image.getpixel( (x,y) )
Image.putpixel( (x,y), value)
ImageDraw( img )
Week 2 (Wed: 09/02)
Labor Day (university holiday; classes do not meet)
Week 2 (Wed: 09/04)
Image Filtering: convolution
Lecture Slides 3
Activity (image filtering: convolution)
Notebook #1 (released on 09/05)
Image.histogram()
Week 3 (Mon: 09/09)
Image Recognition
Image Classification and Neural Networks (NN)
Types of NN: Multilayer Perceptron (MLP)
Lecture Slides 4
In-class activity #2 (PyTorch MLP)
PyTorch Basics (review this before attempting activity#2)
PyTorch: nn.Linear()
PyTorch: nn.Sigmoid()
PyTorch: nn.Tanh()
PyTorch: nn.ReLU()
Week 3 (Wed: 09/11)
In-class activity #2 (PyTorch MLP) continued
Types of NN: Convolution Neural Network (CNN)
Lecture Slides 5
PyTorch: nn.Conv2d()
PyTorch: nn.MaxPool2d()
PyTorch: nn.AvgPool2d()
Notebook#1 (due on 09/13)
Week 4 (Mon: 09/16)
Reza is traveling (class does not meet) Midwest Computer Vision Workshop@Indiana University Bloomington Notebook #2 (released on 09/16)
Week 4 (Wed: 09/18)
In-class activity #3 (PyTorch CNN)
Notebook#2 discussion
Week 5 (Mon: 09/23)
Popular Image Classification Networks (AlexNet, VGG, ResNet)
Dissecting Popular Pre-trained CNN models
Lecture Slides 8
Notebook#2 (due on 09/23)
Week 5 (Wed: 09/25)
Fine-tuning a Pre-trained CNN model
Lecture Slides 9
Notebook #3 (Fine-tuning popular CNNs)
Quiz#1 (will be released on 09/26)
Week 6 (Mon: 09/30)
Vision Transformer (ViT)
Swin Transformer Tiny
ConvNext
Inflated-ConvNext Tiny
Lecture Slides 10
The Hardware Lottery - Sara Hooker
Transformer (designed to win the hardware lottery)
Vision Transformer (ViT): Transformers for image recognition at scale
Week 6 (Wed: 10/02)
Object Detection
Classical Object Detection
Popular Object Detectors (Mask R-CNN, YOLO)
Lecture Slides 11
In-class activity #4 (Inference with Popular Detectors)
Notebook#3 (due on 10/02)
Quiz#1 (due on 10/03)
Week 7 (Mon: 10/07)
Fine-tuning Popular Object Detectors (Mask R-CNN, YOLO)
Lecture Slides 12
Notebook #4 (Finetuning Popular Detectors)
Week 7 (Wed: 10/09)
Image Segmentation
Classical Segmentation (Felzenswalb, SLIC, clustering)
Vision Foundation Model for Image Segmentation: Segment Anything (SAM)
In-class activity #5 (Segmentation with SAMv1 and SAMv2)
Lecture Slides 13
Week 8 (Wed: 10/14)
Fall Break (no class)
Notebook#4 (due on 09/14)Week 8 (Mon: 10/16)
Semantic Segmentaiton
Popular Semantic Segmentation Models (FCN-ResNet)
Lecture Slides 14
In-class activity #6 (Inference with Popular Semantic Segmentation Models)
Semantic Segmentaiton
Training Popular Semantic Segmentation Models (FCN-ResNet)
Lecture Slides 15
Notebook #5
Week 9 (Mon: 10/21)
Probability Basics
Discrete Probability Distribution
Lecture Slides 16
Continous Probability Distribution
Gaussian Distributions
Lecture Slides 17
In-class activity #7 (Exploring Gaussian distribution)
Week 9 (Wed: 10/23)
Maximum Likelihood (ML) Estimate
Lecture Slides 18
In-class activity #8 (Maximum likelihood estimate for Gaussian distribution)
Week 10 (Mon: 10/28)
Image Generation
Deep Generative Models: Generative Adversarial Network (GAN)
Lecture Slides 19
In-class activity #9 (Image to Image Translation with GAN)
Week 10 (Wed: 10/30)
Image Generation
Deep Generative Models: Variational Auto Encoder (VAE)
Lecture Slides 20
Tutorial on variational autoencoder by Carl Doersch
Generative model: implicit reparameterization
Wasserstein Distance
Q2 (due by 10/30)
Week 11 (Mon: 11/04)
Deep Generative Models (Diffusion Model)
Diffusion Model for Image Generation
Diffusion Model for Video Generation (text2video, OpenAI Sora, Gen2, VideoCrafter, PikaLab)
Lecture Slides 21
Week 11 (Wed: 11/06)
Transformation
Image warping
Activity: Warping
Linear transformation
Homogenous coordinates
Affine and projective transformation
Lecture Slides 22
Week 12 (Mon: 11/11)
Camera Projection
Modeling projection
Activity: projection practice
Generalizing the model
Adding a lens
Lecture Slides 23
Week 12 (Wed: 11/13)
Feature points
Scale Invariant Feature Transform (SIFT)
Image and feature matching
Activity: applying SIFT on real images
Deep feature learning with Siamese Neural Network (Reza AIPR'20)
Frozen deep features for different tasks (eg, crowd counting): DINO, SAM, CLIP
Lecture Slides 24
Week 13 (Mon: 11/18)
Image Matching
RANdom SAmple Consensus (RANSAC)
Activity: how many rounds?
RANSAC parameters and implementation details
Lecture Slides 25
Week 13 (Wed: 11/20)
Stereo
Depth from stereo
The case of parallel cameras
Parallel cameras and rectification
Naive stereo matching
Stereo matching with deep neural network
Lecture Slides 26
Week 14 (Mon: 11/25)
3D Reconstruction from Images
Structure from Motion (SfM)
Lecture Slides 27
From Images to 3D Models-ACM Communication'2002
Week 14 (Wed: 11/27)
Thanksgiving Break (no class)
Week 15 (Mon: 12/02)
3D Reconstruction from Images
Deep Learning Based 3D Reconstruction
Lecture Slides 28
Week 15 (Wed: 12/04)
Final project presentation
Lecture Slides 29
Course Evaluation
Week 16 (Mon: 12/09)
No final exam!
Q3 (due on 12/11)
Final Project Code + Report (due by 12/11)