Spaces:
Runtime error
Runtime error
# Copyright (c) OpenMMLab. All rights reserved. | |
import copy | |
from os.path import dirname, exists, join | |
import numpy as np | |
from mmengine.config import Config | |
def _get_config_directory(): | |
"""Find the predefined detector config directory.""" | |
try: | |
# Assume we are running in the source mmyolo repo | |
repo_dpath = dirname(dirname(dirname(__file__))) | |
except NameError: | |
# For IPython development when this __file__ is not defined | |
import mmyolo | |
repo_dpath = dirname(dirname(mmyolo.__file__)) | |
config_dpath = join(repo_dpath, 'configs') | |
if not exists(config_dpath): | |
raise Exception('Cannot find config path') | |
return config_dpath | |
def _get_config_module(fname): | |
"""Load a configuration as a python module.""" | |
config_dpath = _get_config_directory() | |
config_fpath = join(config_dpath, fname) | |
config_mod = Config.fromfile(config_fpath) | |
return config_mod | |
def get_detector_cfg(fname): | |
"""Grab configs necessary to create a detector. | |
These are deep copied to allow for safe modification of parameters without | |
influencing other tests. | |
""" | |
config = _get_config_module(fname) | |
model = copy.deepcopy(config.model) | |
return model | |
def _rand_bboxes(rng, num_boxes, w, h): | |
"""Randomly generate a specified number of bboxes.""" | |
cx, cy, bw, bh = rng.rand(num_boxes, 4).T | |
tl_x = ((cx * w) - (w * bw / 2)).clip(0, w) | |
tl_y = ((cy * h) - (h * bh / 2)).clip(0, h) | |
br_x = ((cx * w) + (w * bw / 2)).clip(0, w) | |
br_y = ((cy * h) + (h * bh / 2)).clip(0, h) | |
bboxes = np.vstack([tl_x, tl_y, br_x, br_y]).T | |
return bboxes | |