Initial snapshot: hand motion pipeline (Dyn-HaMR + dex-retargeting + SPIDER)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
# Copyright (c) OpenMMLab. All rights reserved.
|
||||
from os.path import dirname, exists, join, relpath
|
||||
|
||||
import torch
|
||||
from mmcv.runner import build_optimizer
|
||||
|
||||
|
||||
def _get_config_directory():
|
||||
"""Find the predefined detector config directory."""
|
||||
try:
|
||||
# Assume we are running in the source mmdetection repo
|
||||
repo_dpath = dirname(dirname(__file__))
|
||||
except NameError:
|
||||
# For IPython development when this __file__ is not defined
|
||||
import mmpose
|
||||
repo_dpath = dirname(dirname(mmpose.__file__))
|
||||
config_dpath = join(repo_dpath, 'configs')
|
||||
if not exists(config_dpath):
|
||||
raise Exception('Cannot find config path')
|
||||
return config_dpath
|
||||
|
||||
|
||||
def test_config_build_detector():
|
||||
"""Test that all detection models defined in the configs can be
|
||||
initialized."""
|
||||
from mmcv import Config
|
||||
|
||||
from mmpose.models import build_posenet
|
||||
|
||||
config_dpath = _get_config_directory()
|
||||
print(f'Found config_dpath = {config_dpath}')
|
||||
|
||||
import glob
|
||||
config_fpaths = list(glob.glob(join(config_dpath, '**', '*.py')))
|
||||
config_fpaths = [p for p in config_fpaths if p.find('_base_') == -1]
|
||||
config_names = [relpath(p, config_dpath) for p in config_fpaths]
|
||||
|
||||
print(f'Using {len(config_names)} config files')
|
||||
|
||||
for config_fname in config_names:
|
||||
config_fpath = join(config_dpath, config_fname)
|
||||
config_mod = Config.fromfile(config_fpath)
|
||||
|
||||
print(f'Building detector, config_fpath = {config_fpath}')
|
||||
|
||||
# Remove pretrained keys to allow for testing in an offline environment
|
||||
if 'pretrained' in config_mod.model:
|
||||
config_mod.model['pretrained'] = None
|
||||
|
||||
detector = build_posenet(config_mod.model)
|
||||
assert detector is not None
|
||||
|
||||
optimizer = build_optimizer(detector, config_mod.optimizer)
|
||||
assert isinstance(optimizer, torch.optim.Optimizer)
|
||||
Reference in New Issue
Block a user