basementparking commited on
Commit
ef17715
·
verified ·
1 Parent(s): dc3d491

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +32 -0
app.py ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import torch
3
+ import numpy as np
4
+ from PIL import Image
5
+ from detectron2.engine import DefaultPredictor
6
+ from detectron2.config import get_cfg
7
+ from detectron2 import model_zoo
8
+ from detectron2.utils.visualizer import Visualizer, ColorMode
9
+
10
+ # set Detectron2
11
+ cfg = get_cfg()
12
+ cfg.merge_from_file(model_zoo.get_config_file("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml"))
13
+ cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.5
14
+ cfg.MODEL.WEIGHTS = model_zoo.get_checkpoint_url("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml")
15
+ predictor = DefaultPredictor(cfg)
16
+
17
+ # build Gradio interface
18
+ def segment_image(image):
19
+ outputs = predictor(image)
20
+ instances = outputs["instances"].to("cpu")
21
+ v = Visualizer(image[:, :, ::-1], metadata=None, scale=1.2, instance_mode=ColorMode.IMAGE_BW)
22
+ out = v.draw_instance_predictions(instances)
23
+ segmented_image = out.get_image()[:, :, ::-1]
24
+ return segmented_image
25
+
26
+ def process_image(image):
27
+ image = np.array(image)
28
+ segmented_image = segment_image(image)
29
+ return Image.fromarray(segmented_image)
30
+
31
+ iface = gr.Interface(fn=process_image, inputs="image", outputs="image")
32
+ iface.launch()