内容简介:比如面对一张饼干的图片,AI 会给出面粉、黄油、糖、鸡蛋、牛奶和盐组成的配料表,然后将制作过程分成若干个步骤列出来,甚至可以精确到烤箱加热到 450 华氏度(约 232℃)和面粉厚度 1/4 英寸。
近日,Facebook AI 开源了一个 AI 系统, 可以通过分析食物图片,判断需要用到的食材和制作过程,最后生成一份菜谱。
比如面对一张饼干的图片,AI 会给出面粉、黄油、糖、鸡蛋、牛奶和盐组成的配料表,然后将制作过程分成若干个步骤列出来,甚至可以精确到烤箱加热到 450 华氏度(约 232℃)和面粉厚度 1/4 英寸。
图 | 由饼干图片生成菜谱(来源:Facebook AI)
不过有意思的是,这个 AI 系统可以接受和分析任何图片,所以你可以选择按部就班上传食物,也可以选择脑洞大开调戏 AI。
比如上传个月亮,被识别成“家常煎饼 ” :
上传个 iPhone,被当成“家常冰凝胶 ” :
美国总统特朗普也不例外,被识别成“烤蒜盐 ” :
至于皮卡丘,则被当成了“煎蛋 ” :
这并非菜谱 AI 工具的首次亮相。2018 年 10 月,Facebook AI 实验室就曾公布了有关该项目的信息,不过当时并没有详细的开源资料。更早之前,MIT 的 CSAIL 实验室也有过类似的研究,曾在 2017 年 7 月公布了一个 Pic2Recipe 的模型。
通过照片反向生成菜谱听起来似乎没什么,但实际上它对 AI 背后算法的要求很高,其实用价值也不仅局限于食物。Facebook 的研究人员相信,相关成果可以启发其他研究,比如从图像中预测大段文字和提取关键词。
该研究成果发表于 CVPR 2019 大会上,开源代码在 GitHub 上(链接见文章最后)。
如何实现从图片到菜谱的推导
对于 AI 来说,从图片中推导出菜谱主要需要两方面的知识: 一方面是搞清楚图片中是什么食物,由什么食材和配料制作而成 ; 另一方面则是推断出食材和配料的加工过程 ,是切块还是切丝,是搅拌还是碾碎等等 。
传统方法倾向于将这一过程简化为匹配任务,MIT 之前的 Pic2Recipe 模型就是这样做的。首先系统会判断出图片中是什么食物和菜品,再去已有数据库中搜索和匹配相应的菜谱。如果没有准确的对应菜谱,就会匹配一个最相似的。
这样的方法依赖大量的菜谱数据,而且缺乏灵活性和多样性。一旦出现数据库中不存在或长相不同的食物,其准确率就会大幅下降,难当大任。
Facebook 研究人员采用了一种新的思路, 把从图片到菜谱的过程视为一个条件生成系统,输入食物图片,输出食物名称、食材配料表和烹饪步骤三种信息。 给定一张食物图片,AI 系统会先判断它包含哪些食材和配料,进而以图片、食材和配料表为条件,推导出它们的加工方式,最后根据加工方式的可能性从高到低排列,形成很多份菜谱。
换句话说, 因为多出了“分析食材”这一中间步骤,图片与菜谱之间不再是配对关系,而是推导关系。
图 | 菜谱生成模型的工作流程(来源:Facebook AI)
从技术角度来看,这个菜谱生成模型由四个主要部分构成 ,分别是提取图像特征的图像编码器,分析食材列表的食材解码器,预测食材加工过程的食材编码器和许多个生成烹饪步骤的解码器,其中用到了注意力机制和 ResNet-50 卷积神经网络模型等。 为了提高 AI 的表现,研究人员还对图像编码器和食材解码器进行了预训练。
他们使用了开源的 Recipe1M 数据库训练和评估模型,其中包括超过 102 万份菜谱,满足实验要求的数据超过 40 万份。不过原菜谱中包含很多类别相同但更具体的配料,光奶酪就有 400 多种,辣椒也有 300 多种。这对 AI 来说非常复杂,因此它们被简化了,只使用奶酪和辣椒这样的统称。
最终,超过 1.6 万个独特的配料被缩减成了 1488 种。类似的工作还用在了简化烹饪步骤的字数上。
实验结果显示,新模型对食材的判断准确率约为 49%,大幅超过了传统方法的 30.5% 和人类的 35.2%,不过仍有很大的进步空间。
他们还测试了菜谱的质量和烹饪步骤的可操作性,模型在这方面的成功率约为 55.5%,即人类测试员在超过半数的情况下可以通过菜谱做出对应食物。相比之下,传统方法的成功率只有 48.8%,而真实菜谱的成功率是 80%。由此可见菜谱的质量还有待提高。
图 | 新模型(左),传统方法(中)和真正菜谱的对比,红色是错误的食材,蓝色是正确的食材(来源:Facebook AI)
整体来看,虽然物体识别技术已经趋于成熟,但对食物,尤其是烹饪后的食物的识别仍然是计算机视觉领域的巨大挑战。 很多食材和调料会在烹饪中发生巨大的改变,甚至消失不见,因此对 AI 系统的推理能力和先验知识提出了很高的要求。
研究人员表示,这套 AI 系统是他们在食物分析领域迈出的第一步,以后还会尝试卡路里估算和新菜谱创造等更有挑战性的任务。同时,在该领域做出的研究成果也可以用来帮助解决其他问题,比如识别图片中的文字和关键词等等。
最后,我们经过不断测试,发现这套 AI 模型对包子、饺子、油条、拉面、粽子和月饼一无所知,经常识别成饼干和面包,显然它还不了解神秘的东方传统美食。
图 | AI 轻松识别出了左宗棠鸡,即使图片中的特征并不明显
然而,在菜品特征并不明显的情况下,AI 却可以判断出宫保鸡丁和左宗棠鸡这样的西方最流行的中国菜,甚至能给出三种左宗棠鸡的做法,说明它确实有过人之处。但另一方面,这样的结果也证明,训练数据片面导致的 AI 偏见的确难以避免。
-End-
GitHub 开源代码链接:
https://github.com/facebookresearch/inversecooking?fbclid=IwAR2dsCSOQaRmAZrLUW42yRQyHF1JLhMi_QIj92tg-JKbWqZvlS0FQ8WJtwg
参考:
https://ai.facebook.com/blog/inverse-cooking/
https://research.fb.com/publications/inverse-cooking-recipe-generation-from-food-images/
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。