Spaces:
Build error
Build error
import numpy as np | |
import gradio as gr | |
import cv2 | |
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 | |
# Setup detectron2 logger | |
import detectron2 | |
from detectron2.utils.logger import setup_logger | |
setup_logger() | |
def detect_objects(input_img): | |
# Load image | |
im = input_img.copy() | |
# Configuration | |
cfg = get_cfg() | |
cfg.merge_from_file(model_zoo.get_config_file("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml")) | |
cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.5 | |
cfg.MODEL.WEIGHTS = model_zoo.get_checkpoint_url("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml") | |
# Prediction | |
predictor = DefaultPredictor(cfg) | |
outputs = predictor(im) | |
# Visualization | |
v = Visualizer(im[:, :, ::-1], MetadataCatalog.get(cfg.DATASETS.TRAIN[0]), scale=1.9) | |
out = v.draw_instance_predictions(outputs["instances"].to("cpu")) | |
result_image = out.get_image()[:, :, ::-1] | |
return result_image | |
# Interface | |
image = gr.Image() | |
output_image = gr.Image() | |
title = "Object Detection using Mask R-CNN" | |
description = "This app detects objects in the input image using Mask R-CNN." | |
examples = [["./input.png"]] | |
gr.Interface(detect_objects, [image], output_image, title=title, description=description, examples=examples).launch() |