class Tester: def __init__(self): self.results = Results() def load_data(self): self.results.build_article_dataset() topic_count = len(self.results.get_data()) min_set = topic_count/4 self.total_data = self.results.get_data() dev_keys = self.total_data.keys()[0:min_set*3] eval_keys = self.total_data.keys()[min_set*3:len(self.total_data)] self.dev_set = dict((k,v) for k, v in self.total_data.iteritems() if k in dev_keys) self.eval_set = dict((k,v) for k, v in self.total_data.iteritems() if k in eval_keys)
class Tester: def __init__(self): self.results = Results() def load_data(self): self.results.build_article_dataset() topic_count = len(self.results.get_data()) min_set = topic_count / 4 self.total_data = self.results.get_data() dev_keys = self.total_data.keys()[0:min_set * 3] eval_keys = self.total_data.keys()[min_set * 3:len(self.total_data)] self.dev_set = dict( (k, v) for k, v in self.total_data.iteritems() if k in dev_keys) self.eval_set = dict( (k, v) for k, v in self.total_data.iteritems() if k in eval_keys)
def __init__(self): self.results = Results()
def run(images_path="media/", filename="", num_of_results=1, hm_lvl=0, certainty=0, data_dir=DATA_DIR): """execute face detection than vgg face and finally grad-cam :param filename: query image filename (default = "") :param images_path: query and output image path (default = "media/") :param data_dir: openCV directory path (default = DATA_DIR) :return TODO """ res = Results(certainty) file_path = os.path.join(images_path, filename) if not file_path: res.err_msg = "ERROR: cannot load input image {}".format(filename) res.err_code = 1 message(res.err_msg) return res face = FaceDetect(data_dir, file_path) if not face.is_valid: res.err_msg = "ERROR: cannot load input image {}".format(filename) res.err_code = 1 message(res.err_msg) return res face.load_cascades() if not face.is_loaded: res.err_msg = "ERROR: cannot load cascades from: {}".format(data_dir) res.err_code = 2 message(res.err_msg) return res face.detect_face() if not face.has_face: res.err_msg = "ERROR: sorry, frontal face wasn't detected" res.err_code = 3 message(res.err_msg) return res # Crop faces from query image im = cv2.imread(file_path) # If found more than one face, pick the biggest one (w * h) cropped_im = crop_rect(im, max(face.features, key=lambda f: f[2] * f[3])) cv2.imwrite(os.path.join(images_path, "cropped.jpg"), cropped_im) # Run forward pass and GradCam on cropped image pred_labels, err_msg = classifier_gcam.predict(images_path, num_of_results) if (pred_labels is None) or (len(pred_labels) == 0): res.err_msg = err_msg res.err_code = 4 message(res.err_msg) return res # Get predicted label from Torch output pred_ids = get_prediction_from_names(pred_labels) if len(pred_labels) == 0: res.err_msg = "ERROR: could not load names.txt file" res.err_code = 5 message(res.err_msg) return res res.set_results(cropped_im, pred_ids[0], pred_labels[0], pred_ids[1:], hm_lvl) res.find_significant_features() return res