简体中文 | English
我们对TSM模型进行了改进,提出了PPTSM高精度2D实用视频分类模型。在不增加参数量和计算量的情况下,在UCF-101、Kinetics-400等数据集上精度显著超过原文。模型优化解析请参考pptsm实用视频模型优化解析。
K400数据下载及准备请参考Kinetics-400数据准备
UCF101数据下载及准备请参考UCF-101数据准备
下载图像蒸馏预训练模型ResNet50_vd_ssld_v2.pdparams作为Backbone初始化参数,或是通过命令行下载
wget https://videotag.bj.bcebos.com/PaddleVideo/PretrainModel/ResNet50_vd_ssld_v2_pretrained.pdparams并将文件路径添加到配置文件中的MODEL.framework.backbone.pretrained字段,如下:
MODEL:
framework: "Recognizer2D"
backbone:
name: "ResNet"
pretrained: 将路径填写到此处通过指定不同的配置文件,可以使用不同的数据格式/数据集进行训练,UCF-101数据集使用4卡训练,frames格式数据的训练启动命令如下:
python -B -m paddle.distributed.launch --gpus="0,1,2,3" --log_dir=log_pptsm main.py --validate -c configs/recognition/tsm/pptsm.yamlKinetics400数据集使用8卡训练,frames格式数据的训练启动命令如下:
python -B -m paddle.distributed.launch --gpus="0,1,2,3,4,5,6,7" --log_dir=log_pptsm main.py --validate -c configs/recognition/tsm/pptsm_k400.yaml- 通过
-c指定模型训练参数配置文件,默认配置文件与数据集的对应关系如下(不同数据集,数据处理部分参数配置稍有不同):
configs/recognition/tsm/pptsm.yaml --> UCF-101 frames格式训练
configs/recognition/tsm/todo.yaml --> UCF-101 videos格式训练
configs/recognition/tsm/pptsm_k400.yaml --> Kinetics-400 frames格式训练
configs/recognition/tsm/todo.yaml --> Kinetics-400 videos格式训练
-
如若进行finetune,请下载PaddleVideo的已发布模型ppTSM.pdparams,通过
--weights指定权重存放路径。 -
您可以自定义修改参数配置,参数用法请参考config。
python3 main.py --test -c configs/recognition/tsm/pptsm.yaml -w output/ppTSM/ppTSM_best.pdparams- 通过
-c参数指定配置文件,可下载已发布模型ppTSM.pdparams,通过-w指定权重存放路径进行模型测试。
当取如下参数时,在Kinetics400的验证集下评估精度如下:
| seg_num | target_size | Top-1 |
|---|---|---|
| 8 | 224 | 0.735 |
UCF101验证集(split1)上的评估精度如下:
| seg_num | target_size | Top-1 |
|---|---|---|
| 8 | 224 | 0.8997 |
python3 tools/export_model.py -c configs/recognition/tsm/pptsm_k400.yaml \
-p output/ppTSM/ppTSM_best.pdparams \
-o inference/ppTSM上述命令将生成预测所需的模型结构文件ppTSM.pdmodel和模型权重文件ppTSM.pdiparams。
- 各参数含义可参考模型推理方法
python3 tools/predict.py --video_file data/example.avi \
--model_file inference/ppTSM/ppTSM.pdmodel \
--params_file inference/ppTSM/ppTSM.pdiparams \
--use_gpu=True \
--use_tensorrt=False输出示例如下:
Current video file: data/example.avi
top-1 class: 5
top-1 score: 0.9621570706367493
可以看到,使用在Kinetics-400上训练好的ppTSM模型对data/example.avi进行预测,输出的top1类别id为5,置信度为0.962。通过查阅类别id与名称对应表data/k400/Kinetics-400_label_list.txt,可知预测类别名称为archery。
- TSM: Temporal Shift Module for Efficient Video Understanding, Ji Lin, Chuang Gan, Song Han
- Distilling the Knowledge in a Neural Network, Geoffrey Hinton, Oriol Vinyals, Jeff Dean
