Skip to content

Commit 147aee1

Browse files
committed
Add RTMPose 3D models and reorganize project resources
- Add RTMPose 3D pose estimation models (nano and medium variants with checkpoints) - Add RTMPose3D wholebody 3D models (L and X configurations) - Implement rtmpose3d module with pose estimator, loss functions, and utilities - Move YouTube-ASL video IDs list to resource directory - Reorganize How2Sign CSV to resource directory - Update project configuration and documentation
1 parent 34ce1f8 commit 147aee1

12 files changed

+5566
-3114
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
_base_ = 'mmdet::rtmdet/rtmdet_m_8xb32-300e_coco.py'
2+
3+
checkpoint = 'https://download.openmmlab.com/mmdetection/v3.0/rtmdet/cspnext_rsb_pretrain/cspnext-m_8xb256-rsb-a1-600e_in1k-ecb3bbd9.pth' # noqa
4+
5+
model = dict(
6+
backbone=dict(
7+
init_cfg=dict(
8+
type='Pretrained', prefix='backbone.', checkpoint=checkpoint)),
9+
bbox_head=dict(num_classes=1),
10+
test_cfg=dict(
11+
nms_pre=1000,
12+
min_bbox_size=0,
13+
score_thr=0.05,
14+
nms=dict(type='nms', iou_threshold=0.6),
15+
max_per_img=100))
16+
17+
train_dataloader = dict(dataset=dict(metainfo=dict(classes=('person', ))))
18+
19+
val_dataloader = dict(dataset=dict(metainfo=dict(classes=('person', ))))
20+
test_dataloader = val_dataloader
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
_base_ = 'mmdet::rtmdet/rtmdet_l_8xb32-300e_coco.py'
2+
3+
input_shape = 320
4+
5+
model = dict(
6+
backbone=dict(
7+
deepen_factor=0.33,
8+
widen_factor=0.25,
9+
use_depthwise=True,
10+
),
11+
neck=dict(
12+
in_channels=[64, 128, 256],
13+
out_channels=64,
14+
num_csp_blocks=1,
15+
use_depthwise=True,
16+
),
17+
bbox_head=dict(
18+
in_channels=64,
19+
feat_channels=64,
20+
share_conv=False,
21+
exp_on_reg=False,
22+
use_depthwise=True,
23+
num_classes=1),
24+
test_cfg=dict(
25+
nms_pre=1000,
26+
min_bbox_size=0,
27+
score_thr=0.05,
28+
nms=dict(type='nms', iou_threshold=0.6),
29+
max_per_img=100))
30+
31+
train_pipeline = [
32+
dict(type='LoadImageFromFile'),
33+
dict(type='LoadAnnotations', with_bbox=True),
34+
dict(
35+
type='CachedMosaic',
36+
img_scale=(input_shape, input_shape),
37+
pad_val=114.0,
38+
max_cached_images=20,
39+
random_pop=False),
40+
dict(
41+
type='RandomResize',
42+
scale=(input_shape * 2, input_shape * 2),
43+
ratio_range=(0.5, 1.5),
44+
keep_ratio=True),
45+
dict(type='RandomCrop', crop_size=(input_shape, input_shape)),
46+
dict(type='YOLOXHSVRandomAug'),
47+
dict(type='RandomFlip', prob=0.5),
48+
dict(
49+
type='Pad',
50+
size=(input_shape, input_shape),
51+
pad_val=dict(img=(114, 114, 114))),
52+
dict(type='PackDetInputs')
53+
]
54+
55+
train_pipeline_stage2 = [
56+
dict(type='LoadImageFromFile'),
57+
dict(type='LoadAnnotations', with_bbox=True),
58+
dict(
59+
type='RandomResize',
60+
scale=(input_shape, input_shape),
61+
ratio_range=(0.5, 1.5),
62+
keep_ratio=True),
63+
dict(type='RandomCrop', crop_size=(input_shape, input_shape)),
64+
dict(type='YOLOXHSVRandomAug'),
65+
dict(type='RandomFlip', prob=0.5),
66+
dict(
67+
type='Pad',
68+
size=(input_shape, input_shape),
69+
pad_val=dict(img=(114, 114, 114))),
70+
dict(type='PackDetInputs')
71+
]
72+
73+
test_pipeline = [
74+
dict(type='LoadImageFromFile'),
75+
dict(type='Resize', scale=(input_shape, input_shape), keep_ratio=True),
76+
dict(
77+
type='Pad',
78+
size=(input_shape, input_shape),
79+
pad_val=dict(img=(114, 114, 114))),
80+
dict(
81+
type='PackDetInputs',
82+
meta_keys=('img_id', 'img_path', 'ori_shape', 'img_shape',
83+
'scale_factor'))
84+
]
85+
86+
train_dataloader = dict(
87+
dataset=dict(pipeline=train_pipeline, metainfo=dict(classes=('person', ))))
88+
89+
val_dataloader = dict(
90+
dataset=dict(pipeline=test_pipeline, metainfo=dict(classes=('person', ))))
91+
test_dataloader = val_dataloader
92+
93+
custom_hooks = [
94+
dict(
95+
type='EMAHook',
96+
ema_type='ExpMomentumEMA',
97+
momentum=0.0002,
98+
update_buffers=True,
99+
priority=49),
100+
dict(
101+
type='PipelineSwitchHook',
102+
switch_epoch=280,
103+
switch_pipeline=train_pipeline_stage2)
104+
]

0 commit comments

Comments
 (0)