Course syllabus

Course-PM

EEN020 Computer vision lp2 HT24 (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.

Schedule

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. Note: Optional exercises for obtaining a higher grade should be done individually.

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. You are not allowed to copy a solution from other sources (e.g. ChatGPT, internet or fellow students). You need to understand and be able to explain your 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 (<=2 and not >2), but you need to submit individual reports indicating the student you collaborated with (if you did). Note: Optional exercises for obtaining a higher grade should be done individually.
  • 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. We suggest to use Python only of you consider yourself being a Python expert.

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. Optional exercises for obtaining a higher grade should be done individually.

Deadlines

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: Thursday,  November 14, 23:59
  2. Assignment 2: Sunday, November 24, 23:59
  3. Assignment 3: Wednesday,  December 4, 23:59
  4. Assignment 4: Sunday, December 15, 23:59

The assignments will be published 15 days before the deadline.

The project description will be released on TBD, and the project deadline is TBD. Like with the assignment, the project has core and optional parts.

Student representatives for this course

  • Johannes Otto Bordt, uksco@student.kit.edu   
  • Johannes Holmgren, Johannes.h.holmgren@gmail.com  
  • Yuchen Liu, liuyuchen724@gmail.com  
  • Kanishk Nama, kanishknama08@gmail.com 
  • Erik Nygren, eriknyg@student.chalmers.se     

VLFeat library for Octave on Linux

The precompiled zip archive is vlfeat-0.9.21.zip.

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
vl_setup

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 https://www.vlfeat.org/install-octave.html.

 

Course summary:

Date Details Due