一种基于时空多尺度Transformer的航拍视频分类方法

文档序号:31878018发布日期:2022-10-21 22:17阅读:40来源:国知局
一种基于时空多尺度Transformer的航拍视频分类方法
一种基于时空多尺度transformer的航拍视频分类方法
技术领域
1.本发明涉及遥感影像智能化分析领域,具体涉及一种基于时空多尺度transformer的航拍视频分类方法。


背景技术:

2.随着无人机行业与计算机视觉领域的高速发展,无人机所采集的高质量、高分辨率、高灵活性的海量视频数据极大促进了计算机视觉在航拍视频分析中的研究,同时,装载着智能影像分析系统的无人机可以完成各种特定的任务,如在农林植保、电力巡检、航空测绘、警用安全、物流运输等行业,具有极高的实用价值。我国的无人机正进入创新跨越发展的新时期,无人机的智能化是未来的重要研究方向。但是传统的卷积神经网络在充分并准确利用无人机的成像资源存在以下几个难点:
3.(1)无人机成像视角高、视野广,背景信息丰富,卷积神经网络虽然可以很好捕捉时空信息,但通过在局部内捕获全局的关系是有局限性的。
4.(2)卷积神经网络具有强烈的归纳偏置,在小数据集训练上是有益的,但在数据充足时,限制了模型在全部示例的表达能力。
5.(3)在高分辨率和长序列视频下,卷积神经网络的计算花费高,推理速度慢。
6.传统的视频分析处理方法包括三类:一是基于双流的神经网络方法,二是基于2d卷积神经网络的方法,三是基于3d卷积网络的方法。基于双流的神经网络是指输入为时间流和空间流,空间流处理单帧图片,时间流处理多帧的光流图片,但光流无法捕获长时序信息,而且提取光流的计算量是巨大的,这限制了其在工业中的广泛应用。基于2d卷积神经网络的方法是采用2d卷积提取空间特征的同时,通过差分、特征变换、多尺度融合等方式将时序信息引入空间特征中,虽然可以2d网络的复杂度逼近3d网络的精度,但依旧未解决卷积神经网络的局限性。基于3d卷积神经网络的方法是采用3d卷积从扩展的时间维度上捕捉时间特征与空间特征,同时通过叠加3d卷积捕获长时序信息,但是3d卷积的计算成本同样是巨大的,部署在设备上难度较大。


技术实现要素:

7.为了解决以上现有技术存在的问题,本发明提出了一种基于时空多尺度transformer的航拍视频分类方法。该方法包括:
8.获取航拍视频数据,并对所述航拍视频数据进行预处理;
9.将预处理后的航拍视频数据输入到训练好的基于多尺度transformer的航拍视频识别模型中,输出识别结果;
10.基于多尺度transformer的航拍视频识别模型包括将2d transformer网络作为主干网络,所述2d transformer网络包括预编码模块、由多级编码块结构构成的多尺度时空特征提取模块、空洞时间特征提取模块etm、以及全连接层的分类器;其中,每一级编码块结构包括多层编码块,每一层编码块包括两个特征偏移模块fs、多层感知器mlp、以及池化多
头自注意力模块pmha或者标准多头自注意力模块mha;其中一个特征偏移模块fs位于该层编码块的头部,另一个特征偏移模块fs插入在多层感知器mlp与池化多头自注意力模块pmha或者与标准多头自注意力模块mha之间,且池化多头自注意力模块pmha少于标准多头自注意力模块mha;所述预编码模块位于2d transformer网络头部,所述分类器位于2d transformer网络尾部,所述特征提取模块和所述空洞时序自注意力模块位于2d transformer网络中部,且所述空洞时间特征提取模块etm插入特征提取模块与全连接层的分类器之间。
11.优选的,航拍视频识别模型包括2d transformer网络vision transformer-base,该网络包含一个预编码模块、十二个编码块结构、一个全连接层的分类器。将特征偏移模块fs模块插入每个编码块中;将原本网络中的部分多头自注意力模块mha替换为池化多头自注意力pmha模块;空洞时间特征提取模块etm插入网络特征提取之后与分类器之间,整体构成航拍视频识别模型。
12.本发明的有益效果在于:
13.1.本发明利用池化多头自注意力模块pmha引入多尺度信息,这使得模型在早期着重关注高分辨力下图像的低级视觉信息,后期着重关注低分辨率下图像的深层语言信息,即利用了航拍影像丰富的背景信息,也关注了图像的深层细节信息,很好地适配航拍视频的特点。使用池化多头自注意力一方面规避了卷积神经网络在局部建模全局的局限性,另一方面很好地处理了航拍视频远近景目标语义大小不一致的问题。不仅在识别精度上得到了提升,池化操作还缩短了序列的长度,指数级别地减少了空间自注意力操作的运算量,显提升了运算效率。由于采用池化操作,不改变通道深度,采用全局自注意力,序列长度不受限制,所以可以采用cls token作为空间特征,参与自注意力计算的cls token的空间表达强于token的平均聚合,cls token与全序列相比输入特征偏移模块fs,前者操作简单并且避免产生过多的偏移补零,cls token序列也可作为后续的空洞时间特征提取模块etm的输入序列。
14.2.本发明利用了空洞时间特征提取模块etm,可灵活处理任意长度的视频数据,充分利用了无人机提供的高质量长时间的航拍数据。在nlp领域的相邻词向量相关性极强,采用窗口自注意力既减少了计算复杂度,同时直接避免无关token的注意力分配,提升准确度,但在cv视频分析领域中,邻近帧往往差异极小,采用窗口自注意力导致自注意力计算冗余,时间维度感受野较小。所以本发明在此计算空洞时间自注意力,与相同长度的窗口自注意力相比,可以计算更远的视频帧信息,可与很好地利用长时序信息增强模型的表达能力,与全局自注意力相比,实现了的计算时间自注意力的线性复杂度。计算空洞时间自注意力,能够提升航拍视频识别模型的准确性、有效性、可行性。
15.3.本发明利用特征偏移模块fs,只需在空间的计算中引入时间信息,无需引入额外参数量,这样能降低运算复杂度;在时空自注意力分离计算的模型下,计算空间自注意力的同时保持对时间信息关注,增强了对时间信息的利用,也增强了空间特征的表达,缓和了时间空间分开处理的弊端。
附图说明
16.图1为本发明的航拍视频分类方法流程示意图;
17.图2为本发明的基于时空多尺度transformer的航拍视频分类方法的流程示意图;
18.图3为本发明基于时空多尺度transformer网络结构示意图;
19.图4为本发明的基于时空多尺度transformer网络中编码块内部示意图;
20.图5为本发明的池化自注意力示意图;
21.图6为本发明的空洞时序自注意力编码块示意图。
具体实施方式
22.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
23.图1是本发明实施例提供的一种航拍视频分类方法,如图1所示,该方法包括:获取航拍视频数据,并对所述航拍视频数据进行预处理;将预处理后的航拍视频数据输入到训练好的基于多尺度transformer的航拍视频识别模型中,输出识别结果。
24.图2是本发明实施例提供了的一种基于时空多尺度transformer的航拍视频分类方法,如图2所示,所述分类方法中,对基于多尺度transformer的航拍视频识别模型的识别过程做了进一步限定;首先,需要获取等长视频序列,固定频率视频帧提取,从而形成t帧大小的视频帧序列;将每一视频帧切块,降低视频帧图像的分辨率;将二维的视频帧图像转换为一维序列,从一维序列中再来拼接分类标记cls token,加入位置编码信息后经过多尺度时空特征提取模块和空洞时间特征提取模块,得出航拍视频识别结果。
25.航拍视频数据的清洗与预处理操作包括:首先对视频数据进行剪辑,去除模糊、不稳定、无效的部分,获取高质量等长的视频段。可根据现有的计算资源调整提取的频率并将视频片段以固定频率提取视频帧,生成长度为t的视频帧序列的同时调整视频帧分辨率大小为224
×
224的固定尺寸。
26.其中,可以按照1:1的比例划分训练集和测试集,这些训练集合测试集都将作为样本视频进行训练和测试。
27.在示例性实施例中,本技术实施例中提到的样本视频是指对基于多尺度transformer的航拍视频识别模型训练一次所依据的样本视频,样本视频的数量可以为一个,也可以为多个,本技术实施例对此不加以限定。示例性地,样本视频的数量为多个,以保证模型训练效果。示例性地,对于样本视频的数量为多个的情况,不同的样本视频中的视频帧的数量相同,以保证模型的训练效果。
28.在本发明实施例中,所述航拍视频数据为对视频分类模型训练并测试的航拍样本视频,航拍视频数据按照需求和计算条件剪辑成有效的等长的视频片段作为训练集与测试集,保证同帧率采集结果相同。为避免数据不平衡的影响,不同类的视频数量要做到尽可能的相等,以保证模型训练效果。为避免同源视频影响测试结果,需要将同源视频剪辑出的多个视频片段放入同一训练集与测试集,以保证模型训练效果。
29.样本视频对应有分类标签,分类标签用于指示样本视频实际对应的类别。本技术实施例对样本视频对应的分类标签的表示形式不加以限定,示例性地,样本视频对应的分类标签利用样本视频实际对应的类别的标识信息表示,如,类别的名称、类别的代码等。示
例性地,样本视频实际对应的类别用于描述样本视频中的内容。示例性地,样本视频实际对应的类别为候选类别中的类别,候选类别根据经验设置,或者根据实际的应用场景灵活调整,本技术实施例对此不加以限定。
30.需要说明的是,一个样本视频实际对应的类别可能为一个或多个,本技术实施例对此不加以限定,例如,若一个样本视频中的内容为表演者弹奏乐器,则该样本视频实际对应的类别为弹奏乐器:或者,若一个样本视频中的内容为某人边散步边唱歌,则该样本视频实际对应的类别为散步和唱歌;或者,若一个样本视频中的内容为划船,则该样本视频实际对应的类别为划船。
31.在本发明实施例中,航拍视频数据剪辑生成的训练集与测试集为单标签,可根据需求设置标签,例如,若识别任务只有篮球场,只有全局的场景信息,可将标签设置为篮球场,但若识别任务有篮球场和打篮球,需要全局场景信息,也需要运动信息,就需要将无人打球的视频设置为篮球场,有人打球的视频设置为打篮球。这样可以通过标签的设置,让模型学习关注不同的区域与信息。
32.本发明实施例中的航拍视频数据的获取方式不加以限定,自行获取视频的方式为:操作无人机对目标场景或主体进行多角度、长时间、部分遮挡、不同光照的方式拍摄,再选择多个不同的目标场景或主体进行拍摄。通过计算机获取样本视频的方式为:在网络找寻找包含目标场景或主体的视频片段作为航拍视频数据,可以直接从现有的无人机航拍数据集中获取,如era,mod20,uavhuman。
33.图3为本发明基于时空多尺度transformer网络结构示意图,基于时空多尺度transformer的航拍视频识别模型如图3所示,包括:将2d transformer网络作为主干网络,所述2d transformer网络包括预编码模块、由多级编码块结构构成的多尺度时空特征提取模块、空洞时间特征提取模块etm、以及全连接层的分类器;其中,每一级编码块结构包括多层编码块,每一层编码块包括两个特征偏移模块fs、多层感知器mlp、以及池化多头自注意力模块pmha或者标准多头自注意力模块mha。
34.其中,一个特征偏移模块fs位于该层编码块的头部,另一个特征偏移模块fs插入在多层感知器mlp与池化多头自注意力模块pmha或者与标准多头自注意力模块mha之间,且池化多头自注意力模块pmha少于标准多头自注意力模块mha,也即是池化多头自注意力模块pmha替换了原始transformer网络中一小部分的标准多头自注意力模块mha,使得模型在早期着重关注高分辨力下图像的低级视觉信息,后期着重关注低分辨率下图像的深层语言信息,即利用了航拍影像丰富的背景信息,也关注了图像的深层细节信息,很好地适配航拍视频的特点;所述预编码模块位于2d transformer网络头部,所述分类器位于2d transformer网络尾部,所述特征提取模块和所述空洞时序自注意力模块位于2d transformer网络中部,且所述空洞时间特征提取模块etm插入特征提取模块与全连接层的分类器之间。
35.在一些优选实施例中,本发明的2d transformer神经网络为vision transformer网络,特征偏移模块fs为vision transformer网络中的编码块个数的二倍,三个池化多头自注意力pmha模块,网络只包含一个空洞时间特征提取模块etm。
36.如图4所示,基于多尺度transformer的航拍视频识别模型包括一个卷积层、一个全连接层、十二个编码块结构构成的一个多尺度时空特征提取模块、一个空洞时间特征提
取模块etm、一个分类器结构。如图4所示,每个编码块结构中插入两个特征偏移模块fs,分别位于block的输入和池化多头自注意力pmha模块或自注意力mha模块的输出,池化多头自注意力pmha模块替换stage2,stage3,stage4中第一个编码块中的多头自注意力mha。
37.在本发明实施例中,对航拍视频识别模型进行训练的过程包括:
38.s1:获取长度为t的训练视频帧序列;
39.s2:将训练视频帧序列输入至预编码模块,降低分辨率,补偿通道,拼接分类标记cls token并加入位置编码信息,以生成带有分类标记cls token的视频帧序列;
40.s3:将带有分类标记cls token的视频帧序列输入至多尺度时空特征提取模块,得到多尺度的时空特征,所述多尺度时空特征为不同分辨率下包含其他帧特征的视频分类特征;
41.s4:将每帧图像的分类标记cls token即帧分类信息构成帧分类信息序列,为帧分类信息序列拼接视频分类特征构成长度为t+1的cls token序列,并将cls token序列输入至空洞时间特征提取模块etm,得到cls token序列中的视频分类特征;
42.s5:将cls token序列中的视频分类特征输入至分类器,得到分数最大的分类结果即为视频分类结果;
43.s6:计算出分类过程的损失函数,通过损失函数更新网络参数,不断更新迭代,当损失函数降到最低时,模型训练完成。
44.在一些示例性地实施例中,步骤s1中,所获取的长度为t的训练视频帧序列是经过预处理后的航拍视频数据,在模型训练阶段,该训练视频帧序列即用作训练使用,在模型验证阶段,该训练视频帧序列则可用作验证使用,在模型测试阶段,该训练视频帧序列则可用作测试使用,可以理解的是,模型的训练、验证以及测试过程都有相似或者相同的处理流程,本领域技术人员应该知晓,在验证以及测试阶段按照可以同样按照训练流程对预处理后的航拍视频数据进行处理,以得到相应的航拍视频分类结果。
45.在一些示例性地实施例中,步骤s2中,如图3所示,将经过预处理的形成t帧输入序列,并送入航拍视频识别模型中,输入的t帧序列首先通过一个卷积层,降低输入序列的维度,并将信息补偿在通道维度上,举个例子,细节可以如下:通过96个大小为4
×
4步长为4的卷积核,将图片的维度由3
×
224
×
224转换为96
×
56
×
56,相当于将图像的单位由1
×
1像素转变成4
×
4像素组成的patch。然后将二维的图片转换一维序列,给每帧的一维序列拼接一个可学习的、参与注意力计算的、通道维度相同的分类标记cls token,再生成位置编码与序列相加。预编码模块的表达式为:
46.x1=catn(flat(conv2d(imgt)),cls)+pe
47.其中,img
t
为长度为t的视频帧,cls为分类标记cls token,catn为张量在维度n的拼接操作,flat(.)为二维矩阵转化为一维序列的函数,pe为位置编码信息,x1表示第一层编码块的输入。
48.步骤s3中,采用多尺度时空特征提取模块对输入的带有分类标记cls token的视频帧序列进行处理的具体过程包括:
49.s31:将带有分类标记cls token的视频帧序列构成输入序列输入至特征偏移模块fs中,对分类标记cls token的通道进行偏移,使得输入序列中不同视频帧图像之间建立时空信息的交互;
50.s32:将偏移后的输入序列输入至池化多头自注意力模块pmha或标准多头自注意力模块mha中,通过计算池化多头自注意力或标准多头自注意力得到不同尺度下的自注意力;
51.s33:将计算池化多头自注意力后的输入序列输入到mlp中,进行维度变换,并为线性的输入序列的维度变换关系引入非线性映射关系。
52.xm=xi+attention(sas(xi))
53.x
i+1
=xm+mlp(sas(xm))
54.其中将编码块分为attention、mlp、特征偏移模块fs三个部分,xi为编码块的输入序列,xm为mlp的输入序列,x
i+1
为编码块的输出序列。
55.然后将通过预编码模块的序列输入至第一个编码块结构,首先提取输入序列中cls token为第一分类标记矩阵cls∈r
t
×1×c,并进降维操作,将cls

cls

∈r
t
×c,得到第二分类标记矩阵cls

;设置维度与cls

完全相同的全零的第三分类标记矩阵s,将cls

的通道划分为三个部分,第一部分和第二部分沿着时间维度方向相反进行偏移,偏移距离为1帧,偏移后恢复原序列cls的维度,由于偏移导致cls token为空值的部分将进行补零操作,第三部分的通道保持不变,通过赋值得到偏移后的分类标记cls token所对应的第三分类标记矩阵clss,将偏移后的第三分类标记矩阵s进行升维操作,与第一分类标记矩阵cls的维度一致,并替换输入序列中未偏移的第一分类标记矩阵clscls;本实施例中首先设计出一个与cls

相同大小的且初始时为全零矩阵的第三分类标记矩阵s,通过对cls

的偏移,将cls

中偏移后的分类标记值填入s中,改变s中的相应元素值;通过对s矩阵进行升维,将cls中未偏移的分类标记值填入s中,改变s中的相应元素值,最终对全零矩阵进行更新,得到更新后的第三分类标记矩阵。其中,cls token偏移的表达式为:
56.s[:-1,:fold]=cls

[1:,:fold]
[0057]
s[1:,fold:2*fold]=cls

[:-1,fold:2*fold]
[0058]
s[:,2*fold:]=cls

[:,2*fold:]
[0059]
其中,r表示时空矩阵,t表示输入序列的长度,c表示通道个数,x∈r
t
×1×c为输入序列中cls token,fold为第一部分与第二部分二所偏移的通道长度,
[0060]
本模型设计十二层编码块,将其分为四个stage,每个stage包含三个编码块,每个stage拥有不同的分辨率和通道数,在每个stage第一个编码块中使用池化多头自注意力pmha减小分辨率(第一层编码块除外,使用多头自注意力mha模块,在预编码模块已经减少了分辨率,增加了通道),在最后一个编码块中的mlp增加通道数,网络结构输入的数据流如图所示。
[0061]
stagetensor shapepatch embeddingt
×3×
224
×
224stagelt
×
96
×
(56
×
56+1)stage2t
×
192
×
(28
×
28+1)stage3t
×
384
×
(14
×
14+1)stage4t
×
768
×
(7
×
7+1)etmt
×
768
mlp1
×
768
[0062]
将偏移后的序列根据编码块先通过layer normalization进行归一化,然后根据在编码块的层级判断计算池化多头自注意力pmha模块或自注意力mha模块,这里主要说明池化多头自注意力pmha模块的处理,图5为池化自注意力示意图。
[0063]
对通过偏移模块fs的输出序列进行线性映射得到查询张量q、键张量k、值张量v,
[0064]
q=x
swq k=x
swk v=xswv[0065]
wq,wk,wv为三个全连接层实现的、可训练的、参数共享的参数矩阵。
[0066]
在对序列(xs,q

,k

,v

)进行池化操作之前,剥离cls token,得对xsqkv进行最大池化操作,分辨率降低一倍,拼接cls token得再计算多头自注意力,最后输入dropout层,减少过拟合现象,总体结构为残差连接,在空间维度上得到多尺度时空交互的特征。池化多头自注意力pmha,与标准多头自注意力mha计算公式如下所示:
[0067][0068][0069][0070][0071]
其中为最大池化,是对内积矩阵进行逐行标准化。
[0072]
计算自注意力后将序列xm,通过fs模块引入时空的交互,再输入mlp block进行维度的变换并引入非线性,增加模型的表达能力。若编码块为stage的最后一个,mlp需要将通道维度增加二倍。计算自注意力和编码器内部的mlp均采用残差连接的方式加上原始输入。表达形式如下所示:
[0073]
xm=xi+attention(sas(xi))
[0074]
x
i+1
=xm+mlp(sas(xm))
[0075]
其中将编码块分为attention、mlp、特征偏移模块fs三个部分,xi为编码块的输入序列,xm为mlp的输入序列,x
i+1
为编码块的输出序列。
[0076]
最后一层编码块的输出为长度为t的cls token序列将序列x输入空洞时间特征提取模块etm,此时的cls token代表着每帧图像的分类信息,在cls token序列x拼接上视频分类特征token cls
t
。若视频帧序列长度小于预设长度,例如该序列长度较短且小于等于16帧(预设长度),可计算全局自注意力,反之计算空洞时序自注意力,为方便进行自注意力操作,在序列左右拼接长度为的全零掩码,空洞间隔为d,空洞的长度为n,每次沿时间维度滑动1帧距离。在计算空洞多头自注意力时,对于帧特征计算空洞自注意力,对于cls
t
计算全局自注意力。
[0077]
在本发明优选实施例中的,空洞时间特征提取模块etm设计为三层编码块结构,空洞时序自注意力编码块示意图如图6所示,对于每一层编码块j,etm中编码块的计算公式如下:
[0078]
cls=cat(clsj,mask(x))
[0079]
cls
j+1
=ω
t-msa
(clsj,cls)
[0080]
x
j+1
=ω
tw-msa
(xj,cls)
[0081]
其中,mask(
·
)为拼接全零掩码,表示在视频帧cls序列左右两端拼接有全零掩码,视频帧cls序列的长度等于t,为帧分类信息序列,mask(x)的长度大于t,clsj表示在etm中第j层编码块输入的视频分类特征,其长度为1,代表经过多尺度时空特征提取模块提取得到的视频分类特征,cls为完整的计算序列,其长度大于t+1;ω
t-msa
为时间维度的全局自注意力,ω
tw-msa
为时间维度的空洞自注意力,cls
j+1
表示在etm中第j层编码块输出的视频分类特征,也即第j+1层编码块输入的视频分类特征,因此cls
j+1
可以为etm的输出特征也可作为下一级block的视频分类特征输入,该视频分类特征cls
j+1
是经过全局自注意力计算后的特征,且初始输入的clsj是多尺度时空特征提取模块输出的不同分辨率下包含其他帧特征的视频分类特征;x
j+1
作为第j+1层编码块块的cls token序列输入,该x
j+1
是经过空洞时序自注意力计算后的特征,该特征能够很好地利用长时序信息增强模型的表达能力,因此将该特征作为etm的输出特征用于分类识别,能够提升航拍视频识别模型的准确性、有效性、可行性,且初始输入的xj为多尺度时空特征提取模块的输出序列即cls token序列
[0082]
时间维度的空洞自注意力与全局自注意力的计算量公式如下:
[0083]
ω
t-msa
=tf(t)
[0084][0085]
其中,t为视频帧的序列长度,n为空洞全长,d表示空洞间隔,f(x)为长度为x的序列的自注意力计算量。
[0086]
通过空洞时间特征提取模块etm训练得到代表视频的分类特征token将最后一层编码块输出的clsj视频分类特征输入一个全连接层便可得到最终的分类信息,表达形式如下:
[0087][0088]
其中fc(
·
)为输入维度为768,输出维度为总类别的全连接层分类器,max(
·
)表示对所有取分数最大结果,为视频的最终分类类别。
[0089]
模型的损失函数为交叉熵损失函数,其表达式为:
[0090][0091]
其中θ为模型参数,χ为输入数据,n表示训练的批次,nc表示总类别数,为特征通过全连接层分类器的结果,为事件示性函数,判断第i个样本是否为类别c,是为1,不是为0,事件示性函数表达式如下:
[0092][0093]
不断计算损失函数,通过反向传播更新网络参数,不断更新迭代,提高模型的识别准确度,当损失函数降到最低时,模型训练完成。经过上述过程后,可以从最后一层的全连接层fc输出航拍视频结果,以图3为例,获取航拍视频数据,并对所述航拍视频数据进行预处理后,经过训练好的基于多尺度transformer的航拍视频识别模型,就可以得出划船的分类识别结果。
[0094]
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1