My teaching duties at Surrey are threefold. I teach EEE3032, our undergraduate course on Computer Vision. I act as a visiting tutor looking after students on our industrial placement year. I also act as the programme coordinator looking after years 1 and 2 across all of our undergraduate programmes in Electronic Engineering.

Are you looking for an interesting Year 3 or MSc project? I supervise ~4 projects each year in Computer Vision / Graphics.

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 has run since 2011 and regularly receives MEQ scores of 5.0 (maximum) for student feedback. The course has twice been nominated for the Tony Jeans `Inspirational Teaching' award.

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.

VIDEO: Introduction to Splines and Curves (Flash plug-in required)

VIDEO: Introduction to Tracking (Flash plug-in required)


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

Fundamentals of Computer Graphics

Whilst at the University of Bath I wrote this undergraduate Level 2 course on Computer Graphics. It was last delivered by me in 2008 to ~75 second year students, and a version of it continues to run at Bath. This version is made available for general study.

Download all lecture notes (PDF).

Course Content

Motion capture coursework

The course covered 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

Motion capture coursework

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.