RBE306TC Computer Vision Systems
Assignment
Before you dive into this Exercise 1 to Exercise 3, please check the following OpenCV functions in
Python Coding Platform for example: imread, shape, imshow, imwrite, imnoise, resize, calcHist, equalizeHist, etc.
Some other Python built-in functions, or functions in Scipy package may also be used. Please refer to online resources.
Hint: read the descriptions about each of the previous functions and any other function you might use. You may find descriptive sections of Algorithms(s) in some of the Python functions.
Exercise 1 (20%)
In this task, we use the monochrome image Lenna (i.e., lenna512.bmp) with the following tasks.
Let’s regard this reference image Lenna as IM.
• (a). Add Gaussian white noise with 0 mean and variance 10 to the image IM and display the noisy image. We name it as IM_WN. Please write one function to generate this image instead of calling Matlab function directly (4%).
• (b). Add salt & pepper noise with noise density 10% to the image IM and display the noisy image.
We name it as IM_SP. Please write one function to generate this image instead of calling
Matlab function directly (4%).
• (c). Display the histograms of all the previous images and compare them with the histogram of the reference image, comments and briefly explain your finding (4%).
• (d). Use the command histeq to enhance the image constrast
(lenna512_low_dynamic_range.bmp) and display the enhanced image (4%).
• (e). Moreover, display the histograms of both original image and enhanced image, and explain your finding in the assignment (4%).
Exercise 2 (25%)
Recall salt & pepper images generated in Task 1 IM_SP based on the IM.
• (a). Apply the median filter with a 3 × 3 window and a 5 × 5 window on the image IM_SP respectively. Display and evaluate the PSNR of the obtained images. For each window size, comment on how effectively the noise is reduced while sharp edges and features in the image are preserved (8%).
• (b). Use the average filter (mean filter) 3 × 3 to filter the image IM_SP. Compute the PSNR and display the filtered image (8%).
• (c). As you experimented with the mean and median algorithms what different property did you notice? Was the average or median filter better and why (9%)?
Exercise 3 (55%)
In this exercise, you will be asked to build a VGG-16 and VGG-19 (see the following architecture) to train a classifier on cifar10 dataset. based on the python + PyTorch codes implemented in Lab 4 for LeNet.
The CIFAR-10 dataset consists of 60000 32x32 colour images in 10 classes, with 6000 images
per class. There are 50000 training images and 10000 test images. The dataset is divided into five training batches and one test batch, each with 10000 images. The test batch contains exactly 1000 randomly-selected images from each class. The training batches contain the remaining images in random order, but some training batches may contain more images from one class than another.
Between them, the training batches contain exactly 5000 images from each class.