Skip to content

Commit

Permalink
Move process_mmdet_results into inference.py (#831)
Browse files Browse the repository at this point in the history
* move process_mmdet_results into inference.py
* add unittest
  • Loading branch information
ly015 authored Aug 3, 2021
1 parent ff65c98 commit 3ee909c
Show file tree
Hide file tree
Showing 7 changed files with 46 additions and 102 deletions.
30 changes: 2 additions & 28 deletions demo/body3d_two_stage_video_demo.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@

from mmpose.apis import (extract_pose_sequence, get_track_id,
inference_pose_lifter_model,
inference_top_down_pose_model, vis_3d_pose_result)
from mmpose.apis.inference import init_pose_model
inference_top_down_pose_model, init_pose_model,
process_mmdet_results, vis_3d_pose_result)

try:
from mmdet.apis import inference_detector, init_detector
Expand All @@ -20,32 +20,6 @@
has_mmdet = False


def process_mmdet_results(mmdet_results, cat_id=1):
"""Process mmdet results, and return a list of bboxes.
Args:
mmdet_results (list|tuple): mmdet results.
cat_id (int): category id (default: 1 for human)
Returns:
person_results (list): a list of detected bounding boxes
"""
if isinstance(mmdet_results, tuple):
det_results = mmdet_results[0]
else:
det_results = mmdet_results

bboxes = det_results[cat_id - 1]

person_results = []
for bbox in bboxes:
person = {}
person['bbox'] = bbox
person_results.append(person)

return person_results


def covert_keypoint_definition(keypoints, pose_det_dataset, pose_lift_dataset):
"""Convert pose det dataset keypoints definition to pose lifter dataset
keypoints definition.
Expand Down
25 changes: 1 addition & 24 deletions demo/top_down_img_demo_with_mmdet.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from argparse import ArgumentParser

from mmpose.apis import (inference_top_down_pose_model, init_pose_model,
vis_pose_result)
process_mmdet_results, vis_pose_result)

try:
from mmdet.apis import inference_detector, init_detector
Expand All @@ -11,29 +11,6 @@
has_mmdet = False


def process_mmdet_results(mmdet_results, cat_id=1):
"""Process mmdet results, and return a list of bboxes.
:param mmdet_results:
:param cat_id: category id (default: 1 for human)
:return: a list of detected bounding boxes
"""
if isinstance(mmdet_results, tuple):
det_results = mmdet_results[0]
else:
det_results = mmdet_results

bboxes = det_results[cat_id - 1]

person_results = []
for bbox in bboxes:
person = {}
person['bbox'] = bbox
person_results.append(person)

return person_results


def main():
"""Visualize the demo images.
Expand Down
26 changes: 2 additions & 24 deletions demo/top_down_pose_tracking_demo_with_mmdet.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
import cv2

from mmpose.apis import (get_track_id, inference_top_down_pose_model,
init_pose_model, vis_pose_tracking_result)
init_pose_model, process_mmdet_results,
vis_pose_tracking_result)

try:
from mmdet.apis import inference_detector, init_detector
Expand All @@ -13,29 +14,6 @@
has_mmdet = False


def process_mmdet_results(mmdet_results, cat_id=1):
"""Process mmdet results, and return a list of bboxes.
:param mmdet_results:
:param cat_id: category id (default: 1 for human)
:return: a list of detected bounding boxes
"""
if isinstance(mmdet_results, tuple):
det_results = mmdet_results[0]
else:
det_results = mmdet_results

bboxes = det_results[cat_id - 1]

person_results = []
for bbox in bboxes:
person = {}
person['bbox'] = bbox
person_results.append(person)

return person_results


def main():
"""Visualize the demo images.
Expand Down
24 changes: 1 addition & 23 deletions demo/top_down_video_demo_with_mmdet.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import cv2

from mmpose.apis import (inference_top_down_pose_model, init_pose_model,
vis_pose_result)
process_mmdet_results, vis_pose_result)

try:
from mmdet.apis import inference_detector, init_detector
Expand All @@ -13,28 +13,6 @@
has_mmdet = False


def process_mmdet_results(mmdet_results, cat_id=1):
"""Process mmdet results, and return a list of bboxes.
:param mmdet_results:
:param cat_id: category id (default: 1 for human)
:return: a list of detected bounding boxes
"""
if isinstance(mmdet_results, tuple):
det_results = mmdet_results[0]
else:
det_results = mmdet_results

bboxes = det_results[cat_id - 1]
person_results = []
for bbox in bboxes:
person = {}
person['bbox'] = bbox
person_results.append(person)

return person_results


def main():
"""Visualize the demo images.
Expand Down
4 changes: 2 additions & 2 deletions mmpose/apis/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from .inference import (inference_bottom_up_pose_model,
inference_top_down_pose_model, init_pose_model,
vis_pose_result)
process_mmdet_results, vis_pose_result)
from .inference_3d import (extract_pose_sequence, inference_interhand_3d_model,
inference_mesh_model, inference_pose_lifter_model,
vis_3d_mesh_result, vis_3d_pose_result)
Expand All @@ -14,5 +14,5 @@
'vis_pose_result', 'get_track_id', 'vis_pose_tracking_result',
'inference_pose_lifter_model', 'vis_3d_pose_result',
'inference_interhand_3d_model', 'extract_pose_sequence',
'inference_mesh_model', 'vis_3d_mesh_result'
'inference_mesh_model', 'vis_3d_mesh_result', 'process_mmdet_results'
]
26 changes: 26 additions & 0 deletions mmpose/apis/inference.py
Original file line number Diff line number Diff line change
Expand Up @@ -761,3 +761,29 @@ def vis_pose_result(model,
out_file=out_file)

return img


def process_mmdet_results(mmdet_results, cat_id=1):
"""Process mmdet results, and return a list of bboxes.
Args:
mmdet_results (list|tuple): mmdet results.
cat_id (int): category id (default: 1 for human)
Returns:
person_results (list): a list of detected bounding boxes
"""
if isinstance(mmdet_results, tuple):
det_results = mmdet_results[0]
else:
det_results = mmdet_results

bboxes = det_results[cat_id - 1]

person_results = []
for bbox in bboxes:
person = {}
person['bbox'] = bbox
person_results.append(person)

return person_results
13 changes: 12 additions & 1 deletion tests/test_api/test_inference.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import numpy as np
import pytest

from mmpose.apis import (inference_bottom_up_pose_model,
inference_top_down_pose_model, init_pose_model,
vis_pose_result)
process_mmdet_results, vis_pose_result)


def test_top_down_demo():
Expand Down Expand Up @@ -161,3 +162,13 @@ def test_bottom_up_demo():
# show the results
vis_pose_result(
pose_model, image_name, pose_results, dataset='BottomUpCocoDataset')


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)

0 comments on commit 3ee909c

Please sign in to comment.