Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: THEend8_
COMP 0137 Machine Vision
Due 19th November 2021 at 16:00 (UK time)
Worth 10% of your overall grade
Submit online, through Moodle
For this homework, we’ll revisit the practical from the 3rd week: Mixtures of Gaussians.
There are two parts, so please read the instructions carefully. Everything you turn in must be
YOUR OWN WORK, with one exception (in this case): the new images and their ground
truth mask images. See below for more details, but as always, list names/references for
anything you’re submitting that is not your own work.
Late Policy: We must follow the official UCL late-policy, and this gets applied *after* your
coursework is marked on Moodle, based on the Moodle timestamps. The instructor/TA’s have
no control over this – at all
What to turn in (all inside one folder, zip’ed as a single .zip file):
- Three jupyter notebooks: for practicalMixGaussA.ipynb; also for B and C, but not D.
- Your jupyter notebook for practicalMixGauss_Apples.ipynb
- One folder containing the photos of apples
- One folder containing image masks for the apples
Code/Hints: All code must be python, submitted as jupyter python notebook files (.ipynb). If
you're using VS Code, you can export to a notebook. Include your explanations interspersed
as markdown within the notebooks. Do not use other libraries beyond: os, time, sys, numpy,
matplotlip, scipy.io, glob, and pillow and/or opencv if you need it. You can use functions like
randn(), but not more advanced built-in normals-related functions.
Details
Part I: A), B), C)
Do all the TO DO’s in parts A, B, and C of the Mixtures of Gaussians practical. Some of the
TO DO’s are tagged a-j.
For every figure or plot that is generated in the code, write 1-3 sentences (maximum)
explaining what the figure shows or pros/cons of what is happening, good or bad.
It IS NOT SUFFICIENT to just say things like "update the variable." Ok, some things are
deterministic, but explain, to demonstrate you understand why those steps are happening.
Examples of things to talk about, in the 1-3 sentences:
- Give some analysis about code working/not working out, especially when stochastic.
- Discuss where/which results don’t match your expectations. Why? Be specific.
- Describe what EACH figure or plot is showing, what it would look like ideally.
- Discuss ways some step or experiment could be better / more robust. Validating your
process means being thorough, and what would you need to be more thorough?
You do NOT need to do the 4th part, practicalMixGaussD.
(continued on next page…)
Part II Make a new file, practicalMixGauss_Apples.ipynb.
A) Download and unzip the file apples.zip. Notice that for every color photo containing
apples, there is a corresponding binary image mask. In a mask image, white pixels indicate
locations where the corresponding photo is an apple. In floating point, you may need to
threshold to get binary values. Note that these mask images are inexact! While a perfect
ground-truth mask image’s black pixels should correspond to non-apples, these masks were
painted in a hurry, so the white areas were painted conservatively.
# You may want to use this or similar example code, for
loading in your jpg’s and png’s:
import glob
import numpy as np
import matplotlib.pyplot as plt
files = glob.glob("apples/*.jpg")
ColorImgs = []
for myFile in files:
im = plt.imread(myFile)
ColorImgs.append(im)
B) Use mixtures of Gaussians to distinguish apple vs. non-apple pixels. Use red, green, and
blue as your dimensions for now. Make any other decisions you need to, and document them
in your .ipynb notebook.
C) Download the file testApples.zip. Generate figures for your notebook, showing each
pixel’s posterior probability of being “apple.” Comment on the outcomes.
D) For the test image with a ground-truth mask, quantify and report your result. Hint:
consider applying a range of thresholds to the posterior to produce sets of {True Positives
(TP), True Negatives (TN), False Positives (FP), and False Negatives (FN)} and using an
ROC curve. Learn about ROC on Wikipedia or see Peter Flach’s chapter on the subject.
E) Download two non-copyrighted photos with apples
Make good ground-truth masks for them. You can use Windows Paint, or more sophisticated
programs like Gimp (free). Use these as extra test-images. Report your qualitative and
quantitative results.
F) We should really be using three separate sets of files: a training set, a validation set, and a
test set! Explain why.
Optional extras (no points awarded): Put these at the end of the
practicalMixGauss_Apples.ipynb notebook
- Consider manipulating the photographs’ colors to improve the classification
- Consider running 2D Gabor filters on the photos to get additional channels of data, in
place or in addition to red, green, and blue.
- Consider using an alternate model to mixture of Gaussians, and compare to MoG.