1.一种基于语义信息引导的视频内容描述方法,其特征在于包括如下步骤:
步骤(1)对视频格式进行预处理;
步骤(2)建立用于引导的语义信息;
步骤(3)计算语义特征向量[Ai,XMS(i)]的权重
步骤(4)对语义特征向量[Ai,XMS(i)]进行解码;
步骤(5)对视频描述模型进行测试;
步骤(1)所述的对视频格式进行预处理,具体如下:
1-1.将待描述视频转换为连续帧的图像集合;利用预先训练好的卷积神经网络对每一帧静态图像进行特征提取,并取GoogleNet模型最后一个全连接层的1024维作为一个固定维数的向量X={x1,x2,…,x1024},因为每一个待描述视频的总帧数不一样,为了后续操作方便,统一将所有帧均分成K组,并取每组的第一帧,所以最后将形成维数为K*1024的向量;
1-2.采用预先训练好的三维卷积神经网络,对连续动作帧提取其行为特征,并取三维卷积神经网络模型最后一个全连接层的352维向量,作为一个固定维数的向量X′={x′1,…,x′352};每个待描述视频只做一次连续动作帧提取,所以每个待描述视频的行为特征最后可处理成1×352维的向量;
1-3.利用级联的方法将静态图像提取的特征与连续动作帧提取的行为特征进行融合,融合后的每帧图像级联为1×1376维的向量XMS(i),计算方法如式(1)所示:XMS(i)=[XM(i),XS(i)] (1)
其中,XM(i)表示连续动作帧提取的行为特征,XS(i)表示静态图像提取的特征,[XM(i),XS(i)]表示第i帧静态图像提取的特征和连续动作帧提取的行为特征进行级联;
步骤(2)所述的建立用于引导的语义信息,具体建立过程如下:
2-1.利用深度学习参数估计的方法在最大的图片集合MS COCO上统计出的80个名词物体;通过预先在MS COCO图片集上训练的faster-Fcnn模型对每一帧图像进行目标检测;
2-2.通过目标检测对步骤(1)中得到的每帧图像提取语义信息向量{Ai}其中,i为自然数,且i小于等于80;
所述的语义信息向量{Ai}有81维,代表了一个图片背景和80个名词物体,用于后续作为语义信息引导;
2-3.将得到的语义信息向量{Ai}与步骤1-3融合后的1376维特征向量级联,形成一个新的1457维的语义特征向量[Ai,XMS(i)],并将该语义特征向量[Ai,XMS(i)]添加到LSTM的每个时间节点中,并将该语义特征向量[Ai,XMS(i)]解码为单词;每个时间节点应选择的第i帧语义特征向量 的计算方法如式(2)所示:其中,[Ai,XMS(i)]表示第i帧图像的语义信息向量Ai和卷积神经网络及3D卷积神经网络提取的特征向量XMS(i)级联形成的语义特征向量, 表示第t个时间节点上第i帧语义特征向量[Ai,XMS(i)]的权重,加入权重的目的是在K帧图像中,选择出与每个时间节点关联度最大的一帧语义特征向量,加入到LSTM网络中;
步骤(3)所述的计算语义特征向量[Ai,XMS(i)]的权重 具体计算过程如下:每个待描述视频有K帧语义特征向量,但针对每个时间节点只需要添加一帧语义特征向量,所以需要分别计算出每个时间节点K帧图像中语义特征向量[Ai,XMS(i)]的权重,用于后续解码中选出权重最大也就是和当前时间节点视频内容最相关的一帧图像,语义特征向量[Ai,XMS(i)]的权重计算方法如式(3)、(4)所示:其中,wT,We,Ue表示训练参数, 是每个时间节点每一帧图像语义特征向量的值, 是每帧语义特征向量值在K帧语义特征向量中的比重,即为该语义特征向量的权重;
步骤(4)所述的对语义特征向量[Ai,XMS(i)]进行解码的过程如下:
利用式(3)和(4)中计算出的语义特征向量的权重代入式(2)中,计算出每个时间节点应选择的第i帧语义特征向量,即 并结合人类给出的句子描述中的每个单词,在每个时间节点将特征和单词依次加入到LSTM网络中;因为在训练视频描述模型训练阶段,是需要添加人类句子描述作为指导,所以总的训练节点是已知的,即人类描述句子的长度;整个训练过程是按照LSTM中三个门和cell的计算来不断更新隐藏状态ht,训练L个时间节点,L表示该视频人类句子描述的长度,所以最后会得到L个ht;根据输入到LSTM每一个神经单元信息的改变,对每一个时间点的it,ot,ft,gt,ct,ht的基础公式做出相应改进,每一个时间节点的隐藏状态ht的计算方法如式(5)-(9)所示:ct=ft⊙ct-1+it⊙gt (9)
ht=ot⊙tanh(ct)
在每个时间节点将得到一个隐藏状态ht,其储存了之前时间节点产生的句子信息,将其从LSTM网络中输出到前馈神经网络中,通过施加激活函数将其转化为R*V维的向量,R代表LSTM网络的维度,V代表候选单词维度,最后利用softmax函数的多分类方法,从V中选择概率最高的那一维的索引,对应到事先准备好的字典中,即可选择出每个时间节点应生成的单词;目标函数是最大化生成单词的正确率,也就是使得损失函数最小,损失函数计算方法如式(10)所示:其中,m表示训练的样本数,所以E是每一批训练样本中的平均损失函数,θ是所有训练的参数集合;p()表示表示生成第t个目标单词yt的概率;
通过梯度下降算法更新所有训练的参数直到损失函数最小,计算方法如式(11)、(12)所示:其中,wk,bk代表第k个训练参数,m表示每一批训练的样本,η表示学习效率,n表示n个参数;
步骤(5)所述的对视频描述模型进行测试,具体如下:
测试阶段,因为描述句子的内容和长度是未知的,训练后的视频内容描述模型运用beam search的方法,设定搜索范围q,在第一个时间节点设定初始单词索引为-1输入到第一个时间节点,即将零向量输入到第一个时间节点;计算出当前状态h0,并根据h0和softmax函数算出当前节点可能产生的q个单词索引,并将该q个单词继续加入到下一个时间节点中,计算下一个时间节点可能产生的q个单词并和上一节点的对应单词组成序列;在大小为V的候选单词中每个单词的概率计算公式如式(13)所示:其中,ht代表当前节点的隐藏状态,yt-1代表前一个时间节点由beam search搜索到的概率最大单词;
每当新一个单词出现索引0,则从搜索队列中去除,将其添加到候选句子队列中,同时搜索宽度减1;直到搜索宽度变为1且最后一个队列也搜索到索引为0的单词,则整个beam search过程结束;从q个候选句子队列中选出损失函数最小的一句作为该视频的描述。