File size: 2,206 Bytes
999c5c9
 
d3fbb91
999c5c9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10fc227
 
 
999c5c9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10fc227
999c5c9
 
 
10fc227
 
 
 
 
 
 
ffcded7
 
 
10fc227
ffcded7
f8464e1
999c5c9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import sys
import subprocess
subprocess.check_call([sys.executable, '-m', 'pip', 'install','git+https://github.com/facebookresearch/detectron2.git'])

import numpy as np
import gradio as gr
from Code import Inference
import detectron2


# import some common detectron2 utilities
from detectron2 import model_zoo
from detectron2.engine import DefaultPredictor
from detectron2.config import get_cfg
from detectron2.utils.visualizer import Visualizer
from detectron2.data import MetadataCatalog, DatasetCatalog

import os
os.environ['CUDA_VISIBLE_DEVICES'] = '-1'


sys.path.append("Repositories/")
from dlclive import DLCLive, Processor

import os
import cv2

def run_Inference(input_img):

    ###Detectron:
    cfg = get_cfg()
    # add project-specific config (e.g., TensorMask) here if you're not running a model in detectron2's core library
    cfg.merge_from_file(model_zoo.get_config_file("COCO-InstanceSegmentation/mask_rcnn_R_101_FPN_3x.yaml"))
    cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.7  # set threshold for this model
    # Find a model from detectron2's model zoo. You can use the https://dl.fbaipublicfiles... url as well
    cfg.MODEL.WEIGHTS = model_zoo.get_checkpoint_url("COCO-InstanceSegmentation/mask_rcnn_R_101_FPN_3x.yaml")
    cfg.MODEL.DEVICE='cpu'
    predictor = DefaultPredictor(cfg)

    ##DLC:
    dlc_proc = Processor()
    dlc_liveObj = DLCLive("./Weights/DLC_DLC_Segmented_resnet_50_iteration-0_shuffle-1/", processor=dlc_proc)
    
    OutImg = Inference.Inference(input_img,predictor,dlc_liveObj,ScaleBBox=1.2,Dilate=5,DLCThreshold=0.3)

    return OutImg


##Get sample images
ImgList = [os.path.join("Samples",img) for img in os.listdir("Samples")]
# for imgPath in [os.path.join("Samples",img) for img in os.listdir("Samples")]:
#     frame = cv2.imread(filename=imgPath)
#     ImgList.append(frame)

demo = gr.Interface(run_Inference, 
                    gr.Image(), 
                    "image",
                    examples=ImgList,
                    title="PigeonEverywhere",
                    description="Upload a photo of pigeons, and get 2D keypoint estimation.\n For more info on how this was done, see: https://arxiv.org/abs/2308.15316 ")
demo.launch()