微信扫码
与创始人交个朋友
我要投稿
美团到店研发平台/数据智能平台部与天津大学刘安安教授团队展开了“基于多模态信息抽取的菜品知识图谱构建”的科研合作,利用多模态检索实现图文食材的识别,扩展了多模态菜品食材识别的范围,提升了食材识别的准确性。该项工作提出了一个跨模态食材级数据集,该数据集提供食材及其关系有助于增强对中国烹饪的理解。介绍该工作的论文《Toward Chinese Food Understanding: a Cross-Modal Ingredient-Level Benchmark》被IEEE Transactions on Multimedia(多媒体领域权威期刊之一)收录。
1. 背景
2. 数据集
2.1 数据收集和标注
2.2 标注数据后处理
2.3 数据统计和分析
3. 方法
3.1 食材检测
3.2 跨模态食材检索
4. 实验
4.1 算法实现细节
4.2 实验结果
4.3 可视化
5. 业务应用
6. 总结
7. 作者团队简介
8. 致谢
1. 背景
中国有句古话:“民以食为天”。对食物的分析和理解,特别是识别菜肴的食材,在健康管理、卡路里计算、烹饪艺术、食物搜索等领域具有重要意义。但是,算法技术尽管在目标检测[1]-[3]、通用场景理解[4][5]和跨模态检索[6]-[8]方面取得了很大进展,却没有在食物相关的场景中取得好的表现,尤其是对烹饪菜肴的相关场景。其核心原因是缺乏细粒度食材的基准,这已经成为该领域发展的瓶颈。
以往的研究主要集中在食物层面的表征学习,如Food2K上的食物识别[9]-[12],UNIMIB2016上的食物检测[13]-[15]。然而,这些方法忽视了菜肴中的食材组成,也不理解食材之间的上下文关系。相比之下,一系列的方法[16]-[18]运用Recipe1M的“食谱-图像”对,实现了跨模态的食谱检索[16]。
然而,由于缺乏食材边界框的标注,这种类型的研究只能通过三元组建模出整个食物图像和食谱文本之间的关联[16],[19],[20]。这种限制导致图像区域与食物的一系列食材之间存在模糊的匹配关系,产生虚假相关性[21]。综上,目前迫切需要一个细粒度的食材级基准,促进复杂的食品场景理解算法的发展,并支持细粒度的任务,如食材检测和跨模态食材检索。
在本研究中提出对于中餐进行理解这一新任务,旨在捕捉中餐图像中食材之间的语义关系,并建立了有关中国菜品理解的新基准。我们大致设定了中餐理解的两个任务:食材检测和食材检索。对于食材检测,目标是确定图像中特定食材的存在并提供精确的定位。对于食材检索,目标是探索不同食材组合与食品图像之间的细粒度对应关系。对中餐的理解扩展了食品相关任务的范围,在食品领域开辟了更广泛的应用。同时,食材的多样外观和它们错综复杂的语境关系,对中餐的理解提出了一个更大的难题。
为了进行中餐理解这一新任务,我们需要构建一个包含食材粒度标注的数据集。然而,由于中餐种类繁多、风格独特,因此在食材标注上面临着巨大的挑战。构建含中餐食材的细粒度跨模态数据集主要有三个难点。
为了应对上述挑战并促进对中餐理解的研究,我们开发了一个名为CMIngre (Cross-Modal Ingredient-level Dataset) 的跨模态食材级数据集。该数据集旨在通过提供对食材及其关系的有价值的见解来增强对中国烹饪的理解。该数据集由来自三个不同来源的8,001张图像组成,即菜肴,食谱和用户生成内容(UGC)。该数据集包含429种不同的中餐和95,290种食材边界框。
为了对广泛的食材进行全面的语义分类,我们根据中华人民共和国健康行业标准对食品食材数据表达的规定[23],将其划分为更高级的层次。这些层次关系也可以作为先验信息,以促进在后续研究中探索不同食材之间的上下文关系。此外,我们评估了传统的基于CNN的检测算法和基于Transformer的预训练模型在CMIngre上食材检测任务的性能。我们还提出了食材检索任务的基线方法,该方法捕获单个食材的语义信息以及各种食材组合之间的关系,并进一步采用pooling策略来研究跨模态图像-食材之间的匹配关系。在CMIngre数据集上进行的深入实验评估证实了我们提出的方法在提高食材检测和检索性能方面的有效性。
本文的贡献可以概括为以下几点:
在本节中,我们将讨论如何构造CMIngre数据集。我们将在第一部分中介绍我们如何收集和标注数据。在第二部分中,我们对数据进行了后处理,提升原始数据的质量。在第三部分中进行了CMIngre数据集的统计和分析。
数据收集:为了收集全面的食物图像,我们探索了三种类型的图像-文本对:
由于缺乏对标注人员关于每个图像的边界框的大小和数量的限制,最终的标注结果中存在边界框大小的显著变化和相当多的冗余边界框。为了解决这个问题,我们分别对图像和文本进行了进一步的后处理。
在CMIngre中,有1,719对来自菜肴的图像-文本,2,330对来自食谱,3,952对来自UGC。如2.1所述,UGC的图像质量比菜肴和食谱的图像质量差,这给我们在接下来的食物理解任务中处理低质量数据带来了更多的工作量,因为UGC覆盖了近一半的数据集。
数据集中每个食材上的图像数量如图2.2所示,少量食材在我们的数据集中出现了很多次。例如,“葱–scallion”在1,961张图片中出现次数最多,约占图片总数的24.51%。此外,有138种食材出现在不到10张图片中。例如,只有5张图片包含“西柚–grapefruit”,8张图片包含“桃–Peach”。图2.3显示了我们数据集中每个食材的边界框数量。如图2.3所示,每种食材对应的边界框数量分布与图2.2中包含该食材的图像数量分布大致相似,均为长尾。为了说明边界框尺寸的差异,图2.4给出了不同尺寸边界框的比例。我们观察到小尺寸的边界框(面积比在0.0025 ~ 0.01之间)的比例最大。同时,有超过50%的边界框的面积比小于0.01,说明数据集中有很多小物体。
表2.1显示了与食品相关数据集的统计比较。我们可以看到,现有的食品相关数据集主要集中在食品识别任务上,其目的是识别图像内的食品类别。很少有数据集为食物边界框提供标注,这是由于它们的目标是定位整个菜肴,而不是各种类型的食材。相比之下,Recipe 1M为每个食物图像提供食材标注。然而,由于缺乏对这些细粒度食材的位置标注,它们只能隐式地建模整个食物图像与相应食材之间的关联,从而限制了模型的性能。因此,我们引入了CMIngre,旨在通过食材检测和检索任务增强对中餐的理解。
与传统的目标检测数据集相比,CMIngre数据集具有极其详细的食材分类和密集的边界框注释,因此直接利用现存的目标检测算法进行拟合是一件非常具有挑战的事情。直接对现有的大规模目标检测模型[1]在原始边界框注释上进行微调的效果并不让人满意,因此我们采用融合和过滤策略来缓解边界框密集和尺寸较小带来的问题。
DINO(DETR with Improved deNoising anchOr boxes)是一个融合对比降噪训练(contrastive way for denoising training),混合查询选择锚点初始化(mixed query selection method for anchr initialization),前向两次预测(look forward twice scheme for box prediction)的端到端Transformer框架。相比于Faster R-CNN,DINO是一个参数量更大且更高效的目标检测模型。
在端到端设置中,我们首先将食品图像和食材组合投影到公共的嵌入空间中,然后使用对比损失来约束跨模态特征对齐。对于图像编码器,受视觉-语言Transformer在各种下游任务中取得成功的启发,我们采用预训练的[49]-[51]CLIP ViT B/16作为图像特征提取器对图像特征进行编码,然后利用线性全连接层将原始图像特征投影到公共的嵌入空间中:
因此,通过对区域特征进行自适应聚合,得到图像嵌入。采用自适应池化策略融合多个食材特征,得到食材组的嵌入。
CMIngre数据集在本次实验中被随机划分为6,001个训练样本,1,000个验证样本和1,000个测试样本。所有的实验都使用了PyTorch框架,在2张NVIDIA GTX 3090 GPU上进行实验。
为了验证现有的检测框架在CMIngre食材数据集上的有效性,我们利用基于CNN以及基于Transformer的端到端框架来进行食材检测实验。实验结果如表4.1所示,可以发现YOLO v5,Faster R-CNN和DINO在CMIngre数据集上性能一般。这一结果表明,目前的目标检测方法为明确的目标边界而设计,很难直接检测到自由形式的食材。这也表明,在食品相关领域开发更多细粒度食材理解算法仍有很大的性能提升空间。与Faster R-CNN相比,DINO在不同的IoU阈值下的检测性能更好,这说明大规模预训练模型在食物领域依然存在着较强的理解能力。
此外,为了验证微调目标检测模型实验的有效性,我们找到了CMIngre数据集和MS COCO数据集中的七个公共类别:蛋糕、西兰花、苹果、胡萝卜、橙子、香蕉、甜甜圈。接下来,我们选取CMIngre数据集中包含这七类食材的数据,对预训练模型和使用CMIngre中数据微调后的模型进行了对比验证。表4.2展示了Faster R-CNN和DINO在CMIngre数据集中公共7类食材上的检测结果。与Faster R-CNN相比,预训练的DINO和微调后的DINO都表现出了更优的性能,突出了大规模预训练模型的泛化能力。此外,在CMIngre数据集上对DINO进行微调后,模型对常见类别的检测性能有了很大的提高。具体而言,微调后的DINO在7个公共类别上AP50:95、AP50和AP75方面分别比预训练的DINO提高了18.3%、25.2%和21%,这证明了在CMIngre数据集上进行模型调优的有效性。
在这一节中,我们重新实现了几个图像backbone(ResNet-50, ViT B/16和CLIP ViT B/16)和食材backbone(分层Transformer和分层LSTM)进行性能对比。此外,还进行了两阶段实验设置,验证了食材对象和跨模态食材检索相结合的有效性。实验结果如表4.3所示,其中APS表示自适应池化策略。最后,在表4.4中,我们重新实现了两种最先进的跨模式食谱检索方法(TFood[19]和VLPCook[56]),来比较我们提出的CMIngre和Recipe 1M[32]。
结果表明,ResNet+H-LSTM的性能并不令人满意。我们认为这是因为卷积神经网络的接受域有限,ResNet-50只能捕获整体图像的粗粒度语义,而忽略了细粒度的食材特征。这个结果突出了在跨模态食材检索中对于图像进行细粒度分析的重要性。通过利用Transformer中的自注意力机制对不同食材之间的语义关联进行建模,ResNet+H-Transformer增强了食材组合的表现力,从而提高了检索性能。
具体来说,在图像到食材的设置中,medR从62.0降低到40.0。当使用视觉Transformer[58]作为图像backbone时,检索性能显著提升。这证明了视觉Transformer通过利用不同图像区域之间的关系来提取细粒度食材表示的能力。受视觉-语言基础模型在各种下游任务中获得成功的启发,我们采用CLIP[49]作为图像backbone进行实验,与其他端到端设置相比,CLIP具有最佳的检索性能。这些实验结果表明,当采用更深和更先进的backbone时,检索性能得到了一致的改善。
除此之外,我们还探索了结合食材检测和跨模态食材检索的两阶段模型的检索性能。首先,我们使用Faster R-CNN和DINO提取固定长度的区域特征。然后,引入自适应池化策略(APS)来融合多区域特征。如表4.3所示,在所有的评估指标中,两阶段的方法明显优于端到端的方法,这表明当前的图像编码器很难直接从图像中提取细粒度食材的判别特征。
在这种情况下,更有效的方法是下训练一个专门针对食材图像的检测模型,然后使用经过训练的检测模型提取的细粒度食材特征进行检索任务。此外,可以观察到,与Faster R-CNN相比,使用DINO的区域特征可以进一步提高检索性能。这表明食材检索模型的性能提升可以同步体现在跨模态食材检索中。
为了进一步将所提出数据集与其他跨模态食品检索数据集的复杂性进行对比,我们在Recipe 1M中重新实现了两种最先进的方法[32],并对比了这些方法在CMIngre数据集上的检索性能。根据表4.4所示,CMIngre数据集上的检索效率大约是Recipe 1M上的一半,这一显著差异凸显了中餐面临的更大挑战。具体来说,Recipe 1M提供了一套全面的食谱细节(包括配料、标题和说明),它丰富了图像和食谱之间的上下文关系,从而促进了跨模态检索。相比之下,CMIngre数据集仅局限于食材信息,这对有效的跨模态检索提出了更大的挑战。值得注意的是,我们的两阶段方法明显优于这些对比方法,这进一步凸显了两阶段方法的优势,即训练食材检测方法提取细粒度食材特征可以显著增强图像的表示能力。
我们从三种类型的数据(菜名,菜谱,用户生成内容)中随机采样一个查询样本,执行跨模态检索任务,并可视化该查询样本的Top-5检索结果。如图4.1所示,查询图像所对应的正确食材组合成功的以最高相似度出现在第一个检索结果中,验证了我们图像搜索食材的有效性。此外,我们观察到查询样本和Top-5检索结果有着一定程度上的关联,例如在菜谱(recipe)查询图像的检索结果中,Top-5的食材组合都包含有鸡蛋和蔬菜(油菜、蔬菜、西兰花),并且第一个检索结果和第二个检索结果仅仅是“蔬菜”和“油菜”的细微区别,这说明我们的方法可以有效挖掘到图像和食材间的匹配关系。
如图4.2所示,上述相同的现象也出现在三类查询食材的Top-5检索结果中。我们也在图4.3中可视化了一些最佳匹配失败的案例,发现当图像中所包含的食材不能被清晰认知时,模型会倾向于给出一个相似的具体食材。例如在菜品名称查询图像中,其中的一个绿色食材由于无法被清晰的辨识所以被标注为更高级的“蔬菜”标签。然而当模型执行跨模态检索时,会更倾向于将其认知为更细粒度“芥菜”和“秋葵”而不是“蔬菜”。另外一个观察是相比于最佳匹配案例,错误案例中Top-5检索结果的相似度往往倾向于更低且更平均,表示出了模型很难分辨菜品图像中模糊食材的具体分类。
菜品作为餐饮业务的最基本单元,在供给策略运营、用户需求洞察、业务经营分析等场景都必要依赖。2020年至2021年,到餐研发团队基于业务菜品数据,进行了标准统一和知识融合,整体菜品知识准确率达到94.51%、覆盖率达到87.01%。但在局部视角,部分菜品知识属性受限于获取信源单一、挖掘技术难度大等原因导致知识覆盖不足,例如烧烤/火锅品类准确率仅63.6%,食材属性覆盖率67.5%,口味属性覆盖率11.9%,影响支持业务精细化、智能化的运营需求。
为了提升菜品知识的覆盖,我们提出一套构建多模态知识图谱的流程,分别从文本和图像两个模态获取菜品知识。
在本研究中,我们将重点放在中餐理解上,它扩展了细粒度对象检测和检索的范围,在中餐领域提供了更广泛的应用。为了支持新任务的研究,我们设计了第一个跨模态食材级数据集CMIngre,该数据集由来自菜肴、食谱和UGC三种不同来源的8,001对图像食材组成,涵盖了429种不同的中餐和超过95,290个边界框。我们在CMIngre数据集上评估了不同目标检测算法的有效性,表明开发更高级的细粒度食材检测算法仍然有足够的性能提升空间。此外,在CMIngre上进行的广泛的跨模态食材检索实验验证了我们提出的基线的有效性。此外,我们希望这个基准可以激发更多新颖的细粒度食材理解算法的发展,从而促进食品相关领域的进步。
利用以上技术能力,在多模态数据集上建设菜品知识图谱。对比文本单模态(知识准确率95%、覆盖率达到80%),通过在评测数据上进行验证,该项目提升菜品知识图谱的属性知识的质量,知识准确率96.52%、覆盖率达到87.01%。将菜品知识图谱的能力应用于相同商品识别的业务场景,通过提供商品理解的关键信息,识别的错误率从20.38%降低至2.3%,提升美团精细化运营的效率。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-12-02
李飞飞:Agent AI 多模态交互的前沿探索
2024-12-02
使用Llama 3.2-Vision大模型,搭建本地Ollama OCR应用
2024-11-29
Molmo 7B:多模态智能下的文本提取
2024-11-28
360“纳米搜索”:一切皆可搜索,一切皆可生成视频
2024-11-28
周鸿祎发布纳米搜索,做世界第一的AI搜索
2024-11-26
简单到爆!Llama - OCR 仅需 3 步,小白也能完成高质量 OCR 识别!
2024-11-25
Encord全球首发多模态数据标注编辑器,AI数据开发技术有哪些新趋势?
2024-11-23
Pixtral Large:128K 上下文窗口 + 多模态融合,开启智能新视界!
2024-09-12
2024-05-30
2024-06-17
2024-08-06
2024-08-30
2024-04-21
2024-06-26
2024-07-07
2024-06-14
2024-07-21
2024-11-25
2024-09-26
2024-09-26
2024-09-01
2024-07-15
2024-07-14
2024-07-10
2024-07-02