基于卷积神经网络的视频分类研究

2023-03-13 15:24赵洪汶
信息记录材料 2023年1期
关键词:卷积公式矩阵

赵洪汶

(中国广电山东网络有限公司泰安市分公司 山东 泰安 271000)

0 引言

近年来,随着人工智能的发展,计算机视觉领域发展得极为迅速,例如图像处理、图像分类、图像重构等。关于图像分类的算法可以分为基于机器学习与深度学习两种:第一,基于机器学习算法,包含支持向量机(support vector machine,SVM)[1]和随机森林[2]等算法;第二,基于深度学习的方法,包括使用卷积神经网络(convolutional neural network, CNN)和视觉几何组(visual geometry group,VGG)[3]算法。CNN网络通过加入多个卷积层对模型进行加深,随着层数的加深,其训练效果不断提高。VGG网络是由5组卷积模块组成的,根据每组模块的卷积层数不同,可分为以下几种模型:VGG11、VGG13、VGG16和VGG19。在此基础上,Szegedy等[4]算法引入了多层感知卷积网络,可以提取高度非线性的特征。随着网络深度的不断加深,会出现梯度消失等问题,网络的精确度也会随之下降,为了解决梯度消失这一问题,He等[5]算法提出了一种残差学习方法来解决模型加深所带来的梯度消失问题。

随着深度学习的发展,视频分类方法的研究变得越来越活跃。其中循环神经网络(recurrent neural network,RNN)[6]是一种处理序列数据的神经网络,它不仅考虑了之前的输入,还赋予了对网络之前内容的“记忆”功能。长短期记忆(long short-term memory,LSTM)网络[7]是一种改进的RNN算法,用于解决RNN算法中梯度消失的问题。上述两种方法在求解时间序列问题中都取得了很好的效果。

本文的研究也采用混合网络模型方法实现视频分类。与图像视频相比,人体动作视频具有信息冗余少、视频简单等优点。因此,本文改进了参考网络结构,在不改变原有模型特性的前提下,提高视频分类的精度。

1 网络架构

本研究模型训练的总体流程图如图1所示。

图1 模型训练总体流程图

首先构建基于人体骨骼行为的视频数据集,将构建好的数据集进行预处理;然后将数据输入到模型进行训练,若没有达到训练预期就返回模型进行数据调参,再次训练,直到达到预期效果;最后对训练好的模型进行测试,若测试效果达到预期则结束训练,若没有达到预期则循环训练模型,直到达到预期。

本研究采用卷积神经网络与LSTM网络相结合的方法实现视频图像分类,在不损失性能的前提下对网络进行了优化和改进。本文的网络架构如图2所示。

图2 网络架构

首先对数据集进行预处理,对视频数据集逐帧提取,将得到的图像进行降采样,其目的是减少不必要的损耗,加快模型训练速度,预处理后的视频大小为200×100×150×3的三通道图像。然后将数据输入到模型中,进行5个计算模块的卷积运算,每一个模块都由2个卷积层、2个BatchNormalization层、1个激活层和1个MaxPooling层组成。经过卷积后,数据的尺寸转化为200×1×2×512大小的三维矩阵,Flatten层再将矩阵转化为1×1 024的一维向量。接着通过LSTM层提取帧的序列特征,这时的图像尺寸为1×256。最后,通过全连接操作将图像输出为1×10尺寸的矩阵作为输出分类标签的概率,每一个数据代表着一个人体动作,概率最大的数所对应的就是该模型识别出的人体行为。

这里选用ReLU函数作为本模型的激活函数,ReLU函数的作用是不会让模型发生梯度消失的问题。ReLU函数如公式(1)所示。其函数图像如图3所示。

图3 ReLU函数

该模型的具体参数如表1所示。

表1 模型的具体参数

1.1 数据预处理

数据预处理的目的是减少数据量的同时保证模型的正确运行,降低模型的运行压力,能够加快训练速度。部分原始数据会由于数据规模太大而无法导入模型,或使得模型运行中产生时间过长、内存溢出等问题。视频数据预处理主要包括两个部分:视频下采样以采集图像,再将采集后的图形进行逐帧下采样操作,最终将数据控制在合适的范围内。

本实验使用的数据由内部人员提供,其中包括10种关于人体行为动作的视频,每种类型由9~10个可变长度的短视频组成,共99个视频数据。每个视频的尺寸为932×456×3,第三个参数为视频的频道数。图4是数据集中帧数的统计图。

图4 数据集中帧数的统计图

(1)帧数降采样

视频数据集由一系列图像组成,如果不进行视频降采样,模型会因为数据量大而崩溃。由于本实验视频的帧率在9 Hz以上,且视频中人体的移动速度不是很快,所以所有视频的帧数降到了200帧,最终得到的视频数据集维数为99×200×932×456×3。其中,第一个参数是视频个数,第二个参数是每个视频的帧数,第三个参数是每个视频的宽度,第四个参数是每个视频的高度,第五个参数是图像的通道数。本文采用每三个连续帧中,舍弃中间帧。效果如图5所示。

图5 帧数降采样

(2)图像降采样

在对视频帧数降采样后,对提取的每幅图像进行处理。在数字图像处理中,原始数据不能完全输入,这会导致模型中运行的数据变慢。

在本研究中,如果使用间隔采样方法,则会丢失大量的图像细节。所以,本文采用“图像金字塔”的概念[8],对每张图片的数据进行处理,如图6所示,通过对图像金字塔的上采样可以得到高分辨率的图像,对图像进行下采样将得到低分辨率的图像。最底层的图像是高分辨率,最上层图像是低分辨率的。

图6 图像金字塔

本文通过对原始图像采用图像金字塔概念进行降采样,结果如图7所示。原始图片如图7(a)所示,下采样图片如图7(b)所示。

图7 图像降采样

1.2 网络模型

本文研究的网络体系结构主要包括1个输入层、10个卷积层、10个BatchNormalation层、10个激活层、5个MaxPooling层、1个Flatten层、1个LSTM层和1个dense层。

(1)卷积层

卷积计算能够使信号信息实现傅里叶变换[9],随着人们对图像处理领域的研究,发现基于卷积神经网络对图像进行处理能够取得极好的效果。通过设计合理的卷积核大小以及数量能够提取出图像本身的特征信息,卷积层数越多,其提取的特征信息就越深。因此卷积操作在图像的处理领域具有广泛的应用。

卷积的数学定义如公式(2)所示,该公式描述了一维信号的卷积计算。

式中,x(n)为输入信号,h(n)为单元冲击响应。在处理图像时,需要将一维卷积扩展为二维结构。给定图像矩阵和的实数范围,坐标yi,j的卷积值为:

数字图像简单地说就是一个二维矩阵,每一个矩阵值代表着像素点值。在图像上做此卷积操作就是利用卷积核在图像上滑动,将图像像素值与卷积核值相乘后再相加得出的结果,图像在卷积过程中会改变原始图像的大小,本研究可以通过设置strides和padding参数得到不同的输出尺寸的特征图。

图8显示了一个5×5的二维矩阵被一个3×3的卷积核操作得到一个3×3的矩阵。从图中可以看出,卷积不仅可以进行矩阵运算,还可以实现图像的下采样。

图8 二维图像卷积运算

(2)归一化处理

归一化是指通过一些变换将数据映射到一个较小的范围,一般是[-1,1],[0,1],其目的是将维数数据转换为无量纲数据。为了消去维度,必须除以相同维度的某个数。常用的归一化方法如公式(4)和(5)所示。

其中,max为样本数据的最大值, min为样本的最小值,x为样本数据值。

式中,μ表示所有样本数据的均值,σ表示所有样本数据的标准差。

(3)LSTM

如前所述,LSTM可以很好地处理时间数据。与卷积网络的输入是平面矩阵不同,LSTM网络的输入需要一个具有序列意义的向量。该网络外部为单个模块,如图9(a)所示,内部为链式结构,如图9(b)所示。内部结构如图10所示,单个的输入和输出由公式(6)定义。

图9 LSTM架构

图10 LSTM内部结构图

(4)全连接层

本研究在模型的最后一层中加入了全连接层即Dense层。图11展示了一个包含有输入层、隐藏层和输出层的简单的全连接网络。

图11 全连接网络

输入层包含三个元素1x、x2和3x。中间层有四个节点1y、y2、y3和y4。输出层有两个节点 1z和z2,如果各层之间没有激活函数,则中间层的值如公式(7)所示,输出层的值如公式(8)所示。

网络训练的目的是使所有权重w满足h(x) -z→ 0,即模型输出和真实插值趋于零,损失函数L的定义如公式(9)所示。

本文在模型中引入了“梯度”的概念,计算损失函数对权重矩阵每个元素的偏导数,将欧氏距离损失函数展开如公式(10)所示。

这样本文的网络训练目标改变为使公式9在各个方向上等于零。换句话说,在模型输出值和真实值之间没有梯度差。

2 实验评估

本研究中使用的工具包括TensorFlow和OpenCV。实验在单个NVIDIA Tesla V 100显卡上训练150次,平均每次训练耗时50秒左右。TensorFlow是Google的一个开源项目,它提供了一个强大且用户友好的API接口,允许用户以各种方式快速构建模型。OpenCV在这个实验中的作用是减少图像的采样,在不让图片失去自身独有特性的情况下,缩小图片的大小,使其在模型中运行更加方便。

数据集分为训练数据集和测试集。视频数据集的80%作为训练集,20%作为测试集。本实验将与庾晶等[10]提出的分类算法做对比,实验数据表明,在第90次左右的训练中,模型的分类准确率几乎达到了98%。表2展示的是本算法与对比算法在不同训练次数中准确度对比。图12和图13分别展示了训练准确度变化图和训练集上的损失值曲线图。

图13 损失值变化曲线

表2 不同训练次数精确度对比

图12 训练精确度变化趋势

从图中可以看出,在前20次训练中,模型的准确率快速上升,在第90次训练中稳定在98%左右。评价模型质量的另一个重要参数是“损失值”。从图中可以看出,损失值在前30次训练中迅速下降,在第80次训练后损失值稳定下来。最后本模型训练后的大小为58 MB左右,这个大小不仅可以嵌入到普通计算机中,也可以嵌入到移动端中,提高了本次研究在生产转化方面的可行性。

3 结论

本文结合卷积神经网络的方法对人体行为动作进行检测和分类。首先对视频进行帧采样、图像采样等视频预处理操作,然后对处理后的数据输入到模型中进行多次卷积。使用一层LSTM来提取帧的序列特征。最后通过全连接操作输出分类标签的概率。该模型对人体动作分类的准确率几乎是98.2%。这篇文章的不足之处是人体动作的行为类型较少。

猜你喜欢
卷积公式矩阵
组合数与组合数公式
排列数与排列数公式
基于3D-Winograd的快速卷积算法设计及FPGA实现
等差数列前2n-1及2n项和公式与应用
从滤波器理解卷积
例说:二倍角公式的巧用
基于傅里叶域卷积表示的目标跟踪算法
初等行变换与初等列变换并用求逆矩阵
矩阵
矩阵