【导读】这是一个在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
-END-
专 · 知
专知,专业可信的人工智能知识分发,让认知协作更快更好!欢迎登录www.zhuanzhi.ai,注册登录专知,获取更多AI知识资料!
欢迎微信扫一扫加入专知人工智能知识星球群,获取最新AI专业干货知识教程视频资料和与专家交流咨询!
请加专知小助手微信(扫一扫如下二维码添加),加入专知人工智能主题群,咨询技术商务合作~
专知《深度学习:算法到实战》课程全部完成!550+位同学在学习,现在报名,限时优惠!网易云课堂人工智能畅销榜首位!
点击“阅读原文”,了解报名专知《深度学习:算法到实战》课程