91254 - Image Processing and Computer Vision

Academic Year 2023/2024

  • Moduli: Giuseppe Lisanti (Modulo 1) Samuele Salti (Modulo 2)
  • Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
  • Campus: Bologna
  • Corso: Second cycle degree programme (LM) in Artificial Intelligence (cod. 9063)

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

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.

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, basic recap of machine learning, shallow classifiers (k-NN, linear) as image template matching.

Image representations: Bag of Visual Words, VLAD, representation learning for images, convolutional layers, pooling, LeNet5, batch normalization.

Successful CNNs: AlexNet, ZFNet, VGG, Inception v1 and v3, ResNet, ResNeXt and grouped convolutions, Inception-ResNet-v2, MobileNets, EfficientNet.

The theory is complemented by lab sessions. Lab sessions cover selected topics such as spatial filtering, camera calibration, local invariant features, image classification and transfer learning.


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:

- Szeliski, Richard. Computer vision: algorithms and applications. Springer Science & Business Media, 2010.

- 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.

Assessment methods

The assessment consists in a written exam in which the student will answer questions on the theory presented in 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