Course syllabus
Course-PM
EEN020 Computer vision lp2 HT24 (7.5 hp)
Course is offered by the department of Electrical Engineering
Contact details
- Fredrik Kahl, lecturer and examiner, fredrik.kahl@chalmers.se
- Sofie Allgöwer, teaching assistant, allgower@chalmers.se
- Yaroslava Lochman, teaching assistant, lochman@chalmers.se
- Kunal Chelani, teaching assistant, chelani@chalmers.se
- Josef Bengtson, teaching assistant, bjosef@chalmers.se
Course purpose
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.
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:
- Assignment 1: Thursday, November 14, 23:59
- Assignment 2: Sunday, November 24, 23:59
- Assignment 3: Wednesday, December 4, 23:59
- 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 |
---|---|---|