CS 195: Computer Vision
Fall 2024
Instructor: Alimoor Reza
Assistant Professor of Computer Science
Department of Mathematics and Computer Science
Drake University

Class room: Collier-Scripps # 335
Meeting time: Mon/Wed (3:30 pm - 4:45 pm)
Office hours: Tue/Thu (12:00pm-2:30pm) or by appointment


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)