Introduction to Computer Vision

6 EC

Semester 2, periode 5

5082ITCV6Y

Eigenaar Bachelor Kunstmatige Intelligentie
Coördinator Dimitris Tzionas
Onderdeel van Bachelor Kunstmatige Intelligentie, jaar 2Bachelor Bèta-gamma, major Kunstmatige Intelligentie, jaar 2
Links Zichtbare leerlijnen

Studiewijzer 2024/2025

Globale inhoud

"We see in order to move; we move in order to see" [William Gibson].

Seeing and perceiving the world is vital for everyday life.  For humans and animals this perceptual capability seems effortless, as it has been “baked” into them through biological evolution.  However, endowing computers with similar capabilities proves to be challenging.  In this course we discuss computational models for computer vision and how these can be implemented as working programs.

To this end, we convert digital images based on pixels into "visual features", and then process these features for classifying images into categories, tracking the depicted objects, or reconstructing them in 3D. For converting pixels into features we use mathematical models of the local structure and color of images, ideas from the human visual system, the camera's imaging process, and computationally efficient algorithms.  For computer vision we use classic tools, such as linear algebra and Taylor series of multi-dimensional functions (i.e, images), or more advanced ones, such as convolutional neural networks.  In more detail, we will discuss the following topics:

  • Low-level vision (interpolation, warping, local operators, convolutions).
  • Local structure in images, scale space, feature detection (SIFT).
  • Pinhole camera, camera calibration, stereo vision.
  • Motion, optical flow, tracking (time permitting according to the semester’s schedule).
  • Convolutional Neural Networks (CNNs) for computer vision.

We implement the above models as working programs on computers, apply them on images and get results.

In this course you will use skills acquired through the "Linear Algebra" course and the "Calculus and Optimization” course.  You will also need prior hands-on experience in computer programming.

Studiemateriaal

Syllabus

  • https://rvdboomgaard.github.io/ComputerVision_LectureNotes/index.html

  • Slides & all content uploaded on Canvas

Software

  • Python, OpenCV

Leerdoelen

  • Can explain fundamental techniques and underlying theories in computer vision.
  • Can apply mathematical techniques from linear algebra (e.g., eigenvalues, singular value decomposition) and calculus (e.g., differentiation of multivariate functions).
  • Can develop working programs for mathematical models using Python/Numpy/Scipy/OpenCV.
  • Can judge the strengths and limitations of the developed methods and programs.

Onderwijsvormen

  • Hoorcollege
  • Laptopcollege
  • Werkcollege
  • Zelfstudie

- In Hoorcollege (HC) the tutors will introduce some key concepts per week.
- In Laptopcollege (LC) the students will work on weekly assignments on the topics discussed in HC, with the help of TAs (1 TA will be helping a group of ~20 students). This is an active-learning activity.
- The Werkcollege (WC) is the last slot of every week; this is the opportunity for students to do extra practice and ask questions to the tutor. This is an active-learning activity.
- The course includes a self-study of all material at home, and working on weekly assignments.  This includes independently reading a research paper (week 4).

For details, see the homepage of Canvas.

Verdeling leeractiviteiten

Activiteit

Uren

Hoorcollege

24

Laptopcollege

26

Tentamen

3

Werkcollege

8

Zelfstudie

107

Totaal

168

(6 EC x 28 uur)

Aanwezigheid

Aanwezigheidseisen opleiding (OER-B):

  • Voor practica en werkgroepbijeenkomsten met opdrachten geldt een aanwezigheidsplicht. De invulling van deze aanwezigheidsplicht kan per vak verschillen en staat aangegeven in de studiewijzer. Wanneer studenten niet voldoen aan deze aanwezigheidsplicht kan het onderdeel niet met een voldoende worden afgerond.

Aanvullende eisen voor dit vak:

- HC attendance is highly encouraged.  Lectures will be recorded for offline preview.
- WC attendance is highly encouraged.  This is extra practice, with only in-class activities.  Sessions will not be recorded.
- LC attendance is highly encouraged.  For any issue, the first point of contact is the TA.   Sessions will not be recorded.
- All students need to work on weekly assignments -- including retakes.
- The general rules of the BSc program apply.

For details, see the homepage of Canvas.

Toetsing

Onderdeel en weging Details

Eindcijfer

0.6 (60%)

Exam grade

Moet ≥ 5.5 zijn

0.4 (40%)

Weekly Assignments

Moet ≥ 5.5 zijn

- The grade for weekly assignments must be >=5.5.
- The grade for the final exam must be >=5.5.
- The overall grade (40% of average weekly grade and 60% of final exam grade) must be >=5.5.

In HC slots there will be in-class questionnaires (WooClap with UvAnetID) for bonus points to encourage attendance and engagement.  The max accumulated bonus grade is 0.5 for the full course spread out evenly over all activities/questions.  The bonus grade will count only if all above 3 criteria are met (in other words, it doesn't influence passing the course).

Each weekly assignment has both theoretical and practical parts.  Out of N weekly assignments (ANS+CodeGrade combo), only the top N-1 will be considered for grading. 

Students that retake the course still need to (newly) submit weekly assignments (that is, last year's grades have no effect).

For details, see the homepage of Canvas.

Inzage toetsing

Announcement through Canvas for weekly-assignment results, and final-exam results (incl. resit).

Inspecting the assessed work is possible with the help of the TA of each student group.  Students have a limited time-window of 2 weeks after the release of weekly grades to communicate any errors.

Any discussion on grading needs to take place through ANS (except for CodeGrade assignments).

Opdrachten

Weekly assignments include theory and programming tasks.
Students work in pairs of two, and also submit in pairs.
Coding assignments are submitted on CodeGrade -- which also facilitates semi-automatic grading.
Theory assignments are submitted on ANS.
The TA of each LC group does the grading for both coding and weekly assignments for the (roughly 20) students in their group.
For any corrections (in a window of max 2 weeks after grade release), the first point of contact is the TA for quick resolving.

For details, see the homepage of Canvas.

Fraude en plagiaat

Dit vak hanteert de algemene 'Fraude- en plagiaatregeling' van de UvA. Hier wordt nauwkeurig op gecontroleerd. Bij verdenking van fraude of plagiaat wordt de examencommissie van de opleiding ingeschakeld. Zie de Fraude- en plagiaatregeling van de UvA: http://student.uva.nl

Weekplanning

For a more detailed, up-to-date version, see the table on the homepage of Canvas.

Weeknummer Onderwerpen Studiestof
1 Histograms & Interpolation - E-notes - Image Processing - Ch1 Images
- E-notes - Image Processing - Ch3 Point Operators
- Slides
2 Homogeneous Coordinates & Geometric Transforms - E-notes - Image Processing - Ch4 Geometrical Operators
- E-notes - Math Tools - Ch5 Homogeneous coordinates
- Slides
3 Local Operators & Structure - E-notes - Image Processing - Ch5 Local Operators
- E-notes - Image Processing - Ch6 Local Structure
- Slides
4 SIFT
- E-notes - Image Processing - Ch7 Scale Space
- SIFT paper
- Slides
5 Onderwijsvrije week See table in Canvas
6 Camera - E-notes - Computer Vision - Ch1 The Pinhole Camera
- E-notes - Computer Vision - Ch2 Stereo Vision
- Slides
7 CNN - E-notes - Computer Vision - Ch4 Conv. Neural Networks
- Slides
8 Motion - E-notes - Computer Vision - Ch3 Images in Motion
- Slides

The above is rule of thumb.  Any refinement of the above will be published on Canvas -- please use Canvas as the main source.

E-notes:  https://rvdboomgaard.github.io/ComputerVision_LectureNotes/index.html

Slides:  Uploaded on Canvas after HC slots.

The typical submission deadline for the weekly assignments released each week (both programming and theory), is Sunday at 23:59.

Contactinformatie

Coördinator

  • Dimitris Tzionas

Docenten

  • Dimitris Tzionas (Coordinator, Lecturer)
  • Emmeke Veltmeijer (Dozent-4)
  • Thomas Loots (Dozent-4)
  • Dimitrije Antic (TA)
  • George Paschalidis (TA)
  • Huub Al (TA)
  • Daan Heijke (TA)
  • Joost van Ophem (TA)
  • Erik Meijer (TA)