Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
models
提交
eb5e55d4
M
models
项目概览
PaddlePaddle
/
models
12 个月 前同步成功
通知
222
Star
6828
Fork
2962
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
602
列表
看板
标记
里程碑
合并请求
255
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
models
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
602
Issue
602
列表
看板
标记
里程碑
合并请求
255
合并请求
255
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
eb5e55d4
编写于
3月 01, 2019
作者:
S
SunGaofeng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
modify on dataset/README
上级
32c17cea
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
47 addition
and
39 deletion
+47
-39
fluid/PaddleCV/video/dataset/README.md
fluid/PaddleCV/video/dataset/README.md
+47
-32
fluid/PaddleCV/video/dataset/kinetics/README.md
fluid/PaddleCV/video/dataset/kinetics/README.md
+0
-5
fluid/PaddleCV/video/dataset/youtube8m/README.md
fluid/PaddleCV/video/dataset/youtube8m/README.md
+0
-2
未找到文件。
fluid/PaddleCV/video/dataset/README.md
浏览文件 @
eb5e55d4
# 数据使用说明
Paddle视频模型库同时涵盖了youtube8m和kinetics两种数据集。其中Attention Cluster、LSTM和NeXtVLAD使用2nd-Youtube-8M数据集,stNet和TSN使用kinetics400数据集。
-
[
Youtube-8M
](
#Youtube-8M数据集
)
-
[
Kinetics
](
#Kinetics数据集
)
## Youtube-8M数据集
这里我们用到的是YouTube-8M 2018年更新之后的数据集。使用官方数据集,并将tfrecord文件转化为pickle文件以便paddle使用。Youtube-8M数据集官方提供了frame-level和video-level的特征,我们这里只需使用到frame-level的特征。
### 数据下载
请使用Youtube-8M官方链接分别下载
[
训练集
](
http://us.data.yt8m.org/2/frame/train/index.html
)
和
[
验证集
](
http://us.data.yt8m.org/2/frame/validate/index.html
)
。每个链接里各提供了3844个文件的下载地址,用户也可以使用官方提供的
[
下载脚本
](
https://research.google.com/youtube8m/download.html
)
下载数据。数据下载完成后,将会得到3844个训练数据文件和3844个验证数据文件(tfrecord格式)。
假设存放
当前代码库的主目录为: Code_Base
_Root,进入dataset/youtube8m目录
假设存放
视频模型代码库的主目录为: Code
\_
Base
\
_
Root,进入dataset/youtube8m目录
cd dataset/youtube8m
cd dataset/youtube8m
在youtube8m下新建目录tf/train和tf/val
mkdir tf && cd tf
mkdir tf && cd tf
mkdir train && mkdir val
mkdir train && mkdir val
并分别将下载的train和validate数据存放在其中。
### 数据格式转化
为了适用于Fluid训练,我们离线将下载好的tfrecord文件格式转成了pickle格式,转换脚本请使用
[
dataset/youtube8m/tf2pkl.py
](
./dataset/youtube8m/tf2pkl.py
)
。
为了适用于Fluid训练,我们离线将下载好的tfrecord文件格式转成了pickle格式,转换脚本请使用
[
dataset/youtube8m/tf2pkl.py
](
./youtube8m/tf2pkl.py
)
。
在dataset/youtube8m 目录下新建目录pkl/train和pkl/val
cd dataset/youtube8m
cd dataset/youtube8m
mkdir pkl && cd pkl
mkdir pkl && cd pkl
mkdir train && mkdir val
mkdir train && mkdir val
转化文件格式(tfrecord -> pkl),进入dataset/youtube8m目录,运行脚本
python tf2pkl.py ./tf/train ./pkl/train
python tf2pkl.py ./tf/train ./pkl/train
和
python tf2pkl.py ./tf/val ./pkl/val
python tf2pkl.py ./tf/val ./pkl/val
分别将train和validate数据集转化为pkl文件。tf2pkl.py文件运行时需要两个参数,分别是数据源tf文件存放路径和转化后的pkl文件存放路径。
备注:由于tfrecord文件的读取需要用到tensorflow,用户要先安装tensorflow,或者在安装有tensorflow的环境中转化完数据,再拷贝到dataset/youtube8m/pkl目录下。为了避免和paddle环境冲突,我们建议先在其他地方转化完成再将数据拷贝过来。
### 生成文件列表
进入dataset/youtube8m目录
ls ${Code_Base
_Root}/dataset/youtube8m/pkl/train/* > train.list
ls ${Code
\_
Base
\
_
Root}/dataset/youtube8m/pkl/train/
*
> train.list
ls ${Code_Base
_Root}/dataset/youtube8m/pkl/val/* > val.list
ls ${Code
\_
Base
\
_
Root}/dataset/youtube8m/pkl/val/
*
> val.list
在dataset/youtube8m目录下将生成两个文件,train.list和val.list,每一行分别保存了一个pkl文件的绝对路径。
## Kinetics数据集
Kinetics数据集是DeepMind公开的大规模视频动作识别数据集,有Kinetics400与Kinetics600两个版本。这里我们使用Kinetics400数据集,具体的数据预处理过程如下。
### mp4视频下载
在Code
_Base
_Root目录下创建文件夹
在Code
\_
Base
\
_
Root目录下创建文件夹
cd ${Code_Base
_Root}/dataset && mkdir kinetics
cd ${Code
\_
Base
\
_
Root}/dataset && mkdir kinetics
cd kinetics && mkdir data_k400 && cd data
_k400
cd kinetics && mkdir data
\_
k400 && cd data
\
_
k400
mkdir train_mp4 && mkdir val
_mp4
mkdir train
\_
mp4 && mkdir val
\
_
mp4
ActivityNet官方提供了Kinetics的下载工具,具体参考其
[
官方repo
](
https://github.com/activitynet/ActivityNet/tree/master/Crawler/Kinetics
)
即可下载Kinetics400的mp4视频集合。将kinetics400的训练与验证集合分别下载到dataset/kinetics/data
_k400/train_mp4与dataset/kinetics/data_k400/val
_mp4。
ActivityNet官方提供了Kinetics的下载工具,具体参考其
[
官方repo
](
https://github.com/activitynet/ActivityNet/tree/master/Crawler/Kinetics
)
即可下载Kinetics400的mp4视频集合。将kinetics400的训练与验证集合分别下载到dataset/kinetics/data
\_
k400/train
\_
mp4与dataset/kinetics/data
\_
k400/val
\
_
mp4。
### mp4文件预处理
为提高数据读取速度,我们提前将mp4文件解帧并打pickle包,dataloader从视频的pkl文件中读取数据(该方法耗费更多存储空间)。pkl文件里打包的内容为(video-id,[frame1, frame2,...,frameN],label)。
在 dataset/kinetics/data_k400目录下创建目录train_pkl和val_pkl
cd ${Code_Base_Root}/dataset/kinetics/data_k400
在 dataset/kinetics/data
\_
k400目录下创建目录train
\_
pkl和val
\_
pkl
cd ${Code
\_
Base
\_
Root}/dataset/kinetics/data
\_
k400
mkdir train
\_
pkl && mkdir val
\_
pkl
mkdir train_pkl && mkdir val_pkl
进入${Code
\_
Base
\_
Root}/dataset/kinetics目录,使用video2pkl.py脚本进行数据转化。首先需要下载
[
train
](
https://github.com/activitynet/ActivityNet/tree/master/Crawler/Kinetics/data/kinetics-400_train.csv
)
和
[
validation
](
https://github.com/activitynet/ActivityNet/tree/master/Crawler/Kinetics/data/kinetics-400_val.csv
)
数据集的文件列表。
进入${Code_Base_Root}/dataset/kinetics目录,使用video2pkl.py脚本进行数据转化。首先需要下载
[
train
](
https://github.com/activitynet/ActivityNet/tree/master/Crawler/Kinetics/data/kinetics-400_train.csv
)
和
[
validation
](
https://github.com/activitynet/ActivityNet/tree/master/Crawler/Kinetics/data/kinetics-400_val.csv
)
数据集的文件列表。
首先生成预处理需要的数据集标签文件
执行如下程序:
python generate
\_
label.py kinetics-400
\_
train.csv kinetics400
\_
label.txt
python video2pkl.py kinetics-400_train.csv $Source_dir $Target_dir 8 #以8个进程为例
然后执行如下程序:
python video2pkl.py kinetics-400
\_
train.csv $Source
\_
dir $Target
\_
dir 8 #以8个进程为例
对于train数据,
Source_dir = ${Code_Base_Root}/dataset/kinetics/data_k400/train
_mp4
Source
\_
dir = ${Code
\_
Base
\_
Root}/dataset/kinetics/data
\_
k400/train
\
_
mp4
Target_dir = ${Code_Base_Root}/dataset/kinetics/data_k400/train
_pkl
Target
\_
dir = ${Code
\_
Base
\_
Root}/dataset/kinetics/data
\_
k400/train
\
_
pkl
对于val数据,
Source_dir = ${Code_Base_Root}/dataset/kinetics/data_k400/val
_mp4
Source
\_
dir = ${Code
\_
Base
\_
Root}/dataset/kinetics/data
\_
k400/val
\
_
mp4
Target_dir = ${Code_Base_Root}/dataset/kinetics/data_k400/val
_pkl
Target
\_
dir = ${Code
\_
Base
\_
Root}/dataset/kinetics/data
\_
k400/val
\
_
pkl
这样即可将mp4文件解码并保存为pkl文件。
### 生成训练和验证集合list
cd ${Code_Base_Root}/dataset/kinetics
ls ${Code_Base_Root}/dataset/kinetics/data_k400/train_pkl /
*
> train.list
ls ${Code_Base_Root}/dataset/kinetics/data_k400/val_pkl /
*
> val.list
### 生成训练和验证集list
cd ${Code
\_
Base
\_
Root}/dataset/kinetics
ls ${Code
\_
Base
\_
Root}/dataset/kinetics/data
\_
k400/train
\_
pkl /
*
> train.list
ls ${Code
\_
Base
\_
Root}/dataset/kinetics/data
\_
k400/val
\_
pkl /
*
> val.list
即可生成相应的文件列表,train.list和val.list的每一行表示一个pkl文件的绝对路径。
fluid/PaddleCV/video/dataset/kinetics/README.md
已删除
100644 → 0
浏览文件 @
32c17cea
1.
download kinetics-400_train.csv and kinetics-400_val.csv
2.
ffmpeg is required to decode mp4
3.
transfer mp4 video to pkl file, with each pkl stores [video_id, images, label]
python generate_label.py kinetics-400_train.csv kinetics400_label.txt # generate label file
python video2pkl.py kinetics-400_train.csv $Source_dir $Target_dir $NUM_THREADS
fluid/PaddleCV/video/dataset/youtube8m/README.md
已删除
100644 → 0
浏览文件 @
32c17cea
1.
Tensorflow is required to process tfrecords
2.
python tf2pkl.py $Source_dir $Target_dir
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录