MarcoParola commited on
Commit
63d85d1
·
1 Parent(s): 2bac6b2

brute force revert commit

Browse files
Files changed (2) hide show
  1. app.py +21 -42
  2. src/utils.py +1 -4
app.py CHANGED
@@ -28,8 +28,6 @@ def main():
28
  # Main App Components
29
  title = gr.Markdown("# Saliency evaluation - experiment 1")
30
  user_state = gr.State(0)
31
- images_list = gr.State([])
32
- current_image_id = gr.State(0)
33
  answers = gr.State([])
34
  start_time = gr.State(time.time())
35
 
@@ -70,13 +68,11 @@ def main():
70
  with gr.Row():
71
  count = user_state if isinstance(user_state, int) else user_state.value
72
  images = load_image_and_saliency(count, data_dir)
73
- id = images[0]
74
- current_image_id = gr.State(id)
75
- target_img = gr.Image(images[1], elem_classes="main-image delay", visible=False)
76
- saliency_gradcam = gr.Image(images[2], elem_classes="main-image", visible=False)
77
- saliency_lime = gr.Image(images[3], elem_classes="main-image", visible=False)
78
- saliency_sidu = gr.Image(images[5], elem_classes="main-image", visible=False)
79
- saliency_rise = gr.Image(images[4], elem_classes="main-image", visible=False)
80
 
81
 
82
  with gr.Row():
@@ -92,7 +88,7 @@ def main():
92
  def update_images(user_state):
93
  count = user_state if isinstance(user_state, int) else user_state.value
94
  if count < config['dataset'][config['dataset']['name']]['n_classes']:
95
- #images = load_image_and_saliency(count, data_dir)
96
 
97
  # image examples
98
  images = load_example_images(count, data_dir)
@@ -120,16 +116,14 @@ def main():
120
  count = user_state if isinstance(user_state, int) else user_state.value
121
  if count < config['dataset'][config['dataset']['name']]['n_classes']:
122
  images = load_image_and_saliency(count, data_dir)
123
- id = images[0]
124
- current_image_id = gr.State(id)
125
- target_img = gr.Image(images[1], elem_classes="main-image", visible=True)
126
- saliency_gradcam = gr.Image(images[2], elem_classes="main-image", visible=True)
127
- saliency_lime = gr.Image(images[3], elem_classes="main-image", visible=True)
128
- saliency_sidu = gr.Image(images[5], elem_classes="main-image", visible=True)
129
- saliency_rise = gr.Image(images[4], elem_classes="main-image", visible=True)
130
- return current_image_id, target_img, saliency_gradcam, saliency_lime, saliency_rise, saliency_sidu
131
  else:
132
- return current_image_id, target_img, saliency_gradcam, saliency_lime, saliency_rise, saliency_sidu
133
 
134
  def update_state(state):
135
  count = state if isinstance(state, int) else state.value
@@ -154,11 +148,11 @@ def main():
154
 
155
 
156
  def hide_view():
157
- target_img = gr.Image(images[1], elem_classes="main-image", visible=False)
158
- saliency_gradcam = gr.Image(images[2], elem_classes="main-image", visible=False)
159
- saliency_lime = gr.Image(images[3], elem_classes="main-image", visible=False)
160
- saliency_sidu = gr.Image(images[5], elem_classes="main-image", visible=False)
161
- saliency_rise = gr.Image(images[4], elem_classes="main-image", visible=False)
162
  question = gr.Markdown(f"### Sort the following saliency maps according to which of them better explains the class {class_names[count]}.", visible=False)
163
  dropdown1 = gr.Dropdown(choices=options, label="grad-cam", visible=False)
164
  dropdown2 = gr.Dropdown(choices=options, label="lime", visible=False)
@@ -205,11 +199,9 @@ def main():
205
  info_to_push = {
206
  "user_id": time.time(),
207
  "answer": {i: answer for i, answer in enumerate(answers)},
208
- "image_id_list": images_list,
209
- "duration": duration,
210
  }
211
 
212
- print(f"Saving results {info_to_push}")
213
  # Save the results into huggingface hub
214
  with scheduler.lock:
215
  with JSON_DATASET_PATH.open("a") as f:
@@ -235,11 +227,6 @@ def main():
235
  answers.append(rank)
236
  return answers
237
 
238
- def add_image_id(id, images_list):
239
- images_list.append(id.value)
240
- print(f"Image ID: {id.value} added to the list")
241
- return images_list
242
-
243
  submit_button.click(
244
  check_answer,
245
  inputs=[dropdown1, dropdown2, dropdown3, dropdown4]
@@ -251,10 +238,6 @@ def main():
251
  add_answer,
252
  inputs=[dropdown1, dropdown2, dropdown3, dropdown4, answers],
253
  outputs=answers
254
- ).then(
255
- add_image_id,
256
- inputs=[current_image_id, images_list],
257
- outputs=images_list
258
  ).then(
259
  update_img_label,
260
  inputs=user_state,
@@ -282,7 +265,7 @@ def main():
282
  ).then(
283
  update_saliencies,
284
  inputs=[dropdown1, dropdown2, dropdown3, dropdown4, user_state],
285
- outputs={current_image_id, target_img, saliency_gradcam, saliency_lime, saliency_sidu, saliency_rise},
286
  ).then(
287
  update_questions,
288
  inputs=user_state,
@@ -295,10 +278,6 @@ def main():
295
 
296
  finish_button.click(
297
  add_answer, inputs=[dropdown1, dropdown2, dropdown3, dropdown4, answers],outputs=answers
298
- ).then(
299
- add_image_id,
300
- inputs=[current_image_id, images_list],
301
- outputs=images_list
302
  ).then(
303
  save_results, inputs=answers
304
  ).then(
@@ -308,4 +287,4 @@ def main():
308
  demo.launch()
309
 
310
  if __name__ == "__main__":
311
- main()
 
28
  # Main App Components
29
  title = gr.Markdown("# Saliency evaluation - experiment 1")
30
  user_state = gr.State(0)
 
 
31
  answers = gr.State([])
32
  start_time = gr.State(time.time())
33
 
 
68
  with gr.Row():
69
  count = user_state if isinstance(user_state, int) else user_state.value
70
  images = load_image_and_saliency(count, data_dir)
71
+ target_img = gr.Image(images[0], elem_classes="main-image delay", visible=False)
72
+ saliency_gradcam = gr.Image(images[1], elem_classes="main-image", visible=False)
73
+ saliency_lime = gr.Image(images[2], elem_classes="main-image", visible=False)
74
+ saliency_sidu = gr.Image(images[4], elem_classes="main-image", visible=False)
75
+ saliency_rise = gr.Image(images[3], elem_classes="main-image", visible=False)
 
 
76
 
77
 
78
  with gr.Row():
 
88
  def update_images(user_state):
89
  count = user_state if isinstance(user_state, int) else user_state.value
90
  if count < config['dataset'][config['dataset']['name']]['n_classes']:
91
+ images = load_image_and_saliency(count, data_dir)
92
 
93
  # image examples
94
  images = load_example_images(count, data_dir)
 
116
  count = user_state if isinstance(user_state, int) else user_state.value
117
  if count < config['dataset'][config['dataset']['name']]['n_classes']:
118
  images = load_image_and_saliency(count, data_dir)
119
+ target_img = gr.Image(images[0], elem_classes="main-image", visible=True)
120
+ saliency_gradcam = gr.Image(images[1], elem_classes="main-image", visible=True)
121
+ saliency_lime = gr.Image(images[2], elem_classes="main-image", visible=True)
122
+ saliency_sidu = gr.Image(images[4], elem_classes="main-image", visible=True)
123
+ saliency_rise = gr.Image(images[3], elem_classes="main-image", visible=True)
124
+ return target_img, saliency_gradcam, saliency_lime, saliency_rise, saliency_sidu
 
 
125
  else:
126
+ return target_img, saliency_gradcam, saliency_lime, saliency_rise, saliency_sidu
127
 
128
  def update_state(state):
129
  count = state if isinstance(state, int) else state.value
 
148
 
149
 
150
  def hide_view():
151
+ target_img = gr.Image(images[0], elem_classes="main-image", visible=False)
152
+ saliency_gradcam = gr.Image(images[1], elem_classes="main-image", visible=False)
153
+ saliency_lime = gr.Image(images[2], elem_classes="main-image", visible=False)
154
+ saliency_sidu = gr.Image(images[4], elem_classes="main-image", visible=False)
155
+ saliency_rise = gr.Image(images[3], elem_classes="main-image", visible=False)
156
  question = gr.Markdown(f"### Sort the following saliency maps according to which of them better explains the class {class_names[count]}.", visible=False)
157
  dropdown1 = gr.Dropdown(choices=options, label="grad-cam", visible=False)
158
  dropdown2 = gr.Dropdown(choices=options, label="lime", visible=False)
 
199
  info_to_push = {
200
  "user_id": time.time(),
201
  "answer": {i: answer for i, answer in enumerate(answers)},
202
+ "duration": duration
 
203
  }
204
 
 
205
  # Save the results into huggingface hub
206
  with scheduler.lock:
207
  with JSON_DATASET_PATH.open("a") as f:
 
227
  answers.append(rank)
228
  return answers
229
 
 
 
 
 
 
230
  submit_button.click(
231
  check_answer,
232
  inputs=[dropdown1, dropdown2, dropdown3, dropdown4]
 
238
  add_answer,
239
  inputs=[dropdown1, dropdown2, dropdown3, dropdown4, answers],
240
  outputs=answers
 
 
 
 
241
  ).then(
242
  update_img_label,
243
  inputs=user_state,
 
265
  ).then(
266
  update_saliencies,
267
  inputs=[dropdown1, dropdown2, dropdown3, dropdown4, user_state],
268
+ outputs={target_img, saliency_gradcam, saliency_lime, saliency_sidu, saliency_rise},
269
  ).then(
270
  update_questions,
271
  inputs=user_state,
 
278
 
279
  finish_button.click(
280
  add_answer, inputs=[dropdown1, dropdown2, dropdown3, dropdown4, answers],outputs=answers
 
 
 
 
281
  ).then(
282
  save_results, inputs=answers
283
  ).then(
 
287
  demo.launch()
288
 
289
  if __name__ == "__main__":
290
+ main()
src/utils.py CHANGED
@@ -19,7 +19,7 @@ def load_image_and_saliency(class_idx, data_dir):
19
  lime_image = os.path.join(data_dir, 'saliency', 'lime', images[id])
20
  sidu_image = os.path.join(data_dir, 'saliency', 'sidu', images[id])
21
  rise_image = os.path.join(data_dir, 'saliency', 'rise', images[id])
22
- return id, image, gradcam_image, lime_image, sidu_image, rise_image
23
 
24
  def load_example_images(class_idx, data_dir, max_images=16):
25
  path = os.path.join(data_dir, 'images', str(class_idx))
@@ -41,6 +41,3 @@ def load_csv_concepts(data_dir):
41
  data = pd.read_csv(os.path.join(data_dir, 'concepts_by_class.csv'))
42
  return data
43
 
44
-
45
-
46
-
 
19
  lime_image = os.path.join(data_dir, 'saliency', 'lime', images[id])
20
  sidu_image = os.path.join(data_dir, 'saliency', 'sidu', images[id])
21
  rise_image = os.path.join(data_dir, 'saliency', 'rise', images[id])
22
+ return image, gradcam_image, lime_image, sidu_image, rise_image
23
 
24
  def load_example_images(class_idx, data_dir, max_images=16):
25
  path = os.path.join(data_dir, 'images', str(class_idx))
 
41
  data = pd.read_csv(os.path.join(data_dir, 'concepts_by_class.csv'))
42
  return data
43