Spaces:
Runtime error
Runtime error
File size: 1,609 Bytes
ac8f703 |
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 |
from detectron2.engine import DefaultPredictor
import detectron2
from detectron2.utils.logger import setup_logger
setup_logger()
from detectron2.utils.video_visualizer import VideoVisualizer
from detectron2.config import get_cfg
from detectron2.data import MetadataCatalog
from detectron2.utils.visualizer import ColorMode, Visualizer
from detectron2 import model_zoo
from detectron2.data.datasets import register_coco_instances
from PIL import Image
import PIL
import cv2
import numpy as np
import matplotlib.pyplot as plt
class Detector:
def __init__(self, model_type = "object_detection"):
self.cfg=get_cfg()
self.cfg.merge_from_file(model_zoo.get_config_file("COCO-Detection/faster_rcnn_R_50_FPN_1x.yaml")) # load the default configuration
self.cfg.MODEL.WEIGHTS = 'model_final.pth'
self.cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.8
self.cfg.MODEL.ROI_HEADS.NUM_CLASSES = 2
self.cfg.MODEL.DEVICE="cpu"
dataset_name="guns"
classes=['guns','Gun']
MetadataCatalog.get(dataset_name).set(thing_classes=classes)
self.predictor = DefaultPredictor(self.cfg)
def onImage(self, imagePath):
image = cv2.imread(imagePath)
predictions = self.predictor(image)
dataset_name="guns"
viz = Visualizer(image,MetadataCatalog.get(dataset_name),scale=1)
output = viz.draw_instance_predictions(predictions['instances'].to('cpu'))
filename = 'result.jpg'
cv2.imwrite(filename, output.get_image()[:,:,::-1])
# cv2.waitKey(0)
# cv2.destroyAllWindows()
|