Spring 2022 ITNPAI1 – Assignment (Compulsory) Submission due: Tuesday 12th April ‘22 | Demonstrations: 8th, 11th, 12th April ’22 Brief The assignment is divided into two main tasks: 1) image denoising [50%] and 2) image classification [50%] and involves the development of the algorithms. Your task is to develop the algorithms, preparation of the results and write a combined report. The report for both parts should include 1. a brief introduction to the problem (you may cite a couple of current literature), 2. description of your algorithm, 3. short description of the libraries/function you have used in work, 4. presentation of the results, 5. key findings from the results and associated discussions and 6. conclusions. The submission should include: 1. A PDF report – with two marked sections 2. A GitHub repository* consisting of two folders (one for each part of the assignment) which should include all Python code in Jupyter Notebook format. TASK A: Image denoising Image denoising is a fundamental image processing problem and the basis for a pre-processing step for many advanced computer vision tasks. Your task is 1. To write codes (must be well commented) with the following denoising methods (You can make use of any library you want). [15] a. Mean filter b. Median filter c. Wavelet d. Deep learning (you are free to choose any pre-trained model you want – but you need to justify why did you select this model). You are not expected to train a new model for this part. The input to your code will be original and noisy images. The output will be denoised images. 2. Compare the original and denoised images using two metrics (use any library), such as, [5] a. Mean Squared Error (MSE) and b. Structural SIMilarity (SSIM) index 3. Generate and report results (some sample images and graphs/tables) using the given dataset of 25 original and noisy images. Data acknowledgement: The Berkeley Segmentation Dataset and Benchmark https://www2.eecs.berkeley.edu/Research/Projects/CS/vision/bsds/ [5] 4. Write a report as described at the beginning of the brief. [20] 5. Demonstrate your code and answer questions. (COMPULSORY) [5] Total for TASK A [50] You need to demonstrate (compulsory) the code and answer related questions on designated days. If you fail to demonstrate (/absent), entire corresponding task(s) will be marked as zero. Spring 2022 TASK B: Image classification Image classification is an important task for computer vision applications. Image classification algorithms made advancements from traditional feature-based methods to deep learning-based techniques. Deep learning, particularly the convolutional neural network, has been a success story in the last decade and significantly improved classification accuracy. In this task, you need to build a CNN architecture and optimise it for classification. Following tasks are to be carried out. You can use CSM Jupyter Hub or Google Colab (https://colab.research.google.com/) with the GPU option enabled where suitable. Please use Keras deep learning framework for this part of the assignment. 1. Write code (must be well commented) to build a basis CNN architecture [15] Load the CIFAR10 small images classification dataset from Keras inbuilt datasets (https://keras.io/api/datasets/cifar10/). Display 10 random images from each of the 10 classes (the images should change in every run). For the classification (10 image classes), write Python code to create a basic CNN network of your choice (can be anything from practical 7, LeNet, AlexNet etc.) Train and test the network and report the training loss, training accuracy and test accuracy for various epochs. 2.
CNN architecture improvements