diff --git a/configs/body_2d_keypoint/rtmo/body7/rtmo-l_16xb16-600e_body7-640x640.py b/configs/body_2d_keypoint/rtmo/body7/rtmo-l_16xb16-600e_body7-640x640.py index 4cd0ece77b..45e4295c6c 100644 --- a/configs/body_2d_keypoint/rtmo/body7/rtmo-l_16xb16-600e_body7-640x640.py +++ b/configs/body_2d_keypoint/rtmo/body7/rtmo-l_16xb16-600e_body7-640x640.py @@ -480,7 +480,7 @@ assigner=dict( type='SimOTAAssigner', dynamic_k_indicator='oks', - oks_calculator=dict(type='PoseOKS')), + oks_calculator=dict(type='PoseOKS', metainfo=metafile)), prior_generator=dict( type='MlvlPointGenerator', centralize_points=True, diff --git a/configs/body_2d_keypoint/rtmo/body7/rtmo-m_16xb16-600e_body7-640x640.py b/configs/body_2d_keypoint/rtmo/body7/rtmo-m_16xb16-600e_body7-640x640.py index f5b760d893..6c1a005366 100644 --- a/configs/body_2d_keypoint/rtmo/body7/rtmo-m_16xb16-600e_body7-640x640.py +++ b/configs/body_2d_keypoint/rtmo/body7/rtmo-m_16xb16-600e_body7-640x640.py @@ -479,7 +479,7 @@ assigner=dict( type='SimOTAAssigner', dynamic_k_indicator='oks', - oks_calculator=dict(type='PoseOKS')), + oks_calculator=dict(type='PoseOKS', metainfo=metafile)), prior_generator=dict( type='MlvlPointGenerator', centralize_points=True, diff --git a/configs/body_2d_keypoint/rtmo/body7/rtmo-s_8xb32-600e_body7-640x640.py b/configs/body_2d_keypoint/rtmo/body7/rtmo-s_8xb32-600e_body7-640x640.py index 6fc068ecd4..83d7c21d8a 100644 --- a/configs/body_2d_keypoint/rtmo/body7/rtmo-s_8xb32-600e_body7-640x640.py +++ b/configs/body_2d_keypoint/rtmo/body7/rtmo-s_8xb32-600e_body7-640x640.py @@ -481,7 +481,7 @@ assigner=dict( type='SimOTAAssigner', dynamic_k_indicator='oks', - oks_calculator=dict(type='PoseOKS'), + oks_calculator=dict(type='PoseOKS', metainfo=metafile), use_keypoints_for_center=True), prior_generator=dict( type='MlvlPointGenerator', diff --git a/configs/body_2d_keypoint/rtmo/body7/rtmo-t_8xb32-600e_body7-416x416.py b/configs/body_2d_keypoint/rtmo/body7/rtmo-t_8xb32-600e_body7-416x416.py index fc9a7d745c..566fe34455 100644 --- a/configs/body_2d_keypoint/rtmo/body7/rtmo-t_8xb32-600e_body7-416x416.py +++ b/configs/body_2d_keypoint/rtmo/body7/rtmo-t_8xb32-600e_body7-416x416.py @@ -475,7 +475,7 @@ assigner=dict( type='SimOTAAssigner', dynamic_k_indicator='oks', - oks_calculator=dict(type='PoseOKS'), + oks_calculator=dict(type='PoseOKS', metainfo=metafile), use_keypoints_for_center=True), prior_generator=dict( type='MlvlPointGenerator', diff --git a/configs/body_2d_keypoint/rtmo/coco/rtmo-l_16xb16-600e_coco-640x640.py b/configs/body_2d_keypoint/rtmo/coco/rtmo-l_16xb16-600e_coco-640x640.py index 36cf20266f..97bbd109ca 100644 --- a/configs/body_2d_keypoint/rtmo/coco/rtmo-l_16xb16-600e_coco-640x640.py +++ b/configs/body_2d_keypoint/rtmo/coco/rtmo-l_16xb16-600e_coco-640x640.py @@ -268,7 +268,7 @@ assigner=dict( type='SimOTAAssigner', dynamic_k_indicator='oks', - oks_calculator=dict(type='PoseOKS')), + oks_calculator=dict(type='PoseOKS', metainfo=metafile)), prior_generator=dict( type='MlvlPointGenerator', centralize_points=True, diff --git a/configs/body_2d_keypoint/rtmo/coco/rtmo-m_16xb16-600e_coco-640x640.py b/configs/body_2d_keypoint/rtmo/coco/rtmo-m_16xb16-600e_coco-640x640.py index f73482b03f..de669ba604 100644 --- a/configs/body_2d_keypoint/rtmo/coco/rtmo-m_16xb16-600e_coco-640x640.py +++ b/configs/body_2d_keypoint/rtmo/coco/rtmo-m_16xb16-600e_coco-640x640.py @@ -267,7 +267,7 @@ assigner=dict( type='SimOTAAssigner', dynamic_k_indicator='oks', - oks_calculator=dict(type='PoseOKS')), + oks_calculator=dict(type='PoseOKS', metainfo=metafile)), prior_generator=dict( type='MlvlPointGenerator', centralize_points=True, diff --git a/configs/body_2d_keypoint/rtmo/coco/rtmo-s_8xb32-600e_coco-640x640.py b/configs/body_2d_keypoint/rtmo/coco/rtmo-s_8xb32-600e_coco-640x640.py index cab732ae60..755c47bf82 100644 --- a/configs/body_2d_keypoint/rtmo/coco/rtmo-s_8xb32-600e_coco-640x640.py +++ b/configs/body_2d_keypoint/rtmo/coco/rtmo-s_8xb32-600e_coco-640x640.py @@ -269,7 +269,7 @@ assigner=dict( type='SimOTAAssigner', dynamic_k_indicator='oks', - oks_calculator=dict(type='PoseOKS'), + oks_calculator=dict(type='PoseOKS', metainfo=metafile), use_keypoints_for_center=True), prior_generator=dict( type='MlvlPointGenerator', diff --git a/mmpose/apis/inferencers/base_mmpose_inferencer.py b/mmpose/apis/inferencers/base_mmpose_inferencer.py index 0f4dacb050..574063e824 100644 --- a/mmpose/apis/inferencers/base_mmpose_inferencer.py +++ b/mmpose/apis/inferencers/base_mmpose_inferencer.py @@ -336,13 +336,13 @@ def preprocess(self, # head's `predict` method. Here, we set the arguments for filtering if self.cfg.model.type == 'BottomupPoseEstimator': # 1. init with default arguments - test_cfg = self.model.test_cfg.copy() + test_cfg = self.model.head.test_cfg.copy() # 2. update the score_thr and nms_thr in the test_cfg of the head if 'score_thr' in test_cfg: test_cfg['score_thr'] = bbox_thr if 'nms_thr' in test_cfg: test_cfg['nms_thr'] = nms_thr - self.model.head.test_cfg = test_cfg + self.model.test_cfg = test_cfg for i, input in enumerate(inputs): bbox = bboxes[i] if bboxes else [] diff --git a/mmpose/apis/inferencers/pose2d_inferencer.py b/mmpose/apis/inferencers/pose2d_inferencer.py index f5ce671e87..8b6a2c3e96 100644 --- a/mmpose/apis/inferencers/pose2d_inferencer.py +++ b/mmpose/apis/inferencers/pose2d_inferencer.py @@ -243,6 +243,9 @@ def forward(self, if pose_based_nms: for ds in data_samples: + if len(ds.pred_instances) == 0: + continue + kpts = ds.pred_instances.keypoints scores = ds.pred_instances.bbox_scores num_keypoints = kpts.shape[-2] diff --git a/projects/README.md b/projects/README.md index 58f092fc70..a23696640e 100644 --- a/projects/README.md +++ b/projects/README.md @@ -40,6 +40,16 @@ We also provide some documentation listed below to help you get started:
+- **[🎳RTMO](./rtmo)**: Towards High-Performance One-Stage Real-Time Multi-Person Pose Estimation + + TRY IT NOW + + + +
+ +

+ - **[♾️PoseAnything](./pose_anything/)**: A Graph-Based Approach for Category-Agnostic Pose Estimation