论文链接:https://arxiv.org/abs/1608.00859
代码链接:https://github.com/yjxiong/tsn-pytorch
论文笔记链接:https://blog.csdn.net/qq_39862223/article/details/108419664
论文实验过程:https://blog.csdn.net/qq_39862223/article/details/108461526
论文源码分析:https://blog.csdn.net/qq_39862223/article/details/108486039
1.数据准备阶段
1.1 数据集介绍
在视频分类项目中,有很多经典的公开数据集,目前主要的数据集如列表所示:
数据集 | 视频数 | 分类数 | 发布年 | 背景 |
---|---|---|---|---|
KTH | 600 | 6 | 2004 | 静态 |
HMDB51 | 6766 | 51 | 2011 | 动态 |
UCF101 | 13320 | 101 | 2012 | 动态 |
THUMOS-2014 | 18394 | 101 | 2014 | 动态 |
ActivityNet | 27901 | 203 | 2015 | 动态 |
YouTube-8M | 8264650 | 4800 | 2016 | 动态 |
本次TSN实验复现使用的是UCF101数据集。
UCF101是动作识别数据集,从Youtube收集而得,共包含101类动作。其中每类动作由25个人做动作,每人做4-7组,共13320个视频,分辨率为320*240。UCF101在动作的采集上具有非常大的多样性,包括相机运行、外观变化、姿态变化、物体比例变化、背景变化、光纤变化等。
101类动作可以分为5类:人与物体互动、人体动作、人与人互动、乐器演奏、体育运动。
1.2 下载数据集
下载网址:http://crcv.ucf.edu/data/UCF101/UCF101.rar
下载成功后的UCF文件夹如下所示:
该文件夹下是各种动作的视频文件,共有101种类别
下图是UCF101在进行训练和测试时,分割的依据文件
1.3 下载源码
在实验过程中,我们需要使用tsn-pytorch和mmaction的一些代码文件,所以我们提前从Git上获得存储在本地。
- 下载mmaction:
git clone --recursive https://github.com/open-mmlab/mmaction.git
- 下载tsn-pytorch
git clone --recursive https://github.com/yjxiong/tsn-pytorch
2. 数据处理
2.1 提帧
在我们下载好的UCF101数据集中,视频大多是长时间的,很难对其进行动作识别,所以需要进行提帧操作。
首先在mmaction的data/ucf101中创建rawframes、videos、annotations文件夹。
- rawframes:视频提帧后存放的文件目录
- videos:拷贝ucf101数据集中的101个文件目录,放置其中
- annotations:ucf101之后进行分割训练集、测试集的依据文件
然后在mmaction/data_tools/build_rawframes.py 就是进行视频提帧的代码文件,输入命令如下所示:
python build_rawframes.py ../data/ucf101/videos ../data/ucf101/rawframes/ --level 2 --ext avi
命令行窗口:
生成的文件目录形式如下所示: