没有合适的资源?快使用搜索试试~ 我知道了~
16559食物图像和烹饪食谱的学习程序表示迪姆山口帕帕多普洛斯1,3恩里克·莫拉2纳迪亚·切普尔科1黄宽伟1费尔达·奥夫利4安东尼奥·托拉尔巴11麻省理工学院CSAIL2雀巢公司3DTU计算4卡塔尔计算研究所,HBKUdimp@dtu.dk,enrique. es.nestle.com,{nadiia,kwhuang,torralba} @ mit.edu,fofli@hbku.edu.qa摘要在本文中,我们感兴趣的是如何建模的教学过程,如烹饪食谱,有意义的和丰富的高层次的表示。具体来说,我们建议代表烹饪食谱和食物图像作为烹饪程序。程序提供任务的结构化表示,以图形的形式捕获烹饪语义和动作的顺序关系这使得它们可以很容易地被用户操纵并由代理执行。为此,我们构建了一个模型,该模型经过训练,可以通过自我监督来学习食谱和食物图像之间的联合嵌入,并根据该嵌入作为序列联合生成程序。为了验证我们的想法,我们众包了烹饪食谱的程序,并表明:食物图像烹饪食谱李刚n 佩珀和索萨格Ing ed en Inuc ion•(8盎司c意大利扁面条库克过去 一大锅沸腾的盐水,直到有嚼劲。•在煮意大利面的同时,准备酱汁。•半磅意大利甜香肠·在一个重煎锅中用中火炒香肠,直到变轻棕色,用勺子的背面打碎块状物•2个红甜椒,切碎·加入辣椒,洋葱和大蒜;炒至变软。•1个洋葱,切碎·加入葡萄酒,炖大约6分钟,直到液体稍微减少。•1.将大蒜切碎,沥干意大利面,加入煎锅。•抛来组合。•1杯白葡萄酒·服务。•1/4杯磨碎的帕尔马干酪烹饪程序和图表香肠炒H2 辣椒洋葱添加H3大蒜意大利面炒H4库克添加H1H5漏极煨H7H6H8出来添加H9抛发球(a)将图像配方嵌入到程序中导致更好的跨模态检索结果;(b)与预测原始烹饪指令相比,从图像生成程序导致更好的识别结果;以及(c)我们可以通过优化GAN的潜在代码来操纵程序来生成食物图像代码、数据和模型可在线获取1.1. 介绍食物是我们生活的重要组成部分。想象一下,一个AI代理可以看到一道菜并识别配料并可靠地重建菜肴的确切配方,或者另一种能够读取、解释和执行烹饪配方以制作我们最喜欢的饭菜的代理。计算机视觉社区长期以来一直在研究图像级食物分类[4,10,21,26,27,34],并且直到最近才专注于理解使用多模态表示的食谱和图像之间的映射[14,30,48,49,67]。然而,检索系统仅限于现有数据库,并且通常无法在该数据库之外进行查询,而从图像生成完整配方仍然是一个挑战[47]。1http://cookingprograms.csail.mit.edu图1. 烹饪节目我们从食物图片和食谱中学习烹饪程序。程序提供了烹饪程序的结构化表示,也可以表示为图形(为简洁起见,我们只显示动作和配料节点)。烹饪食谱是一步一步的教学过程,我们建议将其表示为程序,捕获所有的烹饪语义和关系。程序包含一系列动作,这些动作可以被写为函数(例如,Cook(),Add())。每个动作在特定条件下对特定成分进行操作,例如时间或工具(例如,烹饪(意大利面,时间程序还通过维护动作的输入输出连接来捕获动作注意,即使烹饪动作通常在时间上顺序地执行,它们的连接也不一定是顺序的。程序也可以表示为一个图,其中每个函数和参数都是一个节点,而边是函数连接或参数与动作之间的1)。我们的目标是生成基于食物图像或烹饪食谱的烹饪程序。我们建立了一个模型,利用食物图像和食谱的自然配对,h1=烹饪(意大利面,工具=锅,时间=直到有嚼劲)h2=炒(香肠,工具=煎锅,温度=中火,时间=直到浅棕色,如何=打破结块)h3=加入( h2,辣椒,洋葱,大蒜)h4=炒( h3,时间=直到变软)h5=Add( h4, wine)h6=慢炖( h5,时间=6分钟) h7=沥干( h1)h8=Add( h6, h7)h9=Toss( h8,why=to combine)out=Serve( h9)16560h1=预热(工具=烤箱,温度=425华氏度)h2=混合(牛至,盐,胡椒)h3=摩擦(h2,鸡肉)h4=毛毛雨(h3,橄榄油)out=烘烤(h1,h4,时间=16分钟)输入配方命名实体拆分合并分类法连接输出图预热烤箱至425F。把牛至、盐和黑胡椒混合在一起,抹在鸡肉上。淋上橄榄油,烤16-18分钟预热烤箱至425F。将牛至,盐和黑胡椒混合,抹在鸡肉上。淋上橄榄油,烤16-18分钟黑+胡椒(1种成分)黑胡椒粉胡椒粉盐425 F425华氏度16-18分钟16分钟预热、烘焙、混合、摩擦搓搓预热烤毛毛雨/烘烤(2个动作)混合橡胶细雨最终编程图2. 烹饪程序的注释。(上)我们通过命名实体、拆分合并解析、分类字典和连接注释从输入食谱中获得一个图。(下)我们从图和最终程序中获得所有有效的程序序列使用视觉和文本编码器学习联合嵌入视觉和文本嵌入然后在程序解码器中使用以生成烹饪程序。我们的模型通过联合优化视觉和文本表示之间的排名损失以及程序序列预测的两个损失来进行端到端的训练因为某些动作的序列可以在不违反函数之间的输入-输出连接的情况下进行排列,所以我们为每个配方生成所有有效程序序列的集合(图1)。2)并设计在此集合上操作的损失。在测试时,该模型不仅可以执行图像到食谱检索任务,而且还可以从图像或食谱预测烹饪程序为了验证我们的想法,我们首先从Recipe1M数据集[49]中选择烹饪食谱的众包程序,使用精心设计的任务,这些任务可以很容易地由天真的注释者执行。实验结果表明,我们的模型导致更好的跨模态检索时,它是联合训练生成程序。此外,与预测原始烹饪指令相比,生成程序导致更好的食物识别结果。最后,我们展示了如何通过操纵烹饪亲生成食物图像,gram通过优化GAN的潜在代码。2. 相关工作食物识别自Food-101数据集[4]以来,食物图像分析已成为计算机视觉中的一个既定问题[10,12,21,26,30,34,47,48]。虽然早期的工作主要集中在图像层面的食物分类[4,7,27,33],但最近的研究进行了更细粒度的分析,如成分识别[7,47],营养和卡路里估计[24,32],食物记录[31]和图像代[15,38,66]。最近,食谱和食物图像的跨模态分析变得流行起来,这要归功于Recipe1M [49],作者在其中解决了图像到食谱的检索问题[30,49]。几项研究提高了性能,包括ACME [57],R2-GAN [67],[2019- 05 -14][2019 - 05 - 15][2019 - 05] 19 - 05][2019 - 0然而,我们的目标是超越这一任务,配方和图像的联合潜在空间,以便我们可以从图像生成新配方,反之亦然。沿着这些思路,[47]提出了一种从图像中预测食谱的两步方法:他们首先在给定图像的情况下提取原料列表,然后训练解码器,该解码器在给定图像和原料列表的情况下生成食谱。配方解析。这里的任务是解析配方并将其分割成一系列单独的操作。为了实现这一目标,现有的研究探索了流程图[22,35,36,61],基于树的解决方案[6,16],或从烹饪视频和转录中提取知识而不使用食谱文本[60]。然而,这些研究中使用的数据集很小(不到300个食谱),并且仅限于动词和成分[6,16]。更重要的是,解析模型需要一个特定的和精心策划的自定义格式的食谱[16,22]。相反,我们提出了一个程序表示,并描述了我们如何使用高效和可扩展的接口获得未被修改的配方[49程序表示。我们的工作也与将活动表示为程序并从视觉输入(通常是视频)中学习它们的方法有关[2,37,43,62,63]。这包括通过观看烹饪视频[62,63]或指令视频[2]中的一系列原子动作来学习动作和对象。在[43]中,用于家庭活动的程序程序生成方法也被提出用于各种任务,例如视觉问题回答[17,29,64],事实验证[9]和几何问题解决[28]。3. 烹饪程序在本节中,我们描述了我们的程序表示,并展示了我们如何设计一个可扩展的众包协议,以有效地注释食谱和获得烹饪程序。3.1. 程序设计和图形表示烹饪食谱包括一个标题,一个成分列表,和一个指令步骤列表每一步都描述了一种烹饪方法有效程序序列无效示例预热()混合()混合()预热()混合()混合()预热()摩擦()预热()细雨()混合()细雨()预热()细雨()烘烤()预热()16561VEG V EE命名实体注释下一句话连接注释下一个食谱辣椒香肠意粉在一大锅沸腾的盐水中煮意大利面,直到有嚼劲。在一个重型煎锅中用中大火炒香肠,直到浅棕色。加入辣椒,洋葱和大蒜。炒至变软。把意大利面沥干,加入煎锅。抛来组合。发球。图3. AMT接口。(命名实体注释)我们要求注释者标记烹饪句子的每个单词。(连接注释)我们要求注释器连接两个动作(彩色节点),如果它们之间存在输入输出关系。在某些条件下使用工具对配料进行操作的动作(例如,时间或温度)。此操作将产生一个中间输出,该输出将用作以下步骤之一的输入。这个有趣的结构,类似于程序的源代码,促使我们使用程序来表示烹饪食谱(图10)。1)。程序包含一系列与烹饪动作相对应的功能。每个函数将输入变量(成分)和参数(例如,不同量或执行动作的方式,例如使用工具)。例如,句子“Bake thechicken in the oven for 10 minutes at 400 degrees F”可以写 成 : h = Bake ( chicken , tool=oven , time=10minutes,temp=400 degrees F);函数的输出表示为h。对于一个完整的程序,我们还捕获各个命令之间的输入输出连接即使一个配方是按时间顺序执行的,一个动作的输出并不总是用作下一个动作的输入。图1显示了一个例子,其中食谱由两个子食谱组成,这两个子食谱在最后结合在一起(即,煮意大利面和准备酱汁)。这些连接通过使用潜变量h作为对应函数的输入来捕获(例如,排水(h1))。烹饪图表。 烹饪程序也可以表示为图=(,)(图1(右))。 变量和函数表示为顶点,而边是函数和它们的输入之间的连接该图显示,可以对动作序列进行排列而不违反输入-输出连接(即,边缘).我们可以计算所有可能的排列,导致有效的,可执行的程序,即,hi在计算之前不能用作输入。图的底部。2显示了所有有效的排列,其中函数Preheat()可以在烤鸡肉之前的任何时候执行。节中4我们使用这组排列来训练我们提出的模型。程序分类法。解析食谱为每个类别的程序创建了巨大的vo- cabularies(Recipe 1 M包含230 k独特的成分,20 k动作和40 k工具)。为了为每个类别创建一个固定的和语义上有意义的词汇表,我们遵循一个半自动的程序。我们在这里描述的过程中的成分,我们遵循类似的一个为其他:首先,我们使用Sentence-BERT [45]并提取每个独特成分的特征。然后,我们使用K-Means对它们进行聚类,使用大量的聚类(2,000),以便每个聚类仅包含语义相同的成分。最后,对于每个聚类,我们手动检查其最近的邻居,如果它们在语义上几乎相同,则将它们合并。我们迭代地重复这个过程,直到集群不能再合并.总的来说,这导致514个成分、60个动作、55个工具、130个数量、60个温度、152个时间、105个如何、112个为什么和220个输出聚类。3.2. 程序注释众包烹饪程序是具有挑战性的,因为大多数天真的注释者没有编程经验。 因此,我们将这个过程分为四个简单的步骤:(a)命名实体注释,(b)拆分和合并解析,(c)连接注释和(d)程序分类(图1)。2)。命名实体注释。在这一步中,我们为注释者提供一个烹饪句子,并要求他们将每个单词分类(标记)为以下类别之一:烹饪动作、配料、数量、厨房工具、温度、时间、如何、为什么和输出(图3(左))。注释者首先阅读每个类别的定义和几个例子的说明。为了确保高质量的响应,我们设计了一个遵循常见质量控制机制的协议[25,39,46,54,56,65],并通过使用隐藏的预标记句子来监控注释器的分开合并。 在这一步中,我们在没有任何人工干预的情况下执行两个解析操作。首先,我们拆分包含多个动作的句子(例如,“淋上橄榄油,烤16-18分钟”。(2)每个句子只包含一个动作。接下来,我们将标记的单词合并到实体中。例如,短语“混合新鲜牛至,盐和黑胡椒”有五种成分的单词,但只有三种成分。黑胡椒和新鲜牛至被合并到最后的变量。连接注释。 在这一步中,我们为注释者提供了一个带有高亮显示的操作的菜谱和一个以这些操作为节点的面板(图10)。3(右)),并要求他们连接两个16562→IR图像文本配方(标题、成分、说明)意大利面配辣椒和香肠(8盎司)半磅意大利甜香肠...…1/4杯磨碎的帕尔马干酪在大锅里煮意大利面。在一个重的煎锅里,用中高火煎香肠……LpvL角图4. 从食物图像或烹饪食谱生成烹饪程序。我们的模型经过端到端的训练,将图像和配方特征从视觉和文本编码器投影到一个公共空间中,并使用以图像和文本特征为条件的程序解码器将程序联合生成为一系列命令如果节点之间存在输入-输出关系,则将节点与边连接。为确保高质量,我们提供指导并遵循标准质量控制机制。程序分类。在这一步中,我们遵循变量分类法(Sec.3.1)和每个类别(即,行动,成分,工具等)我们将每个节点的所有获得的值映射到来自我们的固定程序词汇表的相应类别(例如,“黑 胡 椒 ” “ 胡 椒 ” 在图 。2)。最后一个节目。最后,我们遵循第二节中描述的规则。3.1创建最终程序及相应的图形。最后一个动作的输出表示为out。3.3. 节目采集我们在Amazon Mechanical Turk(AMT)上进行了实验,并从Recipe1M数据集中收集了3,708个食谱的程序。这将转化为42,473个句子,其中包含478,285个标记词和54,154个注释边连接。一个带注释的例子如图所示二、注释时间和质量。命名实体任务的平均反应时间为17秒每句话,而连接任务的时间为75秒每食谱。注释的食谱平均有11个句子,导致每个食谱的总注释时间为4分钟。注释我们的程序的总成本约为2,000美元(小时工资约为8美元)。为了分析和量化注释的质量,我们使用不同的注释器再次注释了50个食谱(550句),并测量了人类的同意度。命名实体任务的人类一致性为97.9%(即,具有相同注释标签的单词)。对于连接任务,我们发现有7.3%的连接在IRB批准的情况下进行了2项两个注释中均未出现(一致率为92.7%)。4. 从食物图片和食谱到程序我们介绍了一种新颖的任务,从食物图像或烹饪食谱生成烹饪程序。节中在第4.1节中,我们介绍了模型架构,而在第4.2节中,我们解释了训练过程和目标函数。4.1. 模型架构给定一组图像搭配他们的食谱和一组程序P,我们的目标是学习如何生成以图像或食谱为条件的烹饪程序。我们的模型由三个部分组成:(a)视觉编码器,(b)一个文本编码器,和(c)一个程序解码器(图1)。4).该模型经过训练,通过自我监督将图像和配方嵌入到同一空间中,并从图像或配方嵌入生成程序。视觉编码器。基于视觉Transformer(ViT)[11],将食物图像输入视觉编码器FV。图像被分割成固定大小的补丁(令牌)。在线性投影和添加位置嵌入之后,这些令牌被馈送到kvTransformer编码器层的堆栈[55]。与原始ViT不同,其中图像表示是从“分类令牌”中获得的文本编码器。来自烹饪食谱的文本被馈送到文本编码器FT[55]。FT的架构类似于FV,不同之处在于,在这里,单词扮演着馈送到kt个相同的Transformer层中的令牌的角色[55]。再一次,在令牌嵌入之上的平均池化层之后获得最终的配方表示。视觉编码器FV节目解码器GP…………‘h1’'='‘Cook’‘Pasta’……文本编码器FTLSS扁面条藤椒…………‘h1’'='‘Cook’‘Pasta’……解码器层解码器层解码器层解码器层解码器层解码器层编码层编码层编码层编码层编码层编码层位置编码面片投影位置编码词到向量嵌入16563LLL−配方组件程序损失编码器层medR图像到配方R@1 R@5R@10medR配方到图像R@1 R@5R@10标题8(小)4.624.054.467.84.523.854.267.5成分8(小)2.839.168.180.33.038.968.480.5指令8(小)3.136.665.276.83.036.565.876.9标题+Ingr8(小)2.043.675.685.02.044.976.285.4标题+Ingr+Inst8(小)1.053.581.889.21.053.182.089.6标题+Ingr+Inst✓8(小)1.058.685.791.71.058.285.592.0标题+Ingr+Inst✓12(基础)1.066.990.995.11.066.889.894.6State-of-the-artimage-to-reciperecipe-to-image跨模态检索Img编码器medR R@1 R@5 R@10 medR R@1 R@5 R@10萨尔瓦多CVPR 17 [49]ResNet-505.224.051.065.05.125.052.065.0陈ACM MM 18 [8]ResNet-504.625.653.766.94.625.753.967.1卡瓦略·SIGIR 18 [5]ResNet-502.039.869.077.41.040.268.178.7[67]第67话ResNet-502.039.171.081.72.040.672.683.3[14]第十四话ResNet-502.048.275.883.61.948.476.183.7[42]第四十二话ResNet-501.649.779.386.31.650.179.086.4[57]第57话ResNet-501.051.880.287.51.052.880.287.6[58]第58话ResNet-501.054.081.788.81.054.981.989.0[13]第十九话ResNeXt-1011.060.284.089.7––––萨尔瓦多CVPR 21 [48]ResNet-501.060.087.692.91.060.387.693.2萨尔瓦多CVPR 21 [48]ViT-B/161.063.288.393.1––––我们ViT-B/161.066.990.995.11.066.889.894.6表1. Recipe1M上的跨模态检索结果。在表格的顶部,我们报告了我们模型的消融研究,而在底部,我们将我们的结果与最先进的跨模态检索方法进行了比较。程序解码器。节目解码器GP由kp个Transformer解码器层[55]组成。根据标准注意力机制[55],从FV获得的特征被馈送到每个层的多头注意力中。这导致在给定图像的情况下预测的程序序列Pv。我们在文本部分重复这种方法。这样,从FT获得的特征被馈送到GP以预测程序序列Pt。在推理过程中,给定食物图像或食谱,可以使用相应的特征和相同的解码器GP(共享权重)来预测程序。4.2. 训练模型和损失函数我们端到端地训练我们的模型,以联合学习通过自监督损失L和损失ViT图像到配方超参数特征R@1R@5R@10λ pv=0。1,λ pt= 0。1平均值58.6 85.7 91.7λ pv=0。1,λ pt= 0。1cls token 56.1 83.8 90.1λpv=0,λpt=0平均值53.5 81.8 89.2λpv=1,λpt=1平均值58.0 85.1 90.9λpv=10,λpt=10平均值56.4 83.7 89.6表2. ViT特征表示和损失超参数的消融研究。所有型号都使用8层编码器(小)。f是一个嵌入,m是一个固定的常数余量。对于大小为N的图像-配方对{Ii,Ri}N,我们获得了im的特征表示SS生成与地面实况相匹配的程序,年龄i=1i和一个食谱Rj从视觉的fv和文本编码器食物意象pv和烹饪食谱PT.自我监督的三重丢失。 我们遵循先前的工作,并使用双向最大边距三元组排名损失将图像和文本描述投影到联合空间中[18,19,53,59],这是由于其最近在图像到食谱检索方面的成功分别作为FV(I i)和FT(R j)。当i = j时,图像-配方对被认为是正的,否则被认为是负的。计算两次Lt的小批量的最终自监督双向损失由下式给出:N任务[5,48,57,67]。损失基于三重排序损失[51,52]t(a,p,n)=max(0,s(f(a),f(n))s(f(a),f(p))+m),其中a是锚输入,p和n是正样本和负样本,s是相似性函数,1Lss=Ni=1,j=1max(0,s(i,j)−s(i,i)+m)++max(0,s(j,i)−s(i,i)16564+m)(1)16565PL L LLL××PVNj∈[1,β]我 我我我图像配方GT名称:柠檬蓝莓松饼2杯面粉,2/3杯糖,1茶匙发酵粉,1茶匙小苏打,1/2茶匙盐,......使用说明:预热烤箱至400 f(200 c)。在松饼杯上抹点油。将面粉、2/3杯糖、泡打粉、小苏打和盐搅拌在一起。将酸奶,黄油,鸡蛋,柠檬皮和香草精分别混合。在干材料中间挖一个井,加入酸奶混合物和蓝莓,搅拌混合。倒入松饼杯。烤20-25分钟。吃之前冷却5分钟根据配方根据图像图5. 从食物图像和食谱生成程序。我们显示的输出图形的两个生成的程序的条件下的输入配方或输入图像。出于可视化的目的,我们只显示动作(绿色)和成分(青色)节点。其中s(i,j)= s(FV(I i),FT(R j))表示图像I i和配方R j之间的余弦相似性。程序预测丢失。 每个配方Ri是一个序列,成分动作工具全图(F1↑)(F1↑)(F1↑)(GED↓)在不违反函数之间的输入-输出连接的情况下进行置换。 我们表示为Pi =(P0,P1,. Pβ)程序(最小CE)53.5 64.7 78.1 67.2一组所有我我我序列Pi的β个有效置换。在每个时间步长,Gp预测输出令牌的概率分布,其通常跟随有softmax和预测序列与目标序列之间的交叉熵损失在这里,我们扩展交叉熵损失来处理一组多个候选序列。令I=Gp(FV(Ii))是生成的程序条件。我关于RIi和Ii=Gp(FT(Ri))是生成的程序条件Ri。小批量的损失Lpv由下式给出N表3. 从图像(顶部)和配方(底部)。对于整个项目,我们重新-L=1Σi=1最小L(Pj)(2)端口之间的图形编辑距离(GED)地面实况和预测的图表。我们还从计划中提取成分、行动和工具,并报告F1分数,其中,Lce(Pj,Pj)是Pj和Pj之间的交叉进入损失和thj地面真相请注意,由于计算成本高,图匹配,GED仅在测试集的5%上计算。j目标程序序列Pi.Lpt由下式给出:当量(2)以《基本法》取代《基本法》。我我最后的损失。我们的模型的完整目标函数定义为= λ ssss+ λ pvpv+ λ pt其中λ ss、λ pv、λ pt是控制图像配方损失相对于程序预测损失的相对重要性的超参数。5. 实验结果本节介绍了我们的实验结果。我们在三个任务上评估我们的方法:图像到配方检索(第5.1),从配方和图像生成程序(第5.1节)。5.2),以及从程序生成图像(第5.3)。数据我们使用Recipe1M3数据集[49]作为以前工作的标准[13,14,48,49,57,58,67]。Recipe1M包含887,706个食物图像和1,029,720个烹饪食谱,分为训练(70%),验证(15%)和测试(15%)集。注意3从http://im2recipe.csail.mit.edu/获得我们只使用有对应图像的食谱对于烹饪程序,我们使用了包含3,708个程序的地面实况数据集。实作详细数据。除非另有说明,我们使用以下设置。FV 基 于最初在Ima-geNet [46]上预训练的ViT-B/16 [11](kv=12层,12头)。FT和GP基于[55]。我们使用kt=8个编码器层(8个头)和2个解码器层(4个头)。为了处理图像-配方和配方-程序对之间的不平衡,我们首先使用我们的注释配方-程序对单独预训练FT和GP,并获得整个Recipe 1 M的伪地面实况程序。图像的大小调整为256 256,然后裁剪为224 224。在训练过程中,我们执行随机裁剪和水平翻转增强。 我们使用亚当优化器[23],基本学习率为10−4,面粉糖盐B.粉末搅拌B. 苏打制作混音蓝莓酸奶奶油鸡蛋柠檬香草杯油脂添加搅拌倾倒面粉糖搅拌盐B.powderB. 苏打混合蓝莓酸奶奶油鸡蛋柠檬香草使添加搅拌杯黄油蛋混合添香草糖面粉盐添加B.powder加入牛奶输入:食物图片ce预热烤酷油脂倒蓝莓混合预热烤酷预热烤K个句子(r1,r2,.,r K)。程序Pi是一个序列随机图像12.614.614.2102.1L个编程功能命令(p1,p2,...,pL)遵循配方说明的顺序(图1)。怎么-检索图像NN(oracle)指令39.453.528.551.666.538.366.981.150.579.162.2–正如SEC所描述3.1,一些命令pk可以项目(CE)52.864.578.172.1输入:烹饪食谱成分行动工具全图(F1↑)(F1↑)(F1↑)(GED↓)随机配方12.414.514.2101.5检索到的配方43.455.274.267.1NN(oracle)53.566.581.157.2指令41.649.366.6–项目(CE)75.483.183.819.1程序(minCE)75.583.184.116.816566橄榄油金枪鱼巧克力糖壁球芹菜牛奶牛奶萝卜蛋黄酱糖盐盐切达干酪奶油干酪香草精胡椒玉米饼发泡浇头蛋意大利面生菜全麦饼干帕尔马干酪橄榄油金枪鱼巧克力糖酱蛋牛奶牛奶洋葱芹菜糖盐盐蛋黄酱奶油干酪香草精意大利面辣椒搅打顶部蛋胡椒玉米饼全麦饼干草莓帕尔马干酪生菜布丁粉图6. 从图像中进行梯度预测。我们显示定性结果的成分提取生成的程序(Pv)。红色突出显示的成分是FP或FN。每20个历元0.1的阶跃衰减。设λ ss=1,λ pv=0。1,λpt=0。1,m=0。3 .第三章。所有实验都在四个Nvidia Titan X GPU上运行。5.1. 图像到配方检索评价遵循Recipe 1 M [49]的协议,我们在1,000个食谱-图像对的排名中,使用中位数排名(medR)和顶部K(R@K)的召回率(K=1,5,10)测量测试集上的检索性能。我们在重复实验10次后报告平均指标。配方组件。 我们首先检查使用不同配方组件训练和测试模型的效果。在Tab的前三行1,我们观察到成分表是信息量最大的组成部分(R@1=39.1)。将其与标题结合使用会使性能略有提升(R@1中为+4.5),而使用完整的配方则会产生53.5。预测程序。前五个模型是在没有解码器GP的情况下训练的。我们观察到,使用GP来训练模型,以从公共嵌入空间预测程序,更深的编码器。当使用更深的编码器(12层的基本模型)时,R@1精度跳到66.9。与最新技术水平的比较。在选项卡中。1(底部),我们将我们的最终模型与几种方法进行比较。我们实现国家的最先进的性能,由于强大的Transformer编码器和我们的计划预测损失。请注意,很难对所有方法进行公平的比较,因为它们都使用不同的图像(ResNet,ResNext,ViT)和文本(LSTM,transformers)编码器。另外,请注意,以前的工作[48]为配方的每个组件使用多个Transformer编码器。相反,我们只使用一个单一的文本编码器(图。4)导致更简单和有效的模型。此外,我们不像大多数现有方法那样使用Recipe1M中的任何未配对数据[5,13,48,49,57,67]。ViT功能。使用“cls token”中的功能,图7. 关注 我们使用Attention Rollout [1]来可视化图像和食谱标题上的注意力权重。原始ViT [11](而不是平均池化)导致性能下降(R@1为-2.5),如表1所示。2(顶部)。丢失超参数。 在选项卡中。2,我们对λpv和λpt进行了消融研究,显示出较小的性能下降(R@1中λpv=1时为-0.6%,λpv=10时为-2.2%5.2. 从图像和配方我们在这里评估我们的模型对预测程序的任务从图像或食谱(图。5,Tab. (3)第三章。评价我们没有将程序视为序列并使用标准序列评估指标[40],而是将程序转换为图形并测量图形编辑距离(GED)[50] wrt到groundtruth。GED不仅捕获语义节点,还捕获它们的排序和拓扑。由于我们的固定程序词汇表,这种评估是可行的。此外,我们只提取图形的ingredient节点,并使用预测集和地面实况集之间的F1得分来衡量准确性我们对操作和工具节点采用相同的策略。从图像的程序。在选项卡中。3(顶部),我们报告了从图像预测程序的结果,并与几个基线进行了比较:(a)随机图像:从一个随机图像程序;(b)检索图像:使用我们的检索系统从顶部检索图像中提取的程序;(c)NN(oracle):oracle最近邻(NN)程序(e)指令:我们的模型,其中我们解码指令文本而不是程序。图3(上图)表明,生成程序比解码句子或依赖检索系统进行预测的强基线产生更好的结果(更好的成分,动作和工具预测)。有趣的是,我们的模型仅略低于模拟理想检索系统的Oracle基线。我们还观察到,我们的程序损失(minCE)比标准CE损失略有改善图6示出了食物图像上的成分预测的定性结果,而图6示出了食物图像上的成分预测的定性结果。5示出了预测GT16567牛排加热添加烹饪移除切割芥末结合搅拌添加投掷顶部油柠檬醋绿党柠檬生成的图像 (a)输入烹饪程序(b)第(1)款仅绿色红色+绿色四奶酪通心粉和奶酪脆拉面塔可沙拉自制番茄汤鹰嘴豆Tikka Masala真实图像生成图像真实图像生成图像(c)第(1)款图8. 从程序中生成食物图像。(a)我们通过计算输入程序和从生成的图像预测的程序之间的损失来优化GAN的潜在代码。(b)通过操纵程序生成图像。图左侧的图像仅使用绿色节点生成,而右侧的图像是从完整的图中获得的。(c)从地面实况程序生成的图像示例以及与真实图像的比较。从配方和图像中预测程序。从食谱节目。同样,在Tab。3(底部),我们报告我们的结果,从食谱预测程序,并重复上述基线。这里的文本分类器是一个基于transformer的多标签分类器,可以预测输入。正如预期的那样,从食谱中预测程序比从图像中预测程序要简单再次,我们观察到类似的趋势,我们的损失产生的结果略好于标准CE,明显优于说明基线(成分的F1为+33.9%)。关注为了进一步理解FV和FT如何处理图像和文本,我们将它们的注意力权重可视化为[1]。在图7中,我们观察到两个编码器都关注两个域中语义相似的概念。5.3. 图像生成我们展示了一个有趣的应用程序的图像生成条件烹饪程序使用我们的模型。 We first train a StyleGANv2[20] on the images of the Recipe1M dataset [49].给定初始潜在向量z0,我们使用GAN生成图像。图像经过编码器FV和解码器GP以获得程序。我们计算这个程序和期望的输入程序之间的损失.我们通过反向传播使用损失来优化z。已经提出了类似的方法,使用最近引入的CLIP [44]模型来驱动使用文本句子的图像生成[3,41]。图8(左)说明了我们的方法,而在图8中。8(右)我们展示了使用完整程序或部分程序(绿色节点)生成图像的示例潜在代码z程序丢失GPStyleGANFv牛至油辣椒洋葱大蒜热添加季节预热烤架库克地方顶级发球仅绿色鸡红色+绿色16568仅)。我们观察到,生成的图像是现实的,并捕捉到输入程序的内容。6. 结论我们建议用烹饪程序来模拟烹饪食谱我们设计了一个程序方案,并标注了一组烹饪食谱的程序,我们提出了一个学习预测程序从食物图像和食谱的方法。实验结果表明,将图像与菜谱的公共空间投影到程序中,可以提高检索效果。最后,我们展示了如何通过操作程序生成食物图像。我们希望程序能开辟新的方向,比如允许代理执行食谱,或者允许我们从图表中提取食物的常识知识。限制和社会影响。在这项工作中,我们不会超越通过程序预测烹饪过程。然而,预测营养价值,估计卡路里及其对我们健康的影响是一个重要的话题。此外,不准确的预测程序可能无法执行或导致不可食用的食物.此外,成分预测模型应该有意识地应用,特别是在食物过敏的用户案例中。未来的工作包括分析程序或我们的训练数据可能存在的潜在偏差(例如,对不健康的食物菜肴,对西方世界的代表性不足的美食)和影响,这可能对食品工业。确认或确认。这项工作得到了雀巢公司的支持。16569引用[1] Samira Abnar和Willem Zuidema。量化变压器中的注意力流。在ACL,2020年。七、八[2] Jean-Baptiste Alayrac , Piotr Bojanowski , NishantAgrawal,Josef Sivic,Ivan Laptev,and Simon Lacoste-Julien.从叙述式教学视频中进行非监督式学习在CVPR中,第4575-4583页2[3] David Bau 、Alex Andonian 、 Audrey Cui、YeonHwanPark、Ali Jahanian、Aude Oliva和Antonio Torralba。用词作画arXiv预印本arXiv:2103.10951,2021。8[4] Lukas Bossard、Matthieu Guillaumin和Luc Van Gool。Food-101- 用 随 机 森 林 挖 掘 判 别 成 分 。 2014 年 , 在ECCV。一、二[5] MicaelCarv alho , Re' miCade' ne , Da vidPicard ,LaureSoulier,Nicolas Thome,and Matthieu Cord.烹饪环境中 的跨 模态 检索 :学 习语义 文本 图像 嵌入 。在SIGIR,2018。二、五、七[6] MinsukChang , Le'onoreVGuillain , HyeungshikJung ,Vivian M Hare , Juho Kim 和 Maneesh Agrawala 。Recipescape:一个交互式工具,用于分析烹饪指令的规模。在CHI,第1-12页,2018年。2[7] 陈晶晶和吴忠华。用于烹饪食谱检索的基于深度的输入识别。第24届ACM国际多媒体会议论文集,第32-41页,2016年。2[8] Jing-Jing Chen,Chong-Wah Ngo,Fu-Li Feng,and Tat-Seng Chua.深入理解烹饪过程,用于跨模态食谱检索.2018年第26届ACM国际多媒体会议论文集。二、五[9] Wehu Chen , Hongmin Wang , Jianshu Chen , YunkaiZhang , Hong Wang , Shiyang Li , Xiyou Zhou , andWilliam Yang Wang.TabFact:用于基于表的事实验证的大规模数据集。在ICLR,2020年。2[10] 陈欣,朱玉,周华,刁良,王东彦。中国食品网:一个用于中国食品识别的大规模图像数据集。arXiv预印本arXiv:1705.02743,2017。一、二[11] AlexeyDosovitskiy,LucasBeyer,AlexanderKolesnikov,Dirk Weissenborn,Xiaohua Zhai,ThomasUnterthiner , Mostafa Dehghani , Matthias Minderer ,Georg Heigold,Sylvain Gelly,et al.一张图片相当于16x16个单词:用于大规模图像识别的变换器. arXiv预印本arXiv:2010.11929,2020。四、六、七[12] 马丁·恩吉尔贝、路易斯·谢弗·阿利耶、帕特里克·佩雷斯和马蒂厄·科德。在汉堡里发现豆子:
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- SSM Java项目:StudentInfo 数据管理与可视化分析
- pyedgar:Python库简化EDGAR数据交互与文档下载
- Node.js环境下wfdb文件解码与实时数据处理
- phpcms v2.2企业级网站管理系统发布
- 美团饿了么优惠券推广工具-uniapp源码
- 基于红外传感器的会议室实时占用率测量系统
- DenseNet-201预训练模型:图像分类的深度学习工具箱
- Java实现和弦移调工具:Transposer-java
- phpMyFAQ 2.5.1 Beta多国语言版:技术项目源码共享平台
- Python自动化源码实现便捷自动下单功能
- Android天气预报应用:查看多城市详细天气信息
- PHPTML类:简化HTML页面创建的PHP开源工具
- Biovec在蛋白质分析中的应用:预测、结构和可视化
- EfficientNet-b0深度学习工具箱模型在MATLAB中的应用
- 2024年河北省技能大赛数字化设计开发样题解析
- 笔记本USB加湿器:便携式设计解决方案
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功