try: import detectron2 except: import os os.system('pip install git+https://github.com/facebookresearch/detectron2.git') from matplotlib.pyplot import axis import gradio as gr import requests import numpy as np from torch import nn import requests import torch 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 from detectron2.utils.visualizer import ColorMode import os model_path = "model_final.pth" cfg = get_cfg() cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.30 cfg.MODEL.ROI_HEADS.NUM_CLASSES = 6 cfg.MODEL.WEIGHTS = model_path car_metadata = MetadataCatalog.get("test11") car_metadata.thing_classes = ['Damged-or-undamaged',' light damaged ','dent ','scratch','glass damaged','undamged'] if not torch.cuda.is_available(): cfg.MODEL.DEVICE='cpu' predictor = DefaultPredictor(cfg) def inference(image): #im = cv2.imread(image) #height = image.height img = np.array(image) outputs = predictor(img) v = Visualizer(img[:, :, ::-1], metadata=car_metadata, scale=0.5, instance_mode=ColorMode.IMAGE_BW ) #v = Visualizer(img, my_metadata, scale=1.2) out = v.draw_instance_predictions(outputs["instances"].to("cpu")) return out.get_image() title = "Car Damage Detection Model(Detectron2)" gr.Interface(inference,[gr.inputs.Image(type="pil", label="Input")],gr.outputs.Image(type="numpy", label="Output"),title=title,examples=[]).launch(debug=True)