README.md 5.8 KB
Newer Older
D
dengkaipeng 已提交
1 2

## 简介
S
SunGaofeng 已提交
3
本教程期望给开发者提供基于PaddlePaddle的便捷、高效的使用深度学习算法解决视频理解、视频编辑、视频生成等一系列模型。目前包含视频分类模型,后续会不断的扩展到其他更多场景。
D
dengkaipeng 已提交
4

D
dengkaipeng 已提交
5
目前视频分类模型包括:
D
dengkaipeng 已提交
6 7

| 模型 | 类别  | 描述 |
D
dengkaipeng 已提交
8
| :--------------- | :--------: | :------------: |
D
dengkaipeng 已提交
9 10 11 12 13
| [Attention Cluster](./models/attention_cluster/README.md) | 视频分类| CVPR'18提出的视频多模态特征注意力聚簇融合方法 |
| [Attention LSTM](./models/attention_lstm/README.md)  | 视频分类| 常用模型,速度快精度高 |
| [NeXtVLAD](./models/nextvlad/README.md)  | 视频分类| 2nd-Youtube-8M最优单模型 |
| [StNet](./models/stnet/README.md)  | 视频分类| AAAI'19提出的视频联合时空建模方法 |
| [TSN](./models/tsn/README.md) | 视频分类| ECCV'16提出的基于2D-CNN经典解决方案 |
D
dengkaipeng 已提交
14

S
SunGaofeng 已提交
15
### 主要特点
S
SunGaofeng 已提交
16

S
SunGaofeng 已提交
17
- 包含视频分类方向的多个主流领先模型,其中Attention LSTM,Attention Cluster和NeXtVLAD是比较流行的特征序列模型,TSN和StNet是两个End-to-End的视频分类模型。Attention LSTM模型速度快精度高,NeXtVLAD是2nd-Youtube-8M比赛中最好的单模型, TSN是基于2D-CNN的经典解决方案。Attention Cluster和StNet是百度自研模型,分别发表于CVPR2018和AAAI2019,是Kinetics600比赛第一名中使用到的模型。
S
SunGaofeng 已提交
18 19 20

- 提供了适合视频分类任务的通用骨架代码,用户可一键式高效配置模型完成训练和评测。

D
dengkaipeng 已提交
21 22 23
## 安装

在当前模型库运行样例代码需要PadddlePaddle Fluid v.1.2.0或以上的版本。如果你的运行环境中的PaddlePaddle低于此版本,请根据[安装文档](http://www.paddlepaddle.org/documentation/docs/zh/1.3/beginners_guide/install/index_cn.html)中的说明来更新PaddlePaddle。
D
dengkaipeng 已提交
24 25 26

## 数据准备

D
dengkaipeng 已提交
27
视频模型库使用Youtube-8M和Kinetics数据集, 具体使用方法请参考[数据说明](./dataset/README.md)
D
dengkaipeng 已提交
28

D
dengkaipeng 已提交
29
## 快速使用
D
dengkaipeng 已提交
30 31 32

视频模型库提供通用的train/test/infer框架,通过`train.py/test.py/infer.py`指定模型名、模型配置参数等可一键式进行训练和预测。

D
dengkaipeng 已提交
33
以StNet模型为例:
D
dengkaipeng 已提交
34 35 36 37 38

单卡训练:

``` bash
export CUDA_VISIBLE_DEVICES=0
D
dengkaipeng 已提交
39 40
python train.py --model-name=STNET
        --config=./configs/stnet.txt
D
dengkaipeng 已提交
41 42 43 44 45 46 47
        --save-dir=checkpoints
```

多卡训练:

``` bash
export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7
D
dengkaipeng 已提交
48 49
python train.py --model-name=STNET
        --config=./configs/stnet.txt
D
dengkaipeng 已提交
50 51 52
        --save-dir=checkpoints
```

D
dengkaipeng 已提交
53
视频模型库同时提供了快速训练脚本,脚本位于`scripts/train`目录下,可通过如下命令启动训练:
D
dengkaipeng 已提交
54 55

``` bash
D
dengkaipeng 已提交
56
bash scripts/train/train_stnet.sh
D
dengkaipeng 已提交
57 58 59
```

- 请根据`CUDA_VISIBLE_DEVICES`指定卡数修改`config`文件中的`num_gpus``batch_size`配置。
D
dengkaipeng 已提交
60

D
dengkaipeng 已提交
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
## 模型库结构

### 代码结构

```
configs/
  stnet.txt
  tsn.txt
  ...
dataset/
  youtube/
  kinetics/
datareader/
  feature_readeer.py
  kinetics_reader.py
  ...
metrics/
  kinetics/
  youtube8m/
  ...
models/
  stnet/
  tsn/
  ...
scripts/
  train/
  test/
train.py
test.py
infer.py
```

- `configs`: 各模型配置文件模板
- `datareader`: 提供Youtube-8M,Kinetics数据集reader
- `metrics`: Youtube-8,Kinetics数据集评估脚本
- `models`: 各模型网络结构构建脚本
- `scripts`: 各模型快速训练评估脚本
- `train.py`: 一键式训练脚本,可通过指定模型名,配置文件等一键式启动训练
- `test.py`: 一键式评估脚本,可通过指定模型名,配置文件,模型权重等一键式启动评估
- `infer.py`: 一键式推断脚本,可通过指定模型名,配置文件,模型权重,待推断文件列表等一键式启动推断

D
dengkaipeng 已提交
102
## Model Zoo
D
dengkaipeng 已提交
103

D
dengkaipeng 已提交
104
- 基于Youtube-8M数据集模型:
D
dengkaipeng 已提交
105

D
dengkaipeng 已提交
106 107 108 109 110
| 模型 | Batch Size | 环境配置 | cuDNN版本 | GAP | 下载链接 |
| :-------: | :---: | :---------: | :-----: | :----: | :----------: |
| Attention Cluster | 2048 | 8卡P40 | 7.1 | 0.84 | [model](https://paddlemodels.bj.bcebos.com/video_classification/attention_cluster_youtube8m.tar.gz) |
| Attention LSTM | 1024 | 8卡P40 | 7.1 | 0.86 | [model](https://paddlemodels.bj.bcebos.com/video_classification/attention_lstm_youtube8m.tar.gz) |
| NeXtVLAD | 160 | 4卡P40 | 7.1 | 0.87 | [model](https://paddlemodels.bj.bcebos.com/video_classification/nextvlad_youtube8m.tar.gz) |
D
dengkaipeng 已提交
111

D
dengkaipeng 已提交
112
- 基于Kinetics数据集模型:
D
dengkaipeng 已提交
113 114 115 116

| 模型 | Batch Size | 环境配置 | cuDNN版本 | Top-1 | 下载链接 |
| :-------: | :---: | :---------: | :----: | :----: | :----------: |
| StNet | 128 | 8卡P40 | 5.1 | 0.69 | [model](https://paddlemodels.bj.bcebos.com/video_classification/stnet_kinetics.tar.gz) |
D
dengkaipeng 已提交
117
| TSN | 256 | 8卡P40 | 7.1 | 0.67 | [model](https://paddlemodels.bj.bcebos.com/video_classification/tsn_kinetics.tar.gz) |
D
dengkaipeng 已提交
118

D
dengkaipeng 已提交
119 120 121 122 123 124 125 126
## 参考文献

- [Attention Clusters: Purely Attention Based Local Feature Integration for Video Classification](https://arxiv.org/abs/1711.09550), Xiang Long, Chuang Gan, Gerard de Melo, Jiajun Wu, Xiao Liu, Shilei Wen
- [Beyond Short Snippets: Deep Networks for Video Classification](https://arxiv.org/abs/1503.08909) Joe Yue-Hei Ng, Matthew Hausknecht, Sudheendra Vijayanarasimhan, Oriol Vinyals, Rajat Monga, George Toderici
- [NeXtVLAD: An Efficient Neural Network to Aggregate Frame-level Features for Large-scale Video Classification](https://arxiv.org/abs/1811.05014), Rongcheng Lin, Jing Xiao, Jianping Fan
- [StNet:Local and Global Spatial-Temporal Modeling for Human Action Recognition](https://arxiv.org/abs/1811.01549), Dongliang He, Zhichao Zhou, Chuang Gan, Fu Li, Xiao Liu, Yandong Li, Limin Wang, Shilei Wen
- [Temporal Segment Networks: Towards Good Practices for Deep Action Recognition](https://arxiv.org/abs/1608.00859), Limin Wang, Yuanjun Xiong, Zhe Wang, Yu Qiao, Dahua Lin, Xiaoou Tang, Luc Van Gool

D
dengkaipeng 已提交
127
## 版本更新
D
dengkaipeng 已提交
128

D
dengkaipeng 已提交
129
- 3/2019: 新增模型库,发布Attention Cluster,Attention LSTM,NeXtVLAD,StNet,TSN五个视频分类模型。
130