Spaces:
Build error
Build error
# Copyright (c) OpenMMLab. All rights reserved. | |
import copy | |
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_face_300W_dataset(): | |
dataset = 'Face300WDataset' | |
dataset_info = Config.fromfile( | |
'configs/_base_/datasets/300w.py').dataset_info | |
# test Face 300W datasets | |
dataset_class = DATASETS.get(dataset) | |
dataset_class.load_annotations = MagicMock() | |
dataset_class.coco = MagicMock() | |
channel_cfg = dict( | |
num_output_channels=68, | |
dataset_joints=68, | |
dataset_channel=[ | |
list(range(68)), | |
], | |
inference_channel=list(range(68))) | |
data_cfg = dict( | |
image_size=[256, 256], | |
heatmap_size=[64, 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']) | |
# Test | |
data_cfg_copy = copy.deepcopy(data_cfg) | |
_ = dataset_class( | |
ann_file='tests/data/300w/test_300w.json', | |
img_prefix='tests/data/300w/', | |
data_cfg=data_cfg_copy, | |
pipeline=[], | |
dataset_info=dataset_info, | |
test_mode=True) | |
custom_dataset = dataset_class( | |
ann_file='tests/data/300w/test_300w.json', | |
img_prefix='tests/data/300w/', | |
data_cfg=data_cfg_copy, | |
pipeline=[], | |
dataset_info=dataset_info, | |
test_mode=False) | |
assert custom_dataset.dataset_name == '300w' | |
assert custom_dataset.test_mode is False | |
assert custom_dataset.num_images == 2 | |
_ = custom_dataset[0] | |
results = convert_db_to_output(custom_dataset.db) | |
infos = custom_dataset.evaluate(results, metric=['NME']) | |
assert_almost_equal(infos['NME'], 0.0) | |
with pytest.raises(KeyError): | |
_ = custom_dataset.evaluate(results, metric='mAP') | |
def test_face_coco_wholebody_dataset(): | |
dataset = 'FaceCocoWholeBodyDataset' | |
dataset_info = Config.fromfile( | |
'configs/_base_/datasets/coco_wholebody_face.py').dataset_info | |
# test Face wholebody datasets | |
dataset_class = DATASETS.get(dataset) | |
dataset_class.load_annotations = MagicMock() | |
dataset_class.coco = MagicMock() | |
channel_cfg = dict( | |
num_output_channels=68, | |
dataset_joints=68, | |
dataset_channel=[ | |
list(range(68)), | |
], | |
inference_channel=list(range(68))) | |
data_cfg = dict( | |
image_size=[256, 256], | |
heatmap_size=[64, 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']) | |
# Test | |
data_cfg_copy = copy.deepcopy(data_cfg) | |
_ = dataset_class( | |
ann_file='tests/data/coco/test_coco_wholebody.json', | |
img_prefix='tests/data/coco/', | |
data_cfg=data_cfg_copy, | |
pipeline=[], | |
dataset_info=dataset_info, | |
test_mode=True) | |
custom_dataset = dataset_class( | |
ann_file='tests/data/coco/test_coco_wholebody.json', | |
img_prefix='tests/data/coco/', | |
data_cfg=data_cfg_copy, | |
pipeline=[], | |
dataset_info=dataset_info, | |
test_mode=False) | |
assert custom_dataset.test_mode is False | |
assert custom_dataset.num_images == 4 | |
_ = custom_dataset[0] | |
results = convert_db_to_output(custom_dataset.db) | |
infos = custom_dataset.evaluate(results, metric=['NME']) | |
assert_almost_equal(infos['NME'], 0.0) | |
with pytest.raises(KeyError): | |
_ = custom_dataset.evaluate(results, metric='mAP') | |
def test_face_AFLW_dataset(): | |
dataset = 'FaceAFLWDataset' | |
dataset_info = Config.fromfile( | |
'configs/_base_/datasets/aflw.py').dataset_info | |
# test Face AFLW datasets | |
dataset_class = DATASETS.get(dataset) | |
dataset_class.load_annotations = MagicMock() | |
dataset_class.coco = MagicMock() | |
channel_cfg = dict( | |
num_output_channels=19, | |
dataset_joints=19, | |
dataset_channel=[ | |
list(range(19)), | |
], | |
inference_channel=list(range(19))) | |
data_cfg = dict( | |
image_size=[256, 256], | |
heatmap_size=[64, 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']) | |
# Test | |
data_cfg_copy = copy.deepcopy(data_cfg) | |
_ = dataset_class( | |
ann_file='tests/data/aflw/test_aflw.json', | |
img_prefix='tests/data/aflw/', | |
data_cfg=data_cfg_copy, | |
pipeline=[], | |
dataset_info=dataset_info, | |
test_mode=True) | |
custom_dataset = dataset_class( | |
ann_file='tests/data/aflw/test_aflw.json', | |
img_prefix='tests/data/aflw/', | |
data_cfg=data_cfg_copy, | |
pipeline=[], | |
dataset_info=dataset_info, | |
test_mode=False) | |
assert custom_dataset.dataset_name == 'aflw' | |
assert custom_dataset.test_mode is False | |
assert custom_dataset.num_images == 2 | |
_ = custom_dataset[0] | |
results = convert_db_to_output(custom_dataset.db) | |
infos = custom_dataset.evaluate(results, metric=['NME']) | |
assert_almost_equal(infos['NME'], 0.0) | |
with pytest.raises(KeyError): | |
_ = custom_dataset.evaluate(results, metric='mAP') | |
def test_face_WFLW_dataset(): | |
dataset = 'FaceWFLWDataset' | |
dataset_info = Config.fromfile( | |
'configs/_base_/datasets/wflw.py').dataset_info | |
# test Face WFLW datasets | |
dataset_class = DATASETS.get(dataset) | |
dataset_class.load_annotations = MagicMock() | |
dataset_class.coco = MagicMock() | |
channel_cfg = dict( | |
num_output_channels=98, | |
dataset_joints=98, | |
dataset_channel=[ | |
list(range(98)), | |
], | |
inference_channel=list(range(98))) | |
data_cfg = dict( | |
image_size=[256, 256], | |
heatmap_size=[64, 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']) | |
# Test | |
data_cfg_copy = copy.deepcopy(data_cfg) | |
_ = dataset_class( | |
ann_file='tests/data/wflw/test_wflw.json', | |
img_prefix='tests/data/wflw/', | |
data_cfg=data_cfg_copy, | |
pipeline=[], | |
dataset_info=dataset_info, | |
test_mode=True) | |
custom_dataset = dataset_class( | |
ann_file='tests/data/wflw/test_wflw.json', | |
img_prefix='tests/data/wflw/', | |
data_cfg=data_cfg_copy, | |
pipeline=[], | |
dataset_info=dataset_info, | |
test_mode=False) | |
assert custom_dataset.dataset_name == 'wflw' | |
assert custom_dataset.test_mode is False | |
assert custom_dataset.num_images == 2 | |
_ = custom_dataset[0] | |
results = convert_db_to_output(custom_dataset.db) | |
infos = custom_dataset.evaluate(results, metric=['NME']) | |
assert_almost_equal(infos['NME'], 0.0) | |
with pytest.raises(KeyError): | |
_ = custom_dataset.evaluate(results, metric='mAP') | |
def test_face_COFW_dataset(): | |
dataset = 'FaceCOFWDataset' | |
dataset_info = Config.fromfile( | |
'configs/_base_/datasets/cofw.py').dataset_info | |
# test Face COFW datasets | |
dataset_class = DATASETS.get(dataset) | |
dataset_class.load_annotations = MagicMock() | |
dataset_class.coco = MagicMock() | |
channel_cfg = dict( | |
num_output_channels=29, | |
dataset_joints=29, | |
dataset_channel=[ | |
list(range(29)), | |
], | |
inference_channel=list(range(29))) | |
data_cfg = dict( | |
image_size=[256, 256], | |
heatmap_size=[64, 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']) | |
# Test | |
data_cfg_copy = copy.deepcopy(data_cfg) | |
_ = dataset_class( | |
ann_file='tests/data/cofw/test_cofw.json', | |
img_prefix='tests/data/cofw/', | |
data_cfg=data_cfg_copy, | |
pipeline=[], | |
dataset_info=dataset_info, | |
test_mode=True) | |
custom_dataset = dataset_class( | |
ann_file='tests/data/cofw/test_cofw.json', | |
img_prefix='tests/data/cofw/', | |
data_cfg=data_cfg_copy, | |
pipeline=[], | |
dataset_info=dataset_info, | |
test_mode=False) | |
assert custom_dataset.dataset_name == 'cofw' | |
assert custom_dataset.test_mode is False | |
assert custom_dataset.num_images == 2 | |
_ = custom_dataset[0] | |
results = convert_db_to_output(custom_dataset.db) | |
infos = custom_dataset.evaluate(results, metric=['NME']) | |
assert_almost_equal(infos['NME'], 0.0) | |
with pytest.raises(KeyError): | |
_ = custom_dataset.evaluate(results, metric='mAP') | |