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