21

疫情下的元宵节怎么过?借助 AI 给家人做顿团圆饭!

 4 years ago
source link: http://mp.weixin.qq.com/s?__biz=MzI5NTIxNTg0OA%3D%3D&%3Bmid=2247501287&%3Bidx=3&%3Bsn=8bf8ea79c3a4313c0faa7f3f47cab263
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

auIvMza.jpg!web

作者 | 蒋宝尚

编辑 | 贾伟

元宵节,春节后的小团圆,也是一年中第一个月圆之夜,AI科技评论在这儿祝大家贪吃不胖,美梦不空。

在往年的元宵节,我们会走出家门赏花灯、舞龙灯、猜灯谜,用火树银花的仪式迎接我们对未来的期望。

2020年的元宵节,因为疫情,我们庆祝的方式或许要单薄一些,但做一桌美食和父母分享还是极好的。

6ZRnIzM.jpg!web

厨艺精湛的小伙伴完全有能力施展才华,做出如上图般的美味佳肴。 但做菜只知道放盐的“厨师”也不要着急,上微博搜索一下卖相比较棒的菜品,用AI软件识别一下,完全能估摸出个大概的配方。

在这个不同寻常的“假期”借助AI的力量,磨练一下你的厨艺吧!

下面AI科技评论为大家介绍两款菜谱识别软件,分别是:MIT的Pic2Recipe 的AI系统、Facebook的菜谱识别AI系统。在最后会介绍相关技术原理,在家尚未返工返学的读者也可以试着编程实现。

MIT先行,Facebook垫后

emyA3uu.jpg!web

MIT的这一款名为Pic2Recipe识别软件,开发于2017年,是卡塔尔计算研究所(QCRI,MIT最大的实验室)和加泰罗尼亚理工大学的联合研究的产品,基于一个名为Food-101的数据集,并在2014年瑞士科学家工作的基础上进行了改进。另外,他们还采用的了他们自己收集的Recipe1M的数据库,其内容包含超过一百万张的食物图片、以及它们对应的菜谱。

具操作步骤是:用户提交的照片被收藏到在线食谱中,并训练机器通过分析配料清单、烹饪说明和食品图像,来自动了解食物的制作方法。

其中食谱从二十多个流行的烹饪网站上搜集而来,并通过一条流水线进行处理,从原始HTML中提取相关文本,下载图像的链接,并将数据组合成一个紧凑的JSON模式,其中每个被标记的数据具有唯一性。

maeANf3.gif

Pic2Recipe动画展示,来源:https://www.sohu.com/a/159754992_99905315

经AI科技评论测试,目前这个软件的网页版已经下线,不过在当年,此项研究成果入选CVPR 2017,并且相关论文和代码已经开源。

jAvaiym.png!web

paper:http://t.cn/R9vmeww ;

Github:http://t.cn/RK1bLkv ;

数据集:http://t.cn/R9vmBDN

相对于MIT的人工智能系统,Facebook在2019年推出开源AI则比较“先进”。相比之前的检索办法,Facebook换了一种新思路,将图像到配方问题公式化为条件生成问题。即:使用预先训练图像编码器和成分解码器,以图像及其相应的成分列表为条件生成指令序列,以此生产可能的菜谱。

此系统是由安德里安·罗梅罗(Adrianna Romero)和其他几名在FAIR蒙特利尔实验室的研究人员一起开发的。并在大规模菜谱数据集上进行了评估,提高了与以前的成分预测方法基线相比的性能。总的来说能够通过输入食物图像来提供准备一顿饭的途径。

AnQruqi.jpg!web

另外,该研究成果发表于 CVPR 2019 大会上,并把代码开源在了 GitHub 上。

https://github.com/ facebookresearch / inversecooking

数据集介绍

对于机器学习模型训练,首要考虑的是数据集,拥有好的数据集,训练出来的模型往往有着好的表现。在上面提到的两个AI模型中,Pic2Recipe系统采用的是Recipe1M的数据集 + Food-101数据集。而Facebook的AI模型则是在Recipe1M的数据集上进行评估。

ieQVNn3.jpg!web

其中,Food-101 数据集是包含 101 种食品类别的图像数据集,主要用于图像分类,它共有 101,000 张图像,平均每个类别拥有 250 张测试图像和 750 张训练图像。训练图像未经过数据清洗。所有图像都已经重新进行了尺寸缩放,最大边长达到了 512 像素。该数据集于 2014 年由斯坦福大学发布。

数据集下载地址:

http://www.vision.ee.ethz.ch/datasets_extra/food-101/

Yfy6Rzj.png!web

Recipe1M数据集体量庞大,内含100万烹饪食谱和1300万张食物图像,其中中国菜也包含在内。值得一提的是,这个数据库的最主要来源是大家在社交网络上晒出的食物图片。也就是说,你在微博、朋友圈的“放毒”推动了人工智能的发展;另外,对食谱数据的收集参考了多个食谱网站,包括 All Recipes、Food.com,这一全球最大的食谱和食物网站之一。

数据集下载地址:

http://t.cn/R9vmBDN

图像到食谱背后的AI技术

对于 AI 来说,从图片中推导出菜谱主要需要两方面的知识:一方面识别图片中的食物,具体包括食材和配料;另一方面则是推断出食材和配料的加工过程,是切块还是切丝,是凉拌还是水煮等等。

传统方法倾向于将这一过程简化为匹配任务,MIT 之前的 Pic2Recipe 模型就是这样做的。具体过程是:首先判断图片中食物和菜品,然后在数据库中搜索和匹配相应的菜谱。如果没有准确的对应菜谱,就会匹配一个最相似的。

这样的方法依赖大量的菜谱数据,而且缺乏灵活性和多样性。一旦出现数据库中不存在或长相不同的食物,其准确率就会大幅下降,难当大任。

所以这次我们介绍一下Facebook的那篇论文所采用的深度学习模型。

具体而言Facebook 研究人员采用了一种新的思路,把从图片到菜谱的过程视为一个条件生成系统,输入食物图片,输出食物名称、食材配料表和烹饪步骤三种信息。图片和食谱之间更多的是推导、分析关系,而不是匹配关系。

M3mIrab.jpg!web

菜谱生成模型的工作流程

从论文中得知,这个菜谱生成模型由四个主要部分构成,分别是提取图像特征的图像编码器,分析食材列表的食材解码器,预测食材加工过程的食材编码器和许多个生成烹饪步骤的解码器,其中用到了注意力机制和 ResNet-50 卷积神经网络模型等。为了提高 AI 的表现,研究人员还对图像编码器和食材解码器进行了预训练。

具体而言:给定具有相关成分的输入图像,通过指令Transformer产生指令序列R 。其中,标题被预测为第一条指令,解码器依赖于图像和食材的输入;然后通过ResNet-50提取图像表示,并通过解码器架构获得食材嵌入以预测食材,然后将单个嵌入层映射到固定大小的矢量中。

其中指令解码器由Transformer块组成,每个Transformer块包含两个注意力层,后面跟着一个线性层。第一个注意力层对先前生成的输出应用自注意力,而第二层关注模型调节以改进自注意力输出。另外,Transformer模型由多个模块组成后跟线性层和softmax非线性。

NFvQjij.jpg!web

Transformer模型

在成分解码中,论文中采用将食材作为列表和集合的方法,提出了一种新的食材预测架构,并利用食材之间的共同依赖性进行预测。

食谱逆推真的准确么?

上述两个AI系统准确率都有待商榷,根据之前的报道Pic2Recipe准确率只有65%,而且一旦涉及中国菜就宕机。而Facebook的更加秀,可以接受和分析任何图片,但是能把月亮图片识别成“家常煎饼”,能把iPhone手机识别成“家常冰凝胶”,至于皮卡丘,AI认为应该改名叫“煎蛋”。。。

3ueYJjy.jpg!web

据相关研究者称,AI菜谱系统当前遇到的最大瓶颈其实还在于图片本身。因为在拍摄食物图像时,食物的呈现往往会受到拍摄状态的影响,比如角度、远近、摆放和灯光等因素,都有可能造成识别结果的不同。

而在模型方面,如果算力能够支持,集成准确率更高的系统完全不是问题,毕竟当前人脸识别系统已经能够达到95%的准确率。所以通过图像逆推菜谱在未来还有很大的进步空间,主要是数据集质量的改善。

好了,了解数据集以及背后的技术原理,感兴趣的小伙伴自己动手实现一个识菜AI吧~

参考文献:

arxiv:https://arxiv.org/abs/1812.06164

https://ai.facebook.com/blog/inverse-cooking/

https://research.fb.com/publications/inverse-cooking-recipe-generation-from-food-images/

eYbeYbQ.jpg!web

VBvi6nR.gif 点击“ 阅读 原文 ” 前往  问卷填写页面


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK