ELEC4630 Image Processing and Computer Vision
Assignment 2
(Due Date: Friday, 26th of April 2024 at 4:00pm)
1. You have been provided with a Jupyter notebook for fingerprint recognition available from https://github.com/lovellbrian/fingerprint . Design a GUI and template file/database which allows you to:
a. Enrol a fingerprint and associate a name. Store the template in a file or database
b. Compare a new fingerprint to the fingerprints in the gallery
c. Evaluate your system on a large number of fingerprints and adjust the threshold for good performance with low error rates
d. Produce a ROC curve showing error rates versus threshold
e. Estimate the false positive rate (false alarm rate) for a false negative rate of 1%.
You can fetch additional prints from http://bias.csr.unibo.it/fvc2000/download.asp. (8 Marks)
2. One way to improve your learning is to blog about what you have learned and how you have solved problems. It is also an excellent way to explore git and Github. Create your own blog on GitHub to document your progress and what you have learned about AI from the fastai course. Use Github Pages to create your free blog.
Here are the instructions https://www.fast.ai/posts/2020-01-16-fast_template.html.
Please provide a link to your blog site and some sample posts to show that you have created your own personal blog site. Here is my example blog based on this template.
https://lovellbrian.github.io
In your report, you should show some example pages from your blog and any tricks you have used for formatting. (5 marks)
3. This question is a brief exploration of running a Deep Learning notebook using a GPU or CPU. As far as I know, this is the first time this Development Container method has been used for teaching. It has taken me about 6 months to get this set up, so I hope you enjoy it. This task is mostly an exercise in getting your own devcontainer up and running on our 78-336 Lab machines and possibly also on your home machine or laptop. It is a hands-on exercise. Tutors will help you, so ask them for assistance.
Get your machine set up for containers following my AI blog post at:
https://lovellbrian.github.io/2023/10/02/BYODImage.html
Follow my blog instructions to first set up a CPU learning environment and then change this to a GPU deep learning environment running on Linux Ubuntu 22.04. Time the learning loop in the notebook using the CPU and you will find this often takes many minutes. Then we will try it using the GPU which will take seconds
For this exercise, figure out how to change the batch size in fastai. Google is your friend. The default value is 64.
(a) Try batch size values of 16, 32, 64, 128, and 256 on the GPU and determine which is fastest.
(b) Determine the maximum speedup of the GPU over the CPU.
(c) Show graphs on GPU activity using nvtop as described in the blog. Explain what you observe and any issues you encountered. (5 Marks)
4. Write a Jupyter notebook to classify images with the same classes as the CIFAR10 dataset (i.e., airplane, automobile, bird, cat, deer, dog, frog, horse, ship, truck). Use Duck Duck Go to scrape sample images off the Web based on the fast.ai course example on birds. Design an appropriate multiclass loss function or describe which one was used. Analyse your data and results using tools such as t-SNE and Confusion matrices. Report on metrics such as classification accuracy and explain the methods used.
00-is-it-a-bird-creating-a-model-from-your-own-data.ipynb
Hint: check out https://www.youtube.com/watch?v=RJVL80Gg3lA for a great description of t-SNE by the author. (10 marks)
5. Find out how you could have won a Nobel Prize in 2022 using Jupyter notebooks and a Quantum Computer.
a. Watch this video on Bell’s Inequality
https://www.youtube.com/watch?v=9OM0jSTeeBg
b. Run Jupiter Notebooks on an IBM Quantum computer to repeat this Nobel Prize winning experiment.
https://learning.quantum.ibm.com/tutorial/chsh-inequality
Write no more than a page briefly describing this experiment. (Total 30 Marks)
Assignment 2 Marking Scheme and Criteria
Q1
. Coding of a GUI to perform. fingerprint recognition. Description of methods involved.
o (5 marks)
. ROC Chart and tuning, performance evaluation
o (3 marks)
Q2
. Getting blog online, content of blogs
o (3 marks)
. Appearance, Use of fancy formatting, images etc
o (2 marks)
Q3
. Getting notebook to run on CPU and GPU
o (3 marks)
. Performance evaluations
o (2 marks)
Q4
. Getting notebook to work on CIFAR10 classes
o (7 marks)
. Performance evaluation, t-SNE, description of methods
o (3 marks)
Q5
. Top marks for winning a Nobel Prize
. Good explanation of the importance of this experiment and why Quantum computers are important.
o (2 marks