huzey commited on
Commit
f7365bb
1 Parent(s): ce202ba

update msg

Browse files
Files changed (1) hide show
  1. app.py +9 -7
app.py CHANGED
@@ -2465,7 +2465,7 @@ with demo:
2465
  text_block = gr.Textbox("", label="Logging", elem_id=f"logging_{i_row}", type="text", placeholder="Logging information", autofocus=False, autoscroll=False, lines=2, show_label=False)
2466
  delete_button = gr.Button("❌ Delete", elem_id=f"delete_button_{i_row}", variant='secondary')
2467
  with gr.Column(scale=10, min_width=200):
2468
- heatmap_gallery = gr.Gallery(format='png', value=[], label=f"Cluster Heatmap [row#{i_row}]", show_label=True, elem_id="heatmap", columns=[6], rows=[1], object_fit="contain", height="500px", show_share_button=True, interactive=False)
2469
  def delete_a_row(output_row_occupy, i_row=1):
2470
  # output_row_occupy[i_row-1] = False
2471
  return output_row_occupy, gr.update(visible=False)
@@ -2513,6 +2513,7 @@ with demo:
2513
 
2514
  def find_closest_fps_point_for_tsne_tree_plot(tsne_prompt, tsne2d_embed):
2515
  x, y = relative_xy_last_positive(tsne_prompt)
 
2516
  x_vmax = tsne2d_embed[:, 0].max() * 1.1
2517
  x_vmin = tsne2d_embed[:, 0].min() * 1.1
2518
  y_vmax = tsne2d_embed[:, 1].max() * 1.1
@@ -2522,10 +2523,11 @@ with demo:
2522
  y = y * (y_vmax - y_vmin) + y_vmin
2523
  dist = np.linalg.norm(tsne2d_embed - np.array([x, y]), axis=1)
2524
  closest_idx = np.argmin(dist)
2525
- return closest_idx
2526
 
2527
  def find_closest_fps_point_for_image_prompt(image_prompt, i_image, eigvecs, fps_eigvecs):
2528
  x, y = relative_xy_last_positive(image_prompt)
 
2529
  _eigvec = eigvecs[i_image]
2530
  h, w = _eigvec.shape[:2]
2531
  x = int(x * w)
@@ -2533,7 +2535,7 @@ with demo:
2533
  eigvec = _eigvec[y, x]
2534
  sim = fps_eigvecs @ eigvec
2535
  closest_idx = np.argmax(sim)
2536
- return closest_idx
2537
 
2538
  def find_closest_fps_point(prompt_radio, tsne_prompt, image_prompt, i_image, tsne2d_embed, eigvecs, fps_eigvecs):
2539
  try:
@@ -2547,15 +2549,15 @@ with demo:
2547
  def run_inspection(tsne_prompt, image_prompt, prompt_radio, current_output_row, tsne2d_embed, edges, fps_eigvecs, fps_tsne_rgb, fps_indices, granularity, eigvecs, i_image, tsne3d_rgb, input_gallery, output_row_occupy, max_rows=MAX_ROWS):
2548
  if len(tsne2d_embed) == 0:
2549
  raise gr.Error("Please run FPS+Cluster first.")
2550
- closest_idx = find_closest_fps_point(prompt_radio, tsne_prompt, image_prompt, i_image, tsne2d_embed, eigvecs, fps_eigvecs)
2551
  closest_rgb = fps_tsne_rgb[closest_idx]
2552
  closest_rgb = (closest_rgb * 255).astype(np.uint8)
2553
 
2554
  from fps_cluster import find_connected_component
2555
  connected_idxs = find_connected_component(edges[granularity:], closest_idx)
2556
 
2557
- logging_text = f"Clicked: idx={closest_idx}, RGB: {closest_rgb.tolist()}\n"
2558
- logging_text += f"Granularity: k={granularity}, Connected: n={len(connected_idxs)}"
2559
 
2560
  output_tsne_plot = plot_tsne_tree(tsne2d_embed, edges, fps_tsne_rgb, granularity, closest_idx, highlight_connections=True)
2561
 
@@ -2610,7 +2612,7 @@ with demo:
2610
  output_row_occupy[i_slot] = True
2611
  # tree_label = f"spectral-tSNE tree [row#{max_rows-output_slot}] k={granularity} idx={closest_idx} n={len(connected_idxs)}"
2612
  tree_label = f"spectral-tSNE tree [row#{current_output_row+1}]"
2613
- heatmap_label = f"Cluster Heatmap [row#{current_output_row+1}] k={granularity} idx={closest_idx} n={len(connected_idxs)}"
2614
  # update the output slots
2615
  output_rows = [gr.update() for _ in range(max_rows)]
2616
  output_tsne_plots = [gr.update() for _ in range(max_rows)]
 
2465
  text_block = gr.Textbox("", label="Logging", elem_id=f"logging_{i_row}", type="text", placeholder="Logging information", autofocus=False, autoscroll=False, lines=2, show_label=False)
2466
  delete_button = gr.Button("❌ Delete", elem_id=f"delete_button_{i_row}", variant='secondary')
2467
  with gr.Column(scale=10, min_width=200):
2468
+ heatmap_gallery = gr.Gallery(format='png', value=[], label=f"Cluster Heatmap [row#{i_row}]", show_label=True, elem_id="heatmap", columns=[6], rows=[1], object_fit="contain", height="550px", show_share_button=True, interactive=False)
2469
  def delete_a_row(output_row_occupy, i_row=1):
2470
  # output_row_occupy[i_row-1] = False
2471
  return output_row_occupy, gr.update(visible=False)
 
2513
 
2514
  def find_closest_fps_point_for_tsne_tree_plot(tsne_prompt, tsne2d_embed):
2515
  x, y = relative_xy_last_positive(tsne_prompt)
2516
+ _x_ratio, _y_ratio = x, y
2517
  x_vmax = tsne2d_embed[:, 0].max() * 1.1
2518
  x_vmin = tsne2d_embed[:, 0].min() * 1.1
2519
  y_vmax = tsne2d_embed[:, 1].max() * 1.1
 
2523
  y = y * (y_vmax - y_vmin) + y_vmin
2524
  dist = np.linalg.norm(tsne2d_embed - np.array([x, y]), axis=1)
2525
  closest_idx = np.argmin(dist)
2526
+ return closest_idx, (_x_ratio, _y_ratio)
2527
 
2528
  def find_closest_fps_point_for_image_prompt(image_prompt, i_image, eigvecs, fps_eigvecs):
2529
  x, y = relative_xy_last_positive(image_prompt)
2530
+ _x_ratio, _y_ratio = x, y
2531
  _eigvec = eigvecs[i_image]
2532
  h, w = _eigvec.shape[:2]
2533
  x = int(x * w)
 
2535
  eigvec = _eigvec[y, x]
2536
  sim = fps_eigvecs @ eigvec
2537
  closest_idx = np.argmax(sim)
2538
+ return closest_idx, (_x_ratio, _y_ratio)
2539
 
2540
  def find_closest_fps_point(prompt_radio, tsne_prompt, image_prompt, i_image, tsne2d_embed, eigvecs, fps_eigvecs):
2541
  try:
 
2549
  def run_inspection(tsne_prompt, image_prompt, prompt_radio, current_output_row, tsne2d_embed, edges, fps_eigvecs, fps_tsne_rgb, fps_indices, granularity, eigvecs, i_image, tsne3d_rgb, input_gallery, output_row_occupy, max_rows=MAX_ROWS):
2550
  if len(tsne2d_embed) == 0:
2551
  raise gr.Error("Please run FPS+Cluster first.")
2552
+ closest_idx, (_x, _y) = find_closest_fps_point(prompt_radio, tsne_prompt, image_prompt, i_image, tsne2d_embed, eigvecs, fps_eigvecs)
2553
  closest_rgb = fps_tsne_rgb[closest_idx]
2554
  closest_rgb = (closest_rgb * 255).astype(np.uint8)
2555
 
2556
  from fps_cluster import find_connected_component
2557
  connected_idxs = find_connected_component(edges[granularity:], closest_idx)
2558
 
2559
+ logging_text = f"Clicked: idx={closest_idx}, xy=[{_x:.2f}, {_y:.2f}], RGB={closest_rgb}"
2560
+ logging_text += f"\nGranularity: k={granularity}, Connected: n={len(connected_idxs)}"
2561
 
2562
  output_tsne_plot = plot_tsne_tree(tsne2d_embed, edges, fps_tsne_rgb, granularity, closest_idx, highlight_connections=True)
2563
 
 
2612
  output_row_occupy[i_slot] = True
2613
  # tree_label = f"spectral-tSNE tree [row#{max_rows-output_slot}] k={granularity} idx={closest_idx} n={len(connected_idxs)}"
2614
  tree_label = f"spectral-tSNE tree [row#{current_output_row+1}]"
2615
+ heatmap_label = f"Cluster Heatmap [row#{current_output_row+1}] k={granularity} n={len(connected_idxs)} xy=[{_x:.2f}, {_y:.2f}] idx={closest_idx}"
2616
  # update the output slots
2617
  output_rows = [gr.update() for _ in range(max_rows)]
2618
  output_tsne_plots = [gr.update() for _ in range(max_rows)]