CS 365: Computer Vision

Syllabus for Spring 2016

Topics and Reading Assignments


There are no great computer vision textbooks. There are good computer vision textbooks that are somewhat old (Stockman and Shapiro, or Sonka and Hlavac). There is a reasonable computer vision text that is free in electronic form (Szeliski). There are a number of reference style texts, mostly covering the software OpenCV and its various language APIs. You can access a decent OpenCV reference in the Colby Library Safari Online service. I would recommend downloading the Szeliski Book and using the OpenCV reference to get both the theoretical and practical side of computer vision.


Projects 55%
Mid-term Exam 15%
Final Exam 20%
Class Participation 10%

Assignments and homeworks will account for over half of your grade, with exams and class participation accounting for the remainder. The grading policy on assignments is that the tasks specified explicitly in the lab description will constitute about 85% of the assignment. If you complete the specified parts of the assignment properly, and produce a high-quality writeup, it's worth up to a B+ grade. In addition, the lab description will include a variety of extensions to the assignment, or you can come up with your own. Completing one or more extensions, in addition to the specified parts of the assignment, will earn you some flavor of A.

Late Policy

The projects will tend to build upon each other, so it is critical to stay on schedule in order to be successful. Late projects will receive reduced credit. It is better to turn in a functional project on time than a fancy project late.

As you all have busy schedules, you may have two four-day extensions you can use at your discretion over the course of the semester, excepting only the final project. That means you may choose to hand in two projects on Monday instead of Thursday.


Collaboration on assignment concepts and ideas between groups is acceptable, but you need to understand everything you do, and your code should be your own code. If you use ideas from another group, you must indicate that within your code or writeup. Err on the side of caution. The worst thing that can happen is the professor noticing disturbing similarities in homeworks or assignments with no attribution of credit.


For each assignment, you will put together a wiki page for the writeup. The writeup should describe the assignment, explain any required theory, and present the results. Your audience for the writeup is your fellow students who might be interested in what you're doing.

To hand in your code, create a zip or tar file of all of the relevant source code files and place it in the private subdirectory of your Courses handin directory.

Weekly Topics and Readings

  • Introduction, course concept
  • Imaging and Image Sensors
  • Human Visual System
Lecture Notes
  • Color spaces and color perception
  • Imaging Geometry, Sensing, and Aliasing
  • Color Reflection Models
Lecture Notes
  • Binary Image Processing
  • Thresholding
  • Histograms and Color Distance Metrics
Lecture Notes
  • Connected-Components Analysis
  • 2D Region Properties
  • Greyscale Processing and Filtering
Lecture Notes
  • Edge-preserving Filters
  • Canny Edge Detection Process
  • Chain Codes
Durand Bilateral Filtering 2002
Lecture Notes
  • Model Extraction: RANSAC, Hough Transform
  • Texture Descriptors: Laws, Co-occurrance
  • Pixel-based texture classification
Lecture Notes
  • Camera Calibration
  • Intrinsic and Extrinsic Parameters
  • Stereo and Rectification
Take-home Exam
Seitz Space of Stereo Images 2002
Szeliski Book
Lecture Notes
  • Motion; Optical Flow
  • Good Features to Track;SIFT
  • Tracking: Bayes Filters
Lowe SIFT 2004
Szeliski Book
Lecture Notes
  • Tracking: Kalman Filters
  • Tracking: Particle Filters
  • Pattern Recognition: Introduction
Lecture Notes
  • Cascade Classifiers; Adaboost
  • Appearance-Based Recognition
  • Basic ANNs
Viola-Jones Cascade FR 2001
Wu Cascade Classifiers 2004
Pomerleau ANN Driving 1995
Rowley ANN FR 1996
Rowley ANN FR 1998
Turk Eigenfaces 1991
Murase Visual Learning 1995
Lecture Notes
  • Decision Trees: Kinect Classifier
  • Convolutional ANNs
  • Digit Recognition
Shotton Kinect DT 2013
Deep Learning Book
Lecture Notes
  • Deep Learning: DeepFace
  • Tuning Deep Networks
  • Recognizing Objects and Labeling Videos
Hinton Deep Learning 2006
LeCun Character Recognition 1998
He CNN OR 2015
Krizhevsky CNN OR 2014
Karpath CNN Video Labeling 2014
Vasconcelos Movie Trailers 1997
Lecture Notes
  • Computational Photography
  • Image Abstraction and NPR
  • Video Textures
Schodl 2000
Litwinowicz Impressionist Style 1997
Winemoller Video Abstraction 2006
Collomosse Cubism 2003
Salisbury Pen and Ink 1997
Hays Painterly Rendering 2003
Bell Product Matching 2015
Gatys Style Matching 2015
Lecture Notes