Update app.py
Browse files
app.py
CHANGED
|
@@ -30,11 +30,12 @@ from UniVAD.models.grounded_sam import (
|
|
| 30 |
load_model,
|
| 31 |
)
|
| 32 |
|
|
|
|
|
|
|
|
|
|
| 33 |
|
| 34 |
|
| 35 |
-
device = "cuda" if torch.cuda.is_available() else "cpu"
|
| 36 |
image_size = 336
|
| 37 |
-
univad_model = UniVAD(image_size=image_size).to(device)
|
| 38 |
|
| 39 |
|
| 40 |
transform = transforms.Compose(
|
|
@@ -44,22 +45,7 @@ transform = transforms.Compose(
|
|
| 44 |
]
|
| 45 |
)
|
| 46 |
|
| 47 |
-
ram_model = ram_plus(
|
| 48 |
-
pretrained="./ram_plus_swin_large_14m.pth",
|
| 49 |
-
image_size=384,
|
| 50 |
-
vit="swin_l",
|
| 51 |
-
)
|
| 52 |
-
ram_model.eval()
|
| 53 |
-
ram_model = ram_model.to(device)
|
| 54 |
-
|
| 55 |
|
| 56 |
-
grounding_model = load_model(
|
| 57 |
-
"./UniVAD/models/GroundingDINO/groundingdino/config/GroundingDINO_SwinT_OGC.py",
|
| 58 |
-
"./groundingdino_swint_ogc.pth",
|
| 59 |
-
"cuda" if torch.cuda.is_available() else "cpu"
|
| 60 |
-
)
|
| 61 |
-
sam = sam_hq_model_registry["vit_h"]("./sam_hq_vit_h.pth").to(device)
|
| 62 |
-
sam_predictor = SamPredictor(sam)
|
| 63 |
|
| 64 |
|
| 65 |
def preprocess_image(img):
|
|
@@ -70,8 +56,27 @@ def preprocess_image(img):
|
|
| 70 |
def update_image(image):
|
| 71 |
if image is not None:
|
| 72 |
return preprocess_image(image)
|
| 73 |
-
|
|
|
|
| 74 |
def ad(image_pil, normal_image, box_threshold, text_threshold, text_prompt, background_prompt, cluster_num):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 75 |
return process_image(image_pil, normal_image, box_threshold, text_threshold, sam_predictor, grounding_model, univad_model, ram_model, text_prompt, background_prompt, cluster_num, image_size)
|
| 76 |
|
| 77 |
|
|
|
|
| 30 |
load_model,
|
| 31 |
)
|
| 32 |
|
| 33 |
+
import spaces
|
| 34 |
+
|
| 35 |
+
|
| 36 |
|
| 37 |
|
|
|
|
| 38 |
image_size = 336
|
|
|
|
| 39 |
|
| 40 |
|
| 41 |
transform = transforms.Compose(
|
|
|
|
| 45 |
]
|
| 46 |
)
|
| 47 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 48 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 49 |
|
| 50 |
|
| 51 |
def preprocess_image(img):
|
|
|
|
| 56 |
def update_image(image):
|
| 57 |
if image is not None:
|
| 58 |
return preprocess_image(image)
|
| 59 |
+
|
| 60 |
+
@spaces.GPU
|
| 61 |
def ad(image_pil, normal_image, box_threshold, text_threshold, text_prompt, background_prompt, cluster_num):
|
| 62 |
+
device = "cuda" if torch.cuda.is_available() else "cpu"
|
| 63 |
+
univad_model = UniVAD(image_size=image_size).to(device)
|
| 64 |
+
ram_model = ram_plus(
|
| 65 |
+
pretrained="./ram_plus_swin_large_14m.pth",
|
| 66 |
+
image_size=384,
|
| 67 |
+
vit="swin_l",
|
| 68 |
+
)
|
| 69 |
+
ram_model.eval()
|
| 70 |
+
ram_model = ram_model.to(device)
|
| 71 |
+
|
| 72 |
+
|
| 73 |
+
grounding_model = load_model(
|
| 74 |
+
"./UniVAD/models/GroundingDINO/groundingdino/config/GroundingDINO_SwinT_OGC.py",
|
| 75 |
+
"./groundingdino_swint_ogc.pth",
|
| 76 |
+
"cuda" if torch.cuda.is_available() else "cpu"
|
| 77 |
+
)
|
| 78 |
+
sam = sam_hq_model_registry["vit_h"]("./sam_hq_vit_h.pth").to(device)
|
| 79 |
+
sam_predictor = SamPredictor(sam)
|
| 80 |
return process_image(image_pil, normal_image, box_threshold, text_threshold, sam_predictor, grounding_model, univad_model, ram_model, text_prompt, background_prompt, cluster_num, image_size)
|
| 81 |
|
| 82 |
|