Computer Vision and Pattern Recognition - EEE3032

CVPR is an undergraduate level 3 module that delivers an introduction to Computer Vision and basic Pattern Recognition and Classification topics. The module runs in Semester 2 and is on offer to all Elec. Eng. students, and to Computer Science and Maths students taking certain programmes. It ran for the first time in 2011, receiving some of the highest MEQ student feedback scores that year (ranging 4.5-5.0) and was nominated for the Tony Jeans `Inspirational Teaching' award. The course has no relation to the eponymous vision conference.

CVPR represents an introduction to Computer Vision at undergraduate level, and M Level students might go on to take Dr. Mikolajczyk's IPV vision course. The focus of the CVPR course is to deliver a hands-on working knowledge of vision algorithms and techniques, and an understanding of the mathematics underpinning them. Consequently a series of compulsory weekly labs accompanies this module.

Topics Covered

Download the EEE3032 module specification for full details. In brief, we deliver 30 hours of lectures (3 per week) distributed over the following topics:

[1]   Introduction to Computer Vision
[2-3]   Image Processing
[4-7]   Pattern Classification
[8-11]   Features and Matching
[12-14]   Shape Representation
[15-19]   Tracking
[20-23]   Contours Models
[24-30]   Cameras and Multi-view Geometry

A powerpoint summary of the module, given on the CS options day, can be downloaded.

Sample Lectures

Most of last year's lectures were videoed as a revision aid. We have decided against public distribution due to recording quality concerns and will endeavour to film them professionally next year. Here we make of the two lectures available, to give a flavour of the material and hopefully give you an idea as to whether to select this module for the coming year.

Introduction to Splines and Curves

Introduction to Tracking

Assessment

The assessment is an 80/20 split across exam/coursework. The coursework puts into practice some of the techniques covered lectures, and this changes each year. Last year the coursework was to implement visual search, based on skeleton Matlab code.

Download the 2010/10 coursework specification for EEE3032

Background for CVPR

This module is not particularly `maths heavy' but it does require a good working knowledge of linear algebra, i.e. vectors, matrices and their various operations (dot and cross product, matrix multiplication). There is a self-test available to check if you have the mathematical background to take this module. Ignore the C programming questions as C will not be a prerequisite in this or future years.

Fundamentals of Computer Graphics


While lecturing at the University of Bath, I wrote and taught this undergraduate Level 2 course on Computer Graphics. It was last delivered by me in 2008/9 to ~75 second year students, although I believe it continues to run at Bath. In 2008/9 the module achieved the highest student feedback score across the Department of Computer Science for its semester.

Download all lecture notes (PDF).
Other resources e.g. OpenGL demos and slides available on request.

Course Content

The course covers modelling with curves and surfaces, and manipulation of those models using rigid body transforms (matrices). It covers linear algebra topics (incl. EVD/SVD and some pattern classification) and some differential geometry. The course is a 'hands on', practical approach to Graphics - showing relevance of the maths through OpenGL exercises implemented in C. The coursework is to implement a mocap viewer for ASF/AMC files (download binary of the reference implementation here - researchers who can convince me they aren't Bath or Surrey undergrads are welcome to email me for the source code).

 

Systems (Software) Engineering

I co-wrote and co-taught this Level 1 `double' i.e. year long module for about 5 years at the University of Bath, with colleague Dr Leon Watts. We were the first module at Bath to use the open-source e-learning environment Moodle, gaining us a nomination for an Innovation in Learning and Teaching Award.

Course Content

The course covers Software Lifecycle, Requirements specification and OO Design (incl coverage of Patterns). There is extensive covering of System Verification and Testing methodologies.

Slides/notes available on request.
IBM Guest Lecture - April 2007