Skip to content

Commit 174a84a

Browse files
authored
Merge cc31a7c into 537bd8e
2 parents 537bd8e + cc31a7c commit 174a84a

File tree

126 files changed

+8802
-1088
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

126 files changed

+8802
-1088
lines changed

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ We provided a series of tutorials about the basic usage of MMPose for new users:
213213
Results and models are available in the **README.md** of each method's config directory.
214214
A summary can be found in the [Model Zoo](https://mmpose.readthedocs.io/en/latest/model_zoo.html) page.
215215

216-
<details close>
216+
<details open>
217217
<summary><b>Supported algorithms:</b></summary>
218218

219219
- [x] [DeepPose](https://mmpose.readthedocs.io/en/latest/model_zoo_papers/algorithms.html#deeppose-cvpr-2014) (CVPR'2014)
@@ -240,7 +240,7 @@ A summary can be found in the [Model Zoo](https://mmpose.readthedocs.io/en/lates
240240

241241
</details>
242242

243-
<details close>
243+
<details open>
244244
<summary><b>Supported techniques:</b></summary>
245245

246246
- [x] [FPN](https://mmpose.readthedocs.io/en/latest/model_zoo_papers/techniques.html#fpn-cvpr-2017) (CVPR'2017)
@@ -255,7 +255,7 @@ A summary can be found in the [Model Zoo](https://mmpose.readthedocs.io/en/lates
255255

256256
</details>
257257

258-
<details close>
258+
<details open>
259259
<summary><b>Supported datasets:</b></summary>
260260

261261
- [x] [AFLW](https://mmpose.readthedocs.io/en/latest/model_zoo_papers/datasets.html#aflw-iccvw-2011) \[[homepage](https://www.tugraz.at/institute/icg/research/team-bischof/lrs/downloads/aflw/)\] (ICCVW'2011)
@@ -294,7 +294,7 @@ A summary can be found in the [Model Zoo](https://mmpose.readthedocs.io/en/lates
294294

295295
</details>
296296

297-
<details close>
297+
<details open>
298298
<summary><b>Supported backbones:</b></summary>
299299

300300
- [x] [AlexNet](https://mmpose.readthedocs.io/en/latest/model_zoo_papers/backbones.html#alexnet-neurips-2012) (NeurIPS'2012)

README_CN.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ MMPose v1.0.0 是一个重大更新,包括了大量的 API 和配置文件的
211211
各个模型的结果和设置都可以在对应的 config(配置)目录下的 **README.md** 中查看。
212212
整体的概况也可也在 [模型库](https://mmpose.readthedocs.io/zh_CN/latest/model_zoo.html) 页面中查看。
213213

214-
<details close>
214+
<details open>
215215
<summary><b>支持的算法</b></summary>
216216

217217
- [x] [DeepPose](https://mmpose.readthedocs.io/zh_CN/latest/model_zoo_papers/algorithms.html#deeppose-cvpr-2014) (CVPR'2014)
@@ -238,7 +238,7 @@ MMPose v1.0.0 是一个重大更新,包括了大量的 API 和配置文件的
238238

239239
</details>
240240

241-
<details close>
241+
<details open>
242242
<summary><b>支持的技术</b></summary>
243243

244244
- [x] [FPN](https://mmpose.readthedocs.io/zh_CN/latest/model_zoo_papers/techniques.html#fpn-cvpr-2017) (CVPR'2017)
@@ -253,7 +253,7 @@ MMPose v1.0.0 是一个重大更新,包括了大量的 API 和配置文件的
253253

254254
</details>
255255

256-
<details close>
256+
<details open>
257257
<summary><b>支持的数据集</b></summary>
258258

259259
- [x] [AFLW](https://mmpose.readthedocs.io/zh_CN/latest/model_zoo_papers/datasets.html#aflw-iccvw-2011) \[[主页](https://www.tugraz.at/institute/icg/research/team-bischof/lrs/downloads/aflw/)\] (ICCVW'2011)
@@ -292,7 +292,7 @@ MMPose v1.0.0 是一个重大更新,包括了大量的 API 和配置文件的
292292

293293
</details>
294294

295-
<details close>
295+
<details open>
296296
<summary><b>支持的骨干网络</b></summary>
297297

298298
- [x] [AlexNet](https://mmpose.readthedocs.io/zh_CN/latest/model_zoo_papers/backbones.html#alexnet-neurips-2012) (NeurIPS'2012)

configs/body_2d_keypoint/topdown_heatmap/coco/hrformer_coco.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,4 @@ Results on COCO val2017 with detector having human AP of 56.4 on COCO val2017 da
4040
| [pose_hrformer_small](/configs/body_2d_keypoint/topdown_heatmap/coco/td-hm_hrformer-small_8xb32-210e_coco-256x192.py) | 256x192 | 0.738 | 0.904 | 0.812 | 0.793 | 0.941 | [ckpt](https://download.openmmlab.com/mmpose/top_down/hrformer/hrformer_small_coco_256x192-5310d898_20220316.pth) | [log](https://download.openmmlab.com/mmpose/top_down/hrformer/hrformer_small_coco_256x192_20220316.log.json) |
4141
| [pose_hrformer_small](/configs/body_2d_keypoint/topdown_heatmap/coco/td-hm_hrformer-small_8xb32-210e_coco-384x288.py) | 384x288 | 0.757 | 0.905 | 0.824 | 0.807 | 0.941 | [ckpt](https://download.openmmlab.com/mmpose/top_down/hrformer/hrformer_small_coco_384x288-98d237ed_20220316.pth) | [log](https://download.openmmlab.com/mmpose/top_down/hrformer/hrformer_small_coco_384x288_20220316.log.json) |
4242
| [pose_hrformer_base](/configs/body_2d_keypoint/topdown_heatmap/coco/td-hm_hrformer-base_8xb32-210e_coco-256x192.py) | 256x192 | 0.754 | 0.906 | 0.827 | 0.807 | 0.943 | [ckpt](https://download.openmmlab.com/mmpose/top_down/hrformer/hrformer_base_coco_256x192-6f5f1169_20220316.pth) | [log](https://download.openmmlab.com/mmpose/top_down/hrformer/hrformer_base_coco_256x192_20220316.log.json) |
43-
| [pose_hrformer_base](/configs/body_2d_keypoint/topdown_heatmap/coco/td-hm_hrformer-base_8xb32-210e_coco-384x288.py) | 384x288 | 0.774 | 0.909 | 0.842 | 0.823 | 0.945 | [ckpt](https://download.openmmlab.com/mmpose/top_down/hrformer/hrformer_base_coco_384x288-ecf0758d_20220316.pth) | [log](https://download.openmmlab.com/mmpose/top_down/hrformer/hrformer_base_coco_256x192_20220316.log.json) |
43+
| [pose_hrformer_base](/configs/body_2d_keypoint/topdown_heatmap/coco/td-hm_hrformer-base_8xb32-210e_coco-384x288.py) | 384x288 | 0.774 | 0.909 | 0.842 | 0.823 | 0.945 | [ckpt](https://download.openmmlab.com/mmpose/top_down/hrformer/hrformer_base_coco_384x288-ecf0758d_20220316.pth) | [log](https://download.openmmlab.com/mmpose/top_down/hrformer/hrformer_base_coco_384x288_20220316.log.json) |

configs/body_2d_keypoint/topdown_heatmap/coco/resnet_coco.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,9 @@ Results on COCO val2017 with detector having human AP of 56.4 on COCO val2017 da
6060
| [pose_resnet_101](/configs/body_2d_keypoint/topdown_heatmap/coco/td-hm_res101_8xb32-210e_coco-384x288.py) | 384x288 | 0.749 | 0.906 | 0.817 | 0.799 | 0.941 | [ckpt](https://download.openmmlab.com/mmpose/v1/body_2d_keypoint/topdown_heatmap/coco/td-hm_res101_8xb64-210e_coco-256x192-065d3625_20220926.pth) | [log](https://download.openmmlab.com/mmpose/v1/body_2d_keypoint/topdown_heatmap/coco/td-hm_res101_8xb64-210e_coco-256x192_20220926.log) |
6161
| [pose_resnet_152](/configs/body_2d_keypoint/topdown_heatmap/coco/td-hm_res152_8xb32-210e_coco-256x192.py) | 256x192 | 0.736 | 0.904 | 0.818 | 0.791 | 0.942 | [ckpt](https://download.openmmlab.com/mmpose/v1/body_2d_keypoint/topdown_heatmap/coco/td-hm_res152_8xb32-210e_coco-256x192-0345f330_20220928.pth) | [log](https://download.openmmlab.com/mmpose/v1/body_2d_keypoint/topdown_heatmap/coco/td-hm_res152_8xb32-210e_coco-256x192_20220928.log) |
6262
| [pose_resnet_152](/configs/body_2d_keypoint/topdown_heatmap/coco/td-hm_res152_8xb32-210e_coco-384x288.py) | 384x288 | 0.750 | 0.908 | 0.821 | 0.800 | 0.942 | [ckpt](https://download.openmmlab.com/mmpose/v1/body_2d_keypoint/topdown_heatmap/coco/td-hm_res152_8xb32-210e_coco-384x288-7fbb906f_20220927.pth) | [log](https://download.openmmlab.com/mmpose/v1/body_2d_keypoint/topdown_heatmap/coco/td-hm_res152_8xb32-210e_coco-384x288_20220927.log) |
63+
64+
The following model is equipped with a visibility prediction head and has been trained using COCO and AIC datasets.
65+
66+
| Arch | Input Size | AP | AP<sup>50</sup> | AP<sup>75</sup> | AR | AR<sup>50</sup> | ckpt | log |
67+
| :-------------------------------------------- | :--------: | :---: | :-------------: | :-------------: | :---: | :-------------: | :-------------------------------------------: | :-------------------------------------------: |
68+
| [pose_resnet_50](/configs/body_2d_keypoint/topdown_heatmap/coco/td-hm-vis_res50_8xb64-210e_coco-aic-256x192-merge.py) | 256x192 | 0.729 | 0.900 | 0.807 | 0.783 | 0.938 | [ckpt](https://download.openmmlab.com/mmpose/v1/body_2d_keypoint/topdown_heatmap/coco/td-hm-vis_res50_8xb64-210e_coco-aic-256x192-merge-21815b2c_20230726.pth) | [log](https://download.openmmlab.com/mmpose/v1/body_2d_keypoint/topdown_heatmap/coco/td-hm_res50_8xb64-210e_coco-256x192_20220923.log) |
Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
_base_ = ['../../../_base_/default_runtime.py']
2+
3+
# runtime
4+
train_cfg = dict(max_epochs=210, val_interval=10)
5+
6+
# optimizer
7+
optim_wrapper = dict(optimizer=dict(
8+
type='Adam',
9+
lr=5e-4,
10+
))
11+
12+
# learning policy
13+
param_scheduler = [
14+
dict(
15+
type='LinearLR', begin=0, end=500, start_factor=0.001,
16+
by_epoch=False), # warm-up
17+
dict(
18+
type='MultiStepLR',
19+
begin=0,
20+
end=210,
21+
milestones=[170, 200],
22+
gamma=0.1,
23+
by_epoch=True)
24+
]
25+
26+
# automatically scaling LR based on the actual training batch size
27+
auto_scale_lr = dict(base_batch_size=512)
28+
29+
# hooks
30+
default_hooks = dict(checkpoint=dict(save_best='coco/AP', rule='greater'))
31+
32+
# codec settings
33+
codec = dict(
34+
type='MSRAHeatmap', input_size=(192, 256), heatmap_size=(48, 64), sigma=2)
35+
36+
# model settings
37+
model = dict(
38+
type='TopdownPoseEstimator',
39+
data_preprocessor=dict(
40+
type='PoseDataPreprocessor',
41+
mean=[123.675, 116.28, 103.53],
42+
std=[58.395, 57.12, 57.375],
43+
bgr_to_rgb=True),
44+
backbone=dict(
45+
type='ResNet',
46+
depth=50,
47+
init_cfg=dict(type='Pretrained', checkpoint='torchvision://resnet50'),
48+
),
49+
head=dict(
50+
type='VisPredictHead',
51+
loss=dict(
52+
type='BCELoss',
53+
use_target_weight=True,
54+
use_sigmoid=True,
55+
loss_weight=1e-3,
56+
),
57+
pose_cfg=dict(
58+
type='HeatmapHead',
59+
in_channels=2048,
60+
out_channels=17,
61+
loss=dict(type='KeypointMSELoss', use_target_weight=True),
62+
decoder=codec)),
63+
test_cfg=dict(
64+
flip_test=True,
65+
flip_mode='heatmap',
66+
shift_heatmap=True,
67+
))
68+
69+
# base dataset settings
70+
dataset_type = 'CocoDataset'
71+
data_mode = 'topdown'
72+
data_root = 'data/coco/'
73+
74+
# pipelines
75+
train_pipeline = [
76+
dict(type='LoadImage'),
77+
dict(type='GetBBoxCenterScale'),
78+
dict(type='RandomFlip', direction='horizontal'),
79+
dict(type='RandomHalfBody'),
80+
dict(type='RandomBBoxTransform'),
81+
dict(type='TopdownAffine', input_size=codec['input_size']),
82+
dict(type='GenerateTarget', encoder=codec),
83+
dict(type='PackPoseInputs')
84+
]
85+
val_pipeline = [
86+
dict(type='LoadImage'),
87+
dict(type='GetBBoxCenterScale'),
88+
dict(type='TopdownAffine', input_size=codec['input_size']),
89+
dict(type='PackPoseInputs')
90+
]
91+
92+
# train datasets
93+
dataset_coco = dict(
94+
type=dataset_type,
95+
data_root=data_root,
96+
data_mode=data_mode,
97+
ann_file='annotations/person_keypoints_train2017.json',
98+
data_prefix=dict(img='train2017/'),
99+
pipeline=[],
100+
)
101+
102+
dataset_aic = dict(
103+
type='AicDataset',
104+
data_root='data/aic/',
105+
data_mode=data_mode,
106+
ann_file='annotations/aic_train.json',
107+
data_prefix=dict(img='ai_challenger_keypoint_train_20170902/'
108+
'keypoint_train_images_20170902/'),
109+
pipeline=[
110+
dict(
111+
type='KeypointConverter',
112+
num_keypoints=17,
113+
mapping=[
114+
(0, 6),
115+
(1, 8),
116+
(2, 10),
117+
(3, 5),
118+
(4, 7),
119+
(5, 9),
120+
(6, 12),
121+
(7, 14),
122+
(8, 16),
123+
(9, 11),
124+
(10, 13),
125+
(11, 15),
126+
])
127+
],
128+
)
129+
130+
# data loaders
131+
train_dataloader = dict(
132+
batch_size=64,
133+
num_workers=2,
134+
persistent_workers=True,
135+
sampler=dict(type='DefaultSampler', shuffle=True),
136+
dataset=dict(
137+
type='CombinedDataset',
138+
metainfo=dict(from_file='configs/_base_/datasets/coco.py'),
139+
datasets=[dataset_coco, dataset_aic],
140+
pipeline=train_pipeline,
141+
test_mode=False,
142+
))
143+
val_dataloader = dict(
144+
batch_size=32,
145+
num_workers=2,
146+
persistent_workers=True,
147+
drop_last=False,
148+
sampler=dict(type='DefaultSampler', shuffle=False, round_up=False),
149+
dataset=dict(
150+
type=dataset_type,
151+
data_root=data_root,
152+
data_mode=data_mode,
153+
ann_file='annotations/person_keypoints_val2017.json',
154+
bbox_file='data/coco/person_detection_results/'
155+
'COCO_val2017_detections_AP_H_56_person.json',
156+
data_prefix=dict(img='val2017/'),
157+
test_mode=True,
158+
pipeline=val_pipeline,
159+
))
160+
test_dataloader = val_dataloader
161+
162+
# evaluators
163+
val_evaluator = dict(
164+
type='CocoMetric',
165+
# score_mode='bbox',
166+
ann_file=data_root + 'annotations/person_keypoints_val2017.json')
167+
test_evaluator = val_evaluator

0 commit comments

Comments
 (0)