首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一份基于Pytorch的视频分类教程

一份基于Pytorch的视频分类教程

作者头像
昱良
发布2019-06-02 21:26:05
2.7K0
发布2019-06-02 21:26:05
举报

这是一个在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

代码与教程链接:

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习算法与Python学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档