Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -22,7 +22,6 @@ def segment_everything(
|
|
22 |
conf_threshold=0.25,
|
23 |
better_quality=False,
|
24 |
use_retina=True,
|
25 |
-
text="",
|
26 |
wider=False,
|
27 |
mask_random_color=True,
|
28 |
):
|
@@ -40,13 +39,8 @@ def segment_everything(
|
|
40 |
conf=conf_threshold,
|
41 |
imgsz=input_size,)
|
42 |
|
43 |
-
if len(text) > 0:
|
44 |
-
results = format_results(results[0], 0)
|
45 |
-
annotations, _ = text_prompt(results, text, input, device=device, wider=wider)
|
46 |
-
annotations = np.array([annotations])
|
47 |
-
else:
|
48 |
-
annotations = results[0].masks.data
|
49 |
|
|
|
50 |
fig = fast_process(annotations=annotations,
|
51 |
image=input,
|
52 |
device=device,
|
@@ -56,7 +50,31 @@ def segment_everything(
|
|
56 |
bbox=None,
|
57 |
use_retina=use_retina,
|
58 |
withContours=withContours,)
|
59 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
60 |
|
61 |
title = "<center><strong><font size='8'>π Fast Segment Anything π€</font></strong></center>"
|
62 |
description = """ # π― Instructions for points mode """
|
@@ -79,7 +97,8 @@ demo = gr.Interface(
|
|
79 |
gr.Checkbox(value=True, label='withContours', info='draw the edges of the masks')
|
80 |
],
|
81 |
outputs = [
|
82 |
-
gr.Image(label="Segmented Image", interactive=False, type='pil')
|
|
|
83 |
],
|
84 |
title = title,
|
85 |
description = description,
|
|
|
22 |
conf_threshold=0.25,
|
23 |
better_quality=False,
|
24 |
use_retina=True,
|
|
|
25 |
wider=False,
|
26 |
mask_random_color=True,
|
27 |
):
|
|
|
39 |
conf=conf_threshold,
|
40 |
imgsz=input_size,)
|
41 |
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
|
43 |
+
annotations = results[0].masks.data
|
44 |
fig = fast_process(annotations=annotations,
|
45 |
image=input,
|
46 |
device=device,
|
|
|
50 |
bbox=None,
|
51 |
use_retina=use_retina,
|
52 |
withContours=withContours,)
|
53 |
+
|
54 |
+
bboxes = results[0].boxes.data
|
55 |
+
areas = (bboxes[:, 2] - bboxes[:, 0]) * (bboxes[:, 3] - bboxes[:, 1])
|
56 |
+
_, largest_indices = torch.topk(areas, 2)
|
57 |
+
largest_boxes = bboxes[largest_indices]
|
58 |
+
for i, box in enumerate(largest_boxes):
|
59 |
+
print(f"Largest Box {i+1}: {box.tolist()}")
|
60 |
+
|
61 |
+
fig, ax = plt.subplots(1)
|
62 |
+
ax.imshow(image)
|
63 |
+
|
64 |
+
for box in largest_boxes:
|
65 |
+
x1, y1, x2, y2 = box[:4]
|
66 |
+
rect = patches.Rectangle((x1, y1), x2-x1, y2-y1, linewidth=2, edgecolor='r', facecolor='none')
|
67 |
+
ax.add_patch(rect)
|
68 |
+
|
69 |
+
ax.axis('off')
|
70 |
+
buf = io.BytesIO()
|
71 |
+
plt.savefig(buf, format='png', bbox_inches='tight', pad_inches=0)
|
72 |
+
plt.close(fig)
|
73 |
+
buf.seek(0)
|
74 |
+
|
75 |
+
cropped_image = Image.open(buf)
|
76 |
+
|
77 |
+
return fig,cropped_image
|
78 |
|
79 |
title = "<center><strong><font size='8'>π Fast Segment Anything π€</font></strong></center>"
|
80 |
description = """ # π― Instructions for points mode """
|
|
|
97 |
gr.Checkbox(value=True, label='withContours', info='draw the edges of the masks')
|
98 |
],
|
99 |
outputs = [
|
100 |
+
gr.Image(label="Segmented Image", interactive=False, type='pil'),
|
101 |
+
gr.Image(label="Cropped Image", interactive=False, type='pil')
|
102 |
],
|
103 |
title = title,
|
104 |
description = description,
|