build_rawframes.py
- 用法示例
python tools/data/build_rawframes.py data/videos data/frames --task rgb --level 2 --ext mp4 --use-opencv --num-worker 8
总结:
只需要 RGB 帧,推荐 --use-opencv,简单高效,无需额外依赖。
需要光流(flow)或同时提取 RGB+光流,需安装 denseflow,不用 --use-opencv。
注意:–use-opencv 只支持 RGB 帧提取,不支持光流。
denseflow 支持光流和 RGB,但需额外安装和配置。
命令行参数表
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| src_dir | str | 必填 | 源视频目录 |
| out_dir | str | 必填 | 输出帧目录 |
| –task | str | flow | 提取类型:rgb / flow / both |
| –level | int | 2 | 数据目录层级(1或2) |
| –num-worker | int | 8 | 并行进程数 |
| –flow-type | str | None | 光流类型:tvl1、warp_tvl1、farn、brox |
| –out-format | str | jpg | 输出图片格式:jpg、h5、png |
| –ext str | avi | 视频文件扩展名: | avi、mp4、webm |
| –mixed-ext | flag | False | 是否处理混合扩展名的视频 |
| –new-width | int | 0 | 输出图片宽度 |
| –new-height | int | 0 | 输出图片高度(0为不变) |
| –new-short | int | 0 | 输出图片短边长度(保持比例,0为不变) |
| –num-gpu | int | 8 | GPU数量(仅光流提取时用到) |
| –resume | flag | False | 是否断点续提取 |
| –use-opencv | flag | False | 是否用 OpenCV 提取 RGB 帧 |
| –input-frames | flag | False | 是否基于已提取的 RGB 帧再提取光流 |
| –report-file | str | build_report.txt | 记录已处理文件的报告文件名 |
build_file_list.py
python build_file_list.py ucf101 /path/to/videos \
--rgb-prefix img_ \
--level 2 \
--format rawframes \
--output-format json
命令行参数表
| 参数名 | 类型 | 默认值 | 可选值 | 说明 |
|---|---|---|---|---|
| dataset | str | 必需参数 | ucf101, kinetics400/600/700, thumos14, sthv1, sthv2, mit, mmit, activitynet, hmdb51, jester, diving48 | 要处理的数据集名称 |
| src_folder | str | 必需参数 | - | 帧或视频的根目录路径 |
| –rgb-prefix | str | img_ | - | RGB帧的前缀 |
| –flow-x-prefix | str | flow_x_ | - | 光流x方向的前缀 |
| –flow-y-prefix | str | flow_y_ | - | 光流y方向的前缀 |
| –num-split | int | 3 | - | 文件列表的划分数量 |
| –subset | str | train | train, val, test | 生成哪个子集的文件列表 |
| –level | int | 2 | 1, 2 | 数据目录的层级 |
| –format | str | rawframes | rawframes, videos | 数据格式 |
| –out-root-path | str | data/ | - | 输出的根路径 |
| –output-format | str | txt | txt, json | 输出文件格式 |
| –seed | int | None | - | 随机种子 |
| –shuffle | bool | False | - | 是否打乱文件列表 |