基于Transformer的视频多标签动作识别方法与流程

专利检索2022-05-10  2


基于transformer的视频多标签动作识别方法
技术领域
1.本发明属于计算机视觉领域。


背景技术:

2.随着视频检索、人机交互、视频监控、数字娱乐等应用的发展,视频理解和视频动作识别也占据着越来越重要的地位。视频动作识别的方法可以大体概括为两步:1)提取视频特征;2)将视频特征输入到分类器中得到各个标签的概率分布,概率最大的标签就是所输入视频的预测标签。
3.传统的视频识别方法通过改进后的密集轨迹方法(idt)对视频特征进行提取,并且通过费舍尔(fisher)编码方式将视频帧变为相同维度的向量,将视频特征向量输入到支持向量机(svm)中得到概率分布。后来随着cnn的出现,视频领域也出现了3d

cnn,对视频的空间上和时间上都进行卷积操作从而提取出视频的特征,再输入到svm中,这些视频识别方法在较短和内容简单的数据集上取得了不错的效果,例如ucf101和weziman数据集。但是在类似于hollywood2这种以电影片段为主的多动作的复杂视频数据集上,所取得的效果就很差。
4.在现实生活场景中,所获得的视频大多都是时间较长,且视频内容比较复杂的,因此近些年来,人们也致力于多动作的复杂视频动作识别研究。典型的复杂视频动作识别方法有单镜头动作检测器(ssad)、时态分割网络(tsn)、慢速网络(slowfast network)、高效卷积网络(eco)等。这一类方法不仅需要消耗大量的训练时间且大多只是通过单个标签对一段视频进行描述,最后再通过单标签分类对视频动作进行识别,但是在实际应用场景中,我们很难用一个标签去准确的描述整段视频,例如这样一个镜头:一个人在坐着说话,如果选择单标签分类的话,我们可以将这段视频中的动作描述为“坐”,但是也可以将动作描述为“说话”,因此多标签分类被应用在了视频领域上。虽然已经产生了很多视频多标签分类的方法,但是大多数方法都忽略了标签与标签之间所存在的依赖关系。
5.综上所述,我们知道目前为止,视频动作识别技术所面临的主要难题为:
6.1)现有动作识别方法大多只用单个标签描述视频,不符合实际应用场景;
7.2)现有多标签分类方法大多没有考虑标签与标签之间的依赖关系;
8.3)现有模型需要消耗大量的时间进行训练。


技术实现要素:

9.发明目的:为了解决上述现有技术存在的问题,本发明提供了一种基于transformer的视频多标签动作识别方法。
10.技术方案:本发明提供了一种基于transformer的视频多标签动作识别方法,具体包括如下步骤:
11.步骤1:采用3d

cnn的方法提取长视频的特征序列,特征序列中第i个特征向量对应在长视频中时序位置为i的视频帧;i=1,2,...,m,m为特征序列中特征向量的总个数,
12.步骤2:对特征序列进行降维处理,得到新的特征序列f;
13.步骤3:将特征序列f与预设第一权重矩阵w相乘得到特征序列v,v={v1,v2,...,v
i
,...,v
m
},其中v
i
为v中第i个元素;
14.步骤4:对v中每个元素对应的视频帧在长视频中的时序位置进行编码得到位置编码矩阵p={p1,p2,...,p
i
,...,p
m
},p
i
为p中第i个元素;
15.步骤5:将步骤3得到的特征序列v和位置编码矩阵p分别作为transformer编码器的输入,得到transformer编码器输出的序列v

={v
′1,v
′2,...,v

i
,...,v

m
},v

i
为v

中第i个元素;
16.步骤6:根据v

提取长视频中关键动作的开始帧和结束帧,将v

中与开始帧对应的元素作为开始元素v

start
;v

中与结束帧对应的元素作为结束元素v

end

17.步骤7:采用预设的序列作为开始标记,将开始标记与位置编码矩阵p分别作为transformer解码器的输入;
18.步骤8:将v

start
,v

end
以及v

中位于v

start
和v

end
之间的元素按照对应的视频帧在长视频中的时序位置依次排序组成序列将乘以预设的第二权重矩阵得到矩阵k,将乘以预设的第三权重矩阵得到矩阵k

;将矩阵k和矩阵k

输入至transformer解码器中muti

head attention层;
19.步骤9:transformer解码器输出长视频中关键动作的所有分类标签。
20.进一步的,采用教师网络,通过知识蒸馏的方式对transformer编码器和transformer解码器进行训练。
21.进一步的,所述步骤4中根据如下公式计算得到p
i

[0022][0023]
其中,m为v中每个元素的维度,且m为偶数。
[0024]
进一步的,所述步骤6中根据v

提取长视频中关键动作的开始帧和结束帧具体为:设置第一网络模型和第二网络模型;所述第一网络模型和第二网络模型的结构相同均包括相互连接的点乘模块和softmax模块,将第一网络模型和第二网络模型均作为学生网络,采用教师网络分别对第一网络模型和第二网络模型进行训练;得到第一网络模型的权重向量s和第二网络模型的权重向量e;
[0025]
将序列v

输入至训练好的第一网络模型,点乘模块将v

中的元素与权重向量s进行点乘得到向量a={a1,a2,...,a
i
,...,a
m
},其中a
i
=v

i
·
s;将向量a输入至softmax模块根据如下公式计算a中每个元素的概率,并选择概率最大的元素对应的视频帧作为开始帧:
[0026][0027]
其中exp(
·
)表示e
(
·
)

[0028]
将序列v

输入至第二网络模型中,点乘模块将v

中的元素与权重向量e进行点乘得到向量a’;将向量a’输入至softmax模块计算a’中每个元素的概率,并选择概率最大的元素对应的视频帧作为结束帧。
[0029]
有益效果:
[0030]
(1)本发明主要使用了transformer模型,transformer模型本身的结构能够有效的弥补传统深度学习网络模型的不足。
[0031]
(2)本发明只对视频中的关键片段进行多标签分类,在一定程度上有效的减少了模型的数据量,同时这种方法也能够很好的用于长视频的动作识别。
[0032]
(3)不同于大多数的传统方法,本发明在获取到视频多标签的同时,也考虑了标签与标签之间的联系,从而提高了多标签分类的精度。
[0033]
(4)本发明采取知识蒸馏的方法对本发明中所提出来的所有网络模型进行训练,有效的减少了模型的训练时间。
附图说明
[0034]
图1为整个transformer结构图;
[0035]
图2为本发明的关键动作检测过程图;
[0036]
图3为本发明的多标签分类过程图。
具体实施方式
[0037]
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
[0038]
本实施例提供基于transformer的视频多标签动作识别方法,该方法整体思路是在一段长视频中检测出动作所在的视频片段,预测该段视频的多标签。本方法的主要核心是对视频关键动作进行检测,首先提取长视频的特征,将视频的特征序列输入到transformer编码器中,得到一个新的序列,对所得序列进行进一步处理得到视频关键动作所在的开始帧和结束帧,将关键动作片段输入到transformer解码器中,根据标签与标签之间的关系预测视频的多个标签,并且通过知识蒸馏的方式对模型进行训练,其具体步骤如下:
[0039]
所述关键动作检测部分具体包括如下步骤:
[0040]
步骤1:提取一段长视频中的视频帧,共有m帧,通过3d

cnn的方法提取长视频特征,m个特征向量组成特征序列,特征序列中第i个特征对应在长视频中时序位置为i的视频帧;i=1,2,...,m;所述时序位置为对每个视频帧按照时间序列从1到m进行编码,该编码为时序位置;
[0041]
步骤2:对特征序列通过1
×
1卷积进行降维处理,处理后得到新的序列f={f1,f2,...,f
m
};f
i
表示f中第i个元素;
[0042]
步骤3:将特征序列f与一个权重矩阵w相乘得到特征序列v={v1,v2,...,v
m
};
[0043]
步骤4:对v中每个元素对应的视频帧在长视频中的时序位置进行编码得到位置编码矩阵p={p1,p2,...,p
i
,...,p
m
},p
i
为p中第i个元素;
[0044]
步骤5:将步骤3得到的特征序列v和位置编码矩阵p共同作为transformer编码器的输入,得到新的序列v

={v
′1,v
′2,...,v

m
},即word embedding;
[0045]
步骤6:根据v

提取长视频中关键动作的开始帧和结束帧,将v

中与开始帧对应的元素作为开始元素v

start
;v

中与结束帧对应的元素作为结束元素v

end

[0046]
所述多标签分类部分具体包括如下步骤:
[0047]
步骤a:通过一个预设的序列来表示开始标记,并且将开始标记输入到transformer结构的解码器中,这也是输入解码器的第一个序列;
[0048]
步骤b:将编码器中提取到的开始帧位置和结束帧位置之间的word embedding作为解码器中多头注意力(muti

head attention)层的输入;
[0049]
步骤c:解码器输出视频的一个预测标签;
[0050]
步骤d:将步骤c得到的预测标签重新作为解码器的输入,从而得到下一个预测标签;
[0051]
步骤e:重复步骤c和步骤d,直到解码器输出结束标记,结束标记也是通过一个特殊的序列来进行表示,最终得到关于该视频动作片段的所有分类标签。
[0052]
所述方法训练过程具体包括如下步骤:
[0053]

训练教师网络(net

t);
[0054]

将本发明的编码器和解码器作为学生网络(net

s)在高温t下,蒸馏net

t的知识到net

s。
[0055]
优选的,本实施例中,选取youthbe

8m作为模型训练与测试的数据集,以单个视频为例,如图1所示,本实施例中长视频共有4帧,m=4,提取视频的3d

cnn特征,简称c3d,c3d特征既能表征时域动作信息,又能表征空域动作特征,通过在帧内和帧之间进行卷积操作和池化。
[0056]
优选的,所述步骤4对视频帧的时序位置进行编码得到位置编码矩阵p={p1,p2,...,p
m
},具体方法为:
[0057][0058]
其中,m为v中每个元素的维度,且m为偶数。
[0059]
在本实施例中,矩阵v={v1,v2,v3,v4},编码矩阵序列维度为m=4,则},编码矩阵序列维度为m=4,则},编码矩阵序列维度为m=4,则同理也可以得到其他的位置编码序列,最终得到编码矩阵p={p1,p2,p3,p4}。
[0060]
优选的,所述步骤5将特征序列v和位置编码矩阵p共同作为transformer编码器的输入,如图1所示,将视频特征序列v={v1,v2,v3,v4}和位置编码矩阵p={p1,p2,p3,p4}输入到编码器中,得到编码器的输出v

={v
′1,v
′2,...,v

m
},具体方法为:
[0061]
5.1)如图1所示,transformer模型编码器包括依次连接的multi

head attention层、残差和归一化、全连接层、残差和归一化,将特征序列v={v1,v2,v3,v4}和位置编码矩阵p={p1,p2,p3,p4}相加后得到一个新的序列,记为v

={v
″1,v
″2,v
″3,v
″4}={v1 p1,v2 p2,v3 p3,v4 p4},将这个序列输入到编码器的multi

head attention层;
[0062]
5.2)在编码器的multi

head attention层中,通过输入的序列v

={v
″1,v
″2,v
″3,v
″4}计算得到矩阵q={q1,q2,q3,q4}、k={k1,k2,k3,k4}、其中q=w
q
·
v

,k=w
k
·
v

,v=w
v
·
v

,w
q
、w
k
、w
v
表示权重且随机初始化,将q、k、v中的每一个序列与对应的权重矩阵相乘得到多个新的序列,新的序列就被称为“头”(head),在本实施例中,生成两个“头”,即,即表示权重,且随机初始化,同理也可得到q
31
、q
32
、q
41
、q
42
,也可以用同样的方式得到k
11
、k
12
、k
21
、k
22
、k
31
、k
32
、k
41
、k
42
、v
11
、v
12
、v
21
、v
22
、v
31
、v
32
、v
41
、v
42
,这些新的序列往往被用于完成不同的任务。对这些生成的“头”进行注意力(attention)操作,本实施例中mutihead(q,k,v)=concat(head1,head2,head3,head4)w
o
,w
o
的含义,concat(
·
)表示将序列进行上下拼接,head
i
表示的是第i个头,其中个头,其中其中d
k
表示矩阵中每个序列的维度,w
o
,都表示权重矩阵,且随机初始化,在multi

head attention层会得到m个新的序列;
[0063]
5.3)将muti

head attention层得到的序列输入到残差和layer normalization(归一化)层,得到新的序列,layer normalization的作用就是将输入的序列转化为均值是0方差是1的数据,layer normalization的特点是在计算均值和方差,将样本记为x
i
(第x个序列的第i个元素),在本实施例中,我们将输入到这一层的第x个序列的第i’个元素看成是样本x
i’,则公式为其中u
l
为l个样本的均值,l为样本的总个数,为l个样本的方差,α表示的是增益,β表示的是偏置,其存在的主要作用是对归一化的数据进行缩放和移位。ε是一个很小很小的数;
[0064]
5.4)残差和layer normalization(归一化)层的输出输入到全连接层得到新的序列,本实施例全连接层共包含两个隐藏层,并且选择relu作为激活函数,全连接层的操作表示为:ffn(x)=max(0,xw1 b1)w2 b2,其中w1、b1表示第一层隐藏层节点的权重和偏置,w2、b2表示第二层隐藏层节点的权重和偏置,x表示的是输入至全连接层的序列,也就是矩阵;
[0065]
5.5)将全连接层得到的序列再输入到残差和layer normalization层,得到最终的输出序列word embedding。
[0066]
优选的,在本实施例中,所述步骤6根据v

提取长视频中关键动作的开始帧和结束帧置,即定位出视频中关键动作所在片段,具体方法为:
[0067]
6.1)如图2所示,通过编码器得到了新的序列,序列组成的矩阵记为v

={v
′1,v
′2,...,v

m
},本实施例中m=4;则v

={v
′1,v
′2,v
′3,v
′4};再添加一个新的权重向量s,s是通过第一网络模型训练学习得到的,第一网络模型包括相互连接的点乘模块和softmax模块,将第一网络模型作为学生网络;采用教师网络对第一网络模型进行训练;得到第一网络模型的权重向量s;将序列v

输入至训练好的第一网络模型;s同v

中的序列进行点乘得到{v
′1·
s,v
′2·
s,v
′3·
s,v
′4·
s},最后通过一个softmax,选取得分最高的序列作为开始帧,exp(
·
)表示的是e
(
·
)

[0068]
6.2)设置一个与步骤6.1结构相同的第二网络模型(或者采用第一网络模型,对第一网络模型重新进行训练);得到新的权重向量e;将序列v

输入至第二网络模型中,点乘模
块将v

与权重向量e进行点成得到矩阵a’;将矩阵a’输入至softmax模块计算a’中每个元素的概率,并选择概率最大的元素对应的视频帧作为结束帧。
[0069]
优选的,所述步骤b将编码器中提取到的开始帧位置和结束帧位置之间的word embedding作为解码器中多头注意力(muti

head attention)层的输入(包括开始帧和位置帧),具体方法为:将v

start
,v

end
以及v

中位于v

start
和v

end
之间的元素按照对应的视频帧在长视频中的时序位置依次排序组成序列将乘以预设的第二权重矩阵得到矩阵k,将乘以预设的第三权重矩阵得到矩阵k

;将矩阵k和矩阵k

输入至transformer解码器中muti

head attention层;
[0070]
将解码器muti

head attention层中输入的序列乘一个权重得到q(通过解码器中的残差&归一化层输入至muti

head attention层的序列),将v

start
,v

end
以及v

中位于v

start
和v

end
之间的元素按照对应的视频帧在长视频中的时序位置依次排序组成序列将乘以预设的第二权重矩阵得到矩阵k,将乘以预设的第三权重矩阵得到矩阵k

;将矩阵k和矩阵k

输入至transformer解码器中muti

head attention层,在muti

head attention层根据来得到新的序列。
[0071]
优选的,所述步骤c解码器输出视频的一个预测标签,具体方法为:
[0072]
如图3所示,解码器由masked muti

head attention层、残差和layer normalization层,muti

head attention层、残差和layer normalization层、全连接层、残差和layer normalization层和线性(linear)层组成,其中masked muti

head attention与muti

head attention运算过程都是一样的,唯一的不同之处就是muti

head attention是在所有的序列上进行操作,而masked muti

head attention只能在已经得到的序列上进行操作,例如已经得到了标签y1,就只能在开始标记和y1序列上进行muti

head attention,得到标签y2就只能在开始标记、y1、y2序列上进行muti

head attention。将序列分别经过这些层,最后再经过一个softmax分类器,得到标签的概率分布,选取概率最大的标签作为视频的一个标签,如图3所示,向解码器输入一个开始序列,最终得到标签y1,再将y1输入到解码器中得到y2,直到输出结束标记,最后得到视频的全部标签y1、y2、y3另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
转载请注明原文地址:https://win.8miu.com/read-150346.html

最新回复(0)