Spaces:
Build error
Build error
# Copyright (c) OpenMMLab. All rights reserved. | |
from unittest.mock import MagicMock | |
import pytest | |
from mmcv import Config | |
from numpy.testing import assert_almost_equal | |
from mmpose.datasets import DATASETS | |
from tests.utils.data_utils import convert_db_to_output | |
def test_deepfashion_dataset(): | |
dataset = 'DeepFashionDataset' | |
dataset_info = Config.fromfile( | |
'configs/_base_/datasets/deepfashion_full.py').dataset_info | |
# test JHMDB datasets | |
dataset_class = DATASETS.get(dataset) | |
dataset_class.load_annotations = MagicMock() | |
dataset_class.coco = MagicMock() | |
channel_cfg = dict( | |
num_output_channels=8, | |
dataset_joints=8, | |
dataset_channel=[ | |
[0, 1, 2, 3, 4, 5, 6, 7], | |
], | |
inference_channel=[0, 1, 2, 3, 4, 5, 6, 7]) | |
data_cfg = dict( | |
image_size=[192, 256], | |
heatmap_size=[48, 64], | |
num_output_channels=channel_cfg['num_output_channels'], | |
num_joints=channel_cfg['dataset_joints'], | |
dataset_channel=channel_cfg['dataset_channel'], | |
inference_channel=channel_cfg['inference_channel'], | |
soft_nms=False, | |
nms_thr=1.0, | |
oks_thr=0.9, | |
vis_thr=0.2, | |
use_gt_bbox=True, | |
det_bbox_thr=0.0, | |
image_thr=0.0, | |
bbox_file='') | |
# Test gt bbox | |
custom_dataset = dataset_class( | |
ann_file='tests/data/fld/test_fld.json', | |
img_prefix='tests/data/fld/', | |
subset='full', | |
data_cfg=data_cfg, | |
pipeline=[], | |
dataset_info=dataset_info, | |
test_mode=True) | |
assert custom_dataset.test_mode is True | |
assert custom_dataset.dataset_name == 'deepfashion_full' | |
image_id = 128 | |
assert image_id in custom_dataset.img_ids | |
assert len(custom_dataset.img_ids) == 2 | |
_ = custom_dataset[0] | |
results = convert_db_to_output(custom_dataset.db) | |
infos = custom_dataset.evaluate(results, metric=['PCK', 'EPE', 'AUC']) | |
assert_almost_equal(infos['PCK'], 1.0) | |
assert_almost_equal(infos['AUC'], 0.95) | |
assert_almost_equal(infos['EPE'], 0.0) | |
with pytest.raises(KeyError): | |
infos = custom_dataset.evaluate(results, metric='mAP') | |