Starting from:

$30

CECS 551 Assignment 8

CECS 551
Assignment 8
Total: 40 Points
General Instruction
ˆ Submit uncompressed file(s) in the Dropbox folder via BeachBoard (Not email).
1. Develop face recognition software using a pre-trained network. Please note that you
don’t need to implement and train a model.
(a) Find open source codes of Facenet at here.
(b) Download the attached dataset images.zip. The dataset includes 12, 000 images
of 40 people. (30 images for each person)
(c) id-pairs.csv includes pairs of the image file ids and the person ids.
(d) (20 points) By using the pre-trained Facenet, implement a Python function img2vec.
ˆ Input: An image (x) which includes a human face.
ˆ Output: Embedding vector (f(x) ∈ R
d
) in d-dimensional Euclidean space of
the input image. The embedding vector should be normalized, i.e.
P
||f(x)||2 =
d
i
fi(x)
2 = 1.
(e) (20 points) Implement a Python program imageFinder.ipynb.
ˆ Input: An image file id.
ˆ Intermediate steps
1. Include your img2vec function in your imageFinder.ipynb.
2. Using your img2vec function, compute Euclidean distances between the
embedding vector of the input image and the embedding vectors of other
images in the dataset. You will have 1, 199 Euclidean distances.
3. Find 5 nearest images based on the computed distances.
ˆ Output: Showing an input image with its ‘pid’ and the 5 nearest images with
their ‘pids’ on the Jupyter notebook output. Please check a recommended
output format in Figure 1
(f) Submit your imageFinder.ipynb. You don’t need to submit the pretrained model
and the weights file.
CECS 551 Assignment 8 - Page 2 of 2
Figure 1: A recommended output format

More products