Introduction to Computer Vision INF

6 EC

Semester 2, periode 5

5062ITCV6Y

Eigenaar Bachelor Informatica
Coördinator Rein van den Boomgaard
Onderdeel van Bachelor Informatica, jaar 2Dubbele bachelor Wiskunde en Informatica, jaar 2

Studiewijzer 2023/2024

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 hard.  In this course we discuss computational models for computer vision and how these can be implemented as working programs. 

In this direction, 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

Practicummateriaal

  • Pythonopdrachten + Theorievragen

Software

  • Python

Leerdoelen

  • Can explain modern techniques and underlying theories in computer vision.
  • Can apply mathematical techniques from linear algebra (eigenvalues, singular value decomposition) and calculus (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
  • Werkcollege
  • Laptopcollege

Verdeling leeractiviteiten

Activiteit

Uren

Hoorcollege

28

Laptopcollege

28

Werkcollege

14

Zelfstudie

98

Totaal

168

(6 EC x 28 uur)

Aanwezigheid

Aanwezigheidseisen opleiding (OER-B):

  • Voor practica en werkgroepbijeenkomsten met opdrachten geldt in principe een aanwezigheidsplicht. Wanneer studenten niet voldoen aan deze aanwezigheidsplicht kan dit als gevolg hebben dat het onderdeel niet met een voldoende kan worden afgerond.

Toetsing

Onderdeel en weging Details

Eindcijfer

0.6 (60%)

Tentamen

Moet ≥ 5 zijn

0.2 (20%)

Theorievragen

Moet ≥ 5 zijn

0.2 (20%)

Pythonopdrachten

Moet ≥ 5 zijn

Alle onderdelen (tentamen, theorievragen en Pythonopdrachten) moeten ieder 5.0 of hoger zijn. Het gewogen gemiddelde moet 5.5 zijn of hoger om het vak te halen. Voor zowel de theorievragen als de Pythonopdrachten wordt het gemiddelde berekend over alle opgaven, waar voor ieder het laagste cijfer vervalt.

Inzage toetsing

Inzage tentamen en theorievragen gaat via ANS. De Pythonopdrachten worden automatisch nagekeken. Meer feedback kan op aanvraag via communicatie met de TA.

Opdrachten

Pythonopdrachten en theorievragen worden wekelijks gemaakt in groepen van twee. De Pythonopdrachten worden automatisch nagekeken via CodeGrade waar theorievragen worden gemaakt in ANS.

Fraude en plagiaat

Over het algemeen geldt dat elke uitwerking die je inlevert ter verkrijging van een beoordeling voor een vak je eigen werk moet zijn, tenzij samenwerken expliciet door de docent is toegestaan. Het inzien of kopiëren van andermans werk (zelfs als je dat hebt gevonden bij de printer, in een openstaande directory of op een onbeheerde computer) of materiaal overnemen uit een boek, tijdschrift, website, code repository of een andere bron - ook al is het gedeeltelijk - en inleveren alsof het je eigen werk is, is plagiaat.

We juichen toe dat je het cursusmateriaal en de opdrachten met medestudenten bespreekt om het beter te begrijpen. Je mag bronnen op het web raadplegen om meer te weten te komen over het onderwerp en om technische problemen op te lossen, maar niet voor regelrechte antwoorden op opgaven. Als in een uitwerking gebruik is gemaakt van externe bronnen zonder dat een bronvermelding is vermeld (bijvoorbeeld in de rapportage of in commentaar in de code), dan kan dat worden beschouwd als plagiaat.

Deze regels zijn er om alle studenten een eerlijke en optimale leeromgeving aan te kunnen bieden. De verleiding kan groot zijn om te plagiëren als de deadline voor een opdracht nadert, maar doe het niet. Elke vorm van plagiaat wordt bestraft. Als een student ernstige fraude heeft gepleegd, kan dat leiden tot het uitschrijven uit de Universiteit. Zie voor meer informatie over het fraude- en plagiaatreglement van de Universiteit van Amsterdam: www.student.uva.nl

Weekplanning

Zie Canvas voor de weekplanning.

Contactinformatie

Coördinator

  • Rein van den Boomgaard

Staff

  • Rein van den Boomgaard (Vakcoördinator)
  • Adeela Ashraf MSc (Docent 4)
  • Ischa Abraham (TA)
  • Dante Campregher (TA)
  • Guido Hovens BSc (TA)
  • Frederick Kreuk BSc (TA)
  • J.A.A. van Langen (TA)
  • T.C. Mathijssen BSc (TA)

Voor contactinformatie, zie Canvas.