Skip to content
Snippets Groups Projects
Commit 8d7cd9bb authored by Manuel Günther's avatar Manuel Günther
Browse files

Corrected nose tests of DCT/UBM to use only 2 gaussians (should be faster now).

parent 8882efe6
No related branches found
No related tags found
No related merge requests found
...@@ -73,7 +73,7 @@ def extract_feature(image): ...@@ -73,7 +73,7 @@ def extract_feature(image):
# Parameters of the UBM/GMM module training # Parameters of the UBM/GMM module training
NUMBER_OF_GAUSSIANS = 100 NUMBER_OF_GAUSSIANS = 100
def train(training_features): def train(training_features, number_of_gaussians = NUMBER_OF_GAUSSIANS):
"""Trains the UBM/GMM module with the given set of training DCT features""" """Trains the UBM/GMM module with the given set of training DCT features"""
# create array set used for training # create array set used for training
...@@ -81,8 +81,8 @@ def train(training_features): ...@@ -81,8 +81,8 @@ def train(training_features):
input_size = training_set.shape[1] input_size = training_set.shape[1]
# create the KMeans and UBM machine # create the KMeans and UBM machine
kmeans = bob.machine.KMeansMachine(NUMBER_OF_GAUSSIANS, input_size) kmeans = bob.machine.KMeansMachine(number_of_gaussians, input_size)
ubm = bob.machine.GMMMachine(NUMBER_OF_GAUSSIANS, input_size) ubm = bob.machine.GMMMachine(number_of_gaussians, input_size)
# create the KMeansTrainer # create the KMeansTrainer
kmeans_trainer = bob.trainer.KMeansTrainer() kmeans_trainer = bob.trainer.KMeansTrainer()
......
...@@ -152,25 +152,25 @@ class FaceVerifyExampleTest(unittest.TestCase): ...@@ -152,25 +152,25 @@ class FaceVerifyExampleTest(unittest.TestCase):
keys = sorted(images.keys()) keys = sorted(images.keys())
self.assertEqual(len(images), 200) self.assertEqual(len(images), 200)
extract_feature(images[1]) # test that the original DCT extraction works
dct_feature = extract_feature(images[1])
if regenerate_references:
bob.io.save(dct_feature, self.resource('dct_feature.hdf5'))
feature_ref = bob.io.load(self.resource('dct_feature.hdf5'))
self.assertTrue(numpy.allclose(feature_ref, dct_feature))
# extract features for several images # extract features for several images
# features = {i : extract_feature(images[i]) for i in keys[:13]} # features = {i : extract_feature(images[i]) for i in keys[:13]}
features = {} features = {}
for i in keys[:13]: features[i] = extract_feature(images[i]) for i in keys[:13]: features[i] = extract_feature(images[i])
if regenerate_references:
bob.io.save(features[1], self.resource('dct_feature.hdf5'))
feature_ref = bob.io.load(self.resource('dct_feature.hdf5'))
self.assertTrue(numpy.allclose(feature_ref, features[1]))
# train the UBM with several features, and a limited numebr of Gaussians # train the UBM with several features, and a limited number of Gaussians
NUMBER_OF_GAUSSIANS = 2
# ubm = train({i : features[i] for i in keys[:10]}) # ubm = train({i : features[i] for i in keys[:10]})
trainset = {} trainset = {}
for i in keys[:10]: trainset[i] = features[i] for i in keys[:10]: trainset[i] = features[i]
ubm = train(trainset) ubm = train(trainset, number_of_gaussians = 2)
if regenerate_references: if regenerate_references:
ubm.save(bob.io.HDF5File(self.resource('dct_ubm.hdf5'), 'w')) ubm.save(bob.io.HDF5File(self.resource('dct_ubm.hdf5'), 'w'))
...@@ -203,5 +203,5 @@ class FaceVerifyExampleTest(unittest.TestCase): ...@@ -203,5 +203,5 @@ class FaceVerifyExampleTest(unittest.TestCase):
# compute score # compute score
score = bob.machine.linear_scoring([model], ubm, [probe])[0,0] score = bob.machine.linear_scoring([model], ubm, [probe])[0,0]
self.assertAlmostEqual(score, 43049.56532399742) self.assertAlmostEqual(score, 6975.2165874138391)
No preview for this file type
No preview for this file type
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment