Introduction
基本信息上官网查看,开始操作之前需确保目录定位于$MMACTION2/tools/data/ava/
,便于后续操作
Step 1. Prepare Annotations
可以使用下列脚本准备标注文件
bash download_annotations.sh
脚本默认下载v2.1的标注,如果要下载v2.2的标注,则使用下列脚本
VERSION=2.2 bash download_annotations.sh
如果服务器没办法科学上网,则将脚本中wget的网址换成
https://s3.amazonaws.com/ava-dataset/annotations/ava_v${VERSION}.zip
Step 2. Prepare Videos
用下列脚本下载视频,代码从官方爬虫继承,下载需要花很长时间
bash download_videos.sh
或者可以用下列命令使用python脚本并行下载AVA视频
bash download_videos_parallel.sh
如果服务器没办法科学上网,则将脚本中wget的网址换成
https://s3.amazonaws.com/ava-dataset/annotations/ava_file_names_trainval_v${VERSION}.txt
下载完总共157G的视频,使用du命令查看文件夹大小
Step 3. Cut Videos
对每个视频进行裁剪得到第15到第30分钟的片段,并把片段帧率变为30fps
bash cut_videos.sh
Step 4. Extract RGB and Flow
只用RGB帧(提取光流太花时间),运行下列脚本使用denseflow提取RGB-only帧
bash extract_rgb_frames.sh
如果没安装上denseflow,还是可以使用下列脚本通过ffmpeg提取RGB帧
bash extract_rgb_frames_ffmpeg.sh
如果两种流都要,则运行下列脚本
bash extract_frames.sh
Step 5. Fetch Proposal Files
脚本使用FAIR的Long-Term Feature Banks
运行下列脚本获取计算好的proposal list
bash fetch_ava_proposals.sh
得到的文件如下图:
这些ava_dense_proposals_[train/val/test].FAIR.recall_93.9.pkl
是由人体检测器生成的proposals,分别用于训练、验证与测试。
以 ava_dense_proposals_train.FAIR.recall_93.9.pkl
为例,它是大小为203626的字典,键由videoID
和timestamp
组成,例如键 -5KQ66BBWC4,0902
表示在视频 -5KQ66BBWC4
的在第902秒的帧的检测结果。字典中的值为
N
×
5
N \times 5
N×5 的numpy array,
N
N
N是对应帧中检测的人体bbox数量,bbox的格式为
[
x
1
,
y
1
,
x
2
,
y
2
,
s
c
o
r
e
]
,
0
≤
x
1
,
y
1
,
x
2
,
w
2
,
s
c
o
r
e
≤
1
[x_1, y_1, x_2, y_2, score], 0 \le x_1, y_1, x_2, w_2, score \le 1
[x1,y1,x2,y2,score],0≤x1,y1,x2,w2,score≤1,即bbox的top-left坐标与bottom-right坐标,以横款占比的数值表示,
s
c
o
r
e
score
score为人体置信度。
Step 6. Folder Structure
经过上述处理后可以得到rawframes(RGB+光流)、视频以及AVA的annotation文件
在mmaction2中最小的目录结构入下
mmaction2
├── mmaction
├── tools
├── configs
├── data
│ ├── ava
│ │ ├── annotations
│ │ | ├── ava_dense_proposals_train.FAIR.recall_93.9.pkl
│ │ | ├── ava_dense_proposals_val.FAIR.recall_93.9.pkl
│ │ | ├── ava_dense_proposals_test.FAIR.recall_93.9.pkl
│ │ | ├── ava_train_v2.1.csv
│ │ | ├── ava_val_v2.1.csv
│ │ | ├── ava_train_excluded_timestamps_v2.1.csv
│ │ | ├── ava_val_excluded_timestamps_v2.1.csv
│ │ | ├── ava_action_list_v2.1_for_activitynet_2018.pbtxt
│ │ ├── videos
│ │ │ ├── 053oq2xB3oU.mkv
│ │ │ ├── 0f39OWEqJ24.mp4
│ │ │ ├── ...
│ │ ├── videos_15min
│ │ │ ├── 053oq2xB3oU.mkv
│ │ │ ├── 0f39OWEqJ24.mp4
│ │ │ ├── ...
│ │ ├── rawframes
│ │ │ ├── 053oq2xB3oU
| │ │ │ ├── img_00001.jpg
| │ │ │ ├── img_00002.jpg
| │ │ │ ├── ...
同FAIR的repo相比
ava
|_ frames
| |_ [video name 0]
| | |_ [video name 0]_000001.jpg
| | |_ [video name 0]_000002.jpg
| | |_ ...
| |_ [video name 1]
| |_ [video name 1]_000001.jpg
| |_ [video name 1]_000002.jpg
| |_ ...
|_ frame_lists
| |_ train.csv
| |_ val.csv
|_ annotations
|_ [official AVA annotation files]
|_ ava_train_predicted_boxes.csv
|_ ava_val_predicted_boxes.csv
其中ava_train_predicted_boxes.csv和ava_val_predicted_boxes.csv就是ava_train_v2.1.csv和ava_val_v2.1.csv