Course syllabus


EEN020 Computer vision lp2 HT23 (7.5 hp)

Course is offered by the department of Electrical Engineering


Contact details

Course purpose

The course aims to provide an overview of theory and practical useful methods in computer vision, with applications such as seeing systems, non-destructive measurements and augmented reality. The aim is also to enable the students to develop their ability to solve problems, both with and without computer, using tools derived from many different sciences, especially geometry, optimization, statistics and computer science.


You can see the schedule and lecture room in TimeEdit.

Course literature

The necessary course material will be provided during the course. This includes lecture slides, assignments and research articles.
If you like to read more about computer vision, you can use Szeliski's book which is available online.

  • Richard Szeliski, Computer Vision: Algorithms and Applications, available at Cremona or as a free pdf (or here directly)

For more in-depth reading, the book by Hartley & Zisserman is recommended.

  • Richard Hartley and Andrew Zisserman, Multiple View Geometry, Cambridge University Press, 2004.

The lecture slides will be available here.

Learning objectives and syllabus

Learning objectives:

Knowledge and understanding
For a passing grade the student must:

  • be able to clearly explain and use basic concepts in computer vision, in particular regarding projective geometry, camera modelling, stereo vision, recognition, and structure and motion problems.
  • be able to describe and give an informal explanation of the mathematical theory behind some central algorithms in computer vision (the least squares method and Newton based optimization).

Competence and skills
For a passing grade the student must:

  • in an engineering manner be able to use computer packages to independently solve problems in computer vision.
  • be able to show good ability to independently identify problems which can be solved with methods from computer vision, and be able to choose an appropriate method.
  • be able to independently apply basic methods in computer vision to problems which are relevant in industrial applications or research.
  • with proper terminology, in a well-structured way and with clear logic, be able to explain the solution to a problem in computer vision.

Link to the syllabus on Studieportalen.

Study plan

Passing the course

The main task in order to pass the course is to work on the assignments and the final project. Each assignment has a number of exercises falling into the following categories:

  • Mandatory theoretical exercises. You don't need to solve all of these, but you should obtain at least 50% of achievable points for the mandatory theoretical exercises to pass the course.
  • Mandatory computer exercises. Since most of these exercises yield one or several subroutines that you need for the final project, full completion of these exercises is required.
  • Optional exercises (both theoretical and on the computer). These are only relevant for you if you want to obtain a higher grade.

The requirement to pass the course is, that for each assignment you complete the mandatory computer exercises and obtain at least 50% of points for the mandatory theoretical exercises. If there are minor errors in these mandatory exercises that prevent you from passing the assignment, you will be given one chance to correct them and resubmit within one week after getting the feedback from the TAs. You cannot resubmit your solutions to the optional exercises.

There are mandatory and optional parts in the final project!

Further information:

  • The main goal is that you (each individual student) has a sufficiently good understanding of the course material. It does not matter if you e.g. derived a solution to an assignment task on your own, together with fellow students, or asked Google (or ChatGPT) as long as you understand and can explain the solution. This is why you shall submit individual reports. If there are suspicions that you handed in a solution without properly understanding it, you may be eventually asked to do an oral exam.
  • You are allowed to work on the submitted code in pairs, but you need to submit individual reports indicating the student you collaborated with (if you did).
  • You are allowed to submit scans or images of handwritten reports, but they need to be easily readable. The TAs may ask you to submit a digital report if they have trouble with reading the handwritten one (due to poor handwriting or bad scanning quality etc).
  • The default programming language to submit code is Matlab, but submitting Python code is in principle possible. Please be aware that auxiliary routines provided by us will be in Matlab, and you may have to convert those (relatively short) routines to Python yourself. The priority on answering your question in the lab sessions is on Matlab-related questions, so we suggest to use Python only of you consider yourself being quite a Python expert.
  • Late days: if you are not able to submit your assignment or the project before the respective deadline, you can use up to 5 late days in total (i.e. one late day per deadline). If you submit late (but within your remaining late day budget), you can still pass the course. Optional parts in the assignments/project will not be graded for late submissions. If you run out of your late day budget, but you were on a good track with the assignments so far, the examiner might ask you in for an oral exam to have a chance to pass the course.

Optional points and higher grades

There are optional parts in each assignments, which if you choose to complete them may give you optional points. For the higher grades, sufficiently many optional points are needed. The points are distributed as follows:

  • Assignments: 4 x 25 = 100 optional points max
  • Project: 100 optional points max

You need at least 50% of optional point to obtain grade 4 and to be eligible for the oral exam. The oral exam usually takes place in the exam week for LP2 in January.


You need to submit your code and reports for your assignments before the following dates in Canvas. The deadlines to hand in the solutions for the assignments are as follows:

  1. Assignment 1: Monday,  November 13, 23:59
  2. Assignment 2: Thursday, November 23, 23:59
  3. Assignment 3: Monday,  December 4, 23:59
  4. Assignment 4: Thursday, December 14, 23:59

The assignments will be published 15 days before the deadline.

The project description will be released on Thursday November 30, and the project deadline is Thursday, January 4, 23:59. Like with the assignment, the project has core and optional parts.

Student representatives for this course


VLFeat library for Octave on Linux

The precompiled zip archive is

It is compiled on Ubuntu 20.04 using clang-11 with OpenMP support. You need to install the libomp5-11 package from the Ubuntu repository. The tested Octave version is 5.2.0 and you need to install the octave-common and octave-image packages (from the Ubuntu repository).

Quick instructions:

1. Unpack the zip file (let's say in ~/software).

2. Run octave, and on the octave prompt type

addpath <VLFEATROOT>/toolbox

Here <VLFEATROOT> is replaced with the directory containing vlfeat, e.g. /home/<user>/software/vlfeat-0.9.21.

3. Check the version and configuration

vl_version verbose

You should be able to use the MATLAB interface of vlfeat. See also


Course summary:

Date Details Due