
Visual Computing is a module I took this semester at NUS ECE, hosted by Assoc. Prof. Robby Tan. It covers some of the best-known classic CV algorithms, for example, face detection, image stitching and depth estimation.
A taste of classics
Deep Learning methods, typically based on CNN architectures, can offer ease of implementation, often achieve superior accuracy, and can result in lightweight models. Given these advantages, one might question the continued need to study traditional CV techniques.
The key lies in the distinct characteristics of each approach. Unlike the “black box” nature of many machine learning models, traditional CV algorithms are more explainable and provide greater control through manual tuning. Furthermore, they exhibit a degree of generality, as their feature extraction processes aren’t inherently tied to specific image datasets. Consequently, algorithms like SIFT remain prevalent in applications like image stitching and 3D mesh reconstruction, where class-specific knowledge isn’t required. Finally, DL can sometimes be an unnecessarily complex solution, while traditional CV techniques can often be simplified and implemented on resource-constrained devices like microcontrollers.
Course structure
The module is structured into two main sections and can be further divided into multiple sub-sections. Each section offers comprehensive explanations and extensive experimentation. The assignments can be found in repo Assignment 1 and Assignment 2.
- Viola-Jones Face Detection Algorithm (Viola & Jones, 2004)
- Histogram of Oriented Gradients (HOG) Features and Human Detection (Dalal & Triggs, 2005)
- Scale Invariant Feature Transform (SIFT) Algorithm (Lowe, 2004)
- Image Stitching (Brown & Lowe, 2007)
- (Zhang et al., 2009)
- Camera Parameters (Hartley & Zisserman, 2003)
- Depth from Stereo
- Markov Random Field
- Depth from Video
- Optical Flow
- Structure Decomposition