Kinetics 数据库处理
本文仅为自己研究过程的一个随手记录,部分细节可能没有严格考证
kinetics数据库是当前较大规模的行为识别数据库,400类,training set 246k video, validation set 20k. 由于此前没有接触过视频数据库,而这个库又非常大,处理起来比较麻烦,记录一下。
- 下载
- mp4 -> jpg
下载
kinetics数据库的页面 , 里面没有现成的video,要根据提供的链接自己一个一个爬…好像看到有人说一个月也没爬多少。。不知真假。。。不过更严重的是里面部分链接已经被视频发布者删除或者转为私密模式了。non-local的作者Xiaolong Wang对kinetics短边按比例缩放到256保存了一个副本,github 链接 ,大约占132G, (原数据集400G+)云盘的下载链接要向他发邮件获取,由于图像大小有所损失,对data augmentation有影响,并且这个数据当时下载的时候大约有5%的video已经不存在了,所以性能会略有损失,(Xiaolong Wang:损失<0.5%)。132G的压缩包,下载速度10M/s,大约用了3.5h。
mp4 --> jpg
kinetics的视频都是mp4格式,non-local 貌似就直接用mp4格式输入网络(作者自述 我没有考证),但是non-local用的是caffe2,我不是很6,所以借助的是CVPR2018上的一篇3D conv的pytorch实现。这篇工作里将mp4处理成jpg进行训练,所以也按帧提取了一下。使用上述project中 utils/video_jpg_kinetics.py 实现。
该过程耗时近24h,读写均在ssd上,拆解成frame的文件所占空间为400G+
比较3D conv与non-local的设置差异
work | train method | backbone | input | frames/clip | data format |
---|---|---|---|---|---|
non-local | fine-tune | ResNet50 + I3D | 224x224 | 32 | mp4 |
3D ResNet | train from scratch | ResNet50 + 3D | 112 x 112 | 16 | jpg |
其中3D ResNet所用GPU为8*titanx。