MarcoParola commited on
Commit
432488c
·
1 Parent(s): 2b9c68d

revert previous commit

Browse files
Files changed (3) hide show
  1. app.py +41 -20
  2. results.txt +0 -3
  3. src/utils.py +1 -1
app.py CHANGED
@@ -28,6 +28,8 @@ def 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,11 +70,13 @@ def main():
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,7 +92,7 @@ def main():
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,14 +120,16 @@ def main():
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,11 +154,11 @@ def main():
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,9 +205,11 @@ def main():
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,6 +235,11 @@ def main():
227
  answers.append(rank)
228
  return answers
229
 
 
 
 
 
 
230
  submit_button.click(
231
  check_answer,
232
  inputs=[dropdown1, dropdown2, dropdown3, dropdown4]
@@ -238,6 +251,10 @@ def main():
238
  add_answer,
239
  inputs=[dropdown1, dropdown2, dropdown3, dropdown4, answers],
240
  outputs=answers
 
 
 
 
241
  ).then(
242
  update_img_label,
243
  inputs=user_state,
@@ -265,7 +282,7 @@ def main():
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,6 +295,10 @@ def main():
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(
 
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
  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
  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
  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
 
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
  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
  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
  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
  ).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
 
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(
results.txt CHANGED
@@ -1,7 +1,4 @@
1
- <<<<<<< HEAD
2
  1
3
  1
4
  1
5
- =======
6
- >>>>>>> 3f64a538c758b91d73b81cfc887dc149513eeb0a
7
  1
 
 
1
  1
2
  1
3
  1
 
 
4
  1
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 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))
 
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))