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 | |