|
from mmpose.apis import (inference_top_down_pose_model, init_pose_model, |
|
process_mmdet_results, vis_pose_result) |
|
from mmpose.datasets import DatasetInfo |
|
from mmdet.apis import inference_detector, init_detector |
|
|
|
det_model = init_detector( |
|
"./external/faster_rcnn_r50_fpn_coco.py", |
|
"./faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth", |
|
device="cpu") |
|
pose_model = init_pose_model( |
|
"./external/hrnet_w48_coco_256x192.py", |
|
"./hrnet_w48_coco_256x192-b9e0b3ab_20200708.pth", |
|
device="cpu") |
|
|
|
dataset = pose_model.cfg.data['test']['type'] |
|
dataset_info = pose_model.cfg.data['test'].get('dataset_info', None) |
|
|
|
dataset_info = DatasetInfo(dataset_info) |
|
|
|
def infer(image): |
|
mmdet_results = inference_detector(det_model, image) |
|
person_results = process_mmdet_results(mmdet_results, 1) |
|
|
|
pose_results, returned_outputs = inference_top_down_pose_model( |
|
pose_model, |
|
image, |
|
person_results, |
|
bbox_thr=0.3, |
|
format='xyxy', |
|
dataset=dataset, |
|
dataset_info=dataset_info, |
|
return_heatmap=False, |
|
outputs=None) |
|
|
|
|
|
|
|
return pose_results, returned_outputs |
|
|
|
def draw(image, results): |
|
return vis_pose_result( |
|
pose_model, |
|
image, |
|
results, |
|
dataset=dataset, |
|
dataset_info=dataset_info, |
|
kpt_score_thr=0.3, |
|
radius=4, |
|
thickness=3, |
|
show=False, |
|
out_file=None) |
|
|