carlosalonso/Detection-space
0
1try:2 import detectron23except:4 import os 5 os.system('pip install git+https://github.com/facebookresearch/detectron2.git')6 7# from matplotlib.pyplot import axis8os.system('pip install altair')9import altair10import gradio as gr11 12import torch13import numpy as np14 15from detectron2 import model_zoo16from detectron2.engine import DefaultPredictor17from detectron2.config import get_cfg18from detectron2.utils.visualizer import Visualizer19from detectron2.data import MetadataCatalog20 21# Creación del modelo22cfg = get_cfg()23 24# Es el modelo utilizado por Ekimetrics25cfg.merge_from_file(model_zoo.get_config_file("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml"))26cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.5 27cfg.MODEL.WEIGHTS = model_zoo.get_checkpoint_url("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml")28 29# En caso de que no puedas usar GPU y debas usar la CPU, tienes que especificarlo de esta manera30if not torch.cuda.is_available():31 cfg.MODEL.DEVICE='cpu'32 33 34model = DefaultPredictor(cfg)35 36 37title = '<center><img src = "https://images.squarespace-cdn.com/content/v1/5573469fe4b0061829d437e6/1591631182400-7DJR03RV6ZOCN0TBPRD7/white-deloitte-logo1.jpg" width="130" height="20"></center><p>Detectron2 Image Detection</p>'38description = 'Implementación de Detectron2 en la detección de imágenes. Sube una imagen, dale a submit y espera unos segundos a ver el output de la imagen con los objetos detectados'39article = '<p>Conoce más en: <a href="https://www2.deloitte.com/es/es/pages/strategy-operations/solutions/analytics-and-cognitive.html">Visita Deloitte AI&Data</a></p><p>Desarrollado por Carlos y Lucía</p>'40 41def inference(image):42 print(image.height)43 44 height = image.height45 46 img = np.array(image.resize((640, 500)))47 outputs = model(img)48 49 v = Visualizer(img, MetadataCatalog.get(cfg.DATASETS.TRAIN[0]), scale=1.2)50 out = v.draw_instance_predictions(outputs["instances"].to("cpu"))51 52 return out.get_image()53 54css1 = "body {background-image: url(r'https://www2.deloitte.com/content/dam/Deloitte/in/Images/promo_images/in-deloitte-logo-1x1-noexp.png');}"55gr.Interface(56 inference, 57 [gr.inputs.Image(type="pil", label="Input")], 58 gr.outputs.Image(type="numpy", label="Output"),59 title=title,60 description=description,61 article=article,62 css = css1,63 examples=[]).launch()