# Copyright (c) OpenMMLab. All rights reserved.
import copy
import numpy as np
from mmpose.apis import (inference_bottom_up_pose_model,
inference_top_down_pose_model, init_pose_model,
process_mmdet_results, vis_pose_result)
from mmpose.datasets import DatasetInfo
def test_top_down_demo():
# COCO demo
# build the pose model from a config file and a checkpoint file
pose_model = init_pose_model(
'configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/'
'coco/res50_coco_256x192.py',
None,
device='cpu')
image_name = 'tests/data/coco/000000000785.jpg'
dataset_info = DatasetInfo(pose_model.cfg.data['test'].get(
'dataset_info', None))
person_result = []
person_result.append({'bbox': [50, 50, 50, 100]})
# test a single image, with a list of bboxes.
pose_results, _ = inference_top_down_pose_model(
pose_model,
image_name,
person_result,
format='xywh',
dataset_info=dataset_info)
# show the results
vis_pose_result(
pose_model, image_name, pose_results, dataset_info=dataset_info)
# AIC demo
pose_model = init_pose_model(
'configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/'
'aic/res50_aic_256x192.py',
None,
device='cpu')
image_name = 'tests/data/aic/054d9ce9201beffc76e5ff2169d2af2f027002ca.jpg'
dataset_info = DatasetInfo(pose_model.cfg.data['test'].get(
'dataset_info', None))
# test a single image, with a list of bboxes.
pose_results, _ = inference_top_down_pose_model(
pose_model,
image_name,
person_result,
format='xywh',
dataset_info=dataset_info)
# show the results
vis_pose_result(
pose_model, image_name, pose_results, dataset_info=dataset_info)
# OneHand10K demo
# build the pose model from a config file and a checkpoint file
pose_model = init_pose_model(
'configs/hand/2d_kpt_sview_rgb_img/topdown_heatmap/'
'onehand10k/res50_onehand10k_256x256.py',
None,
device='cpu')
image_name = 'tests/data/onehand10k/9.jpg'
dataset_info = DatasetInfo(pose_model.cfg.data['test'].get(
'dataset_info', None))
# test a single image, with a list of bboxes.
pose_results, _ = inference_top_down_pose_model(
pose_model,
image_name,
person_result,
format='xywh',
dataset_info=dataset_info)
# show the results
vis_pose_result(
pose_model, image_name, pose_results, dataset_info=dataset_info)
# InterHand2DDataset demo
# build the pose model from a config file and a checkpoint file
pose_model = init_pose_model(
'configs/hand/2d_kpt_sview_rgb_img/topdown_heatmap/'
'interhand2d/res50_interhand2d_all_256x256.py',
None,
device='cpu')
image_name = 'tests/data/interhand2.6m/image2017.jpg'
dataset_info = DatasetInfo(pose_model.cfg.data['test'].get(
'dataset_info', None))
# test a single image, with a list of bboxes.
pose_results, _ = inference_top_down_pose_model(
pose_model,
image_name,
person_result,
format='xywh',
dataset_info=dataset_info)
# show the results
vis_pose_result(
pose_model, image_name, pose_results, dataset_info=dataset_info)
# Face300WDataset demo
# build the pose model from a config file and a checkpoint file
pose_model = init_pose_model(
'configs/face/2d_kpt_sview_rgb_img/topdown_heatmap/'
'300w/res50_300w_256x256.py',
None,
device='cpu')
image_name = 'tests/data/300w/indoor_020.png'
dataset_info = DatasetInfo(pose_model.cfg.data['test'].get(
'dataset_info', None))
# test a single image, with a list of bboxes.
pose_results, _ = inference_top_down_pose_model(
pose_model,
image_name,
person_result,
format='xywh',
dataset_info=dataset_info)
# show the results
vis_pose_result(
pose_model, image_name, pose_results, dataset_info=dataset_info)
# FaceAFLWDataset demo
# build the pose model from a config file and a checkpoint file
pose_model = init_pose_model(
'configs/face/2d_kpt_sview_rgb_img/topdown_heatmap/'
'aflw/res50_aflw_256x256.py',
None,
device='cpu')
image_name = 'tests/data/aflw/image04476.jpg'
dataset_info = DatasetInfo(pose_model.cfg.data['test'].get(
'dataset_info', None))
# test a single image, with a list of bboxes.
pose_results, _ = inference_top_down_pose_model(
pose_model,
image_name,
person_result,
format='xywh',
dataset_info=dataset_info)
# show the results
vis_pose_result(
pose_model, image_name, pose_results, dataset_info=dataset_info)
# FaceCOFWDataset demo
# build the pose model from a config file and a checkpoint file
pose_model = init_pose_model(
'configs/face/2d_kpt_sview_rgb_img/topdown_heatmap/'
'cofw/res50_cofw_256x256.py',
None,
device='cpu')
image_name = 'tests/data/cofw/001766.jpg'
dataset_info = DatasetInfo(pose_model.cfg.data['test'].get(
'dataset_info', None))
# test a single image, with a list of bboxes.
pose_results, _ = inference_top_down_pose_model(
pose_model,
image_name,
person_result,
format='xywh',
dataset_info=dataset_info)
# show the results
vis_pose_result(
pose_model, image_name, pose_results, dataset_info=dataset_info)
def test_bottom_up_demo():
# build the pose model from a config file and a checkpoint file
pose_model = init_pose_model(
'configs/body/2d_kpt_sview_rgb_img/associative_embedding/'
'coco/res50_coco_512x512.py',
None,
device='cpu')
image_name = 'tests/data/coco/000000000785.jpg'
dataset_info = DatasetInfo(pose_model.cfg.data['test'].get(
'dataset_info', None))
pose_results, _ = inference_bottom_up_pose_model(
pose_model, image_name, dataset_info=dataset_info)
# show the results
vis_pose_result(
pose_model, image_name, pose_results, dataset_info=dataset_info)
# test dataset_info without sigmas
pose_model_copy = copy.deepcopy(pose_model)
pose_model_copy.cfg.data.test.dataset_info.pop('sigmas')
pose_results, _ = inference_bottom_up_pose_model(
pose_model_copy, image_name, dataset_info=dataset_info)
def test_process_mmdet_results():
det_results = [np.array([0, 0, 100, 100])]
det_mask_results = None
_ = process_mmdet_results(
mmdet_results=(det_results, det_mask_results), cat_id=1)
_ = process_mmdet_results(mmdet_results=det_results, cat_id=1)