APP下载

基于全局时空感受野的高效视频分类方法

2020-09-03王辉涛

小型微型计算机系统 2020年8期
关键词:全局时空卷积

王辉涛,胡 燕

(武汉理工大学 计算机学院,武汉 430070)E-mail:huyan@whut.edu.cn

1 引 言

视频分类是计算机视觉领域的一项基础性工作,是视频描述、动作检测、视频跟踪等高级任务的重要基础.近年来基于深度学习的方法已经取得了很大的进展,由于卷积神经网络(CNN)主要用于从静止图像中提取空间特征,而视频可以自然地看作是三维时空信号,因此有许多方法将CNN从图像扩展到视频进行信息提取.我们将利用时空信息进行视频分类的方法分为五类:双流CNN、2D CNN+LSTM方法、3D CNN、2D CNN+3D CNN的混合架构以及3D CNN+图卷积(GCN).为了提取时空信息,双流CNN架构[1-4]将RGB帧作为CNN的输入来建模空间特征,将运动相关信息,如光流[1,2]、光流引导特征[3]及运动矢量[4]作为CNN的输入来建模时间特征.为了提取更加有效的空间特征,Hu等人[5]提出了在ResNet网络[6]和Inception网络[7]中引入通道注意力机制的SENet网络,通过学习自动获取到每个特征通道的权重,然后依照权重去提升有用的特征并抑制对当前任务用处不大的特征.Sanghyun等人[8]在ResNet[6]和VGG网络[9]中引入一种结合空间和通道注意力机制的模块,相比SENet网络只关注通道的注意力机制,空间和通道注意力机制还可以增强特定区域的表征,获得更好的分类效果.Li等人[10]提出了类似于SENet网络的SKNet网络,在建模特征通道依赖的同时,可以自适应捕获不同感受野的特征.然而双流架构在建模时间特征时,运动相关信息的提取非常耗时,难以达到应用要求.另一种建立帧间时间关系模型的方法是使用循环神经网络.Ge等人[11]使用LSTM来整合2D CNN提取的特征.然而目前循环神经网络在视频分类领域的性能落后于最近的基于CNN的方法,这可能表明它们对长期动作的建模不够充分[12,13].

还有一些研究[14-17]利用三维卷积网络同时对视频剪辑的外观和运动特征进行建模,Tran等人[15]提出了一种具有3D卷积核的三维体系结构,直接从一堆图像中捕获时空特征.Sun等人[16]提出了一种时空卷积因子分解算法,将三维卷积分解为二维卷积和一维卷积,从而得到了更有效的时空表示.Hara等人[17]分别对具有3D内核的ResNet网络[6]、预激活ResNet网络[18]、RexNext网络[19]以及DenseNet网络[20]在动力学数据集上做了精度对比,其中3D ResNext101网络[19]效果最好,并成为当前视频分类方法的基准.然而在上述研究工作中卷积滤波器都是对局部区域进行操作,无法捕获大范围的时空依赖关系,Wang等人[21]受非局部均值思想的启发,在I3D网络[22]中引入一个非局部操作建模一定距离的像素之间的关系,用来捕获长距离时空特征依赖.Qiu等人[23]提出利用全局特征和局部特征融合的方法,然后再反馈给全局特征,使得全局特征和局部特征在3D ResNet101层网络中一起传播的LGD网络架构.此外还有研究通过3D网络提取的视频特征和物体检测算法获取的物体框构造图中的节点,再计算节点之间的关联性,进而构建整个图,然后送入图卷积(GCN)中对图的特征进行分类[24].然而在模型计算复杂度方面,3D CNN比2D CNN昂贵的多,并且容易出现过拟合,同样很难达到应用要求.

为了在速度和准确性之间寻求平衡,一些研究提出了类似的2D+3D混合架构[25-27],其中Zolfaghari等人提出的ECO方法[25]使用的3D ResNet18网络,相比于Tran等人[26]使用的3D ResNet34网络以及Xie等人[27]使用的复杂I3D网络,ECO方法具有更低的计算量,更适用于实时的应用场景中.ECO方法将3D ResNet18网络底部替换为2D BN-Inception网络进行低级语义特征提取,在速度和精度上获得了较好的结果,这表明在高级语义特征上的时间表示学习更有用.然而ECO方法在底层网络进行外观特征提取时,易受背景的影响,并且在高层网络学习时间表示时只关注局部时间窗内的动态,没有考虑动作的长期时间结构,同时使用的传统3D卷积核所需要的时空特征融合带来的训练复杂度以及所需的存储消耗限制了ECO方法的表现.

针对ECO方法中的缺点和限制,提出基于全局时空感受野的高效视频分类方法(CS-NL-SECO),CS是Channel-Spatial的首字母缩写,代表通道和空间注意力方法,NL是Non-Local的首字母缩写,代表全局时空感受野,SECO代表三维卷积核分解后的网络.首先将三维卷积核分解,不仅可以减少计算量,还可以增强3D网络学习时空特征的表现.其次在2D BN-Inception网络提取空间特征时引入通道和空间注意力方法,通过学习自动获取到每个特征通道以及每个特征中特定区域的权重,然后根据通道维度上的权重关注重要的特征通道,根据空间维度上的权重增强特定区域的表征.最后在3D ResNet网络对时空特征建模时,引入全局时空感受野方法来捕获大范围的时空特征依赖关系.我们将优化后的方法和原方法以及其他一些最新的方法进行对比,同时和自身也进行了分步对比,分析通道和空间注意力、全局时空感受野以及三维卷积核分解给原方法带来的效果提升.

2 CS-NL-SECO方法整体架构

我们的视频分类方法总体结构如图1所示,方法主体主要有以下4个模块组成:

图1 CS-NL-SECO方法总体结构

a)视频特征提取模块;

b)引入通道和空间注意力机制的二维CS-BN-Inception网络模块;

c)时域扩展模块;

d)引入非局部感受野和三维卷积核分解的三维NL-SResNet网络模块.

2.1 视频特征提取层

给定一段视频,把它按相等间隔分为k段{S1,S2,…,Sk},则整个视频可表示如下:

V={T1,T2,…,Tk}

(1)

其中T1,T2,…,Tk代表片段序列,每个片段从它对应的剪辑S1,S2,...,Sk中随机采样得到.

每个帧由一个二维卷积网络(权值共享)处理,该网络产生一个特征表示编码帧的外观.通过对覆盖整个视频的时间片段的帧进行联合处理,我们确保能够捕捉到一个动作在一段时间内最相关的部分,以及这些部分之间的关系.随机选取采样帧的位置比总是使用相同的位置更有优势,因为它在训练过程中带来了更多的多样性,并提高网络泛化能力.

2.2 CS-BN-Inception网络层

对于2D网络,我们使用BN-Inception的第一部分(直到inception-3c层).它有2D过滤器和带BN的池化内核.我们选择这个架构是因为它的高效.为了更好建模特征通道依赖关系,我们在BN-Inception中的每一层引入通道和空间注意力(CS)机制.

2.3 时域扩展层

为了解随着时间的推移动作在场景中的表示,我们将所有帧的表示叠加起来,并将其扩展到时域上,输入到一个3D卷积神经网络中.时域扩展公式如下:

(2)

2.4 三维NL-SResNet网络层

我们使用3D ResNet18网络的部分层,第一层是resnet3a_2层,之后跟3D ResNet18网络结构相同.为了减少计算量,并且更好地对视频进行时空特征建模,我们首先将三维卷积核分解,来更好地学习时空特征,并减少网络计算量,其次引入全局感受野来捕获大范围的时空依赖关系.

3 CS-NL-SECO方法的核心思想

3.1 基于CS注意力建模特征通道依赖关系

BN-Inception网络虽然可以捕获多尺度的空间特征,但忽视了特征通道间的依赖关系以及特征中位置的相关程度.因此我们在BN-Inception网络中的每一层引入通道和空间注意力(CS)方法,通过学习自动获取到每个特征通道以及每个特征中特定区域的权重,然后根据通道维度上的权重关注重要的特征通道,根据空间维度上的权重增强特定区域的表征,抑制不相关的背景,从而获得更有效的空间特征.如图2所示,当前2D BN-Inception层输出特征图F∈RC×H×W作为通道和空间注意力方法的输入,首先经过通道注意力模块得到1维的通道注意力特征图Mc∈RC×1×1,其次经过空间注意力模块得到空间注意力特征图Ms∈R1×H×W,计算公式如下:

图2 通道和空间注意力结构

F′=Mc(F)⊗FF″=Ms(F′)⊗F′

(3)

其中⊗代表点乘,Mc表示经过通道注意力提取的特征,Ms表示经过空间注意力提取的特征,F′代表Mc与输入特征F点乘得到的通道注意力优化的中间特征图,F″代表经过通道和空间注意力最终优化后的输出.

3.1.1 通道注意力模块

图3 通道注意力结构

Mc(F)=σ(MLP(AvgPool(F))+MLP(MaxPool(F)))

(4)

其中σ代表激活函数,W0∈RC/r×C,W1∈RC×C/r是多层感知机中的权重,对于两个中间特征图是权重共享的.

3.1.2 空间注意力模块

图4 空间注意力结构

Ms(F)=σ(f7×7([AvgPool(F));MaxPool(F)]))

(5)

其中σ代表激活函数,7×7表示卷积核的大小,7×7的卷积核比3×3的卷积核效果更好.

3.2 基于全局感受野建模长距离时空特征

ResNet网络无法捕获大范围的时空特征依赖关系.因此我们在ResNet网络中引入全局时空感受野方法,通过计算某个位置的响应时,考虑所有位置特征的加权,所有位置可以是空间的,时间的,时空的,因此可以捕获时空特征的长范围依赖关系.计算公式如下:

(6)

其中x表示输入特征,y表示输出特征,其维度和x相同.f是配对计算函数,来计算当前i和所有可能关联的位置j之间的相关度.g用于计算输入特征在j位置的特征值.C(x)是归一化参数.

为了建模两个位置之间的相关程度,这里我们选用嵌入高斯函数,它的优点是更加通用,在嵌入空间中计算高斯距离.计算公式如下:

f(xi,xj)=eθ(xi)Tφ(xj)

(7)

其中θ(xi)=Wθxi和φ(xj)=Wφxj是两个嵌入函数,归一化函数C(x)=∑∀jf(xi,xj).

为了简化,我们只考虑g是线性的情况计算输入特征在j位置的特征值.计算公式如下:

g(xj)=Wgxj

(8)

图5 全局感受野结构

3.3 基于分离的时空卷积核来更好地建模时空特征

传统的3D卷积神经网络所需要的时空特征融合带来的训练复杂度以及所需的存储消耗限制了3D网络的表现.因此我们将传统的3×3×3的卷积核分解为1×3×3的空间二维滤波器和3×1×1的时间一维滤波器.如图6所示,通过使时间一维滤波器级联地跟随空间二维滤波器来考虑堆叠,这两种滤波器可以在同一路径上直接相互影响,只有时间一维滤波器直接连接到最终输出,公式如下:

图6 分解后的三维卷积核

xt+1=T(S(xt))

(9)

其中xt为第t层的输入,xt+1为第t层的输出,S为空间二维滤波器,T为一维时间滤波器.

4 视频分类训练算法

算法1.视频分类CS-NL-SECO训练算法

输入:原始视频流

输出:收敛的CS-NL-SECO方法

//构建数据集

1.Ω←φ

2.for r = 0 to N-1 do //N表示视频的总数

3.Vr={S0,S1,…,Sk-1} //其中k表示第k帧

4.Lr=get_label(Vr) //得到视频的标签

5. 将一个训练实例{Vr,Lr}放入Ω

6.end for

//训练模型

7.初始化CS-NL-SECO方法所有参数ϑall,将数据集随机划分为训练集Ωt和测试集Ωv

8.do{

9. 从训练集中随机选取一个batch的示例

10. for i = 0 to S-1 do //S表示采样帧数

11. if(BN-Inception模块)

//Lb表示BN-Inception模块的卷积层数

12. for j = 0 toLb-1 do

13. if(通道和空间注意力模块)

14. 根据公式(3),将特征经过公式(4)和公式(5)的连续推理,得到提炼的特征

15. end if

16. 连续Conv-BN-ReLU操作

17. end for

18. end if

19. end for

20. if(时域转换模块)

21. 根据公式(2)将所有采样帧的表示叠加起来,并将其扩展到时域上

22. end if

23. if(三维卷积核分解后的ResNet模块)

//Lm表示ResNet模块的卷积层数

24. for k = 0 toLm-1 do

25. 连续Conv-BN-ReLU-残差连接操作

26. if(全局感受野方法模块)

27. 根据公式(6)捕获长范围时空特征依赖关系

28. end if

29. end for

30. end if

31. 最后,通过交叉熵损失函数求得误差,更新全局参数ϑall

32.}while(满足优化条件则停止)

5 实 验

5.1 实验环境和实验数据

5.1.1 实验环境

操作系统Ubuntu 18.0.4,64位;Pytorch框架;16核i9-9900k处理器;内存大小为32GB;RTX2080Ti图形处理器,4块,显存大小为11GB.

5.1.2 数据集

本文在视频分类领域最流行的4个视频数据集上评估了所提出的方法:

UCF101数据集[28]是最流行的视频动作识别基准,包含来自101个动作类别的13320个视频.数据集组织者提供了三个训练/测试片段,UCF101中的每个片段包括大约9.5K的训练视频和3.7K的测试视频.

HMDB51数据集[29]包含来自51个动作类别的6849个视频片段,HMDB51和UCF101数据集遵从THUMOS13验证方法,分别在这两个数据集的3个split上进行训练和测试,最后取测试结果的平均值作为最后结果.

Something-something数据集[30]包含来自174种物体和动作类别的108499个标注视频片段,其中标注是基于模板的文字描述,比如“把某物丢进某物”,每个视频的时长在2-6秒,该数据集包括86K的训练视频和11.5K的测试视频.

Kinetics数据集[22]由大约300000个视频剪辑组成,涵盖400个人类动作类,每个动作类至少有600个视频剪辑.每个剪辑持续大约10秒钟,并标有一个类.所有剪辑都经过多轮人工注释,每个剪辑均来自一个独特的YouTube视频.这些动作涵盖了广泛的课程,包括人与物体交互,如演奏乐器,以及人与人之间的互动,如握手和拥抱.

5.2 评价指标

我们采用Top-1、Top-5准确率来评价视频分类方法的性能,其计算方法如下:

(10)

其中P表示Top-1、Top-5准确率,TP表示分类正确的样本数,Top-1分类正确:即对网络输出的C维向量(该视频属于各类别的概率值,C为类别数)中的元素降序排列,如果概率最大值所对应的类别与真实视频标签相符,则该视频分类正确,否则分类错误.Top-5分类正确:只要概率排名前五个中有对应的类别与真实视频标签相符,则该视频分类正确,否则分类错误.FP为分类错误的样本数.

另外,我们使用网络的参数量(Params)和计算量(FLOPs)去评判网络的空间复杂度和时间复杂度.

5.3 实验设置

对于视频帧采样策略,我们将训练集和测试集中的每个视频片段均分为k段,并在训练和测试时随机在每个时间片段中选取一张帧,这种采样方法不仅可以减少帧与帧之间的数据冗余,还可以充分利用视频中的所有帧得到视频级的表示,提高了方法的鲁棒性.对于k的设置,我们设为8、16以及32进行训练和测试.主要因为视频时长较低,解码完以后通常可以得到120至200张图片,如果采样过多,则帧之间的场景几乎没有变化,并且在视频分类的研究中一般稀疏采样16帧或者32帧就可以得到最佳的结果.

对于数据增强,我们首先将帧尺寸调整为240×320,对调整后的帧使用固定角裁剪、尺寸抖动以及水平翻转等数据增强技术.其次运用去中心化方法,将逐个样本减去对应维度的统计平均值,来消除公共的部分,以凸显个体之间的特征和差异.最后调整裁剪区域的大小为224×224.

对于网络训练,我们使用原方法提供的预训练权重在四个数据集上重新测试得到新的基准.使用ECO方法在Kinetics数据集上的权重对Inception网络初始化,使用2D ResNet18在ImageNet数据集[31]上预训练的权重对3D卷积核分解后的空域卷积核进行权重初始化,时域卷积核被作为恒等映射进行随机初始化.我们参考原方法使用较小的学习率0.001进行微调,当验证损失趋于稳定时将学习率降低10倍.使用Xavier来随机初始化权重参数,使用交叉熵作为损失函数对模型的参数求梯度进行更新,使用随机梯度下降优化(SGD)算法对模型进行优化.动量参考原方法设为0.9,权重衰减为0.0005,因为Kinetics数据集过大,batch-size设置为4.为了防止过拟合,在全连接层前使用dropout层,dropout ratio设为0.3,经过测试发现设为0.5的结果没有0.3好.当三维卷积核分解后的网络训练完成后,将训练得到的权重对新引入的通道和空间注意力模块以及全局时空感受野模块分别进行微调,将新引入的模块学习率设置为0.01,原模块学习率保持0.001不变,我们也测试了新引入的模块学习率设为0.1和0.001的情况,结果显示设为0.1时精度较低,设为0.001时收敛速度略慢.我们在Kinetics数据集上训练完后分别在UCF101、HMDB51以及Something-something数据集上仅对全连接层微调,学习率设置为0.001,batch-size设置为64,其他参数与在Kinetics数据集上训练的设置保持相同.

5.4 实验结果与分析

5.4.1 消融实验

本节在Kinetics数据集上采样32帧进行实验,对比不同方法的提升效果,其中SECO代表将3D时空卷积核分解成空域卷积和时域卷积的方法,SE代表使用了通道注意力方法,CS代表通道和空间注意力方法,SK代表自适应感受野方法,NL代表全局感受野方法,2D代表仅在二维网络中实验,3D代表仅在三维网络中实验.实验结果如表1所示.

表1 Kinetics数据集消融实验

从表1可以看出,我们在原有方法基础上分解三维卷积核以后,SECO方法不仅精度高,而且参数少,计算量小,我们认为这种三维卷积核分解有利于减少过拟合,同时并没有降低模型的表达能力.在此基础上对特征通道依赖关系建模,首先在2D网络中使用通道注意力方法以后,参数量和计算量增加可忽略不计,精度提升了0.4%,在此基础上引入空间注意力以后,精度提升了0.7%.为了尝试Inception网络中引入自适应感受野方法,我们调整3×3和5×5的通道数,让二者保持一致,在增加一部分参数和计算量的情况下,精度有所下降,我们认为自适应感受野方法本身借鉴了Inception多尺度的思想,同时建模了通道依赖关系,引入到我们的Inception网络中,改变了原有的Inception架构,破坏了Inception的高效.在对长期时空特征依赖关系进行建模时,我们首先在Inception网络中引入全局感受野方法,我们可以看到参数量和计算量比通道和空间注意力方法高出很多,这是因为底层网络的尺寸较大.但是精度却没有通道和空间注意力好,我们认为通道和空间注意力在关注通道的同时,也增强了特定区域的表征,而全局感受野方法存在通道依赖关系上的建模不足.其次在3D网络中引入全局时空感受野方法,参数量和计算量增加不大的情况下,精度有了很大的提升.我们认为视频中相关的物体可能出现在较远的空间和较长的时间,而原方法中没有能力去捕获这些相关性,但是我们的方法可以捕获它们的相关性.最后我们在2D和3D网络中同时去优化,我们发现在二维网络中引入通道和空间注意力,三维网络中引入全局时空感受野比只引入全局时空感受野的精度更好,这是因为通道和空间注意力可以弥补全局时空感受野在通道上建模的不足,同时参数量和计算量相比SECO方法仅有些许增加.

5.4.2 不同采样帧数下的对比实验

本节探索了不同的采样帧数对视频分类的影响,我们分别测试了采样8帧、16帧以及32帧时在四个数据集上的的分类效果,实验结果结果如表2所示.

从表2可以看出,在UCF101、HMDB51和Kinetics数据集上,随着采样数的增加,分类的精度越高,这证实了文献[22]和文献[32]中的观察结果.而在Something数据集上,当采样帧数为32与采样帧数为16相比时,分类精度反而下降了,这是因为随着采样数增加,帧级预测的准确率越来越高,而视频级预测作为所有帧级预测结果的平均,融合的效果就不会再那么明显了.同时我们也可以观察到,随着采样帧数的增加,通道和空间注意力和全局时空感受野对原方法提升的效果更好.我们认为采样帧数的增加带来了更丰富的时空特征,从而提升效果更好.

表2 不同采样帧数的实验对比

为了进一步证明我们提出的方法有效性,我们在较小的UCF101数据集上给出一个定性的分类结果,如图7所示.图7展示了原方法和我们改进后的方法在UCF101数据集split1片段上的Top-5预测结果的比较.结果表明,在空间特征相似的情况下,原有的ECO方法无法通过外观特征简单的区分类别,容易被短期的时空特征依赖关系所欺骗.例如拳击沙袋和拳击速度袋虽然在短期片段中看起来类似,但在长期片段中有很大差异.而我们的方法可以捕获长期的动作片段,提供更准确的全局特征,所以可以区分在短期片段中看起来相似但在长期中可能有很大差异的动作.

图7 与ECO在Top-5分类结果上对比

5.4.3 与最新方法对比

本节在UCF101、HMDB51和Kinetics数据集上与其他以RGB帧为输入的最新方法上的精度和速度进行对比,结果如表3所示.

表3 与最新方法在速度和精度上的对比

从表3可以看出,与I3D方法、STC方法、ARTNet方法以及ECO方法相比,我们的方法无论是精度还是速度都远远优于它们;与NLI3D方法和LGD-3D相比,虽然我们的方法精度比其略低,但它们是建立在101层网络的基础上,我们的方法计算量远远小于它们.与MFNet方法相比,虽然我们的计算量比它大一些,但是在三个数据集上的精度却比它高.与S3D-G方法、R3D-34方法以及FASTER32方法相比,虽然在三个数据集的精度很接近,但是我们的计算量要小于它们.

为了更清晰地的看到我们的方法在精度和速度上的优势,我们对最新的方法做了一个精度和速度对比图,如图8所示,最优的方法更接近左上角,可以明显的看到,一些方法取得了很高的精度,但是在速度上牺牲很大.一些方法取得了很快的速度,但是精度上略有不足.而我们的方法位于左上角,在速度和精度上达到了较好的平衡.

图8 与最新方法在Kinetics上精度和速度对比

6 结束语

本文提出了一种基于全局感受野的高效视频分类方法,该方法通过分离三维卷积核来减少计算量和更好地学习时空特征,引入通道和空间注意力机制自动获取每个特征通道以及每个特征中特定区域的权重,然后根据通道维度上的权重关注重要的特征通道,根据空间维度上的权重增强特定区域的表征,抑制不相关的背景.引入全局感受野方法深度建模长期的时空特征依赖关系.在四个公共数据集上的实验结果表明,我们提出的方法是有效的、可行的,并且对基于混合架构(2D+3D)的视频分类方法有一定的贡献.在未来的研究工作中,我们将光流引入到我们的方法中,将基于光流和RGB特征的损失和标准交叉熵损失进行线性组合来设计新的损失函数,实现光流获取的知识通过输入的RGB流传递到我们的网络中以避免在测试时进行光流计算,在保证推理速度不下降的情况下,进一步提升精度.

猜你喜欢

全局时空卷积
基于全卷积神经网络的猪背膘厚快速准确测定
基于改进空间通道信息的全局烟雾注意网络
领导者的全局观
跨越时空的相遇
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
二分搜索算法在全局频繁项目集求解中的应用
玩一次时空大“穿越”
落子山东,意在全局