#!/usr/local/bin/python from eigenlib import * from glob import glob import re fs = FaceSpace(sys.argv[1]) learndir = sys.argv[2] learned = glob(learndir + '/*') learned.sort() fs_knowns = map(fs.load_fs_face, learned) name_finder = re.compile('([\w]+)\.') for person in sys.argv[3:]: name = name_finder.search(person).group(1) mesg(name + ': loading... ') im_face = fs.image_to_vector(person) mesg('done. pondering... ') fs_face = fs.project_to_face_space(im_face) new_im_face = fs.lift_to_image_space(fs_face) print 'is a face?', norm(new_im_face - im_face) / norm(im_face) dots = map(lambda f: Numeric.dot(f, fs_face), fs_knowns) combo = map(None, dots, learned) combo.sort() combo.reverse() print for dot, name in combo[:3]: print '%5d\t%s' % (dot * 10000, name) #biggest = 0 #for i in range(len(dots)): # if dots[i] > dots[biggest]: # biggest = i #print person, 'is', learned[biggest]