本发明属于是视频问答(videoquestionanswering,video-qa)技术领域,更为具体地讲,涉及一种基于渐进图注意力网络的视频问答方法。
背景技术:
现有技术中,视频问答(videoquestionanswering,video-qa)主要目标是去回答与视频内容相关的自然语言问句。因此对视频内容的理解至关重要。经典的视频问答方法主要分为三个步骤:1)利用卷积神经网络(cnn)模型和循环神经网络(rnn)模型分别提取视频特征和问句特征;2)在问句特征的指导下,关注视频特征中与回答问题中相关的部分,从而得到更具表现力的视频表示;3)融合视频特征和问句特征,得到多模态的特征表示,然后通过问答模块来预测问题的答案。
基于这个经典的框架,现有的视频问答方法主要集中在从时间维度和空间维度进行的视觉推理。一些方法利用时空注意力机制(spatial-temporalattention)来重点关注视频中与问句相关的并且具有价值的时空信息。另外一些方法探索了视频中存在的视觉关系特征,从而为答案的推理提供更多有效的语义信息。
现有的方法大多利用注意力机制(attention)或者图网络结构(gcn),探究了视频当中目标之间或者帧之间的单一交互,然而这些交互往往不足以表示视频中的复杂场景,因为在视频当中,不仅会涉及到目标之间的时空关系和视频帧之间相互关系,还会涉及到其中动作的时序关系,因此对于预测问题的答案的准确率较低。
技术实现要素:
本发明的目的在于克服现有技术的不足,提供一种基于渐进图注意力网络的视频问答方法,以提高预测问题的答案的准确性。
为实现上述发明目的,本发明基于渐进图注意力网络的视频问答方法,其特征在于,包括以下步骤:
(1)、视觉特征提取
对于一个由帧序列组成的视频,将其划分为n个视频片段,每个片段中包含l帧;
首先使用3dcnn网络(三维卷积神经网络)提取每个视频片段的层次特征cn,n=1,2,...,n,视频片段层次特征cn的维度为dc,用c={c1,c2,...,cn}表示n个视频片段的层次特征;
然后使用2dcnn网络(二维卷积神经网络)提取每个视频帧的层次特征fn,l,n=1,2,...,n,l=1,2,...l,视频帧层次特征fn,l的维度为df,用f={f1,1,f1,2,...,fn,l}表示n×l个视频帧的层次特征;
再使用fasterr-cnn(更快速区域卷积神经网络)提取每个视频帧中每个目标的层次特征on,l,k,n=1,2,...,n,l=1,2,...l,k=1,2,...k,k是每个视频帧中提取目标的个数,目标层次特征on,l,k的维度为do,用o={o1,1,1,o1,1,2,...,on,l,k}表示n×l×k个目标层次特征;
最后使用长短期记忆(lstm)网络编码问句以获取问句的表示:
问句中的所有单词首先用词嵌入模型编码成一个词向量序列,然后将其输入到一个lstm网络当中,获取其隐藏输出序列h={h1,h2,...,hs},其中,特征hs,s=1,2,...s的维度为dq,s为问句的长度,最后,使用一个自注意力机制,重点关注问句当中重要的单词来获取问句的表示,用如下公式表示:
其中,
(2)、构建渐进图注意网络(包括三个不同层次的图注意网络)
2.1)、构建目标层次图注意网络,用以获取目标之间的时空关系
构建目标层次图go={vo,εo,ao},其中,vo是图中顶点的集合,一个顶点代表一个被检测的目标,εo是图中边的集合,代表了每一个视频帧中所有目标的关系,
结合使用问句表示和目标层次特征on,l,k(为了简化,目标层次特征on,l,k表示oi,i=1,2,...,nlk)生成合适的邻接矩阵:
首先将问句特征vq和每一个目标层次特征oi进行聚合:
其中,φ′(·)、φ″(·)均为拥有relu激活函数的全连接网络,使特征转换为dh维度的向量,*表示点乘,nlk=n×l×k;
然后,邻接矩阵ao中,第i个目标和第j个目标之间的依赖值
其中,t表示转置;
更新每一个目标层次特征oi为o′i:
再串联每一个更新的目标层次特征o′i,得到张量
使用注意力机制来关注视频帧中与问句相关的目标,注意力机制的过程用如下的公式表示:
vo=attention(o′,vq)(7)
其中,
2.2)、构建视频帧层次图注意网络,用以获取视频帧之间的相互关系
构建视频帧层次图gf={vf,εf,af},其中,vf是图中顶点的集合,每一个顶点代表一个视频帧,εf是图中边的集合,代表每一个视频帧的关系,
为了简化,视频帧层次特征fn,l表示fi′,i′=1,2,...,nl,获取nl个融合视频帧层次特征f′={f′1,f′2,...,f′nl}={f′i′|i′=1,2,...,nl},其中,融合视频帧特征f′i′为:
其中,
首先将问句特征vq和每一个融合视频帧特征f′i′进行聚合:
其中,
然后,邻接矩阵af中,第i′个视频帧和第j′个视频帧之间的依赖值
更新每一个融合视频帧层次特征f′i′为f″i′:
再串联每一个更新的视频帧层次特征f″i′,得到张量
在问句特征的指导下,使用了注意力机制,得到聚合的视频帧特征vf:
vf=attention(f″,vq)(13)
其中,聚合的视频帧特征
2.3)构建视频片段层次图注意网络,用以建立视频片段中动作之间时序和语义关系
构建视频片段层次图gc={vc,εc,ac},其中vc代表视频片段的集合,εc是图中边的集合,代表每一个视频片段的关系,ac为相关的邻接矩阵;
融合n个视频片段的层次特征c和聚合的视频帧特征vf来生成融合视频片段层次特征c′={c′1,c′2,...,c′n}={c′n|n=1,2,...,n},其中,融合视频片段层次特征c′n为:
其中,ω′(·)为拥有relu激活函数的全连接网络,使特征转换为dc维度的向量;
首先将问句特征vq和聚合视频帧特征
其中,ω″(·)、ω″′(·)均为拥有relu激活函数的全连接网络,使特征转换为dh维度的向量;
然后,邻接矩阵ac中,第n个视频片段和第k个视频片段之间的依赖值
更新每一个融合视频片段层次特征c′n为c″n:
再串联每一个更新的融合视频片段层次特征c″n,得到张量
在问句特征的指导下,使用了注意力机制,得到聚合的视频特征vc:
vc=attention(c″,vq)(19)
其中,聚合的视频特征vc的维度为dc;
(3)、答案预测
针对开放式任务,首先融合视觉信息和问句信息,然后将这些融合后的信息输入一个softmax分类器中,计算出答案的概率:
g=ρ′(vc)*ρ″(vq)(20)
p=softmax(wog)(21)
其中,ρ′(·)、ρ″(·)均为拥有relu激活函数的全连接网络,wo是学习参数,p是概率向量,使用交叉熵函数更新全连接网络参数以及softmax分类器的学习参数;
针对多选任务,首先串联融合视觉信息、问句信息和答案表示,然后将融合后的特征送入最终分类器进行线性回归,输出答案索引y:
g′=ρ′(vc)*ρ″(vq)*ρ″′(va)(22)
y=wmg′(23)
其中,va为答案表示,wm是学习参数,使用成对比较合页函数更新更新全连接网络参数以及分类器的学习参数;
针对计数任务,使用线性回归函数,将公式(20)中的g作为输入,然后本使用四舍五入函数计算计数结果,使用均方误差(mse)损失函数更新线性回归函数参数。
本发明的目的是这样实现的。
本发明基于渐进图注意力网络的视频问答方法,其中,采样一种新颖的渐进图注意网络,以渐进的方式探究了在目标层次、视频帧层次和视频片段层次的多种视觉交互。在该渐进图注意网络当中,目标层次的图结构主要用于获取相同帧或者不同帧中目标之间的时空关系,视频帧层次的图结构探究了视频帧之间的相互关系,而视频片段层次的图结构构建了其中不同动作之间的时序关系。同时,本发明也使用了注意力机制去关注与问题相关的图顶点和边,并且用一种渐进的方式连接这些不同层次的图特征。用这样的方式,每一个图都能基于视觉相关性关注到它的时空邻接顶点和更细粒度的视觉内容。这样提高了预测问题的答案的准确性。
附图说明
图1是本发明基于渐进图注意力网络的视频问答方法一种具体实施方式流程图;
图2是本发明基于渐进图注意力网络的视频问答方法一种具体实施方式的原理示意图。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
图1是本发明基于渐进图注意力网络的视频问答方法一种具体实施方式流程图。
在本实施例中,如图1所示本发明基于渐进图注意力网络的视频问答方法包括以下步骤:
步骤s1:视觉特征提取
在本实施例中,如图2所示,本发明提取了三种不同层次的视觉特征,对于一个由帧序列组成的视频v,将其划分为n个视频片段,每个片段中包含l帧。
首先使用3dcnn网络(三维卷积神经网络)提取每个视频片段的层次特征cn,n=1,2,...,n,视频片段层次特征cn的维度为dc,用c={c1,c2,...,cn}表示n个视频片段的层次特征。在本实施例中,3dcnn网络采用resnext-101网络。
然后使用2dcnn网络(二维卷积神经网络)提取每个视频帧的层次特征fn,l,n=1,2,...,n,l=1,2,...l,视频帧层次特征fn,l的维度为df,用f={f1,1,f1,2,...,fn,l}表示n×l个视频帧的层次特征。在本实施例中,2dcnn网络采用resnet-152网络。
再使用fasterr-cnn(更快速区域卷积神经网络)提取每个视频帧中每个目标的层次特征on,l,k,n=1,2,...,n,l=1,2,...l,k=1,2,...k,k是每个视频帧中提取目标的个数,目标层次特征on,l,k的维度为do,用o={o1,1,1,o1,1,2,...,on,l,k}表示n×l×k个目标层次特征.
最后使用长短期记忆(lstm)网络编码问句q以获取问句的表示:
问句q中的所有单词首先用glove词嵌入模型编码成一个词向量序列,然后将其输入到一个lstm网络当中,获取其隐藏输出序列h={h1,h2,...,hs},其中,特征hs,s=1,2,...s的维度为dq,s为问句q的长度,最后,使用一个自注意力机制,重点关注问句当中重要的单词来获取问句q的表示,用如下公式表示:
其中,
步骤s2:构建渐进图注意网络
在本实施例中,如图2所示,本发明设计了一个渐进图注意网络,用以推理有价值和与问句相关的视觉信息,其中包括三个不同层次的图网络:第一个是目标层次的图注意网络(目标层次图注意网络),用以获取目标之间的时空关系;第二个是视频帧层次的图注意网络(视频帧层次图注意网络),用以探索视频帧之间的相互关系;最后一个是视频片段层次的图注意网络(视频片段层次图注意网络),用以建立视频片段中动作之间时序和语义关系。
步骤s2.1:构建目标层次图注意网络,用以获取目标之间的时空关系
构建目标层次图go={vo,εo,ao},其中,vo是图中顶点的集合,一个顶点代表一个被检测的目标,εo是图中边的集合,代表了每一个视频帧中所有目标的关系,
本发明建立目标层次的图结构的主要目的是在问句特征的指导下建立视频中任意两个目标之间的关系。因此,需要结合使用问句特征和视觉特征从而生成合适的邻接矩阵。
结合使用问句表示和目标层次特征on,l,k(为了简化,目标层次特征on,l,k表示oi,i=1,2,...,nlk)生成合适的邻接矩阵ao。
首先将问句特征vq和每一个目标层次特征oi进行聚合:
其中,φ′(·)、φ″(·)均为拥有relu激活函数的全连接网络,使特征转换为dh维度的向量,*表示点乘,nlk=n×l×k。
然后,邻接矩阵ao中,第i个目标和第j个目标之间的依赖值
其中,t表示转置。
本发明根据计算出的邻接矩阵ao利用其他的相关的目标来更新每一个目标特征oi,进而保留目标之间的局部和长期依赖。具体更新每一个目标层次特征oi为o′i:
其中,“ oi”的目的是进行残差连接。
再串联每一个更新的目标层次特征o′i,得到张量
使用注意力机制来关注视频帧中与问句相关的目标,注意力机制的过程用如下的公式表示:
vo=attention(o′,vq)(7)
其中,
步骤s2.2:构建视频帧层次图注意网络,用以获取视频帧之间的相互关系
当视频中动作正在发生或者正在过渡的时候,不同视频帧之间的关系能够记录详细的表观信息的变化。本发明建立视频帧层次的图结构来获取详尽的表观变化。
构建视频帧层次图gf={vf,εf,af},其中,vf是图中顶点的集合,每一个顶点代表一个视频帧,εf是图中边的集合,代表每一个视频帧的关系,
为了简化,视频帧层次特征fn,l表示fi′,i′=1,2,...,nl,
本发明融合了两种特征获取nl个融合视频帧层次特征f′={f′1,f′2,...,f′nl}={f′i′|i′=1,2,...,nl},其中,融合视频帧特征f′i′为:
其中,
首先将问句特征vq和每一个融合视频帧特征f′i′进行聚合:
其中,
然后,邻接矩阵af中,第i′个视频帧和第j′个视频帧之间的依赖值
更新每一个融合视频帧层次特征f′i′为f″i′:
再串联每一个更新的视频帧层次特征f″i′,得到张量
在问句特征的指导下,使用了注意力机制,得到聚合的视频帧特征vf:
vf=attention(f″,vq)(13)
其中,聚合的视频帧特征
步骤s2.3:构建视频片段层次图注意网络,用以建立视频片段中动作之间时序和语义关系
本发明将视频分割成多个短的视频片段,并且构建了一个视频片段层次的图结构(视频片段层次图)来表示不同视频片段中动作之间时序和语义关系。
构建视频片段层次图gc={vc,εc,ac},其中vc代表视频片段的集合,εc是图中边的集合,代表每一个视频片段的关系,ac为相关的邻接矩阵;
融合n个视频片段的层次特征c和聚合的视频帧特征vf来生成融合视频片段层次特征c′={c′1,c′2,...,c′n}={c′n|n=1,2,...,n},其中,融合视频片段层次特征c′n为:
其中,ω′(·)为拥有relu激活函数的全连接网络,使特征转换为dc维度的向量;
首先将问句特征vq和聚合视频帧特征
其中,ω″(·)、ω″′(·)均为拥有relu激活函数的全连接网络,使特征转换为dh维度的向量。
然后,邻接矩阵ac中,第n个视频片段和第k个视频片段之间的依赖值
更新每一个融合视频片段层次特征c′n为c″n:
再串联每一个更新的融合视频片段层次特征c″n,得到张量
在问句特征的指导下,使用了注意力机制,得到聚合的视频特征vc:
vc=attention(c″,vq)(19)
其中,聚合的视频特征vc的维度为dc。
用这样的方式,合的视频特征vc中就能包含目标的信息、视频帧的全局信息和动态信息,提高了预测问题的答案的准确性。
步骤s3:答案预测
针对开放式任务,首先融合视觉信息和问句信息,然后将这些融合后的信息输入一个softmax分类器中,计算出答案的概率:
g=ρ′(vc)*ρ″(vq)(20)
p=softmax(wog)(21)
其中,ρ′(·)、ρ″(·)均为拥有relu激活函数的全连接网络,wo是学习参数,ρ是概率向量,使用交叉熵函数更新全连接网络参数以及softmax分类器的学习参数。
针对多选任务,首先串联融合视觉信息、问句信息和答案表示,然后将融合后的特征送入最终分类器进行线性回归,输出答案索引y:
g′=ρ′(vc)*ρ″(vq)*ρ″′(va)(22)
y=wmg′(23)
其中,va为答案表示,wm是学习参数,使用成对比较合页函数更新更新全连接网络参数以及分类器的学习参数。
针对计数任务,使用线性回归函数,将公式(20)中的g作为输入,然后本使用四舍五入函数计算计数结果,使用均方误差(mse)损失函数更新线性回归函数参数。
实例
经过实验发现,现有的大型视频问答数据集tgif-qa中的两个多选(multi-choice)子数据集存在很严重的答案偏置。这些偏置会对模型的准确率造成很大的影响。为了解决这个问题,本实例在tgif-qa的基础上,建立了一个新的数据集tgif-qa-r。在该数据集中,候选答案是相互独立的,用这样的方式能够有效地降低由答案偏置带来的影响。
在三个大型的基准数据集tgif-qa,msvd-qa和msrvtt-qa以及新构建的tgif-qa-r数据集上测试该方法的效果,从实验的效果可以可知,本发明提出的方法优于最高水平的方法。
1、tgif-qa和tgif-qa-r数据集上的测试结果
表1
从表1中可以得出,本发明在绝大多数子任务中取得了最好的表现,在tgif-qa-r的action和trans.子任务中分别取得了57.6%和65.6%的准确率,在tgif-qa的action,trans.和frame子任务中取得了79.5%,85.3%和62.8%的准确率。
2、msvd-qa数据集上的测试结果
表2
从表2中可以得出,本发明在整体的准确率上取得了最高水平的表现,将准确率从36.5%提升到39.8%。
3、msrvtt-qa数据集上的测试结果:
从表3中可以得出,本发明在整体的准确率上取得了最高水平的表现,将准确率从35.5%提升到38.2%。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
1.一种基于渐进图注意力网络的视频问答方法,其特征在于,包括以下步骤:
(1)、视觉特征提取
对于一个由帧序列组成的视频,将其划分为n个视频片段,每个片段中包含l帧;
首先使用3dcnn网络(三维卷积神经网络)提取每个视频片段的层次特征cn,n=1,2,...,n,视频片段层次特征cn的维度为dc,用c={c1,c2,...,cn}表示n个视频片段的层次特征;
然后使用2dcnn网络(二维卷积神经网络)提取每个视频帧的层次特征fn,l,n=1,2,...,n,l=1,2,...l,视频帧层次特征fn,l的维度为df,用f={f1,1,f1,2,…,fn,l}表示n×l个视频帧的层次特征;
再使用fasterr-cnn(更快速区域卷积神经网络)提取每个视频帧中每个目标的层次特征on,l,k,n=1,2,...,n,l=1,2,...l,k=1,2,...k,k是每个视频帧中提取目标的个数,目标层次特征on,l,k的维度为do,用o={o1,1,1,o1,1,2,...,on,l,k}表示n×l×k个目标层次特征;
最后使用长短期记忆(lstm)网络编码问句以获取问句的表示:
问句中的所有单词首先用词嵌入模型编码成一个词向量序列,然后将其输入到一个lstm网络当中,获取其隐藏输出序列h={h1,h2,...,hs},其中,特征hs,s=1,2,...s的维度为dq,s为问句的长度,最后,使用一个自注意力机制,重点关注问句当中重要的单词来获取问句的表示,用如下公式表示:
其中,
(2)、构建渐进图注意网络(包括三个不同层次的图注意网络)
2.1)、构建目标层次图注意网络,用以获取目标之间的时空关系
构建目标层次图go={vo,εo,ao},其中,vo是图中顶点的集合,一个顶点代表一个被检测的目标,εo是图中边的集合,代表了每一个视频帧中所有目标的关系,
结合使用问句表示和目标层次特征on,l,k(为了简化,目标层次特征on,l,k表示oi,i=1,2,...,nlk)生成合适的邻接矩阵:
首先将问句特征vq和每一个目标层次特征oi进行聚合:
其中,φ′(·)、φ″(·)均为拥有relu激活函数的全连接网络,使特征转换为dh维度的向量,*表示点乘,nlk=n×l×k;
然后,邻接矩阵ao中,第i个目标和第j个目标之间的依赖值
其中,t表示转置;
更新每一个目标层次特征oi为o′i:
再串联每一个更新的目标层次特征o′i,得到张量
使用注意力机制来关注视频帧中与问句相关的目标,注意力机制的过程用如下的公式表示:
vo=attention(o′,vq)(7)
其中,
2.2)、构建视频帧层次图注意网络,用以获取视频帧之间的相互关系
构建视频帧层次图gf={vf,εf,af},其中,vf是图中顶点的集合,每一个顶点代表一个视频帧,εf是图中边的集合,代表每一个视频帧的关系,
为了简化,视频帧层次特征fn,l表示fi′,i′=1,2,...,nl,获取nl个融合视频帧层次特征f′={f1′,f2′,...,f′nl}={fi′|i′=1,2,...,nl},其中,融合视频帧特征f′i′为:
其中,
首先将问句特征vq和每一个融合视频帧特征f′i′进行聚合:
其中,
然后,邻接矩阵af中,第i′个视频帧和第j′个视频帧之间的依赖值
更新每一个融合视频帧层次特征f′i′为f″i′:
再串联每一个更新的视频帧层次特征f″i′,得到张量
在问句特征的指导下,使用了注意力机制,得到聚合的视频帧特征vf:
vf=attention(f″,vq)(13)
其中,聚合的视频帧特征
2.3)构建视频片段层次图注意网络,用以建立视频片段中动作之间时序和语义关系
构建视频片段层次图gc={vc,εc,ac},其中vc代表视频片段的集合,εc是图中边的集合,代表每一个视频片段的关系,ac为相关的邻接矩阵;
融合n个视频片段的层次特征c和聚合的视频帧特征vf来生成融合视频片段层次特征c′={c′1,c′2,...,c′n}={c′n|n=1,2,...,n},其中,融合视频片段层次特征c′n为:
其中,ω′(·)为拥有relu激活函数的全连接网络,使特征转换为dc维度的向量;
首先将问句特征vq和聚合视频帧特征
其中,ω″(·)、ω″′(·)均为拥有relu激活函数的全连接网络,使特征转换为dh维度的向量;
然后,邻接矩阵ac中,第n个视频片段和第k个视频片段之间的依赖值
更新每一个融合视频片段层次特征c′n为c″n:
再串联每一个更新的融合视频片段层次特征c″n,得到张量
在问句特征的指导下,使用了注意力机制,得到聚合的视频特征vc:
vc=attention(c″,vq)(19)
其中,聚合的视频特征vc的维度为dc;
(3)、答案预测
针对开放式任务,首先融合视觉信息和问句信息,然后将这些融合后的信息输入一个softmax分类器中,计算出答案的概率:
g=ρ′(vc)*ρ″(vq)(20)
ρ=softmax(wog)(21)
其中,ρ′(·)、ρ″(·)均为拥有relu激活函数的全连接网络,wo是学习参数,p是概率向量,使用交叉熵函数更新全连接网络参数以及softmax分类器的学习参数;
针对多选任务,首先串联融合视觉信息、问句信息和答案表示,然后将融合后的特征送入最终分类器进行线性回归,输出答案索引y:
g′=ρ′(vc)*ρ″(vq)*ρ″′(va)(22)
y=wmg′(23)
其中,va为答案表示,wm是学习参数,使用成对比较合页函数更新更新全连接网络参数以及分类器的学习参数;
针对计数任务,使用线性回归函数,将公式(20)中的g作为输入,然后本使用四舍五入函数计算计数结果,使用均方误差(mse)损失函数更新线性回归函数参数。
技术总结