def check_results(aligned, vs_ref=False): assert "pgm" in argv[3] # only for pgms sse = 0.0 for i in xrange(len(aligned)): bn = splitext(basename(argv[3 + i]))[0].lower() if vs_ref: # Michael comparison pts = loadtxt("data/bioid/ref_impl_facepts/%s.facepts" % bn) else: # ground truth comparison pts = read_pointsfile("data/bioid/points/%s.pts" % bn) # visualize(argv[3+i],pts) err = ((aligned[i] - pts) ** 2).sum() print bn, err sse += err print "total error:", sse print "avg per img:", sse / float(len(aligned))
def check_results(aligned, vs_ref=False): assert 'pgm' in argv[3] # only for pgms sse = 0.0 for i in xrange(len(aligned)): bn = splitext(basename(argv[3 + i]))[0].lower() if vs_ref: # Michael comparison pts = loadtxt("data/bioid/ref_impl_facepts/%s.facepts" % bn) else: # ground truth comparison pts = read_pointsfile("data/bioid/points/%s.pts" % bn) #visualize(argv[3+i],pts) err = ((aligned[i] - pts)**2).sum() print bn, err sse += err print "total error:", sse print "avg per img:", sse / float(len(aligned))
def main(img_dir,pts_dir,haar_file,num_trains): t = Trainer() cascade = load_cascade(haar_file) sglob = lambda dir: sorted(glob(dir+"/*")) paths = izip(sglob(img_dir),sglob(pts_dir)) # split into training and testing for im,pf in islice(paths,num_trains): img = pvImage(im) pts = read_pointsfile(pf) faces = detect_faces(img,cascade) if faces: t.add_training_image(img,pts,faces[0]) else: print "No face found for %s"%im t.train() t.export_aligner('aligner.yaml')