Spaces:
Runtime error
Runtime error
Remove backgrounds from cropped images
Browse files
app.py
CHANGED
|
@@ -57,7 +57,7 @@ def get_scores(crops: List[PIL.Image.Image], query: str) -> torch.Tensor:
|
|
| 57 |
txt_features = model.encode_text(token)
|
| 58 |
img_features /= img_features.norm(dim=-1, keepdim=True)
|
| 59 |
txt_features /= txt_features.norm(dim=-1, keepdim=True)
|
| 60 |
-
similarity = (100
|
| 61 |
return similarity
|
| 62 |
|
| 63 |
|
|
@@ -82,9 +82,10 @@ def filter_masks(
|
|
| 82 |
filtered_masks.append(mask)
|
| 83 |
|
| 84 |
x, y, w, h = mask["bbox"]
|
| 85 |
-
|
|
|
|
| 86 |
crop = cv2.cvtColor(crop, cv2.COLOR_BGR2RGB)
|
| 87 |
-
crop = PIL.Image.fromarray(
|
| 88 |
crop.resize((CLIP_WIDTH, CLIP_HEIGHT))
|
| 89 |
cropped_masks.append(crop)
|
| 90 |
|
|
@@ -141,7 +142,7 @@ def segment(
|
|
| 141 |
)
|
| 142 |
image = draw_masks(image, masks)
|
| 143 |
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
|
| 144 |
-
image = PIL.Image.fromarray(
|
| 145 |
return image
|
| 146 |
|
| 147 |
|
|
@@ -161,14 +162,14 @@ demo = gr.Interface(
|
|
| 161 |
[
|
| 162 |
0.9,
|
| 163 |
0.8,
|
| 164 |
-
0.
|
| 165 |
os.path.join(os.path.dirname(__file__), "examples/dog.jpg"),
|
| 166 |
-
"A dog
|
| 167 |
],
|
| 168 |
[
|
| 169 |
0.9,
|
| 170 |
0.8,
|
| 171 |
-
0.
|
| 172 |
os.path.join(os.path.dirname(__file__), "examples/city.jpg"),
|
| 173 |
"A bridge on the water",
|
| 174 |
],
|
|
@@ -177,7 +178,7 @@ demo = gr.Interface(
|
|
| 177 |
0.8,
|
| 178 |
0.05,
|
| 179 |
os.path.join(os.path.dirname(__file__), "examples/food.jpg"),
|
| 180 |
-
"",
|
| 181 |
],
|
| 182 |
[
|
| 183 |
0.9,
|
|
|
|
| 57 |
txt_features = model.encode_text(token)
|
| 58 |
img_features /= img_features.norm(dim=-1, keepdim=True)
|
| 59 |
txt_features /= txt_features.norm(dim=-1, keepdim=True)
|
| 60 |
+
similarity = (100 * img_features @ txt_features.T).softmax(0)
|
| 61 |
return similarity
|
| 62 |
|
| 63 |
|
|
|
|
| 82 |
filtered_masks.append(mask)
|
| 83 |
|
| 84 |
x, y, w, h = mask["bbox"]
|
| 85 |
+
masked = image * np.expand_dims(mask["segmentation"], -1)
|
| 86 |
+
crop = masked[y: y + h, x: x + w]
|
| 87 |
crop = cv2.cvtColor(crop, cv2.COLOR_BGR2RGB)
|
| 88 |
+
crop = PIL.Image.fromarray(crop * 255)
|
| 89 |
crop.resize((CLIP_WIDTH, CLIP_HEIGHT))
|
| 90 |
cropped_masks.append(crop)
|
| 91 |
|
|
|
|
| 142 |
)
|
| 143 |
image = draw_masks(image, masks)
|
| 144 |
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
|
| 145 |
+
image = PIL.Image.fromarray(image)
|
| 146 |
return image
|
| 147 |
|
| 148 |
|
|
|
|
| 162 |
[
|
| 163 |
0.9,
|
| 164 |
0.8,
|
| 165 |
+
0.30,
|
| 166 |
os.path.join(os.path.dirname(__file__), "examples/dog.jpg"),
|
| 167 |
+
"A dog",
|
| 168 |
],
|
| 169 |
[
|
| 170 |
0.9,
|
| 171 |
0.8,
|
| 172 |
+
0.05,
|
| 173 |
os.path.join(os.path.dirname(__file__), "examples/city.jpg"),
|
| 174 |
"A bridge on the water",
|
| 175 |
],
|
|
|
|
| 178 |
0.8,
|
| 179 |
0.05,
|
| 180 |
os.path.join(os.path.dirname(__file__), "examples/food.jpg"),
|
| 181 |
+
"spoon",
|
| 182 |
],
|
| 183 |
[
|
| 184 |
0.9,
|