基于模态内及模态间混合融合的图像菜谱检索方法

文档序号:25355029发布日期:2021-06-08 14:33阅读:132来源:国知局
基于模态内及模态间混合融合的图像菜谱检索方法

1.本发明涉及跨模态检索领域,具体是指基于模态内及模态间混合融合的图像菜谱检索方法。


背景技术:

2.随着互联网中文本、图像、视频等多媒体数据的日益增多,跨越不同模态的检索成为信息检索的新趋势;跨媒体检索是指将任意媒体类型的数据作为输入查询,检索出所有媒体类型中语义相关的数据;跨媒体图文检索是广泛地针对图像和文本之间的检索任务;在本发明中,将跨媒体图文检索的应用场景具体化为食物图像和菜谱文本的相互检索:对任意一个食物图像,检索出与其内容描述最相关的菜谱描述文本,或对任意一个菜谱描述文本,检索出与其描述最相关的食物图像;一般情况下,数据集中将提供图像和相应的菜谱,其中每份菜谱包含食材和烹饪步骤;食材包括各种食物原料,其中某些食材(例如,牛肉,鸡蛋)在菜肴中直接可见而某些食材(例如,盐,蜂蜜)在菜肴中不直接可见;大多数食材对高温、切割和其他烹饪操作敏感,其原始外观易于改变;烹饪步骤包含有关烹饪的复杂的逻辑信息;同时,图像中的食物目标通常呈现出堆叠交错的姿态;因此,对于图像和菜谱的跨模态检索,其难点在于如何有侧重点的表示图像或菜谱的信息,获得更有效的模态特征,来全面衡量图像和菜谱的相似度。
3.现有的大多数方法都采用两个独立的循环神经网络对菜谱中的食材和烹饪步骤分别进行编码,并使用卷积神经网络来提取全局的图像特征;检索损失函数用于拉近匹配对并推开不相似对;尽管现有方法在跨模态图像菜谱检索方面取得了一些成就,但它们仍存在以下不足:
4.1)现有方法较少关注食谱中食材和烹饪步骤之间的潜在交互作用,食材和烹饪步骤中的关键信息通常同时出现,而它们各自的特征无法很好地表示它们之间的关系。
5.2)现有方法通常使用全局图像特征表示,而忽略了细粒度的食物图像区域,这导致在特征提取中很容易忽略占据少数像素点的食材,全局的图像特征很难捕获食材的大小、形状、主要和次要关系,从而导致检索性能不尽人意。
6.3)大多数方法将图像和菜谱投影到共享子空间以学习它们的特征分布,度量二者的距离,这种方式缺乏两种模态数据的交互与融合,使得子空间学习不够有效。


技术实现要素:

7.基于以上问题,本发明提供了基于模态内及模态间混合融合的图像菜谱检索方法,解决了跨模态检索效果差的问题。
8.为解决以上技术问题,本发明采用的技术方案如下:
9.基于模态内及模态间混合融合的图像菜谱检索方法,包括如下步骤:
10.步骤1.准备图像数据和菜谱数据,其中,图像数据包括食物图像,菜谱数据包括食材和烹饪步骤;
11.步骤2.构建整体网络;
12.所述步骤2具体包括如下步骤:
13.步骤21.提取图像特征序列、食材特征序列和烹饪步骤特征序列;
14.步骤22.在菜谱模态内运用交叉注意力机制对食材特征序列和烹饪步骤特征序列进行特征融合获得食材融合特征和烹饪步骤融合特征;
15.步骤23.运用多头交叉注意力机制对食材融合特征及图像特征序列进行门控机制下模态间融合得到食材二次融合特征和图像融合特征;
16.步骤24.图像融合特征与食材二次融合特征经由多层感知器得到局部相似度;
17.步骤25.图像特征序列与烹饪步骤融合特征计算余弦相似度得到全局相似度;
18.步骤26.局部相似度与全局相似度线性组合共同衡量图像数据与菜谱数据的相似度;
19.步骤3.对步骤2的整体网络进行训练,并设置损失函数;
20.步骤4.利用训练好的整体网络对食物和菜谱进行跨模态检索。
21.进一步,所述步骤21具体包括如下步骤:
22.步骤211.运用卷积神经网络resnet50对食物图像进行特征提取,提取出图像特征序列;
23.步骤212.运用word2vec模型对食材进行特征表示,单层的双向门控循环单元gru提取出食材特征序列;
24.步骤213.运用sentence2vector模型对烹饪步骤进行特征表示,提取出烹饪步骤特征序列。
25.进一步,所述步骤22具体包括如下步骤:
26.步骤221.计算食材和烹饪步骤的亲和度矩阵;
27.步骤222.食材特征序列与亲和度矩阵计算得出经由烹饪步骤特征序列加权后的加权食材特征;
28.步骤223.烹饪步骤特征序列与亲和度矩阵计算得出经由食材特征序列加权后的加权烹饪步骤特征;
29.步骤224.食材特征序列与加权烹饪步骤特征进行矩阵拼接得到食材融合特征;
30.步骤225.烹饪步骤特征序列与加权食材特征进行矩阵拼接得到烹饪步骤融合特征。
31.进一步,所述步骤23具体包括如下步骤:
32.步骤231.对于图像特征序列,计算由食材融合特征加权后的图像信息向量,多头交叉注意力机制将食材融合特征及图像特征序列分别划分为相同维度子空间中的h个向量,将h个向量分别得到的图像信息子向量进行矩阵拼接得到最终的加权图像信息向量;
33.步骤232.对于食材融合特征,计算由图像特征序列加权后的食材信息向量,多头交叉注意力机制将图像特征序列及食材融合特征分别划分为相同维度子空间中的h个向量,将h个向量分别得到的食材信息子向量进行矩阵拼接得到最终的加权食材信息向量;
34.步骤233.图像特征序列与加权食材信息向量进行点乘计算得出相关性,进而表示为融合程度的门控矩阵;
35.步骤234.图像特征序列与加权食材信息向量的逐元素求和与门控矩阵进行点乘,
与图像特征序列进行残差连接,最终得到图像融合特征;
36.步骤235.食材融合特征与加权图像信息向量进行点乘计算得出相关性,进而表示为融合程度的门控矩阵;
37.步骤236.食材融合特征与加权图像特征的逐元素求和与门控矩阵进行点乘,与食材融合特征进行残差连接,最终得到食材二次融合特征。
38.进一步,所述步骤24具体包括如下步骤:
39.步骤241.对于由步骤23得到的图像融合特征与食材二次融合特征,进行矩阵拼接,得到一个2048维的拼接向量;
40.步骤242.将拼接向量输入两层的多层感知器,经由激活函数sigmoid后得到0到1的值,表示为局部相似度。
41.进一步,所述步骤25中,图像特征序列与烹饪步骤融合特征分别进行平均池化操作得到相同维度的特征,图像特征序列与烹饪步骤融合特征计算余弦相似度表示为全局相似度。
42.进一步,所述步骤26中,将局部相似度与全局相似度进行线性组合,其中局部相似度与全局相似度占比各为0到1之间,且占比之和为1,表示为图像数据与菜谱数据的匹配程度。
43.进一步,所述步骤3中,采用contrastive ranking loss作为损失函数,对步骤2的整体网络进行训练。
44.与现有技术相比,本发明的有益效果是:通过菜谱模态内融合,专注于食材和烹饪步骤之间的相互作用,进一步丰富了两个单独嵌入特征的信息表达,同时,图像和菜谱的模态间融合,探究细粒度图像区域与食材之间的潜在关系,从而从局部和全局两个方面共同形成最终的图像菜谱相似性,获得更好的跨模态检索效果。
附图说明
45.图1为本实施例的流程图;
46.图2为本实施例的实验结果表格。
具体实施方式
47.下面结合附图对本发明作进一步的说明。本发明的实施方式包括但不限于下列实施例。
48.实施例1
49.如图1所示的基于模态内及模态间混合融合的图像菜谱检索方法,包括如下步骤:
50.步骤1.准备图像数据和菜谱数据;
51.步骤2.构建整体网络;
52.步骤3.对步骤2的整体网络进行训练,并设置损失函数;
53.步骤4.利用训练好的整体网络对食物和菜谱进行跨模态检索。
54.上述方法中,步骤1准备的图像数据包括食物图像,菜谱数据包括食材和烹饪步骤;
55.本实施例中,步骤2具体包括如下步骤:
56.步骤21.提取图像特征序列、食材特征序列和烹饪步骤特征序列;
57.步骤22.在菜谱模态内运用交叉注意力机制对食材特征序列和烹饪步骤特征序列进行特征融合获得食材融合特征和烹饪步骤融合特征;
58.步骤23.运用多头交叉注意力机制对食材融合特征及图像特征序列进行门控机制下模态间融合得到食材二次融合特征和图像融合特征;
59.步骤24.图像融合特征与食材二次融合特征经由多层感知器得到局部相似度;
60.步骤25.图像特征序列与烹饪步骤融合特征计算余弦相似度得到全局相似度;
61.步骤26.局部相似度与全局相似度线性组合共同衡量图像数据与菜谱数据的相似度;
62.上述方法中,步骤21具体包括如下步骤:
63.步骤211.运用卷积神经网络resnet50对食物图像进行特征提取,并取卷积神经网络最后一层残差快的输出,包括7
×
7=49列2048维的卷积输出,该输出结果作为图像特征序列表示为其中,s表示图像区域的个数,e
u
表示图像特征序列,表示第i行图像区域的食物图像特征;
64.步骤212.运用word2vec模型对食材进行特征表示,单层的双向门控循环单元gru提取出食材特征序列表示为其中,m表示食材序列的长度,r
g
表示食材特征序列,r
ig
表示第i个食材序列的食材特征;
65.步骤213.运用sentence2vector模型对烹饪步骤进行特征表示,提取出烹饪步骤特征序列表示为其中,n表示烹饪步骤序列的长度,r
s
表示烹饪步骤特征序列,r
is
表示第i个烹饪步骤序列的烹饪步骤特征。
66.上述方法中,步骤22具体包括如下步骤:
67.步骤221.计算食材和烹饪步骤的亲和度矩阵,其中亲和度矩阵a的公式如下:
68.a=(r
g
w
g
)(r
s
w
s
)
t

69.其中,w
g
、w
s
是要学习的权重参数,t表示矩阵转置操作;
70.步骤222.食材特征序列与亲和度矩阵计算得出经由烹饪步骤特征序列加权后的加权食材特征具体如下:
[0071][0072][0073]
其中,a
g
表示亲和度矩阵a沿食材维度归一化后的权重矩阵,softmax()函数表示将权重值映射为0到1之间,a
t
表示亲和度矩阵a的转置矩阵,表示食材特征或烹饪步骤特征维度的平方根;
[0074]
步骤223.烹饪步骤特征序列与亲和度矩阵计算得出经由食材特征序列加权后的加权烹饪步骤特征具体如下:
[0075]
[0076][0077]
其中,a
s
表示亲和度矩阵a沿烹饪步骤维度归一化后的权重矩阵;
[0078]
步骤224.食材特征序列r
g
与加权烹饪步骤特征进行矩阵拼接得到食材融合特征e
g
,具体为:其中,[
·
|
·
]表示矩阵拼接操作;
[0079]
步骤225.烹饪步骤特征序列r
s
与加权食材特征进行矩阵拼接得到烹饪步骤融合特征e
s
,具体为
[0080]
上述方法中,步骤23具体包括如下步骤:
[0081]
将多头交叉注意力机制的输入表示为三组向量,分别为q(query)、k(key)和v(value),注意力值由q和k计算得出,注意力过程实现如下:
[0082][0083]
其中,attn()表示注意力函数,softmax()函数将值映射为0到1之间,k
t
表示k的转置矩阵,表示q或k维度的平方根;
[0084]
多头交叉注意力将特征先划分为h个头,每个头都执行上述的注意力过程,多个头的输出进行拼接得到多头交叉注意力机制的输出,具体地,将步骤211得到的图像特性序列e
u
作为q,步骤224得到的食材融合特征e
g
作为k和v,得到由图像特征序列加权后的加权食材特征如下:
[0085][0086][0087][0088]
其中,w
ig
,w
ik
,w
iu
和w
g
是要学习的参数矩阵,multihead
g
w
g
表示将多头交叉注意力机制的输出维度映射回输入时的维度大小,表示第h头注意力的输出;
[0089]
将食材融合特征e
g
作为q,步骤211得到的图像特性序列e
u
作为k和v,得到由食材融合特征加权后的加权图像特征序列如下:
[0090][0091][0092][0093]
其中,multihead
u
w
u
表示将多头交叉注意力机制的输出维度映射回输入时的维度大小,表示第h头注意力的输出;
[0094]
另外,对于图像特性序列e
u
中的第i行特征与由图像特性序列加权后的加权食材特征中的第i行特征计算其点积后经过激活函数sigmoid来得到融合的程度,0表示不融合,1表示完全融合,如下:
[0095][0096]
其中,表示第i行特征的融合程度的输出结果;
[0097]
对于图像特征序列e
u
,表示所有区域的融合程度,类似地,对于食材融合特征e
g
,表示所有食材的融合程度;
[0098]
另外,考虑到图像特征序列e
u
和由图像特征序列加权后的加权食材特征的融合操作,这里采用逐元素求和,为避免丢失多头交叉注意力无法很好捕获的原始图像区域信息,再添加残差连接来获得最终的图像融合特征如下:
[0099][0100]
其中,

表示逐元素乘积,表示逐元素求和,类似地,得到最终的食材二次融合特征如下:
[0101][0102]
上述方法中,步骤24具体包括如下步骤:
[0103]
对图像融合特征与食材二次融合特征进行平均池化操作降维,输入一个两层的多层感知器,通过激活函数sigmoid后输出得到局部相似度slocal,如下:
[0104][0105]
上述方法中,步骤25具体包括如下步骤:
[0106]
对图像特性序列e
u
与烹饪步骤融合特征e
s
计算余弦相似度得到全局相似度sglobal,如下:
[0107]
sglobal(i,r)=cosine(pool(e
u
),pool(e
s
))。
[0108]
上述方法中,步骤26具体包括如下步骤:
[0109]
局部相似度slocal与全局相似度sglobal线性组合共同得到最终的图像数据与菜谱数据的相似度s,如下:
[0110]
s(i,r)=ω1slocal(i,r)+ω2sglobal(i,r),
[0111]
其中,ω1,ω2是权重参数,且ω1+ω2=1。
[0112]
上述方法中,步骤3具体包括如下步骤:
[0113]
假设相似度s(i,r)为图像数据与菜谱数据正样本对(i
p
,r
p
)分配高值,为负样本对(i
p
,r
n
)分配低值,即(i
p
,r
p
)>(i
p
,r
n
),且n≠p,通过对查询图像和所有菜谱之间的相似性评分进行排名,可以找到与查询图像最匹配的菜谱,反之亦然;
[0114]
另外,训练过程中,contrastive ranking loss被用作损失函数,对于采样的图像数据与菜谱数据正样本对(i
p
,r
p
),在一个小批量中找到其最难以区分的负样本对(i
p
,r
p
),(i
p
,r
n
),并用预先定义的函数间隔δ将它们与正样本对分开,如下:
[0115]
loss(i,r)=[δ+s(i
p
,r
n
)

s(i
p
,r
p
)]
+
+[δ+s(i
n
,r
p
)

s(i
p
,r
p
)]
+

[0116]
其中,[x]
+
=max(0,x)。
[0117]
当整体模型构建并训练完成后,即可进行步骤4利用训练好的整体网络对食物和菜谱进行跨模态检索,具体如下:
[0118]
步骤41.对一个给定模态的数据,提取其特征向量;
[0119]
步骤42.将提取的特征向量输入训练好的整体网络;
[0120]
步骤43.训练好的整体网络计算所述给定模态以及另一模态的相关数据变量,得出该给定模态数据与另一模态中多个候选数据的相似度(局部相似度值和全局相似度的线形组合);
[0121]
步骤44.对相似度结果进行排序,相似性最大的变量对应的原始模态数据为检索结果。
[0122]
采用最常用的检索评估指标top

k和medr来评估本申请的整体模型,其中,top

k指模型返回的候选分数中前k个结果中有目标正样本图像序列或菜谱序列所占的比例,并且越高越好,在本实施例中,k分别为1,5和10,medr代表所有候选样本目标正样本的排名中位数位置,并且越低越好。
[0123]
在大规模图像菜谱检索数据集recipe1m上测试本发明,recipe1m数据集从24个受欢迎的烹饪网站上收集了超过100万个烹饪食谱和80万张食物图像,其中238,999张图像样本和对应的菜谱文本作为训练集,51,119张图像样本和对应菜谱文本作为验证集,51,303张图像样本和对应菜谱文本作为测试集。
[0124]
在测试阶段,分别采样了1,000对(1k)和10,000对(10k),并重复10次以报告平均结果,如图2所示,可以看出,本发明在图像

菜谱检索场景中获得了最高的检索准确率,在recipe1m数据集上,相较于现有技术,在1k测试集和10k测试集上,top

k指标都有明显的提升,提升了图像

菜谱跨模态检索的有效性。
[0125]
如上即为本发明的实施例。上述实施例以及实施例中的具体参数仅是为了清楚表述发明人的发明验证过程,并非用以限制本发明的专利保护范围,本发明的专利保护范围仍然以其权利要求书为准,凡是运用本发明的说明书及附图内容所作的等同结构变化,同理均应包含在本发明的保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1