donb-hf commited on
Commit
5020c09
·
1 Parent(s): d9f0542

update output

Browse files
Files changed (1) hide show
  1. app.py +23 -14
app.py CHANGED
@@ -15,20 +15,21 @@ import spaces
15
  hf_token = os.getenv("HF_TOKEN")
16
  login(token=hf_token, add_to_git_credential=True)
17
 
18
- def detect_brain_tumor(image, debug: bool = False) -> str:
 
 
 
19
  """
20
- Detects a brain tumor in the given image and saves the image with bounding boxes.
21
 
22
  Parameters:
23
- image: The input image (as provided by Gradio).
 
24
  debug (bool): Flag to enable logging for debugging purposes.
25
 
26
  Returns:
27
- str: Path to the saved output image.
28
  """
29
- # Generate a unique output filename
30
- output_path = f"./output/tumor_detection_{int(time.time())}.jpg"
31
-
32
  if debug:
33
  print(f"Image received")
34
 
@@ -43,12 +44,20 @@ def detect_brain_tumor(image, debug: bool = False) -> str:
43
  if debug:
44
  print("Bounding boxes overlaid on the image")
45
 
46
- # Step 4: Save the resulting image
47
- save_image(image_with_bboxes, output_path)
48
- if debug:
49
- print(f"Image saved to {output_path}")
50
-
51
- return output_path
 
 
 
 
 
 
 
 
52
 
53
  INTRO_TEXT="# 🔬🧠 CellVision AI -- Intelligent Cell Imaging Analysis 🤖🧫"
54
  IMAGE_PROMPT="Are these cells healthy or cancerous?"
@@ -59,7 +68,7 @@ with gr.Blocks(css="style.css") as demo:
59
  with gr.Row():
60
  with gr.Column():
61
  image = gr.Image(type="numpy")
62
- seg_input = gr.Text(label="Entities to Segment/Detect")
63
 
64
  with gr.Column():
65
  annotated_image = gr.AnnotatedImage(label="Output")
 
15
  hf_token = os.getenv("HF_TOKEN")
16
  login(token=hf_token, add_to_git_credential=True)
17
 
18
+ import numpy as np
19
+ from PIL import Image
20
+
21
+ def detect_brain_tumor(image, seg_input, debug: bool = False):
22
  """
23
+ Detects a brain tumor in the given image and returns the annotated image.
24
 
25
  Parameters:
26
+ image: The input image (as numpy array provided by Gradio).
27
+ seg_input: The segmentation input (not used in this function, but required for Gradio).
28
  debug (bool): Flag to enable logging for debugging purposes.
29
 
30
  Returns:
31
+ tuple: (numpy array of image, list of (label, score, bbox) tuples)
32
  """
 
 
 
33
  if debug:
34
  print(f"Image received")
35
 
 
44
  if debug:
45
  print("Bounding boxes overlaid on the image")
46
 
47
+ # Prepare annotations for AnnotatedImage output
48
+ annotations = []
49
+ for detection in detections:
50
+ label = detection['label']
51
+ score = detection['score']
52
+ bbox = detection['bbox']
53
+ x1, y1, x2, y2 = bbox
54
+ annotations.append((f"{label} {score:.2f}", (x1, y1, x2-x1, y2-y1)))
55
+
56
+ # Convert image to numpy array if it's not already
57
+ if isinstance(image_with_bboxes, Image.Image):
58
+ image_with_bboxes = np.array(image_with_bboxes)
59
+
60
+ return (image_with_bboxes, annotations)
61
 
62
  INTRO_TEXT="# 🔬🧠 CellVision AI -- Intelligent Cell Imaging Analysis 🤖🧫"
63
  IMAGE_PROMPT="Are these cells healthy or cancerous?"
 
68
  with gr.Row():
69
  with gr.Column():
70
  image = gr.Image(type="numpy")
71
+ seg_input = gr.Text(label="Entities to Segment/Detect", value="detect brain tumor")
72
 
73
  with gr.Column():
74
  annotated_image = gr.AnnotatedImage(label="Output")