一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种图像字幕生成方法、装置、设备及可读存储介质

2022-05-31 22:50:58 来源:中国专利 TAG:


1.本发明涉及图像处理技术领域,特别是涉及一种图像字幕生成方法、装置、设备及计算机可读存储介质。


背景技术:

2.图像字幕生成(image captioning)用于从视觉内容中提取自然语言内容,其属于序列建模任务中的子领域。这项技术的目标在于自动为图像添加字幕(caption),后续可用于图像搜索任务。为了生成高质量的字幕,需要理解不同元素(物体、动作、场景),并将它们用合适的语法结构组织起来。
3.现有技术中一般通过以下两类模型进行图像字幕生成,一类是不包含注意力(attention)机制的模型,基于由物体检测和属性分类的输出构成的模板进行图像字幕生成。然而,这种方法受限于模板的种类。另一类是包含注意力机制的模型。包含注意力机制的模型又分为基于cnn rnn的模型和基于变换器(transformer)的模型。
4.基于cnn rnn的模型将卷积神经网络(cnn)和循环神经网络(rnn)分别用来当作编码器和解码器,编码器cnn从输入图像中提取视觉特征,解码器rnn将视觉特征翻译成相应的词语。循环注意力将根据解码器rnn的状态向量来选择性地更关注一些图像区域。然而,循环神经网络固有的序列本质排除了训练并行化的可能性。对于两个有微弱联系的特征,循环神经网络需要通过几个时间步(timestep)来积累信息以将它们连接。因此,距离越远的信息越难被捕获到,从而导致图像字幕生成准确度低。
5.基于变换器的模型完全依赖于自注意力(self-attention)来计算它的输入和输出的表现,而不使用序列对齐(sequence-aligned)的循环神经网络。不同于循环注意力,变换器中的自注意力是完全的自我维持机制。自注意力机制通过直接并行化计算图像内部区域的相关联度的方式,在一定程度上避免了现有技术中的上述问题。然而,对于图像字幕生成来说,仅仅注意到图像内部区域的相关联度,无法识别到最有关联的区域,从而导致图像字幕生成准确度低。
6.综上所述,如何有效地解决现有的图像字幕生成方法,距离越远的信息越难被捕获到,仅仅注意到图像内部区域的相关联度,无法识别到最有关联的区域,导致图像字幕生成准确度低等问题,是目前本领域技术人员急需解决的问题。


技术实现要素:

7.本发明的目的是提供一种图像字幕生成方法,该方法兼顾了循环注意力机制和自注意力机制的优点,能够根据外部状态来识别最有关联的区域,较大地提高了图像字幕生成准确度;本发明的另一目的是提供一种图像字幕生成装置、设备及计算机可读存储介质。
8.为解决上述技术问题,本发明提供如下技术方案:
9.一种图像字幕生成方法,包括:
10.利用循环卷积神经网络对接收到的待生成字幕的目标图像进行特征提取,得到原
始图像特征集合;
11.将所述原始图像特征集合发送至序列化变化器模型,以利用所述序列化变化器模型中的序列化变化器编码器对所述原始图像特征集合进行编码操作,得到编码后图像特征集合;
12.获取序列记忆模型的当前时间步记忆体、所述序列化变化器模型中的序列化变化器解码器的当前时间步输出词向量;
13.结合所述原始图像特征集合、所述当前时间步记忆体、所述当前时间步输出词向量,确定所述序列记忆模型中长短期记忆网络的目标状态变量;
14.利用所述序列记忆模型基于所述目标状态变量对所述原始图像特征集合进行注意力调整,得到注意力调整后特征;
15.将所述注意力调整后特征和所述目标状态变量输入所述序列记忆模型中的门控线性单元,得到所述序列记忆模型输出的目标记忆体;
16.将所述编码后图像特征集合、所述当前时间步记忆体以及所述当前时间步输出词向量输入至所述序列化变化器模型中的序列化变化器解码器,得到所述序列化变化器解码器的目标解码器输出;
17.对所述目标记忆体和所述目标解码器输出进行加权求和,并利用分类器根据所述加权求和结果确定预设词典中各词语分别对应的预测概率;
18.将各所述预测概率中最大值对应的词语确定为目标词语,并将所述目标词语的词向量确定为目标输出词向量;
19.将所述目标状态变量确定为当前状态变量,将所述目标记忆体确定为当前时间步记忆体,并将所述目标输出词向量确定为当前时间步输出词向量,重复执行所述结合所述原始图像特征集合、所述当前时间步记忆体、所述当前时间步输出词向量,确定所述长短期记忆网络的目标状态变量的步骤,直至检测到停止标志;
20.将各所述目标词语进行串联组合,得到所述目标图像对应的目标字幕。
21.在本发明的一种具体实施方式中,结合所述原始图像特征集合、所述当前时间步记忆体、所述当前时间步输出词向量,确定所述序列记忆模型中长短期记忆网络的目标状态变量,包括:
22.计算所述原始图像特征集合的平均池化;
23.对所述平均池化和所述当前时间步记忆体进行求和计算,得到融合向量;
24.对所述当前时间步输出词向量和所述融合向量进行向量拼接,得到拼接向量;
25.将所述拼接向量输入至所述长短期记忆网络,得到所述长短期记忆网络的目标状态变量;
26.重复执行所述结合所述原始图像特征集合、所述当前时间步记忆体、所述当前时间步输出词向量,确定所述长短期记忆网络的目标状态变量的步骤,包括:
27.重复执行所述对所述平均池化和所述当前时间步记忆体进行求和计算,得到融合向量的步骤。
28.在本发明的一种具体实施方式中,利用所述序列化变化器模型中的序列化变化器编码器对所述原始图像特征集合进行编码操作,包括:
29.利用所述序列化变化器编码器的多头自注意力机制和全连接前馈网络对所述原
始图像特征集合进行编码操作。
30.在本发明的一种具体实施方式中,将所述编码后图像特征集合、所述当前时间步记忆体以及所述当前时间步输出词向量输入至所述序列化变化器模型中的序列化变化器解码器,得到所述序列化变化器解码器的目标解码器输出,包括:
31.将所述编码后图像特征集合、所述当前时间步记忆体以及所述当前时间步输出词向量输入至包含多头自注意力机制和全连接前馈网络的序列化变化器解码器,得到所述序列化变化器解码器的目标解码器输出。
32.一种图像字幕生成装置,包括:
33.特征提取模块,用于利用循环卷积神经网络对接收到的待生成字幕的目标图像进行特征提取,得到原始图像特征集合;
34.编码模块,用于将所述原始图像特征集合发送至序列化变化器模型,以利用所述序列化变化器模型中的序列化变化器编码器对所述原始图像特征集合进行编码操作,得到编码后图像特征集合;
35.记忆体及词向量获取模块,用于获取序列记忆模型的当前时间步记忆体、所述序列化变化器模型中的序列化变化器解码器的当前时间步输出词向量;
36.状态变量确定模块,用于结合所述原始图像特征集合、所述当前时间步记忆体、所述当前时间步输出词向量,确定所述序列记忆模型中长短期记忆网络的目标状态变量;
37.注意力调整模块,用于利用所述序列记忆模型基于所述目标状态变量对所述原始图像特征集合进行注意力调整,得到注意力调整后特征;
38.记忆体获得模块,用于将所述注意力调整后特征和所述目标状态变量输入所述序列记忆模型中的门控线性单元,得到所述序列记忆模型输出的目标记忆体;
39.解码器输出获得模块,用于将所述编码后图像特征集合、所述当前时间步记忆体以及所述当前时间步输出词向量输入至所述序列化变化器模型中的序列化变化器解码器,得到所述序列化变化器解码器的目标解码器输出;
40.预测概率确定模块,用于对所述目标记忆体和所述目标解码器输出进行加权求和,并利用分类器根据所述加权求和结果确定预设词典中各词语分别对应的预测概率;
41.输出词向量确定模块,用于将各所述预测概率中最大值对应的词语确定为目标词语,并将所述目标词语的词向量确定为目标输出词向量;
42.重复执行模块,用于将所述目标状态变量确定为当前状态变量,将所述目标记忆体确定为当前时间步记忆体,并将所述目标输出词向量确定为当前时间步输出词向量,重复执行所述结合所述原始图像特征集合、所述当前时间步记忆体、所述当前时间步输出词向量,确定所述长短期记忆网络的目标状态变量的步骤,直至检测到停止标志;
43.字幕获得模块,用于将各所述目标词语进行串联组合,得到所述目标图像对应的目标字幕。
44.在本发明的一种具体实施方式中,所述状态变量确定模块包括:
45.平均池化计算子模块,用于计算所述原始图像特征集合的平均池化;
46.融合向量获得子模块,用于对所述平均池化和所述当前时间步记忆体进行求和计算,得到融合向量;
47.向量拼接子模块,用于对所述当前时间步输出词向量和所述融合向量进行向量拼
接,得到拼接向量;
48.状态变量获得子模块,用于将所述拼接向量输入至所述长短期记忆网络,得到所述长短期记忆网络的目标状态变量;
49.重复执行模块具体为重复执行所述对所述平均池化和所述当前时间步记忆体进行求和计算,得到融合向量的步骤的模块。
50.在本发明的一种具体实施方式中,所述编码模块具体为利用所述序列化变化器编码器的多头自注意力机制和全连接前馈网络对所述原始图像特征集合进行编码操作的模块。
51.在本发明的一种具体实施方式中,所述解码器输出获得模块具体为将所述编码后图像特征集合、所述当前时间步记忆体以及所述当前时间步输出词向量输入至包含多头自注意力机制和全连接前馈网络的序列化变化器解码器,得到所述序列化变化器解码器的目标解码器输出的模块。
52.一种图像字幕生成设备,包括:
53.存储器,用于存储计算机程序;
54.处理器,用于执行所述计算机程序时实现如前所述图像字幕生成方法的步骤。
55.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述图像字幕生成方法的步骤。
56.本发明所提供的图像字幕生成方法,利用循环卷积神经网络对接收到的待生成字幕的目标图像进行特征提取,得到原始图像特征集合;将原始图像特征集合发送至序列化变化器模型,以利用序列化变化器模型中的序列化变化器编码器对原始图像特征集合进行编码操作,得到编码后图像特征集合;获取序列记忆模型的当前时间步记忆体、序列化变化器模型中的序列化变化器解码器的当前时间步输出词向量;结合原始图像特征集合、当前时间步记忆体、当前时间步输出词向量,确定序列记忆模型中长短期记忆网络的目标状态变量;利用序列记忆模型基于目标状态变量对原始图像特征集合进行注意力调整,得到注意力调整后特征;将注意力调整后特征和目标状态变量输入序列记忆模型中的门控线性单元,得到序列记忆模型输出的目标记忆体;将编码后图像特征集合、当前时间步记忆体以及当前时间步输出词向量输入至序列化变化器模型中的序列化变化器解码器,得到序列化变化器解码器的目标解码器输出;对目标记忆体和目标解码器输出进行加权求和,并利用分类器根据加权求和结果确定预设词典中各词语分别对应的预测概率;将各预测概率中最大值对应的词语确定为目标词语,并将目标词语的词向量确定为目标输出词向量;将目标状态变量确定为当前状态变量,将目标记忆体确定为当前时间步记忆体,并将目标输出词向量确定为当前时间步输出词向量,重复执行结合原始图像特征集合、当前时间步记忆体、当前时间步输出词向量,确定长短期记忆网络的目标状态变量的步骤,直至检测到停止标志;将各目标词语进行串联组合,得到目标图像对应的目标字幕。
57.由上述技术方案可知,提出了用于图像字幕生成的外向内注意力机制。通过在序列记忆模型中部署外向内注意力的长短期记忆网络。结合原始图像特征集合、当前时间步记忆体、当前时间步输出词向量,确定序列记忆模型中长短期记忆网络的目标状态变量,而后对目标状态变量和原始图像特征集合进行注意力调整,将结果送入门控线性单元进行输出。预先训练包含了序列化变换器编码器和解码器的序列化变换器模型。对于序列化变换
器编码器,其中的注意力机制为使用了自注意力的多头自注意力机制,对于序列化变换器解码器,将序列记忆模型的输出和解码器输出按照一定比例加权求和进行平衡调整得到最终的输出。相较于只考虑循环神经网络或者只考虑自注意力机制。本发明兼顾了循环注意力机制和自注意力机制的优点,能够根据外部状态来识别最有关联的区域,较大地提高了图像字幕生成准确度。
58.相应的,本发明还提供了与上述图像字幕生成方法相对应的图像字幕生成装置、设备和计算机可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
59.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
60.图1为本发明实施例中图像字幕生成方法的一种实施流程图;
61.图2为本发明实施例中图像字幕生成方法的另一种实施流程图;
62.图3为一种自注意力机制应用到图像字幕生成任务的结构图;
63.图4为一种外向内注意力机制应用到图像字幕生成任务的结构图;
64.图5为外向内注意力机制的示意图表;
65.图6为本发明实施例中一种图像字幕生成装置的结构框图;
66.图7为本发明实施例中一种图像字幕生成设备的结构框图;
67.图8为本实施例提供的一种图像字幕生成设备的具体结构示意图。
具体实施方式
68.为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
69.参见图1,图1为本发明实施例中图像字幕生成方法的一种实施流程图,该方法可以包括以下步骤:
70.s101:利用循环卷积神经网络对接收到的待生成字幕的目标图像进行特征提取,得到原始图像特征集合。
71.当接收到需要生成字幕的目标图像时,利用循环卷积神经网络r-cnn对接收到的待生成字幕的目标图像进行特征提取,得到原始图像特征集合。
72.s102:将原始图像特征集合发送至序列化变化器模型,以利用序列化变化器模型中的序列化变化器编码器对原始图像特征集合进行编码操作,得到编码后图像特征集合。
73.预先训练包含序列化变化器编码器的序列化变化器模型。在利用循环卷积神经网络提取到目标图像的原始图像特征集合之后,将原始图像特征集合发送至序列化变化器模型,以利用序列化变化器模型中的序列化变化器编码器对原始图像特征集合进行编码操作,得到编码后图像特征集合。
74.s103:获取序列记忆模型的当前时间步记忆体、序列化变化器模型中的序列化变化器解码器的当前时间步输出词向量。
75.预先训练序列记忆模型,序列化变化器模型中还包含序列化变化器解码器。获取序列记忆模型的当前时间步记忆体、序列化变化器模型中的序列化变化器解码器的当前时间步输出词向量。
76.s104:结合原始图像特征集合、当前时间步记忆体、当前时间步输出词向量,确定序列记忆模型中长短期记忆网络的目标状态变量。
77.在利用循环卷积神经网络提取到目标图像的原始图像特征集合,并获取到序列记忆模型的当前时间步记忆体、序列化变化器模型中的序列化变化器解码器的当前时间步输出词向量之后,结合原始图像特征集合、当前时间步记忆体、当前时间步输出词向量,确定序列记忆模型中长短期记忆网络lstm的目标状态变量。
78.s105:利用序列记忆模型基于目标状态变量对原始图像特征集合进行注意力调整,得到注意力调整后特征。
79.在确定出序列记忆模型中长短期记忆网络的目标状态变量之后,利用序列记忆模型基于目标状态变量对原始图像特征集合进行注意力调整,得到注意力调整后特征。
80.s106:将注意力调整后特征和目标状态变量输入序列记忆模型中的门控线性单元,得到序列记忆模型输出的目标记忆体。
81.在通过对原始图像特征集合进行注意力调整,得到注意力调整后特征之后,将注意力调整后特征和目标状态变量输入序列记忆模型中的门控线性单元glu,得到序列记忆模型输出的目标记忆体。
82.s107:将编码后图像特征集合、当前时间步记忆体以及当前时间步输出词向量输入至序列化变化器模型中的序列化变化器解码器,得到序列化变化器解码器的目标解码器输出。
83.获取当前时间步输出词向量,在得到序列记忆模型输出的目标记忆体之后,将编码后图像特征集合、当前时间步记忆体以及当前时间步输出词向量输入至序列化变化器模型中的序列化变化器解码器,得到序列化变化器解码器的目标解码器输出。
84.s108:对目标记忆体和目标解码器输出进行加权求和,并利用分类器根据加权求和结果确定预设词典中各词语分别对应的预测概率。
85.在目标解码器输出之后,对目标记忆体和目标解码器输出进行加权求和,并利用分类器根据加权求和结果确定预设词典中各词语分别对应的预测概率。
86.s109:将各预测概率中最大值对应的词语确定为目标词语,并将目标词语的词向量确定为目标输出词向量。
87.在利用分类器根据加权求和结果确定预设词典中各词语分别对应的预测概率之后,对各预测概率进行大小排序,根据排序结果选取最大的预测概率,将各预测概率中最大值对应的词语确定为目标词语,并将目标词语的词向量确定为目标输出词向量。
88.s110:将目标状态变量确定为当前状态变量,将目标记忆体确定为当前时间步记忆体,并将目标输出词向量确定为当前时间步输出词向量。
89.在确定出目标输出词向量之后,将目标状态变量确定为当前状态变量,将目标记忆体确定为当前时间步记忆体,并将目标输出词向量确定为当前时间步输出词向量。
90.s111:判断是否检测到停止标志,若否,则返回步骤s104,若是,则执行步骤s112。
91.预先设置停止标志,在本次时间步执行完成时,判断是否检测到停止标志,若否,则说明构成目标图像字幕的各词语还未完全确定出来,需要进一步进行词语确定,返回步骤s104,若是,则说明已经完全确定出构成目标图像字幕的各词语,执行步骤s112。
92.s112:将各目标词语进行串联组合,得到目标图像对应的目标字幕。
93.在检测到停止标志时,说明已经完全确定出构成目标图像字幕的各词语,将各目标词语进行串联组合,得到目标图像对应的目标字幕。
94.由上述技术方案可知,提出了用于图像字幕生成的外向内注意力机制。通过在序列记忆模型中部署外向内注意力的长短期记忆网络。结合原始图像特征集合、当前时间步记忆体、当前时间步输出词向量,确定序列记忆模型中长短期记忆网络的目标状态变量,而后对目标状态变量和原始图像特征集合进行注意力调整,将结果送入门控线性单元进行输出。预先训练包含了序列化变换器编码器和解码器的序列化变换器模型。对于序列化变换器编码器,其中的注意力机制为使用了自注意力的多头自注意力机制,对于序列化变换器解码器,将序列记忆模型的输出和解码器输出按照一定比例加权求和进行平衡调整得到最终的输出。相较于只考虑循环神经网络或者只考虑自注意力机制。本发明兼顾了循环注意力机制和自注意力机制的优点,能够根据外部状态来识别最有关联的区域,较大地提高了图像字幕生成准确度。
95.需要说明的是,基于上述实施例,本发明实施例还提供了相应的改进方案。在后续实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在下文的改进实施例中不再一一赘述。
96.参见图2,图2为本发明实施例中图像字幕生成方法的另一种实施流程图,该方法可以包括以下步骤:
97.s201:利用循环卷积神经网络对接收到的待生成字幕的目标图像进行特征提取,得到原始图像特征集合。
98.利用循环卷积神经网络对目标图像进行特征提取,得到原始图像特征集合。原始图像特征集合可表示为a={a1,a2,

,an}。
99.s202:将原始图像特征集合发送至序列化变化器模型,以利用序列化变化器编码器的多头自注意力机制和全连接前馈网络对原始图像特征集合进行编码操作,得到编码后图像特征集合。
100.利用序列化变化器编码器的多头自注意力机制和全连接前馈网络对原始图像特征集合进行编码操作,得到编码后图像特征集合。编码后图像特征集合可表示为on。
101.序列化变换器编码器为由n=6个块级联而成,每块都包含一个多头自注意力机制(multi-head self-attention)和一个全连接前馈网络,公式如下:
[0102][0103][0104][0105]
其中,addnorm表示残差连接加层归一化操作。在多头注意力(multi-head)子层
中,a中的键向量(key)、查询向量(query)和值向量(value)会被转换为相同的维度。随后,编码器的输出经过归一化后的结果被送进一个包含了两个线性转换中间为relu的全连接前馈网络来应用位置信息。和为可学习优化的线性变换的参数,在经过线性层之后进行激活函数再通过一个线性层,得到中间结果得到中间结果表示第(l 1)个块的输出。因为编码器具有循环结构,所以当前块的输入是上一块的输出。在经过n块级联后,最后一个块(第n块)的输出为on,同时也是整个编码器的输出。且定义第一个块的输入o0=a pe(a),其中a为通过循环卷积神经网络提取的图像特征集合,pe为图像的位置编码信息。关于图像的位置编码信息pe(position embedding)说明如下:
[0106]
将图像划分为k*k大小的patch(网格划分,本发明k=14),而后将[k*k]大小的图像网格拉伸为[k*k]长度的一维序列,对这个序列使用位置编码,即:
[0107][0108]
其中f为图像特征维数,pos_img为每个像素所在patch在上文所述一维序列内的对应顺序编号。a在位置编码中为2的整数倍即可,可选用2。
[0109]
self-attention(自注意力)机制在变换器中一般也叫做缩放点积注意力(attention)。理论上,一个注意力attention模块可以被描述为将一个查询向量(query)和一组key-value(键值对)映射到输出空间。自注意力是一种特殊的注意力,它的用途是获取输入序列的内部联系。在自注意力中,q(查询),k(键),v(值)都来自于相同的输入。它首先度量了q={q1,

,qn}和k={k1,

,km}间的相似性,并使用相似性来计算v={v1,

,vm}的加权平均和,可表述为:
[0110][0111]
定义且d为缩放因子。
[0112]
为了使模型可以同时在不同子空间上做注意力,翻译器(transformer)使用了多头注意力机制(multi-headattention)(并行实施自注意力h次)。在每一个头上q(查询),k(键),v(值)分别线性投影到dk,dk,dv维空间上。可表述为:
[0113]
multihead(q,k,v)=concat(h1,...,hh)wo;
[0114][0115]
其中,为头(head)投影矩阵,
为线性转换矩阵,并且dm=dk*h为keys、values、queries的初始化维度,dk为单头注意力key的维度,在应用多头注意力且头数为h时,维度变为dk*h。
[0116]
定义了两种不同的多头注意力机制(multi-head attention)结构。这两种结构定义如下:
[0117]
υ=multiheads(κ);
[0118]
υ=multiheado(κ);
[0119]
第一种是每一个头(head)都是自注意力机制的多头自注意力机制结构(multi-head),第二种是每一个头(head)都是外向内注意力机制(multi-head outside-in attention)。其中κ表示输入,υ表示输出。
[0120]
s203:获取序列记忆模型的当前时间步记忆体、序列化变化器模型中的序列化变化器解码器的当前时间步输出词向量。
[0121]
获取序列记忆模型的当前时间步记忆体序列化变化器模型中的序列化变化器解码器的当前时间步输出词向量s
t-1

[0122]
s204:计算原始图像特征集合的平均池化。
[0123]
计算原始图像特征集合的平均池化。原始图像特征集合的平均池化可表示为
[0124]
s205:对平均池化和当前时间步记忆体进行求和计算,得到融合向量。
[0125]
在计算得到原始图像特征集合的平均池化并获取序列记忆模型的当前时间步记忆体之后,对平均池化和当前时间步记忆体进行求和计算,得到融合向量
[0126]
s206:对当前时间步输出词向量和融合向量进行向量拼接,得到拼接向量。
[0127]
在获取到序列化变化器模型中的序列化变化器解码器的当前时间步输出词向量,并计算得到融合向量之后,对当前时间步输出词向量s
t-1
和融合向量进行向量拼接,得到拼接向量。可以通过以下公式进行向量拼接:
[0128][0129]
从而得到拼接向量。
[0130]
s207:将拼接向量输入至长短期记忆网络,得到长短期记忆网络的目标状态变量。
[0131]
在得到拼接向量之后,将拼接向量输入至长短期记忆网络,得到长短期记忆网络的目标状态变量h
t
。可以通过以下公式进行目标状态变量计算:
[0132]ht
=lstm(x
t
,h
t-1
);
[0133]
从而得到目标状态变量。
[0134]
翻译器(transformer)不具有顺序性。因此,大多方法都会添加一个“位置编码”模块来使模型可以利用到序列的顺序信息。然而,这种方法和循环神经网络相比仍然具有不足。因此,在提出的序列化变换器结构中添加了一个长短期记忆网络(lstm)层来增强模型的序列建模能力。
[0135]
长短期记忆网络模型是时序模型的一种,它可以完善普通时序模型的一个功能,就是当输入的序列或者文本过于长的情况下,能够有较长的记忆,也就是说长期依赖性。一个长短期记忆网络由一长串的门(gate)构成。分别是input gate(current cell state),
forget gate(0:忘记之前的所有;1:通过之前的所有),output gate(选择输出),new memory cell(得到新的记忆单元)。四种不同的门相互协作,相互抑制,从而使整个模型运作起来。其中input gate主要是来完成输入接口的工作,forget gate主要是用来控制模型判断信息的遗留问题,output gate主要控制模型的输出,而new memory cell是整个模型的“大脑”,其可以控制整个模型的运行。
[0136]
s208:利用序列记忆模型基于目标状态变量对原始图像特征集合进行注意力调整,得到注意力调整后特征。
[0137]
在得到长短期记忆网络的目标状态变量h
t
之后,利用序列记忆模型基于目标状态变量对原始图像特征集合进行注意力调整,得到注意力调整后特征可以通过以下公式将送入外向内注意力(multi-head outside-in)子层:
[0138][0139]
从而产生一个更具有代表性的经过注意力调整过后的特征。
[0140]
s209:将注意力调整后特征和目标状态变量输入序列记忆模型中的门控线性单元,得到序列记忆模型输出的目标记忆体。
[0141]
在得到注意力调整后特征之后,将注意力调整后特征和目标状态变量h
t
输入序列记忆模型中的门控线性单元,得到序列记忆模型输出的目标记忆体可以通过以下公式将注意力调整后特征和目标状态变量输入序列记忆模型中的门控线性单元:
[0142][0143]
从而得到序列记忆模型输出的目标记忆体
[0144]
s210:将编码后图像特征集合、当前时间步记忆体以及当前时间步输出词向量输入至包含多头自注意力机制和全连接前馈网络的序列化变化器解码器,得到序列化变化器解码器的目标解码器输出。
[0145]
序列化变化器解码器包含多头自注意力机制(multi-head attention)和全连接前馈网络。将编码后图像特征集合on、当前时间步记忆体以及当前时间步输出词向量s
t-1
输入至序列化变化器解码器,得到序列化变化器解码器的目标解码器输出
[0146]
类似地,序列化变换器解码器也可由n块(如n=6)级联而成,以下公式中l的每一次循环即视为经过一个块:
[0147][0148]
for l in range(0,n):
[0149][0150][0151]
[0152][0153]
其中,s
<t
={s0,s1,

,s
t-1
}为整个模型历史输出序列的特征向量集合,addnorm即对数据进行残差连接和层归一化处理,ffn即先后对数据进行线性变换和非线性激活(非线性激活函数可采用tanh函数),multiheads即每个头(head)都为自注意力(self-attention)的多头注意力(multi-head attention)。
[0154]
对序列s
<t
使用位置编码,即:
[0155][0156]
其中,a为序列特征维数,pos_seq为每个单词一维序列s
<t
内的对应顺序编号。
[0157]
第t个时间步(timestep)时第l 1个块的输入包括:编码器的输出on、序列记忆模块的输出序列解码器的输出序列(即,整个模型历史输出序列的特征向量集合)。
[0158]
s211:对目标记忆体和目标解码器输出进行加权求和,并利用分类器根据加权求和结果确定预设词典中各词语分别对应的预测概率。
[0159]
在得到序列化变化器解码器的目标解码器输出之后,对目标记忆体和目标解码器输出进行加权求和,并利用分类器根据加权求和结果确定预设词典中各词语分别对应的预测概率。
[0160]
第t个t时间步时解码器的整体输出为最后一个块的输出,即第n块的输出将其与序列记忆模块的当前时间步输出按照1-β与β的比例进行数据融合,得到矩阵ξ
t
,将其送入线性层 softmax去计算在第t个时间步时每个可能词语的概率,公式如下:
[0161][0162]
p
t
=softmax(ξ
twp
);
[0163]
关于以上的过程及变量,且是句子开头的词语(token)的特征向量。其中且softmax表示逻辑回归分类函数。a代表通过卷积神经网络vgg模型提取的特征,其维度为[2048,49]。加权所得到的最终结果是可学习优化的线性变化的参数,并且|ξ|为词典的大小。
[0164]
s212:将各预测概率中最大值对应的词语确定为目标词语,并将目标词语的词向量确定为目标输出词向量。
[0165]
s213:将目标状态变量确定为当前状态变量,将目标记忆体确定为当前时间步记忆体,并将目标输出词向量确定为当前时间步输出词向量。
[0166]
s214:判断是否检测到停止标志,若否,则返回步骤s205,若是,则执行步骤s215。
[0167]
s215:将各目标词语进行串联组合,得到目标图像对应的目标字幕。
[0168]
本实施例区别于独立权利要求1所要求保护的技术方案对应的实施例一,还增加了从属权利要求2至4对应要求保护的技术方案,当然,根据实际情况和要求的不同,可将各从属权利要求对应要求保护的技术方案在不影响方案完整性的基础上进行灵活组合,以更加符合不同使用场景的要求,本实施例只是给出了其中一种包含方案最多、效果最优的方案,因为情况复杂,无法对所有可能存在的方案一一列举,本领域技术人员应能意识到根据本技术提供的基本方法原理结合实际情况可以存在很多的例子,在不付出足够的创造性劳动下,应均在本技术的保护范围内。
[0169]
参见图3,图3为一种自注意力机制应用到图像字幕生成任务的结构图。从图3中可以看出,自注意力机制仅能在图像区域内部获取关联,其操作是在图像中生成查询向量(queries)、键向量(keys)和值向量(values)三个向量集合,并根据计算出的查询向量(query)和键向量(key)的相似度分布来对值向量(value)求加权和。
[0170]
参见图4,图4为一种外向内注意力机制应用到图像字幕生成任务的结构图。从图4中可以看到,外向内注意力机制将外部状态当作一个额外的查询向量(query)。与图3的方法不同的是,其不仅可以获取到图像内部区域的关联度,也可以获取到图像内部区域和外部状态的关联度。这样,模型便可以在每一个时间步上像自注意力一样获取到最相关的区域。
[0171]
参见图5,图5为外向内注意力机制的示意图表。内外向注意力机制即为序列记忆化模块中的multiheado子层,可表述如下:
[0172]
(1)对图像进行自注意力,得到当前注意力子层对应的查询向量(queries)、键向量(keys)和值向量(values)。
[0173]
(2)对查询向量(queries)和键向量(keys)做内积得到注意力α的注意图像矩阵attentionmap1。
[0174]
(3)将注意力矩阵attentionmap1与图像的值向量(values)做点乘得到经过注意力调整的图像特征x。
[0175]
(4)设序列记忆模型中长短期记忆网络在上一个时间步的外部状态变量h
t-1
为query。
[0176]
(5)将x与query进行相加后激活函数(softmax)归一化得到每一个像素的注意力的矩阵attentionmap2。
[0177]
(6)将注意力矩阵attentionmap2与x做点乘得到特征矩阵c。
[0178]
(7)重复6次并将结果进行拼接后线性变换为
[0179]
这样,即可同时考虑到外部状态h
t-1
以及内部区域之间的联系,同时继承了多头注意力(multi-head attention)和循环注意力的优点。
[0180]
相应于上面的方法实施例,本发明还提供了一种图像字幕生成装置,下文描述的图像字幕生成装置与上文描述的图像字幕生成方法可相互对应参照。
[0181]
参见图6,图6为本发明实施例中一种图像字幕生成装置的结构框图,该装置可以包括:
[0182]
特征提取模块601,用于利用循环卷积神经网络对接收到的待生成字幕的目标图像进行特征提取,得到原始图像特征集合;
[0183]
编码模块602,用于将原始图像特征集合发送至序列化变化器模型,以利用序列化变化器模型中的序列化变化器编码器对原始图像特征集合进行编码操作,得到编码后图像特征集合;
[0184]
记忆体及词向量获取模块603,用于获取序列记忆模型的当前时间步记忆体、序列化变化器模型中的序列化变化器解码器的当前时间步输出词向量;
[0185]
状态变量确定模块604,用于结合原始图像特征集合、当前时间步记忆体、当前时间步输出词向量,确定序列记忆模型中长短期记忆网络的目标状态变量;
[0186]
注意力调整模块605,用于利用序列记忆模型基于目标状态变量对原始图像特征集合进行注意力调整,得到注意力调整后特征;
[0187]
记忆体获得模块606,用于将注意力调整后特征和目标状态变量输入序列记忆模型中的门控线性单元,得到序列记忆模型输出的目标记忆体;
[0188]
解码器输出获得模块607,用于将编码后图像特征集合、当前时间步记忆体以及当前时间步输出词向量输入至序列化变化器模型中的序列化变化器解码器,得到序列化变化器解码器的目标解码器输出;
[0189]
预测概率确定模块608,用于对目标记忆体和目标解码器输出进行加权求和,并利用分类器根据加权求和结果确定预设词典中各词语分别对应的预测概率;
[0190]
输出词向量确定模块609,用于将各预测概率中最大值对应的词语确定为目标词语,并将目标词语的词向量确定为目标输出词向量;
[0191]
重复执行模块610,用于将目标状态变量确定为当前状态变量,将目标记忆体确定为当前时间步记忆体,并将目标输出词向量确定为当前时间步输出词向量,重复执行结合原始图像特征集合、当前时间步记忆体、当前时间步输出词向量,确定长短期记忆网络的目标状态变量的步骤,直至检测到停止标志;
[0192]
字幕获得模块611,用于将各目标词语进行串联组合,得到目标图像对应的目标字幕。
[0193]
由上述技术方案可知,提出了用于图像字幕生成的外向内注意力机制。通过在序列记忆模型中部署外向内注意力的长短期记忆网络。结合原始图像特征集合、当前时间步记忆体、当前时间步输出词向量,确定序列记忆模型中长短期记忆网络的目标状态变量,而后对目标状态变量和原始图像特征集合进行注意力调整,将结果送入门控线性单元进行输出。预先训练包含了序列化变换器编码器和解码器的序列化变换器模型。对于序列化变换器编码器,其中的注意力机制为使用了自注意力的多头自注意力机制,对于序列化变换器解码器,将序列记忆模型的输出和解码器输出按照一定比例加权求和进行平衡调整得到最终的输出。相较于只考虑循环神经网络或者只考虑自注意力机制。本发明兼了循环注意力机制和自注意力机制的优点,能够根据外部状态来识别最有关联的区域,较大地提高了图
像字幕生成准确度。
[0194]
在本发明的一种具体实施方式中,状态变量确定模块604包括:
[0195]
平均池化计算子模块,用于计算原始图像特征集合的平均池化;
[0196]
融合向量获得子模块,用于对平均池化和当前时间步记忆体进行求和计算,得到融合向量;
[0197]
向量拼接子模块,用于对当前时间步输出词向量和融合向量进行向量拼接,得到拼接向量;
[0198]
状态变量获得子模块,用于将拼接向量输入至长短期记忆网络,得到长短期记忆网络的目标状态变量;
[0199]
重复执行模块具体为重复执行对平均池化和当前时间步记忆体进行求和计算,得到融合向量的步骤的模块。
[0200]
在本发明的一种具体实施方式中,编码模块602具体为利用序列化变化器编码器的多头自注意力机制和全连接前馈网络对原始图像特征集合进行编码操作的模块。
[0201]
在本发明的一种具体实施方式中,解码器输出获得模块607具体为将编码后图像特征集合、当前时间步记忆体以及当前时间步输出词向量输入至包含多头自注意力机制和全连接前馈网络的序列化变化器解码器,得到序列化变化器解码器的目标解码器输出的模块。
[0202]
相应于上面的方法实施例,参见图7,图7为本发明所提供的图像字幕生成设备的示意图,该设备可以包括:
[0203]
存储器332,用于存储计算机程序;
[0204]
处理器322,用于执行计算机程序时实现上述方法实施例的图像字幕生成方法的步骤。
[0205]
具体的,请参考图8,图8为本实施例提供的一种图像字幕生成设备的具体结构示意图,该图像字幕生成设备可因配置或性能不同而产生比较大的差异,可以包括处理器(central processing units,cpu)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,处理器322可以设置为与存储器332通信,在图像字幕生成设备301上执行存储器332中的一系列指令操作。
[0206]
图像字幕生成设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。
[0207]
上文所描述的图像字幕生成方法中的步骤可以由图像字幕生成设备的结构实现。
[0208]
相应于上面的方法实施例,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下步骤:
[0209]
利用循环卷积神经网络对接收到的待生成字幕的目标图像进行特征提取,得到原始图像特征集合;将原始图像特征集合发送至序列化变化器模型,以利用序列化变化器模型中的序列化变化器编码器对原始图像特征集合进行编码操作,得到编码后图像特征集合;获取序列记忆模型的当前时间步记忆体、序列化变化器模型中的序列化变化器解码器
的当前时间步输出词向量;结合原始图像特征集合、当前时间步记忆体、当前时间步输出词向量,确定序列记忆模型中长短期记忆网络的目标状态变量;利用序列记忆模型基于目标状态变量对原始图像特征集合进行注意力调整,得到注意力调整后特征;将注意力调整后特征和目标状态变量输入序列记忆模型中的门控线性单元,得到序列记忆模型输出的目标记忆体;将编码后图像特征集合、当前时间步记忆体以及当前时间步输出词向量输入至序列化变化器模型中的序列化变化器解码器,得到序列化变化器解码器的目标解码器输出;对目标记忆体和目标解码器输出进行加权求和,并利用分类器根据加权求和结果确定预设词典中各词语分别对应的预测概率;将各预测概率中最大值对应的词语确定为目标词语,并将目标词语的词向量确定为目标输出词向量;将目标状态变量确定为当前状态变量,将目标记忆体确定为当前时间步记忆体,并将目标输出词向量确定为当前时间步输出词向量,重复执行结合原始图像特征集合、当前时间步记忆体、当前时间步输出词向量,确定长短期记忆网络的目标状态变量的步骤,直至检测到停止标志;将各目标词语进行串联组合,得到目标图像对应的目标字幕。
[0210]
该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0211]
对于本发明提供的计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不做赘述。
[0212]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置、设备及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0213]
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献