- Docente: Giuseppe Lisanti
- Credits: 6
- SSD: IINF-05/A
- Language: English
- Moduli: Giuseppe Lisanti (Modulo 1) Samuele Salti (Modulo 2)
- Teaching Mode: In-person learning (entirely or partially) (Modulo 1); In-person learning (entirely or partially) (Modulo 2)
- Campus: Bologna
- Corso: Second cycle degree programme (LM) in Artificial Intelligence (cod. 6700)
Learning outcomes
At the end of the course, the student masters the basic algorithms, tools and systems for the management, processing and analysis of digital images. The student is able to design and develop simple systems oriented to real-world computer vision applications such as those requiring segmentation and classification of objects in digital images.
Course contents
Prerequisites: calculus and linear algebra
Part 1
Introduction: basic definitions related to computer vision. An overview across major application domains.
Image formation and acquisition: geometry of image formation; lenses; field of view and depth of field; image sampling and quantization.
Spatial filtering: linear shift-invariant operators; mean and Gaussian filtering; median filtering; bilateral filtering.
Edge detection: image gradient; non-maxima suppression; Laplacian of Gaussian; Canny edge detector.
Local invariant features: detectors and descriptors; Harris Corners; scale-invariant features; SIFT features.
Instance detection: pattern matching; shape-based matching; Hough transform.
Part 2
Camera calibration: Intrinsic and extrinsic camera parameters; projective coordinates and perspective projection matrix; Zhang's algorithm; image warping and homographies between cameras.
Image classification: the case for and implication of data-driven computer vision; datasets; linear classifier as template matching; cross-entropy loss; gradient descent and stochastic gradient descent.
Image representations: Bag of Visual Words; representation learning for images; convolutional layers; pooling; batch normalization.
Successful CNNs: LeNet5; AlexNet; ZFNet; VGG; Inception v1 and v3; ResNet.
Regularization and training recipes: model capacity; learning rate schedulers; weight decay; label smoothing; dropout; data augmentations; FixRes; cutout; mix-up; cut-mix; PyTorch case study.
The theory is complemented by lab sessions. Lab sessions cover selected topics such as spatial filtering, local invariant features, camera calibration, image classification and transfer learning.
Readings/Bibliography
All the slides from the lectures of the course will be made available on the Virtuale platform. There is no official textbook; further details on some of the topics of the course can be found in:
- Gonzalez, R. C., "Digital Image Processing", Pearson education, 2009.
- Hartley, R., & Zisserman, A., "Multiple View Geometry in Computer vision". Cambridge university press, 2003.
- http://d2l.ai/ - Aston Zhang and Zachary C. Lipton and Mu Li and Alexander J. Smola "Dive into Deep Learning", 2020
Further readings, such as scientific papers and online resources, might be recommended during the lectures of the course.
Teaching methods
Teaching methods include:
- taught lessons; and
- lab sessions.
The datasets and code snippets for the lab sessions will be provided. The code used in the lab is based on Python, the OpenCV library, and the PyTorch framework.
Considering the type of activities and the teaching methods adopted, attendance of this learning activity requires all students to have previously completed Modules 1 and 2 of the e-learning training on safety in study environments.
Assessment methods
Student assessment consists of two components: a written theoretical exam and a practical part.
Written exam: the student will answer questions on the theory presented in the whole course. The written exam lasts 90 minutes. No supporting materials are allowed during the exam (e.g., notes, textbooks, etc.).
The minimum grade required to pass the written exam is 15. The maximum grade for the written exam is 24. To take the written exam, the student must register through the AlmaEsami portal. The grade for the written exam can be rejected only once.
Regarding the written exam, the use of AI is prohibited. Any use of AI constitutes a violation of academic integrity.
Practical part: consists of two assignments, one for each part of the course. The maximum grade for the practical part is 7. The assignments MUST be completed in groups of 2 (maximum 3) students. The assignment must be uploaded through Virtuale. The cut-off dates to upload the assignments will be published on Virtuale.
For the practical part: limited and non-substantial use of AI is allowed as a support tool (e.g, code debug, code documentation). Substantial use of AI to complete parts of the project is not permitted (e.g., fully generate the code for a cell of the notebook). Use of AI tools must be explicitly declared by the students. Students are responsible for the delivered notebook.
The final mark is calculated as the sum of the grades obtained in the written exam and the practical part. The minimum grade required for the exam to be officially recorded is 18.
The written exam and the practical part may be completed independently, in either order. When the student has passed both parts of the exam, the final mark will be registered on AlmaEsami.
Students with specific learning disorders (SLD) or temporary or permanent disabilities are advised to contact the relevant University office well in advance (https://site.unibo.it/studenti-con-disabilita-e-dsa/en). The office will propose any necessary accommodations to the students concerned; in any case, these accommodations must be submitted to the Professor for approval at least 15 days in advance. The Professor will assess their suitability also in relation to the learning objectives of the course.
Teaching tools
The pdf of the slides used in the course will be made available on the website of the course before each lecture.
The python scripts and datasets required for the lab sessions will be made available on the website of the course.
Office hours
See the website of Giuseppe Lisanti
See the website of Samuele Salti