Computer Science

ECS 174 Introduction to Computer Vision

Course title: Introduction to Computer Vision (4 Units)

Lecture: 3 hours
Discussion: 1 hour


Yong Jae Lee (

Catalog description:

Computer vision is the study of enabling machines to “see” the visual world (i.e., understand images and videos). This upper-division undergraduate course will explore several fundamental topics in the area, including feature detection, grouping and segmentation, and recognition.


Prerequisites are basic knowledge of probability (STA 32 or ECS 132), linear algebra (MAT 22A or MAT 67), data structures (ECS 60), and programming experience.


Students will be responsible for participating in class, completing 4 problem sets, and completing a mid-term and final exam.


Richard Szeliski, Computer Vision: Algorithms and Applications, Springer, 2011.

Computer usage:

Students will implement their problem set assignments with the Matlab and/or Python programming language, using the computer systems available in the Computer Science Instructional Facility.

Programming projects:

The programming projects for this class are chosen to enhance the lecture material in the course.

Summary of course contents:

Students will acquire a general background on computer vision. Topics will include:

  1. Features and Filters
    1. Linear filters
    2. Edge detection and image gradients
    3. Edges, contours, and binary image analysis
    4. Texture
    5. Color
  2. Grouping and Fitting
    1. Gestalt properties
    2. K-means, Mean-shift, Spectral clustering
    3. Hough transform
    4. Deformable contours
    5. RANSAC
    6. Homography
  3. Recognition
    1. Local Invariant feature detection and description
    2. Indexing local features
    3. Instance recognition
    4. Generic category recognition
    5. Discriminative classifiers (Nearest Neighbors, Support Vector Machines, Boosting)
    6. Window-based models
    7. Part-based models


Goals: Students will (1) acquire fundamental knowledge of low-level image processing; image clustering, segmentation, and fitting; and object and scene recognition; and (2) learn how to design, implement, and evaluate state-of-the-art computer vision algorithms.