From aa06cf445d92151bcfe87eb9ba9ee79d07c00119 Mon Sep 17 00:00:00 2001 From: tgupta6 <tgupta6@illinois.edu> Date: Thu, 19 May 2016 16:00:39 -0500 Subject: [PATCH] Fix gt for relevance for How Many questions --- .../eval_rel_classifier_simple.py | 52 +++++++++---------- classifiers/region_ranker/perfect_ranker.py | 12 +---- .../train_rel_classifier_simple.py | 4 +- classifiers/train_classifiers.py | 4 +- 4 files changed, 33 insertions(+), 39 deletions(-) diff --git a/classifiers/region_ranker/eval_rel_classifier_simple.py b/classifiers/region_ranker/eval_rel_classifier_simple.py index c7919fe..b292610 100644 --- a/classifiers/region_ranker/eval_rel_classifier_simple.py +++ b/classifiers/region_ranker/eval_rel_classifier_simple.py @@ -88,31 +88,31 @@ def eval(eval_params): + test_set_size - 1) # Test Recall - test_recall = rel_trainer.evaluate(y_pred, qa_anno_dict, - region_anno_dict, parsed_q_dict, - ans_vocab, vocab, - image_regions_dir, mean_image, - test_start_id, test_set_size, - batch_size, plholder_dict, - 75, 75, test_batch_creator,verbose=True) + # test_recall = rel_trainer.evaluate(y_pred, qa_anno_dict, + # region_anno_dict, parsed_q_dict, + # ans_vocab, vocab, + # image_regions_dir, mean_image, + # test_start_id, test_set_size, + # batch_size, plholder_dict, + # 75, 75, test_batch_creator,verbose=True) - # html_dir = os.path.join(outdir,'rel_html') - # test_recall = rel_trainer.evaluate_with_vis(y_pred, - # qa_anno_dict, - # region_anno_dict, - # parsed_q_dict, - # ans_vocab, - # vocab, - # image_regions_dir, - # mean_image, - # test_start_id, - # test_set_size, - # batch_size, - # plholder_dict, - # 75, - # 75, - # test_batch_creator, - # html_dir, - # whole_image_dir, - # verbose=True) + html_dir = os.path.join(outdir,'rel_html') + test_recall = rel_trainer.evaluate_with_vis(y_pred, + qa_anno_dict, + region_anno_dict, + parsed_q_dict, + ans_vocab, + vocab, + image_regions_dir, + mean_image, + test_start_id, + test_set_size, + batch_size, + plholder_dict, + 75, + 75, + test_batch_creator, + html_dir, + whole_image_dir, + verbose=True) print('Test Rec: ' + str(test_recall)) diff --git a/classifiers/region_ranker/perfect_ranker.py b/classifiers/region_ranker/perfect_ranker.py index 40f185f..2caa63a 100644 --- a/classifiers/region_ranker/perfect_ranker.py +++ b/classifiers/region_ranker/perfect_ranker.py @@ -111,16 +111,8 @@ def rank_regions(image, question, region_coords, region_coords_, coord_list = [] no_regions_flag = False if question is not None: - if 'How manys shapes' in question: + if 'How many' in question: no_regions_flag = True - elif 'How many' in question: - split_question = question.split(" ") - gt_region = split_question[-1] - gt_region = gt_region[2:4] - if gt_region not in gt_regions_for_image: - no_regions_flag = True - else: - coord_list.append(gt_regions_for_image[gt_region]) elif 'What color' in question: split_question = question.split(" ") gt_region = split_question[-1] @@ -201,7 +193,7 @@ def get_rel_map(image, scores, region_coords): rel_map[y1-1:y2, x1-1:x2, i] = scores[i] rel_map = rel_map.max(axis=2) - rel_map = 0.5 + 0.5*rel_map + rel_map = rel_map return rel_map diff --git a/classifiers/region_ranker/train_rel_classifier_simple.py b/classifiers/region_ranker/train_rel_classifier_simple.py index 114d3bc..4c2d77d 100644 --- a/classifiers/region_ranker/train_rel_classifier_simple.py +++ b/classifiers/region_ranker/train_rel_classifier_simple.py @@ -145,12 +145,14 @@ def evaluate_with_vis(region_score_pred, region_score_pred_eval[j,:], ans_io_helper.region_coords_) rel_map_stacked = np.dstack((rel_map, rel_map, rel_map)) + image = np.multiply(image, rel_map_stacked) + \ np.multiply(0*image+255, 1-rel_map_stacked) + image_filename = os.path.join(html_dir, str(image_id) + '_' + \ str(q_id) + '.jpg') - scipy.misc.imsave(image_filename, image) + scipy.misc.imsave(image_filename, image.astype(np.uint8)) col_dict = { 0: q_id, 1: question, diff --git a/classifiers/train_classifiers.py b/classifiers/train_classifiers.py index 52d6718..59b1602 100644 --- a/classifiers/train_classifiers.py +++ b/classifiers/train_classifiers.py @@ -23,8 +23,8 @@ workflow = { 'train_atr': False, 'eval_atr': False, 'train_rel': False, - 'eval_rel': False, - 'train_ans': True, + 'eval_rel': True, + 'train_ans': False, } obj_classifier_train_params = { -- GitLab