Updated APP to see if I can get it to work on the website.
Browse files- app.py +18 -1
- understand.py +1 -1
app.py
CHANGED
|
@@ -5,8 +5,10 @@ import requests, validators
|
|
| 5 |
import torch
|
| 6 |
import pathlib
|
| 7 |
from PIL import Image
|
|
|
|
|
|
|
| 8 |
|
| 9 |
-
from transformers import
|
| 10 |
from transformers.models.detr.feature_extraction_detr import rgb_to_id
|
| 11 |
|
| 12 |
|
|
@@ -60,6 +62,12 @@ def visualize_prediction(pil_img, output_dict, threshold=0.7, id2label=None):
|
|
| 60 |
plt.axis("off")
|
| 61 |
return fig2img(plt.gcf())
|
| 62 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 63 |
def segment_images(model_name,url_input,image_input,threshold):
|
| 64 |
####
|
| 65 |
# Get Image Object
|
|
@@ -81,6 +89,15 @@ def segment_images(model_name,url_input,image_input,threshold):
|
|
| 81 |
|
| 82 |
outputs = model(**inputs)
|
| 83 |
results = processor.post_process_panoptic_segmentation(outputs, target_sizes=[image.size[::-1]])[0]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 84 |
|
| 85 |
pass
|
| 86 |
else:
|
|
|
|
| 5 |
import torch
|
| 6 |
import pathlib
|
| 7 |
from PIL import Image
|
| 8 |
+
import cv2 as cv
|
| 9 |
+
import numpy as np
|
| 10 |
|
| 11 |
+
from transformers import DetrImageProcessor, DetrForSegmentation, MaskFormerImageProcessor, MaskFormerForInstanceSegmentation
|
| 12 |
from transformers.models.detr.feature_extraction_detr import rgb_to_id
|
| 13 |
|
| 14 |
|
|
|
|
| 62 |
plt.axis("off")
|
| 63 |
return fig2img(plt.gcf())
|
| 64 |
|
| 65 |
+
def contour_map(map_to_use, label_id):
|
| 66 |
+
mask = (map_to_use.cpu().numpy() == label_id)
|
| 67 |
+
visual_mask = (mask * 255).astype(np.uint8)
|
| 68 |
+
contours, hierarchy = cv.findContours(visual_mask, cv.RETR_TREE, cv.CHAIN_APPROX_SIMPLE)
|
| 69 |
+
return contours, hierarchy
|
| 70 |
+
|
| 71 |
def segment_images(model_name,url_input,image_input,threshold):
|
| 72 |
####
|
| 73 |
# Get Image Object
|
|
|
|
| 89 |
|
| 90 |
outputs = model(**inputs)
|
| 91 |
results = processor.post_process_panoptic_segmentation(outputs, target_sizes=[image.size[::-1]])[0]
|
| 92 |
+
|
| 93 |
+
return_string = ""
|
| 94 |
+
|
| 95 |
+
for r in results["segments_info"]:
|
| 96 |
+
contour_list, hierarchy = contour_map(results["segmentation"], r["current_id"])
|
| 97 |
+
label_name = model.config.id2label[r["label_id"]]
|
| 98 |
+
return_string += f"ID: {r['id']}, Contour Length: {len(contour_list)}, Label Name: {label_name}, Score: {r['score']}\n"
|
| 99 |
+
|
| 100 |
+
return image, return_string
|
| 101 |
|
| 102 |
pass
|
| 103 |
else:
|
understand.py
CHANGED
|
@@ -6,7 +6,7 @@ import numpy as np
|
|
| 6 |
from PIL import Image
|
| 7 |
import cv2 as cv
|
| 8 |
|
| 9 |
-
from transformers import
|
| 10 |
# from transformers.models.detr.feature_extraction_detr import rgb_to_id
|
| 11 |
from transformers.image_transforms import rgb_to_id
|
| 12 |
|
|
|
|
| 6 |
from PIL import Image
|
| 7 |
import cv2 as cv
|
| 8 |
|
| 9 |
+
from transformers import DetrImageProcessor, DetrForSegmentation, MaskFormerImageProcessor, MaskFormerForInstanceSegmentation
|
| 10 |
# from transformers.models.detr.feature_extraction_detr import rgb_to_id
|
| 11 |
from transformers.image_transforms import rgb_to_id
|
| 12 |
|