91254 - Image Processing and Computer Vision

Academic Year 2022/2023

  • 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;

Object Detection: pattern matching; shape-based matching; Hough transform; object detection by local invariant features; Hough-based voting.

Camera calibration: Projective coordinates and perspective projection matrix. Intrinsic and extrinsic camera parameters. Zhang's algorithm. Image rectification and stereo calibration.

Basics of Machine learning for Images: k-NN classifier and linear classifiers as image template matching.

Image representations: BoVW, VLAD, representation learning for images, localist versus distributed representations.

Convolutional Neural Networks: advantages of convolutions, vector-valued functions, LeNet5, normalization layers.

Successful architectures: AlexNet, ZFNet, VGG, Inception v1 and v3, ResNet, Inception-ResNet-v2.


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.

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:

- 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