Pytorch视频分类教程

专知 2019-05-28 14:45
关注文章

【导读】这是一个在UCF101上使用3D RNN/CNN+RNN 进行视频分类的教程,基于Pytorch实现。


数据集

UCF101 含有包括13320个视频与101个动作,视频有不同的视觉长度,视频画面大小也不一样,最小的视频只有29帧。


为了减少视频预处理工作,我们之间使用feichtenhofer预处理结束的数据。

https://github.com/feichtenhofer/twostreamfusion


模型

3D CNN

使用一些3D核和通道数N,来解决视频输入,视频可以看成是3D 的图片,并使用了批归一化与dropout。

CNN+RNN (CRNN)

CRNN 使用了CNN作为编码器,RNN作为解码器。

编码器:CNN函数将一个2D的图片 x(t) 编码成1D的向量z(t)。

解码器:RNN的输入为z(t),是超级为1D的序列h(t),然后输入到一个全连接网络来预测类别。在这里RNN使用了LSTM网络

训练与测试

对于3DCNN:

- 视频首先被变形到(t-dim, channels, x-dim, y-dim) = (29, 3, 256, 342) ,因为CNN需要固定输入输出的尺寸。

- 使用BatchNormalization dropout。

对于CRNN:

- 视频变形到 (t-dim, channels, x-dim, y-dim) = (29, 3, 224, 224) ,因为ResNet152的输入为224x224.

训练与测试视频的数量为9990:3330


Github 链接:

https://github.com/HHTseng/video-classification


阅读
分享 在看
已同步到看一看

朋友会在“发现-看一看”看到你“在看”的内容

确定
已同步到看一看 写下你的想法
最多200字,当前共 发送

已发送

朋友将在看一看看到

确定
写下你的想法...
取消

发布到看一看

确定
最多200字,当前共

发送中

微信扫一扫
关注该公众号

{{panelTitle}}
支持Markdown和数学公式,公式格式:\\(...\\)或\\[...\\]

还没有内容

关注微信公众号