使用深度学习对视频进行分类

目录

加载预训练卷积网络

加载数据

将帧转换为特征向量

准备训练数据

创建 LSTM 网络

指定训练选项

训练 LSTM 网络

组合视频分类网络

使用新数据进行分类

辅助函数


        此示例说明如何通过将预训练图像分类模型和 LSTM 网络相结合来创建视频分类网络。

要为视频分类创建深度学习网络,请执行以下操作:

  1. 使用预训练卷积神经网络(如 GoogLeNet)将视频转换为特征向量序列,以从每帧中提取特征。

  2. 基于序列训练 LSTM 网络来预测视频标签。

  3. 通过合并来自两个网络的层,组合一个直接对视频进行分类的网络。

下图说明网络架构。

  • 要将图像序列输入到网络,请使用序列输入层。

  • 要使用卷积层来提取特征,也就是说,要将卷积运算独立地应用于视频的每帧,请使用一个后跟卷积层的序列折叠层。

  • 要还原序列结构体并将输出重构为向量序列,请使用序列展开层和扁平化层。

  • 要对得到的向量序列进行分类,请包括 LSTM 层,并在其后添加输出层。

加载预训练卷积网络

        要将视频帧转换为特征向量,请使用预训练网络的激活值。

        使用 googlenet 函数加载预训练的 GoogLeNet 模型。此函数需要 Deep Learning Toolbox™ Model for GoogLeNet Network 支持包。如果未安装此支持包,则函数会提供下载链接。

netCNN = googlenet;

加载数据

        ​从 HMDB:大型人体运动数据库下载 HMBD51 数据集,并将 RAR 文件提取到名为 "hmdb51_org" 的文件夹中。该数据集包含 51 个类的 7000 个片段、大约 2 GB 的视频数据,例如 "drink"、"run" 和 "shake_hands"。

        提取 RAR 文件后,使用支持函数 hmdb51Files 获取视频的文件名和标签。​

dataFolder = "

你可能感兴趣的:(Matlab,深度学习,音视频,分类)