Question Set 3: Verify Face

These results are produced using six 25 x 25 eigenfaces.

A false positive is when a neutral face is matched against an interesting face positively when the faces aren't of the same person. I calculated the number of false positives by comparing every neutral face to every other interesting face (except for the corresponding interesting face) for varying MSE levels.

False Positive Algorithm

for mse in mse_range
	for user_x in users
		for user_y in users
			if(user_x != user_y)
				if(verify_face(user_x.neutral, user_y.intersting, mse))
					mse.false_positive++

mse.false_positive_rate = mse.false_positive / (num_users^2 - num_users)
(this is the number of false positives out of the possible false positives for this mse)		
A false negative is when a neutral face is matched negatively against its corresponding interesting face. I calculated the number of false negatives by comparing every neutral face to its corresponding interesting face for varying MSE levels.

False Negative Algorithm

for mse in mse_range
	for user_x in users
		for user_y in users
			if(user_x == user_y)
				if(!verify_face(user_x.neutral, user_y.intersting, mse))
					mse.false_negative++
					
mse.false_negative_rate = mse.false_negative / num_users	
(this is the number of false negatives out of the possible false negatives for this mse)


False Postive and False Negative Rates for Different MSE Values

Discussion of Results

The chart above was generated using d3.js. The script I used to generate the data can be found here.

Does this chart make sense? At a low MSE threshold, every match gets rejected. This means for every pair of identical faces compared, they are said not to match (high false negative rate). For every pair of differing faces, they are also said to match (low false positive rate). As the MSE increases this trends reverses because at the highest MSE (not shown in the graph) everything is accepted as a match because the threshold is so high (in my code the mse must be lower than the threshold to be considered a match, though the order of this inequality doesn't matter, as long as you are consistent). The goal is to minimize both the false positives and false negatives. Judging by the graph around 55000 for an MSE threshold seems like a good pick (though 60000 might be a little bit better if you want to take a small hit on the false positive rate). At 55000 the false negative and false positive rates are roughly 5% each.

Note that these results are just for six eigenfaces of 25 x 25 pixels. We would expect different results if different parameters were used to construct the eigenfaces (most notably the MSE values would be way different because of more or less pixels to add to the MSE value).

Back