行为识别¶
MXNet Pytorch
MXNet¶
这里是视频行为识别任务的模型动物园。我们首先在下图中展示一个可视化,描述了 Kinetics400 预训练模型的推理吞吐量与验证准确率之间的关系。
提示
训练命令使用此脚本:下载 train_recognizer.py
一个模型可以有不同 hashtag 的不同训练参数。灰色名称的参数可以通过传递相应的 hashtag 下载。
下载默认预训练权重:
net = get_model('i3d_resnet50_v1_kinetics400', pretrained=True)
下载给定 hashtag 的权重:
net = get_model('i3d_resnet50_v1_kinetics400', pretrained='568a722e')
测试脚本 下载 test_recognizer.py
可用于在各种数据集上评估模型。
推理脚本 下载 inference.py
可用于对视频列表进行推理(演示目的)。
提示
训练命令使用此脚本:下载 train_recognizer.py
一个模型可以有不同 hashtag 的不同训练参数。灰色名称的参数可以通过传递相应的 hashtag 下载。
下载默认预训练权重:
net = get_model('i3d_resnet50_v1_kinetics400', pretrained=True)
下载给定 hashtag 的权重:
net = get_model('i3d_resnet50_v1_kinetics400', pretrained='568a722e')
测试脚本 下载 test_recognizer.py
可用于在各种数据集上评估模型。
推理脚本 下载 inference.py
可用于对视频列表进行推理(演示目的)。
Kinetics400 数据集¶
下表列出了在 Kinetics400 上训练的预训练模型。
注意
我们的预训练模型重现了近期最先进方法的结果。更多信息请查阅参考论文。
所有模型均使用 224x224 的输入尺寸进行训练,除了 InceptionV3
使用 299x299 的输入尺寸进行训练和评估,C3D
和 R2+1D
模型使用 112x112 的输入尺寸进行训练和评估。
Clip Length
(剪辑长度)是输入剪辑中的帧数。32 (64/2)
意味着我们使用 32 帧,但实际上这些帧是通过从视频中随机选择 64 个连续帧,然后跳过其中间隔的帧来形成的。这种策略被广泛采用以减少计算和内存成本。
Segments
(段数)是训练期间使用的段数。为了测试(报告这些数字),按照惯例,我们对 2D 网络使用 250 视角(25 帧和 10-crop),对 3D 网络使用 30 视角(10 个剪辑和 3-crop)。
对于 SlowFast
系列网络,我们的性能与论文中报告的数字存在细微差距。这是因为官方 SlowFast 实现强制将每个视频重新编码为固定的 30 帧率。为了与其他方法进行公平比较,我们没有采用该策略,这导致了微小的差距。
名称 |
预训练 |
段数 |
剪辑长度 |
Top-1 |
Hashtag |
训练命令 |
训练日志 |
---|---|---|---|---|---|---|---|
inceptionv1_kinetics400 3 |
ImageNet |
7 |
1 |
69.1 |
6dcdafb1 |
||
inceptionv3_kinetics400 3 |
ImageNet |
7 |
1 |
72.5 |
8a4a6946 |
||
resnet18_v1b_kinetics400 3 |
ImageNet |
7 |
1 |
65.5 |
46d5a985 |
||
resnet34_v1b_kinetics400 3 |
ImageNet |
7 |
1 |
69.1 |
8a8d0d8d |
||
resnet50_v1b_kinetics400 3 |
ImageNet |
7 |
1 |
69.9 |
cc757e5c |
||
resnet101_v1b_kinetics400 3 |
ImageNet |
7 |
1 |
71.3 |
5bb6098e |
||
resnet152_v1b_kinetics400 3 |
ImageNet |
7 |
1 |
71.5 |
9bc70c66 |
||
c3d_kinetics400 2 |
从头开始 |
1 |
16 (32/2) |
59.5 |
a007b5fa |
||
p3d_resnet50_kinetics400 5 |
从头开始 |
1 |
16 (32/2) |
71.6 |
671ba81c |
||
p3d_resnet101_kinetics400 5 |
从头开始 |
1 |
16 (32/2) |
72.6 |
b30e3a63 |
||
r2plus1d_resnet18_kinetics400 6 |
从头开始 |
1 |
16 (32/2) |
70.8 |
5a14d1f9 |
||
r2plus1d_resnet34_kinetics400 6 |
从头开始 |
1 |
16 (32/2) |
71.6 |
de2e592b |
||
r2plus1d_resnet50_kinetics400 6 |
从头开始 |
1 |
16 (32/2) |
73.9 |
deaefb14 |
||
i3d_inceptionv1_kinetics400 4 |
ImageNet |
1 |
32 (64/2) |
71.8 |
81e0be10 |
||
i3d_inceptionv3_kinetics400 4 |
ImageNet |
1 |
32 (64/2) |
73.6 |
f14f8a99 |
||
i3d_resnet50_v1_kinetics400 4 |
ImageNet |
1 |
32 (64/2) |
74.0 |
568a722e |
||
i3d_resnet101_v1_kinetics400 4 |
ImageNet |
1 |
32 (64/2) |
75.1 |
6b69f655 |
||
i3d_nl5_resnet50_v1_kinetics400 7 |
ImageNet |
1 |
32 (64/2) |
75.2 |
3c0e47ea |
||
i3d_nl10_resnet50_v1_kinetics400 7 |
ImageNet |
1 |
32 (64/2) |
75.3 |
bfb58c41 |
||
i3d_nl5_resnet101_v1_kinetics400 7 |
ImageNet |
1 |
32 (64/2) |
76.0 |
fbfc1d30 |
||
i3d_nl10_resnet101_v1_kinetics400 7 |
ImageNet |
1 |
32 (64/2) |
76.1 |
59186c31 |
||
slowfast_4x16_resnet50_kinetics400 8 |
从头开始 |
1 |
36 (64/1) |
75.3 |
9d650f51 |
||
slowfast_8x8_resnet50_kinetics400 8 |
从头开始 |
1 |
40 (64/1) |
76.6 |
d6b25339 |
||
slowfast_8x8_resnet101_kinetics400 8 |
从头开始 |
1 |
40 (64/1) |
77.2 |
fbde1a7c |
Kinetics700 数据集¶
下表列出了我们在 Kinetics700 上训练的模型。
名称 |
预训练 |
段数 |
剪辑长度 |
Top-1 |
Hashtag |
训练命令 |
训练日志 |
---|---|---|---|---|---|---|---|
i3d_slow_resnet101_f16s4_kinetics700 8 |
从头开始 |
1 |
16 (64/4) |
67.65 |
299b1d9d |
NA |
NA |
UCF101 数据集¶
下表列出了在 UCF101 上训练的预训练模型。
注意
我们的预训练模型重现了近期最先进方法的结果。更多信息请查阅参考论文。
下方显示的 Top-1 准确率是 UCF101 数据集官方划分 1 的结果,而非 3 个划分的平均值。
InceptionV3
使用 299x299 的输入尺寸进行训练和评估。
K400
是 Kinetics400 数据集,这意味着我们使用在 Kinetics400 上预训练的模型作为权重初始化。
名称 |
预训练 |
段数 |
剪辑长度 |
Top-1 |
Hashtag |
训练命令 |
训练日志 |
---|---|---|---|---|---|---|---|
vgg16_ucf101 3 |
ImageNet |
3 |
1 |
83.4 |
d6dc1bba |
||
vgg16_ucf101 1 |
ImageNet |
1 |
1 |
81.5 |
05e319d4 |
||
inceptionv3_ucf101 3 |
ImageNet |
3 |
1 |
88.1 |
13ef5c3b |
||
inceptionv3_ucf101 1 |
ImageNet |
1 |
1 |
85.6 |
0c453da8 |
||
i3d_resnet50_v1_ucf101 4 |
ImageNet |
1 |
32 (64/2) |
83.9 |
7afc7286 |
||
i3d_resnet50_v1_ucf101 4 |
ImageNet, K400 |
1 |
32 (64/2) |
95.4 |
760d0981 |
HMDB51 数据集¶
下表列出了在 HMDB51 上训练的预训练模型。
注意
我们的预训练模型重现了近期最先进方法的结果。更多信息请查阅参考论文。
下方显示的 Top-1 准确率是 HMDB51 数据集官方划分 1 的结果,而非 3 个划分的平均值。
名称 |
预训练 |
段数 |
剪辑长度 |
Top-1 |
Hashtag |
训练命令 |
训练日志 |
---|---|---|---|---|---|---|---|
resnet50_v1b_hmdb51 3 |
ImageNet |
3 |
1 |
55.2 |
682591e2 |
||
resnet50_v1b_hmdb51 1 |
ImageNet |
1 |
1 |
52.2 |
ba66ee4b |
||
i3d_resnet50_v1_hmdb51 4 |
ImageNet |
1 |
32 (64/2) |
48.5 |
0d0ad559 |
||
i3d_resnet50_v1_hmdb51 4 |
ImageNet, K400 |
1 |
32 (64/2) |
70.9 |
2ec6bf01 |
PyTorch¶
这里是视频行为识别任务的 PyTorch 模型动物园。
提示
训练命令使用此脚本:下载 train_ddp_pytorch.py
python train_ddp_pytorch.py --config-file CONFIG
测试脚本 下载 test_ddp_pytorch.py
可用于在各种数据集上进行性能评估。如果您想使用模型动物园中训练好的模型,请在配置文件中设置 MODEL.PRETRAINED = True
。
python test_ddp_pytorch.py --config-file CONFIG
Kinetics400 数据集¶
下表列出了我们在 Kinetics400 上训练的模型。
注意
我们的预训练模型重现了近期最先进方法的结果。更多信息请查阅参考论文。
所有模型均使用 224x224 的输入尺寸进行训练,除了 R2+1D
模型使用 112x112 的输入尺寸进行训练和评估。
Clip Length
(剪辑长度)是输入剪辑中的帧数。32 (64/2)
意味着我们使用 32 帧,但实际上这些帧是通过从视频中随机选择 64 个连续帧,然后跳过其中间隔的帧来形成的。这种策略被广泛采用以减少计算和内存成本。
Segment
(段)是训练期间使用的段数。为了测试(报告这些数字),按照惯例,我们对 2D 网络使用 250 视角(25 帧和 10-crop),对 3D 网络使用 30 视角(10 个剪辑和 3-crop)。
r2plus1d_v2_resnet152_kinetics400
、ircsn_v2_resnet152_f32s2_kinetics400
和 TPN family
模型的权重从 VMZ 和 TPN 仓库移植而来。目前您可以忽略这些模型的训练配置。
名称 |
预训练 |
段 |
剪辑长度 |
Top-1 |
Hashtag |
配置 |
---|---|---|---|---|---|---|
resnet18_v1b_kinetics400 3 |
ImageNet |
7 |
1 |
66.73 |
854b23e4 |
|
resnet34_v1b_kinetics400 3 |
ImageNet |
7 |
1 |
69.85 |
124a2fa4 |
|
resnet50_v1b_kinetics400 3 |
ImageNet |
7 |
1 |
70.88 |
9939dbdf |
|
resnet101_v1b_kinetics400 3 |
ImageNet |
7 |
1 |
72.25 |
172afa3b |
|
resnet152_v1b_kinetics400 3 |
ImageNet |
7 |
1 |
72.45 |
3dedb835 |
|
r2plus1d_v1_resnet18_kinetics400 6 |
从头开始 |
1 |
16 (32/2) |
71.72 |
340a5952 |
|
r2plus1d_v1_resnet34_kinetics400 6 |
从头开始 |
1 |
16 (32/2) |
72.63 |
5102fd17 |
|
r2plus1d_v1_resnet50_kinetics400 6 |
从头开始 |
1 |
16 (32/2) |
74.92 |
9a3b665c |
|
r2plus1d_v2_resnet152_kinetics400 6 |
IG65M |
1 |
16 (32/2) |
81.34 |
42707ffc |
|
ircsn_v2_resnet152_f32s2_kinetics400 10 |
IG65M |
1 |
32 (64/2) |
83.18 |
82855d2c |
|
i3d_resnet50_v1_kinetics400 4 |
ImageNet |
1 |
32 (64/2) |
74.87 |
18545497 |
|
i3d_resnet101_v1_kinetics400 4 |
ImageNet |
1 |
32 (64/2) |
75.1 |
a9bb4f89 |
|
i3d_nl5_resnet50_v1_kinetics400 7 |
ImageNet |
1 |
32 (64/2) |
75.17 |
9df1e103 |
|
i3d_nl10_resnet50_v1_kinetics400 7 |
ImageNet |
1 |
32 (64/2) |
75.93 |
281e1e8a |
|
i3d_nl5_resnet101_v1_kinetics400 7 |
ImageNet |
1 |
32 (64/2) |
75.81 |
2cea8edd |
|
i3d_nl10_resnet101_v1_kinetics400 7 |
ImageNet |
1 |
32 (64/2) |
75.93 |
526a2ed0 |
|
slowfast_4x16_resnet50_kinetics400 8 |
从头开始 |
1 |
32 (64/2) |
75.25 |
1d1eadb2 |
|
slowfast_8x8_resnet50_kinetics400 8 |
从头开始 |
1 |
32 (64/2) |
76.66 |
e94e9a57 |
|
slowfast_8x8_resnet101_kinetics400 8 |
从头开始 |
1 |
32 (64/2) |
76.95 |
db5e9fef |
|
i3d_slow_resnet50_f32s2_kinetics400 8 |
从头开始 |
1 |
32 (64/2) |
77.89 |
078c817b |
|
i3d_slow_resnet50_f16s4_kinetics400 8 |
从头开始 |
1 |
16 (64/4) |
76.36 |
a3e419f1 |
|
i3d_slow_resnet50_f8s8_kinetics400 8 |
从头开始 |
1 |
8 (64/8) |
74.41 |
1c3d98a1 |
|
i3d_slow_resnet101_f32s2_kinetics400 8 |
从头开始 |
1 |
32 (64/2) |
78.57 |
db37cd51 |
|
i3d_slow_resnet101_f16s4_kinetics400 8 |
从头开始 |
1 |
16 (64/4) |
77.11 |
cb6b78d9 |
|
i3d_slow_resnet101_f8s8_kinetics400 8 |
从头开始 |
1 |
8 (64/8) |
76.15 |
82e399c1 |
|
tpn_resnet50_f8s8_kinetics400 9 |
从头开始 |
1 |
8 (64/8) |
77.04 |
368108eb |
|
tpn_resnet50_f16s4_kinetics400 9 |
从头开始 |
1 |
16 (64/4) |
77.33 |
6bf899df |
|
tpn_resnet50_f32s2_kinetics400 9 |
从头开始 |
1 |
32 (64/2) |
78.9 |
27710ce8 |
|
tpn_resnet101_f8s8_kinetics400 9 |
从头开始 |
1 |
8 (64/8) |
78.1 |
092c2f7f |
|
tpn_resnet101_f16s4_kinetics400 9 |
从头开始 |
1 |
16 (64/4) |
79.39 |
647080df |
|
tpn_resnet101_f32s2_kinetics400 9 |
从头开始 |
1 |
32 (64/2) |
79.7 |
a94422a9 |
参考文献¶
- 1(1,2,3)
Limin Wang, Yuanjun Xiong, Zhe Wang and Yu Qiao. “《关于非常深的两流卷积网络的良好实践》” arXiv preprint arXiv:1507.02159, 2015.
- 2
Du Tran, Lubomir Bourdev, Rob Fergus, Lorenzo Torresani and Manohar Paluri. “《使用 3D 卷积网络学习时空特征》” In International Conference on Computer Vision (ICCV), 2015.
- 3(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17)
Limin Wang, Yuanjun Xiong, Zhe Wang, Yu Qiao, Dahua Lin, Xiaoou Tang and Luc Van Gool. “《时间段网络:迈向深度行为识别的良好实践》” In European Conference on Computer Vision (ECCV), 2016.
- 4(1,2,3,4,5,6,7,8,9,10,11,12)
Joao Carreira and Andrew Zisserman. “《行为识别,路在何方?一个新模型和 Kinetics 数据集》” In Computer Vision and Pattern Recognition (CVPR), 2017.
- 5(1,2)
Zhaofan Qiu, Ting Yao and Tao Mei. “《使用伪 3D 残差网络学习时空表示》” In International Conference on Computer Vision (ICCV), 2017.
- 6(1,2,3,4,5,6,7)
Du Tran, Heng Wang, Lorenzo Torresani, Jamie Ray, Yann LeCun and Manohar Paluri. “《深入探讨用于行为识别的时空卷积》” In Computer Vision and Pattern Recognition (CVPR), 2018.
- 7(1,2,3,4,5,6,7,8)
Xiaolong Wang, Ross Girshick, Abhinav Gupta and Kaiming He. “《非局部神经网络》” In Computer Vision and Pattern Recognition (CVPR), 2018.
- 8(1,2,3,4,5,6,7,8,9,10,11,12,13,14)
Christoph Feichtenhofer, Haoqi Fan, Jitendra Malik and Kaiming He. “《用于视频识别的 SlowFast 网络》” In International Conference on Computer Vision (ICCV), 2019.
- 9(1,2,3,4,5,6)
Yang, Ceyuan and Xu, Yinghao and Shi, Jianping and Dai, Bo and Zhou, Bolei. “《用于行为识别的时间金字塔网络》” In Computer Vision and Pattern Recognition (CVPR), 2020.
- 10
Du Tran, Heng Wang, Lorenzo Torresani and Matt Feiszli. “《使用通道分离卷积网络进行视频分类》” In International Conference on Computer Vision (ICCV), 2019.