def evaluate_from_pred_dict(predictions, refvg_split, analyze_subset=True, exp_name_in_summary=None, save_result_to_path=None, update_predictions=False, verbose=False): evaluator = Evaluator(refvg_split=refvg_split, analyze_subset=analyze_subset) mb = list() for img_id, im_preds in predictions.items(): pred_mask_tag = None pred_boxes_tag = None correct_tag = None for task_id, task_pred in im_preds.items(): if 'pred_mask' in task_pred: pred_mask_tag = 'pred_mask' if 'pred_boxlist' in task_pred: pred_boxes_tag = 'pred_boxlist' if 'correct' in task_pred: correct_tag = 'correct' break if len(mb) == 0: if pred_mask_tag is not None: mb.append('mask') if pred_boxes_tag is not None: mb.append('box') im, ib = evaluator.eval_single_img(img_id=img_id, im_pred_dict=im_preds, pred_mask_tag=pred_mask_tag, pred_boxes_tag=pred_boxes_tag, correct_tag=correct_tag, verbose=verbose) if update_predictions: for task_id, task_pred in im_preds.items(): if task_id in im: task_pred['mask_iou'] = im[task_id] if task_id in ib: task_pred['box_iou'] = ib[task_id] evaluator.analyze_stats(mask_box=mb, exp_name_in_summary=exp_name_in_summary, save_result_to_path=save_result_to_path) return predictions
def evaluate_from_pred_folder(pred_folder, refvg_split, analyze_subset=True, exp_name_in_summary=None, save_result_to_path=None, verbose=False): print(exp_name_in_summary) evaluator = Evaluator(refvg_split=refvg_split, analyze_subset=analyze_subset) fnames = os.listdir(pred_folder) fnames.sort() img_preds = dict() cur_img_id = '' for fname in fnames: if not fname.endswith('.png'): continue task_id = fname.split('.')[0] img_id = task_id.split('__')[0] pred_mask = png_to_pred_mask(os.path.join(pred_folder, fname)) if img_id == cur_img_id: img_preds[task_id] = {'pred_mask': pred_mask} else: if len(img_preds) > 0: # print(img_preds) evaluator.eval_single_img(img_id=int(cur_img_id), im_pred_dict=img_preds, pred_mask_tag='pred_mask', verbose=verbose) cur_img_id = img_id img_preds = dict() img_preds[task_id] = {'pred_mask': pred_mask} if len(img_preds) > 0: evaluator.eval_single_img(img_id=int(cur_img_id), im_pred_dict=img_preds, pred_mask_tag='pred_mask', verbose=verbose) evaluator.analyze_stats(mask_box=['mask'], exp_name_in_summary=exp_name_in_summary, save_result_to_path=save_result_to_path) return