# Practicals

## Practical 3: Convolutional Neural Networks

**Due:** Dec 15, 2020 (23:59)

In this assignment, we will train a convolutional neural network to solve two classic image processing tasks: image colourization and super-resolution. In particular, the purpose of this homework is to make you familiarize with convolutional neural networks.

We recommend that you use Colab (https://colab.research.google.com/) for the assignment, as all the assignment notebooks have been tested on Colab. Otherwise, if you are working on your own environment, you will need to install Python, PyTorch (https://pytorch.org), iPython Notebooks, SciPy, NumPy and scikit-learn.

From the assignment zip file given zip here, you will find two python notebook files: colour regression.ipynb, colourization.ipynb. To setup the Colab environment, you will need to upload the two notebook files using the upload tab at https://colab.research.google.com/.

For the detailed explanation, please read this document.

## Practical 2: Patched-based image denoising using learned dictionaries

**Due:** November 27, 2020 (23:59)

In this practical, you will use sparse representations to denoise a given image using a visual dictionary of patches. In particular, the purpose of this homework is to make you familiarize with sparse modelling of images, using K-SVD algorithm (M. Aharon et al., 2006), performing experimental evaluation of denoising methods.

You will use the starter MATLAB code provided here.

For the detailed explanation, please read this document.

## Practical 1: Nonlinear Diffusion

**Due:** November 13, 2020 (23:59)

The purpose of this practical is to familiarize you with nonlinear diffusion filtering. The main theory behind nonlinear diffusion filtering is to use nonlinear PDEs to create a scale space representation that consists of gradually simplified images where some image features such as edges are preserved or even enhanced. The assignment requires you to implement a number of nonlinear diffusion models. You need to apply these approaches on a couple of images and perform an experimental evaluation as well.

You are free to use either MATLAB or Python programming languages to implement your assignments. While doing so, you can refer to the starter code provided here, which was written in MATLAB.

For the detailed explanation, please read this document.