一种基于双向循环神经网络和深度输出的视频描述生成方法与流程

文档序号:19060490发布日期:2019-11-06 01:43阅读:350来源:国知局
一种基于双向循环神经网络和深度输出的视频描述生成方法与流程

本发明属于视频描述生成领域,尤其涉及一种基于双向循环神经网络和深度输出的视频描述生成方法。



背景技术:

随着互联网的发展,视频数据呈现爆炸式增长。凭借人力难以充分提取如此庞大的视频数据中蕴含的信息,因此我们希望计算机能够自动对视频内容进行分析。视频描述生成是视频智能分析领域具有代表性的技术,视频描述生成问题能否解决,标志着人工智能能否理解视频内容。视频描述生成任务的目标是使机器自动描述视频内容,具体来说,就是使机器对一段视频自动生成一段相应的文字,准确描述该视频的内容。视频描述生成领域早先的解决方法将问题分为两个阶段,第一个阶段是从视频中提取出语义内容,如主语、动词、宾语等,然后再根据概率模型和某种固定的模式生成完整的句子。这种方法中语句的生成是按照某种固定的模式,无法满足人类语言的丰富性,只能生成一些结构简单的句子。近年来,深度学习技术的应用提高了视频描述生成模型的效果,但现有模型的编码器很多采用单向循环神经网络,无法提取到后向的序列特征,且现有模型一般采用单层循环神经网络作为解码器,解码能力有待提高。



技术实现要素:

针对现有技术存在的以上问题,本发明旨在提供一种基于双向循环神经网络和深度输出的视频描述生成方法,通过等间隔抽取视频帧并使用卷积神经网络提取视频帧的图像特征,得到编码器在每个时间步的输入,通过构建和训练一种基于双向循环神经网络和深度输出的视频描述生成模型,将一段视频转化为一段视频描述语句。

为实现本发明的目的,本发明所采用的技术方案如下:

一种基于双向循环神经网络和深度输出的视频描述生成方法,所述方法包括以下步骤:

步骤1:对视频进行等间隔抽帧;

步骤2:使用卷积神经网络提取每个视频帧的图像特征;

步骤3:将图像特征输入基于双向循环神经网络和长短期记忆单元的编码器;

步骤4:将编码器的输出通过注意力机制输入基于深度输出的解码器;

步骤5:解码器在每个时间步生成描述语句中的一个单词直到生成结束符;

步骤6:将解码器在每个时间步生成的单词组合成完整的视频描述语句。

作为本发明的一种改进,所述步骤1中,对视频进行等间隔抽帧的方法为:

假设视频总共有n帧,需要提取的视频帧数是m帧(本发明采用的视频帧提取数为26帧)。一般视频描述生成模型的编码器需要提取的视频帧数m会小于视频的总帧数n,但也会出现n=m或n<m的特殊情况。若n<m,将视频的前n帧全部抽取,并在抽取的n帧之后补充(m-n)个空白视频帧(图像像素值全为0);若n=m,将视频的前n帧全部抽取;若n>m,采用等间隔采样的方法,采样间隔应该取此时抽取的视频帧序列应为:

因为视频的帧数为整数,对视频帧序列进行四舍五入,得到:

式中round(·)表示四舍五入。

作为本发明的一种改进,所述步骤2中,卷积神经网络采用预训练于imagenet数据集的inceptionv3,具体结构采用了inceptionv3网络模型的最后一个池化层之前的网络结构。对于抽取的每一帧视频图像,卷积神经网络提取到的图像特征都是2048维的向量,之后采用嵌入处理将图像特征与嵌入矩阵相乘得到512维的特征向量。为了加速网络的训练过程,图像特征的处理与循环神经网络的训练是分开的,在网络训练开始之前图像特征已经提取完毕

作为本发明的一种改进,所述步骤3中,编码器采用单层双向循环神经网络,相当于两个方向相反的单向循环神经网络的结合。正向的循环神经网络初始时输入的视频帧特征来自视频的第一帧,反向的循环神经网络初始时输入的视频帧特征来自视频帧序列的最后一个视频帧。当这两个方向相反的循环神经网络都完成了m(本发明中m取26)次循环后,将两个网络对应时间步的输出特征根据下式组成新的序列特征:

式中z<t>表示双向循环神经网络在第t个时间步的输出,表示正向循环神经网络在第t个时间步的输出,表示反向循环神经网络在第t个时间步的输出,是参数矩阵,by是偏置矩阵,g(·)为激活函数,通常选择tanh或relu函数,本发明采用tanh函数,即

同时编码器使用了长短期记忆单元,其核心是记忆单元(memorycell),我们用c<t>来表示,记忆单元c<t>用来保存长期依赖信息,融合了当前时间步获取的信息和之前的历史信息;表示当前时间步用来替换c<t-1>的候选(candidate)值,c<t>的值要么保留自前一时间步的c<t-1>,要么来自新产生的候选值更新门γu(updategate)用来控制是否将记忆单元c<t>的值更新为候选值的值;遗忘门γf(forgetgate)用来控制是否遗弃前一个时间步记忆单元c<t-1>的信息;输出门γo(outputgate)用来控制记忆单元c<t>的信息能否进入当前时间步的隐藏状态a<t>

γu=σ(wuxx<t>+wuaa<t-1>+bu);

γf=σ(wfxx<t>+wfaa<t-1>+bf);

γo=σ(woxx<t>+woaa<t-1>+bo);

a<t>=γo⊙φ(c<t>);

式中x<t>是循环神经网络在第t个时间步的输入,也就是卷积神经网络抽取到的第t个视频帧的图像特征,是一个512维的特征向量;σ表示sigmoid函数;φ是双曲正切函数,也被称为tanh函数;⊙表示哈达玛积(hadamardproduct),具体操作是将矩阵的各元素对应相乘,式中wux、wua、wfx、wfa、wox、woa均为参数矩阵,bu、bf、bo为偏置矩阵。

作为本发明的一种改进,所述步骤4中,解码器使用单层循环神经网络,应用了注意力机制,并且使用了深度输出,解码器部分的循环神经网络的隐藏状态与输出的计算公式为:

h<t>=flstm(h<t-1>,e(y<t-1>),v<t>);

y<t>=foutput(h<t>);

上式中h<t>和y<t>是循环神经网络在第t个时间步的隐藏状态和输出;e(y<t-1>)是前一个时间步的输出经过词嵌入后得到的向量,词嵌入就是将y<t-1>与一个参数矩阵相乘;v<t>是编码器提取的序列特征通过注意力机制输入到解码器第t个时间步的特征值;flstm函数是长短期记忆单元计算隐藏状态的函数;foutput是解码器输出的计算函数,一般视频描述生成模型的解码器输出都是将循环神经网络的输出直接乘以一个参数矩阵,如下式:

y<t>=wyhh<t>+by;

为了增加网络的深度,对网络的输出做如下操作:

y<t>=wd*tanh(wdhh<t>+wdee(y<t-1>)+wdvv<t>+bt)+bd;

式中wd、wdh、wde、wdv均为参数矩阵,bt、bd为偏置矩阵。

作为本发明的一种改进,所述步骤5中,解码器部分的循环神经网络在每个时间步的输出都是一个向量,长度与单词表的单词总数相同,输出向量第i位的值表示在给定视频特征和上一个生成单词的条件下单词表第i个单词出现的概率,即:

式中wi是一个第i位为1其他位为0的独热向量,用来表示单词表第i个单词;z表示编码器提取的视频特征;也是一个独热向量,用来表示解码器在上一个时间步生成的单词。整个解码器-编码器模型的优化目标函数为:

也可以写为:

式中表示解码器在当前时间步生成的单词,θ表示编码器-解码器模型的参数。

与现有技术相比,本发明的技术方案具有以下的有益技术效果:针对视频描述生成问题,本发明提出了一种新型的编码器-解码器模型,编码器采用了双向循环神经网络,能够同时提取前向和后向的序列特征,使得解码器能够根据编码器提取的视频双向序列特征更好地生成视频描述语句。解码器应用了深度输出和注意力机制,深度输出的应用增加了解码器的非线性度与网络深度,提高了解码器的解码能力;注意力机制的应用使得解码器能够对编码器提取的序列特征进行权重分配,提高了网络的训练效果。

附图说明

图1是本发明一种基于双向循环神经网络和深度输出的视频描述生成方法流程图;

图2是本发明采用的视频描述生成模型结构图。

具体实施方式

下面结合附图和实施例对本发明的技术方案作进一步的说明。

如图1所示,本发明提出了一种基于双向循环神经网络和深度输出的视频描述生成方法,该方法的详细步骤为:

(1)对视频进行等间隔抽帧;

视频描述生成模型处理的视频大部分都是上百帧的,如果对所有视频帧提取图像特征并输入解码器,会导致视频描述生成模型的训练速度大大降低,更严重的是会导致视频描述生成模型在训练过程中的内存需求大大增高,一般的计算机难以满足这样的内存要求。因此,我们需要对较长的视频进行视频帧的等间隔抽取。

假设视频总共有n帧,需要提取的视频帧数是m帧。一般视频描述生成模型的编码器需要提取的视频帧数m会小于视频的总帧数n,但也会出现n=m或n<m的特殊情况。若n<m,将视频的前n帧全部抽取,并在抽取的n帧之后补充(m-n)个空白视频帧(图像像素值全为0);若n=m,将视频的前n帧全部抽取;若n>m,采用等间隔采样的方法,采样间隔应该取此时抽取的视频帧序列应为:

因为视频的帧数为整数,所以我们对视频帧序列进行四舍五入,得到:

式中round(·)表示四舍五入。当视频描述生成模型的编码器需要提取的视频帧数m小于视频的总帧数n时,采用等间隔采样的方式对视频提取的视频帧序列是对视频信息较为完整的概括。

本发明采用的视频抽取帧数为26,对于视频总帧数大于26的情况,使用等间隔抽帧的方法抽取26个视频帧;对于视频总帧数小于26的情况,将所有视频帧抽取,并在抽取的视频帧后补充空白视频帧直到抽取的视频帧总帧数为26;对于视频总帧数等于26的情况,将所有视频帧抽取。

(2)使用卷积神经网络提取每个视频帧的图像特征;

卷积神经网络的选择较多,本发明采用预训练于imagenet数据集的inceptionv3卷积神经网络对图像特征进行提取,网络的具体结构采用了inceptionv3网络模型的最后一个池化层之前的网络结构,即平均池化层pool_3之前的网络结构。inceptionv3网络提取到的图像特征的维度是2048,图像特征在输入编码器之前会进行嵌入处理,即将图像特征与一个嵌入矩阵相乘得到一个512维的特征向量,这一操作能够降低图像特征的维度,从而降低编码器-解码器模型的计算量。为了加速网络的训练过程,图像特征的处理与循环神经网络的训练是分开的,在网络训练开始之前图像特征已经提取完毕。

(3)将图像特征输入基于双向循环神经网络和长短期记忆单元的编码器;

采用卷积神经网络提取到26个视频帧的图像特征,即26个2048维的向量,再使用嵌入处理得到26个512维的特征向量。这26个特征向量作为编码器的输入,对应编码器中循环神经网络的26个时间步。本发明采用的编码器如图2下半部分所示,采用了双向循环神经网络以及长短期记忆单元(longshort-termmemoryunit,lstm)。

单向循环神经网络只能利用当前时间步之前的历史信息,而有些情况下利用未来的信息能够对结果进行更好的预测。例如,在“jamesisagreatbasketballplayer”这句话中,如果只有“james”这个单词之前的信息,不一定能推断出“james”是一个人名。而根据“james”这个单词之后的信息,“basketballplayer”是一种职业,那么很容易就能推断出“james”是一个人名。

双向循环神经网络就是一种能够同时利用历史信息和未来信息的神经网络,相当于两个方向相反的单向循环神经网络的结合。正向的循环神经网络初始时输入的视频帧特征来自视频的第一帧,反向的循环神经网络初始时输入的视频帧特征来自视频帧序列的最后一个视频帧。当这两个方向相反的循环神经网络都完成了26次循环后,将两个网络对应时间步的输出特征根据下式组成新的序列特征:

式中z<t>表示双向循环神经网络在第t个时间步的输出,表示正向循环神经网络在第t个时间步的输出,表示反向循环神经网络在第t个时间步的输出,是参数矩阵,by是偏置矩阵,g(·)为激活函数,通常选择tanh或relu函数,本发明采用tanh函数,即

虽然循环神经网络在每个时间步的计算都利用到了之前的历史信息,但是在循环神经网络的计算过程经过了多个时间步之后,状态输入a<t-1>包含的历史信息实际上只与相近的几个时间步有关,更早的时间步的信息几乎全部丢失了。更严重的问题是,较长的时间步会导致循环神经网络更易出现梯度弥散(gradientvanishing)现象,导致网络无法学习到长时间跨度的非线性关系。这就是长期依赖(long-termdependency)问题。为了缓解这些问题,本发明采用了长短期记忆单元。

长短期记忆单元的核心是记忆单元(memorycell),我们用c<t>来表示。记忆单元c<t>用来保存长期依赖信息,融合了当前时间步获取的信息和之前的历史信息;表示当前时间步用来替换c<t-1>的候选(candidate)值,c<t>的值要么保留自前一时间步的c<t-1>,要么来自新产生的候选值更新门γu(updategate)用来控制是否将记忆单元c<t>的值更新为候选值的值;遗忘门γf(forgetgate)用来控制是否遗弃前一个时间步记忆单元c<t-1>的信息;输出门γo(outputgate)用来控制记忆单元c<t>的信息能否进入当前时间步的隐藏状态a<t>

γu=σ(wuxx<t>+wuaa<t-1>+bu)

γf=σ(wfxx<t>+wfaa<t-1>+bf)

γo=σ(woxx<t>+woaa<t-1>+bo)

a<t>=γo⊙φ(c<t>)

式中x<t>是循环神经网络在第t个时间步的输入,也就是卷积神经网络抽取到的第t个视频帧的图像特征,是一个512维的特征向量;σ表示sigmoid函数;φ是双曲正切函数,也被称为tanh函数;⊙表示哈达玛积(hadamardproduct),具体操作是将矩阵的各元素对应相乘。式中wux、wua、wfx、wfa、wox、woa均为参数矩阵,bu、bf、bo为偏置矩阵。

(4)将编码器的输出通过注意力机制输入基于深度输出的解码器;

解码器部分的主体是经典的单层循环神经网络,采用长短期记忆单元,并且应用了注意力机制。我们在此基础上使用深度输出,提高解码器的非线性度和深度,增强解码器的解码能力。解码器结构如图2上半部分所示。

在传统的编码器-解码器结构中,编码器将输入序列的所有数据读入到网络结构之后提取到的特征交给解码器,这样会存在一个问题:在解码阶段,在每个时间步来自编码器的信息是固定的,都是编码器读入全部输入数据之后提取到的特征,这会使解码的过程没有针对性。解码器在每个时间步利用到的编码信息应该是有区别的,在不同时间步解码器对不同部分的编码信息关注的程度应该是不同的。

本发明采用注意力机制来解决上述问题。注意力机制就是,在解码器的每个时间步,解码器对输入的编码器提取的特征加上注意力权重(attentionweights)。也就是说,在解码器的每个时间步,解码器对编码器在不同时间步提取的特征的关注程度是有区别的。

假设编码器提取的序列特征为(z<1>,z<2>,...,z<n>),解码器会在每个时间步对该特征序列加上权重,从而产生一个新的特征序列(v<1>,v<2>,...,v<m>),其中

式中,α<t,i>是注意力权重,且有α<t,i>将由一个小型的全连接神经网络计算得到。设e<t,i>表示编码器在第i个时间步提取的特征z<i>与解码器第t-1个隐藏状态h<t-1>之间的相关程度,e<t,i>可由下式得到。

α<t,i>实际上是e<t,i>归一化之后的结果:

通过注意力机制,可以将编码器提取的序列特征(z<1>,z<2>,...,z<n>)转化为考虑了权重分配的序列特征(v<1>,v<2>,...,v<m>),新的序列特征将被输入到解码器。解码器部分的循环神经网络的输出与隐藏状态的计算公式为:

h<t>=flstm(h<t-1>,e(y<t-1>),v<t>)

y<t>=foutput(h<t>)

上式中h<t>和y<t>是解码器部分的循环神经网络在第t个时间步的隐藏状态和输出;e(y<t-1>)是前一个时间步的输出经过词嵌入后得到的向量,词嵌入就是将y<t-1>与一个参数矩阵相乘;v<t>是编码器提取的序列特征通过注意力机制输入到解码器第t个时间步的特征值;flstm函数是长短期记忆单元计算隐藏状态的函数,具体的计算过程在步骤(3)中介绍过;foutput是解码器输出的计算函数,一般视频描述生成模型的解码器输出都是将循环神经网络的隐藏状态直接乘以一个参数矩阵,如下式:

y<t>=wyhh<t>+by

为了增加网络的深度,我们对网络的输出做如下操作:

y<t>=wd*tanh(wdhh<t>+wdee(y<t-1>)+wdvv<t>+bt)+bd

式中wd、wdh、wde、wdv均为参数矩阵,bt、bd为偏置矩阵。我们将上式表示的网络输出称为深度输出。注意上式中y<t>由h<t>计算得到,而不是由h<t-1>计算得到。将上式用另一种方式表示如下:

h<t>=flstm(h<t-1>,e(y<t-1>),v<t>)

其中fstandard表示标准循环神经网络计算隐藏状态的函数,即:

由上式可以明显看出,与h<t>相比,多嵌套了一个fstandard,相当于多进行了一次标准循环神经网络的结构单元计算,也相当于多了一个时间步。与y<t>相比,多嵌套了一个foutput,这增加了网络的非线性度。图2中“std”单元对应fstandard,“tanh”单元对应foutput。因此,深度输出增加了解码器循环神经网络的深度和非线性度,从而提升了网络的解码能力。

(5)解码器在每个时间步生成描述语句中的一个单词直到生成结束符;

解码器部分的循环神经网络相当于一个语言模型,其作用是,在给定的条件下,计算一句话中某个位置上各个单词出现的概率。在视频描述生成问题中,如果语言模型能够计算出在给定某个视频片段的条件下,各个语句出现的概率,那么选择概率最大的语句作为模型生成的描述语句,视频描述生成问题就成功解决了。这是理想情况下的语言模型,循环神经网络作为语言模型能够做到的是,在给定视频特征和上一个生成单词的情况下,预测当前单词出现的概率。作为语言模型的循环神经网络与理想语言模型的区别在于,循环神经网络得到的概率只是根据训练数据预测出来的,不一定准确。另一个区别是,循环神经网络只能在给定条件下,得到某个位置各个单词出现的概率,而不能在给定视频的情况下直接给出各个语句出现的概率。因此,循环神经网络需要通过搜索的方式得到最大概率的语句。若直接进行枚举,需要枚举次,td为解码器的时间步总数,nw为单词表(wordlist)的单词总数。若解码器的时间步总数为26,单词表的单词总数为10000,循环神经网络需要枚举1000026次才能找到概率最大的语句。循环神经网络可以通过贪心搜索(greedysearch)或集束搜索(beamsearch)寻找概率较大的语句(注意不是概率最大的语句)。本发明采用贪心搜索寻找概率较大的语句,即在每个时间步都选择当前概率最大的单词作为生成的单词。

解码器部分的循环神经网络在每个时间步的输出都是一个向量,长度与单词表的单词总数相同。输出向量第i位的值表示在给定视频特征和上一个生成单词的条件下单词表第i个单词出现的概率,即:

式中wi是一个第i位为1其他位为0的独热向量,用来表示单词表第i个单词;z表示编码器提取的视频特征;也是一个独热向量,用来表示解码器在上一个时间步生成的单词。整个解码器-编码器模型的优化目标函数为:

也可以写为:

式中表示解码器在当前时间步生成的单词,θ表示编码器-解码器模型的参数。

(6)将解码器在每个时间步生成的单词组合成完整的视频描述语句。

解码器在每个时间步生成一个向量,该向量与单词表大小相同,某个维度上的数据相当于单词表中某个单词在当前时间步出现的概率大小。将向量中最大数值对应的单词表中的某个单词作为当前时间步生成的单词,将每个时间步生成的单词组合起来,就生成了一句完整的视频描述语句。

需要说明的是上述实施例仅仅是本发明的较佳实施例,并没有用来限定本发明的保护范围,在上述技术方案的基础上做出的等同替换或者替代均属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1