不会做菜?你需要能理解菜谱的烹饪机器人

简介: 本文主要介绍与用户和厨房交互的烹饪机器人:多模态的烹饪辅助、自学习菜谱的系统以及以人为反馈的优化烹饪方法。


在人们对未来生活的幻想中,「自动化」占据非常大的比重。除了已经有的家居自动化、办公自动化外,烹饪自动化可以说是 90 后、00 后的一个福音。

烹饪机器人的研究,多数以日本的研究者为主,比如日本的 Ogura 等人 [1] 开发了一个机器人系统,可以用多种方式切菜。Kormushev 等人 [2] 在 2010 年 IEEE 上的 Robot Motor Skill Coordination with EM-based Reinforcement Learning 论文中提出了一种向机器人传授翻转煎饼的方法,并通过强化学习来改善动作准确率。
作为一个整合的系统,Yamaguchi 总结了烹饪机器人在不同部分的难点和挑战:一是如何正确操作可形变物体(如敲鸡蛋、剥香蕉等),这需要对物体建立具有鲁棒性的动力学模型;二是为了使用多种烹饪技能,机器人必须具备一个灵巧的机械手并会像人类学习;最后我们的目的是制作美味的食物,所以机器人也得具备强大的触觉、味觉或特殊用途传感器,以优化烹饪过程。 但该文没有提到的是,通过我们的日常经验可以知道,烹饪不同于利用机械臂装配,它并不是一种标准化的过程。不同的人有不同的烹饪技巧和烹饪风格,而这种不确定性对执行固定操作的机器人来说是很难实现的。以现有的技术看,我们已经可以利用机器人(臂)进行一些简单烹饪。但机器人烹饪系统和用户、智能家居等能做到真正结合,还需要继续努力。

大家想象中的烹饪机器人可能都是拥有一对(只)机械臂,但实际研究或者工程中这样能完成完整的烹饪难度太大,因此不少研究只是开发烹饪的辅助系统(或者辅助机器人),帮助不懂做菜的当代人。这篇文章主要介绍与用户和厨房交互的烹饪机器人:多模态的烹饪辅助,自学习菜谱的系统以及以人为反馈的优化烹饪方法。

1. 烹饪辅助机器人

微信图片_20211204105027.jpg

 

一般菜谱都是基于文本的说明、难以理解,而视觉教学对烹饪新手来说更加有效。Suzuki 等人 [3] 在 Cooking Support with Information Projection onto Ingredient 中提出的烹饪辅助系统,可以在食材上叠加切割线来提供烹饪的实时说明,也可以通过对话机器人「Phyno」提供对话和交流。

微信图片_20211204105030.jpg

图 1:对话机器人「Phyno」

辅助系统的图像叠加功能是将烹饪指南覆盖在食材上,以指导厨师进行烹饪。指导图像的类型又可分为三类:过程指令图像、过程图像和进展图像。过程指令图像主要指在食物上叠加切割位置,并附有刀具如何移动的图像。过程图像提供操作步骤的文本或图形描述,如翻转物品。进度图像则是要将一个食材转移到一个地方(如盘子)时显示。 而对话机器人「Phyno」则采用作者之前在日本 National Institute for Computer Technology(NICT)机构中根据传统机器人研究出的系统。该系统可以在用户烹饪出错时,通过与机器人对话来确定错误。此外,它还能记录用户烹饪的视频,并与预装的视频比较是否正确烹饪。研究者认为,用对话机器人取代原来的文本或视频形式的菜谱可以让烹饪过程更加有趣,使机器人的角色从「人形互动伙伴」转变为「人」这一社会实体。 

微信图片_20211204105034.jpg

图 2:厨房示意图


厨房环境 (图 2) 配备了水槽、烹饪台和炉子。天花板上安装了可以捕捉整个厨房画面的两个摄影机和用于 CG 投影的三个投影仪。出于安全考虑,厨房总是保持高度照明,并使用大功率投影仪提供画面细节。烹饪辅助系统包括投影在烹饪台上 CG 投影和指导烹饪的 Phyno 机器人,作者以处理鱼类为例进行验证,其基本步骤如下:

  • 因为该系统是 2012 年的发明,所以当时主要采用简单的背景差分技术和模版匹配方法(图 3)检测菜板上的食材。背景差分是利用烹饪前后图像(a、b)来对比出不一样的前景对象(c),然后提取对象轮廓(e、f)。之后在预先存储有的大量目标模板中,检测出与轮廓匹配度最高的那类。


微信图片_20211204105038.jpg

图 3:检测方法

  • 然后根据投影在鱼上的切割线进行去鳞,通过「Phyno」语音和过程图像对鱼进行翻转。
  • 在鱼的腹部投影切割方法,并移除内脏,再根据语音指导将鱼移动到水槽中洗净剩余的内脏。


微信图片_20211204105045.jpg

图 4:投影示意图

  • 根据投影切掉鱼头,后将刀插入鱼腹和鱼背,切断鱼肉。
  • 语音提示「完成烹饪」。

 不过该系统也有一个最大的问题:很难确定烹饪过程是否完成,并进入下一步骤。就这一问题,作者采用了两步解决:
第一步,在 Hashimoto 的 Smart kitchen:A user centric cooking support system [4] 论文基础上,提出一种结合图像处理和语音识别的混合技术。它首先捕捉烹饪过程的图像,以确定厨师是否接触食材。该系统认为在厨师接触食材时是在烹饪过程中;而在远离食材时为烹饪过程的完成。
第二步利用语音交互,「Phyno」通过询问「你完成这一步了吗?」来提示厨师做出回应,并确定烹饪是否完成。 最后,该系统在与人合作烹饪的试运行中,也表现出一些有待改进的地方。比如该系统仍然缺乏在烹饪的某些环节中对新手的详细辅助,还有系统提供的切割位置和方法不足以让用户正确操作等。这些问题的主要原因是该系统只包含人 5 种感觉中的视觉和听觉,无法提供与触觉和声学感官相关的指令。 作者认为该系统虽然还有待改进,但它不止能提供烹饪辅助,还有助于增强新手厨师的安全。比如看菜谱的话,厨师必须多次在烹饪台和书 / 手机之间移动视线,分散厨师的注意力并带来危险。虽然这种烹饪辅助系统还不够完善,但已经可以透过这种可视化操作看到未来烹饪生活的一角。

不过现在随着深度学习的发展,我们完全可以利用 VGG、ResNet 等图像分类高性能网络代替模板匹配功能。用准确率较高的两阶段 Faster R-CNN 检测网络,或者速度更快的 YoLo 系列来解决背景差分带来的问题。而且网络上存在大量的烹饪视频,所以我们完全可以让其模仿,而不仅仅是指导。

2. 能理解菜谱的烘焙机器人 BakeBot

微信图片_20211204105052.jpg


以上系统对于懒人或没时间烹饪的人来说并不是最佳选择,我们更希望有一个能自主烹饪的机器人,而不仅仅是辅助。Kunze 等人研究过一个制作煎饼的机器人系统,麻省理工学院和可口可乐公司也开发过一款智能手机控制的机器人调酒师。Bollini 等人在 Interpreting and Executing Recipes with a Cooking Robot [5] 中,在他们发表的一个烘焙饼干的机器人厨师 BakeBot [6] 基础上添加了食谱分析功能,将食谱解析为一系列简单操作,并为其人类伙伴执行。

想要按照菜谱烹饪需要通过以下几个步骤:首先将烹饪台中未使用的食材 S_{k}^{i}的集合定义为 state 空间 S_k,比如搅拌碗 S_{k}^{b}、烤盘 S_{k}^{s}和烤箱 S_{k}^{o}等。actions (S_k) 则是给定 S_k 下可以执行的一组操作:

微信图片_20211204105056.jpg


这种简化是认为在这个厨房区域的有限 state-action space 中,可以遵循特定的动作轨迹就完成各种样式的菜。而如果某条菜谱指令没有支持的机器人动作存在,机器人会通过终端以可视化和声音的方式提示用户执行该动作。 其次,为了生成烹饪菜肴最有可能的动作序列,需要根据菜谱输入文本定义一个奖励函数 R。作者将奖励函数定义为使用对数线性模型参数化的概率分布,公式中的 d_j 是菜谱中的每个句子,s_m...s_n 是系统推断出的结果。因此,模型的目的就是使推断出的结果更接近真实句子 d_j。该模型是从一个带有正确注释的食谱数据集中使用梯度下降算法训练出来的。然后使用前向搜索找到使函数最大值的动作序列和操作。

微信图片_20211204105059.jpg


之后,推导出的动作序列被解释成的机器人需要执行的 baking primitives 计划。每一条计划对应一个单独的烹饪动作,由一组带有 STRIPS-style 先决条件的运动原语和对目标的描述组成。如果动作序列中的动作不受机器人系统的支持,就进入用户交互状态并将其插入到 state 机制中,从而使系统能够执行菜谱。

最后,机器人按顺序执行这些动作序列。系统会使用算法来查找桌面上的对象,并给出对象和食材名称之间的映射。然后机器人就会使用末端执行器位置和顺应性控制技术来执行操作这些对象的动作,完成菜肴。其总体框架如图 5。BakeBot 采用 PR2 机器人系统,采用 Rusu 等人研究的低级操作和感知系统。机器人首先阅读自然语言的文字菜谱 recipe,并使用它推断制作菜肴所需的动作序列 instructions。对于每一条指令,机器人根据 Symbolic planner 的运动计划在 PR2 系统上通过末端执行器位置和顺应性控制技术来执行具体操作。

微信图片_20211204105106.jpg

图 5:BakeBob 系统结构


作者从互联网上收集到 60 种食谱,描述了如何制作简单的菜肴,如果仁饼干、黄桃馅饼等。其中,45 种用于训练,15 种用于测试。以烘焙饼干作为实验,我们假设初始时每个物品的相对位置都在程序中有所标注。

作者一共测试了 27 次该菜肴的制作,其中 16 次可以执行到最后,平均烹饪时间为 142 分钟。一些失败如手指在打开烤箱门时滑下来,更严重的失误是将配料溢出或将碗中食材刮到地板或桌子上,导致测试的终止。尽管烹饪比人类要慢,失败的次数也多得多,但也证明机器人有胜任烹饪工作的能力。

微信图片_20211204105110.jpg

图 6:烘焙过程

之后在 Joy of Cooking 菜谱中进行定量评价,该系统能够执行这些食谱中 120 条指令的 67%,不支持的指令包括磕鸡蛋和抹黄油等。在简单烘焙食谱中则有 76% 得到了 BakeBot 机器人系统的支持,不支持的句子包括「等待饼干冷却」,或是描述性的陈述句「不要过度烘烤」。 最后,还评估了不同训练集大小下的测试集菜谱推断性能。实验中,测试集菜谱不变。随机选择训练集的菜谱训练系统,然后使用测试集评估系统的性能。每次在训练集中添加 5 个随机菜谱(最多 45 个),在测试集上展现的指令级评估结果如图 7 所示。它反映了训练集大小对系统的影响:当向训练集添加菜谱时,菜谱推理性能有巨大改进;但随着训练集越来越大,这种提高就会随之减少。

微信图片_20211204105114.jpg

图 7:菜谱推断结果

不过任何一个有抱负的厨师都可以证明,仅仅按照菜谱烹饪不足以保证食物的美味。味道是由许多不同的因素决定的,包括盐度、含糖量和酸度等化学状态,而且只有人类可以评价它的味道。为了让机器人烹饪的更有水平,就必须对制作出的美食有定量评价,从而制定新的优化策略。

3. 机器人烹饪的定量研究

微信图片_20211204105117.jpg


烹饪质量优化是一个尚未探索完全的课题,一直有很多人在该领域不断研究。剑桥大学的研究者 Junge 等人 [7] 在 ICRA2020 上发表一篇名为 Improving Robotic Cooking Using Batch Bayesian Optimization 的文章,为烹饪机器人的参数定量化给出一些建议。该文融入了用户对于烹饪结果的反馈,并且利用用户的反馈来优化模型参数。之后简单对比了两种不同的优化方法,提出了一个让 human-in-the-loop 机器人学习的可能性。 作者首先对输入参数的优化过程进行改进,提出用 Batch Bayesian Optimisation(BO)代替原来的 Sequential BO 方法。贝叶斯优化(BO)是一种理想的低维随机函数。文章通过 BO 可以拟合人类的主观品味,类似神经网络的优化过程,两种方法的关键区别在于优化样本的更新过程(图 8):

微信图片_20211204105121.jpg

图 8:两种贝叶斯优化过程


第一种 Sequential BO 方法进行顺序抽样和优化,第二种 Batch BO 使用预先定义的采样点和高斯过程模型来估计预期的最优值。Sequential BO 是进行全局无导数的寻优,只有当解收敛时,寻优才终止。因此无法先验地知道样本数量,也不允许对之前样本进行重新评估。并且有限的试验次数和较大的控制输入范围,导致调整函数的超参数是另一个具有挑战性的问题。 而 Batch BO 利用高斯过程来拟合先验分布,再从分布中估计出最优期望。这种方法可以固定样本数,并且更重要的是,可以对样本进行重新评估并随时修改用户的反馈。这种方法带来的实际好处就是,不需要花费时间准备大量煎蛋饼,而是对同一个煎蛋饼进行多次评价。

实验使用的是一个可以煎蛋饼的 UR5 机器人臂,依靠末端执行器操纵厨房中的所有工具。机器人的两根手指通过两直流电机独立控制,并装有硅胶垫以抓取各种形状的工具。串口通信允许从传感器读取数据并与控制 UR5 的 python 脚本通信,以协调机械臂的各种动作。 实验前,作者对各控制参数(见图 9)对食品最终效果的影响进行测试。挑选的四个志愿者首先得到一个机器人烹饪好的标准煎蛋饼,输入参数设置为范围内的中间值。随后,将其中一个输入参数增到最大,其他参数不变,重新制作煎蛋饼并进行评估。志愿者的反馈分为 flavour、appearance 和 texture 三方面,分别给出 0-10 的得分。

微信图片_20211204105126.jpg

图 9:输入参数表


输入对输出的影响通过计算灵敏度表示,代表在修改输入后,输出相对于标准煎蛋饼的平均相对变化。公式中,Y_n,j 是指用户 n 对变量 j 的得分,x_i 是相应的输入控制参数,Y_base 是基准得分,σ 表示用户得分的标准差。

微信图片_20211204105130.jpg


结果发现,控制参数和用户反馈的关系为:盐、胡椒粉和混合影响味觉指标,混合、搅拌和烹饪时间影响外观、纹理。实验中一共准备了 73 个机器人制作的煎蛋饼,进行了 6 次实验以测试实验设置和我们的优化算法。四次测试是针对 Sequential BO 方法进行顺序抽样和优化,剩余两次实验使用预先定义采样点和高斯模型估计最优值的 Batch BO 方法。每次测试有 1~4 个评价者,但优化会随机选择其中的个体。而且在机器人平台使用相同的输入参数就可以获取重复的样本,这是人类无法做到的准确性。 从输入参数与输出反馈的关系(图 10 左)发现,在输入参数大幅改变时,输出反馈的范围较小,波动情况不大。而右图的 Batch BO 输入参数近似均匀分布,可以实现更大范围的探索。而且输出反馈的高波动性,意味着受噪声的影响可能更低。样本间较高的可分辨性导致主观反馈更加真实,从而更好地拟合机器人烹饪的目标函数。

微信图片_20211204105134.jpg

图 10:输入参数对食品的影响


从 Sequential BO 实验的最后几个样本和 Batch BO 的中间样本中,可以很明显地观察到三个输出反馈似乎是直接相关的。所以,在迭代过程中应该逐步增加输入方差,来减少这种相关影响。根据输入输出关系调整最优的输入参数,也能使烹饪出的菜肴更加美味。 这种食品定量化的方法可以应用到机器人厨师的可量化改进上,也可以在足够的样本数据上继续对主观数据进行合理量化、不断优化。不过,人们对食品的主观评价也不仅仅包括味觉和视觉。烹饪过程中的声音信息、厨房的干净整洁程度都可能影响我们对食物的整体评价,而将这些状态综合考虑是非常困难的。 并且,如何让机器人理解并熟练使用人类的各种烹饪工具是非常难以建模的动力学问题。对于该问题,大部分研究者认为可以采用神经网络解决。还可以让机器人向人类学习某些技能,比如握住机器人臂翻转煎饼,通过强化学习或者示教让机器人建立对应模型。或者观看大量烹饪视频,然后对这些行为进行推理、学习。

2015 年英国科技公司 Moley Robotics 在伦敦建成了一个机器人厨房系统,称这套「世界上第一款自动化厨房」可实现完全自动化的烹饪体验。机器人手臂上的 20 个马达、24 个接合点和 129 个感应器让它能够模仿人类双手,抓住各类瓶罐、餐具,也能够使用搅拌机、菜刀、灶台。但是由于 Moley 没有视觉识别系统,无法对目标准确定位。所以研究者需要通过手机 App 给 Moley 机器人下达任务命令,同时将食材、调味料等准确地摆放在恰当的位置,Moley 才可以进行烹饪。

如今,市面上也有许多可供挑选的烹饪机器人,但他们大多只具有翻炒、搅拌等功能。需要人们在选择菜品后,根据烹饪要求将食材洗净切片、切丝或切块。并将这些原料、调味品放到指定盒子里,才能放心让机器人开始烹饪。而这离全自动化智能化的烹饪明显还有一段距离。

我们更希望有一种可以根据个人品味、偏好制作菜肴的定制机器人,让其烹饪风格不再千篇一律,而是像人一样让美食拥有自己的「味道」。烹饪机器人在未来生活中一定是不可或缺的角色。而让它们能与一般用户和生活结合,如何让其像人类一样熟练操作各种工具、配有一个可以「品尝」食物味道的舌头,能不断学习新菜单,以及最后怎样评价等,都是需要研究者克服的难题。

参考文献

[1] Takashi Ogura, Kei Okada, and Masayuki Inaba. Cutting vegetables tasks by humanoid robot using vision and force sensors, In in The 24th Annual Conference on Robotics Society of Japan, p. 1H25, 2006.[2] Kormushev P, Calinon S, Caldwell D G. Robot motor skill coordination with EM-based reinforcement learning[C]//2010 IEEE/RSJ international conference on intelligent robots and systems. IEEE, 2010: 3232-3237.[3] Suzuki Y, Morioka S, Ueda H. Cooking support with information projection onto ingredient[C]//Proceedings of the 10th asia pacific conference on Computer human interaction. 2012: 193-198.[4] Hashimoto A, Mori N, Funatomi T, et al. Smart kitchen: A user centric cooking support system[C]//Proceedings of IPMU. 2008, 8: 848-854.[5] Bollini M, Tellex S, Thompson T, et al. Interpreting and executing recipes with a cooking robot[C]//Experimental Robotics. Springer, Heidelberg, 2013: 481-495.[6] Bollini, M., Barry, J. and Rus, D., 2011, September. Bakebot: Baking cookies with the pr2. In The PR2 workshop: results, challenges and lessons learned in advancing robots with a common platform, IROS.[7] Junge K, Hughes J, Thuruthel T G, et al. Improving Robotic Cooking Using Batch Bayesian Optimization[J]. IEEE Robotics and Automation Letters, 2020, 5(2): 760-765.

分析师介绍


本文作者为张雨嘉,在西安理工大学攻读模式识别的硕士学位,主要研究深度学习的图像视频处理,对机器学习也有极大兴趣,希望能跟各位一起探讨共同学习。

相关实践学习
阿里巴巴智能语音交互技术与应用
智能语音交互,是基于语音识别、语音合成、自然语言理解等技术,为企业在多种实际应用场景下,赋予产品“能听、会说、懂你”式的智能人机交互体验。适用于多个应用场景中,包括智能问答、智能质检、法庭庭审实时记录、实时演讲字幕、访谈录音转写等。 本课程主要讲解智能语音相关技术,包括语音识别、人机交互、语音合成等。  
相关文章
|
6月前
|
传感器 人工智能 监控
智能耕耘机器人
智能耕耘机器人
130 3
|
28天前
|
人工智能 搜索推荐 机器人
挑战未来职场:亲手打造你的AI面试官——基于Agents的模拟面试机器人究竟有多智能?
【10月更文挑战第7天】基于Agent技术,本项目构建了一个AI模拟面试机器人,旨在帮助求职者提升面试表现。通过Python、LangChain和Hugging Face的transformers库,实现了自动提问、即时反馈等功能,提供灵活、个性化的模拟面试体验。相比传统方法,AI模拟面试机器人不受时间和地点限制,能够实时提供反馈,帮助求职者更好地准备面试。
36 2
|
3月前
|
人工智能 算法 机器人
机器人版的斯坦福小镇来了,专为具身智能研究打造
【8月更文挑战第12天】《GRUtopia:城市级具身智能仿真平台》新论文发布,介绍了一款由上海AI实验室主导的大规模3D城市模拟环境——GRUtopia。此平台包含十万级互动场景与大型语言模型驱动的NPC系统,旨在解决具身智能研究中的数据稀缺问题并提供全面的评估工具,为机器人技术的进步搭建重要桥梁。https://arxiv.org/pdf/2407.10943
208 60
|
6月前
|
自然语言处理 机器人 Go
【飞书ChatGPT机器人】飞书接入ChatGPT,打造智能问答助手
【飞书ChatGPT机器人】飞书接入ChatGPT,打造智能问答助手
351 0
|
3月前
|
机器人 C# 人工智能
智能升级:WPF与人工智能的跨界合作——手把手教你集成聊天机器人,打造互动新体验与个性化服务
【8月更文挑战第31天】聊天机器人已成为现代应用的重要组成部分,提供即时响应、个性化服务及全天候支持。随着AI技术的发展,聊天机器人的功能日益强大,不仅能进行简单问答,还能实现复杂对话管理和情感分析。本文通过具体案例分析,展示了如何在WPF应用中集成聊天机器人,并通过示例代码详细说明其实现过程。使用Microsoft的Bot Framework可以轻松创建并配置聊天机器人,增强应用互动性和用户体验。首先,需在Bot Framework门户中创建机器人项目并编写逻辑。然后,在WPF应用中添加聊天界面,实现与机器人的交互。
91 0
|
3月前
|
机器人 TensorFlow 算法框架/工具
智能聊天机器人
【8月更文挑战第1天】智能聊天机器人。
101 2
|
3月前
|
人工智能 自然语言处理 安全
盘点国内:AI写作助手_ai智能问答机器人
AI写作助手是利用人工智能技术,特别是自然语言处理(NLP)技术,来辅助用户进行写作的工具。这类助手通过分析大量文本数据,能够理解语言的结构和含义,从而生成、编辑或优化文本内容。AI写作助手通常具有自动纠错、语法检查、内容生成和风格调整等功能,帮助用户提高写作效率和质量。
|
3月前
|
自然语言处理 监控 搜索推荐
使用 LangChain 创建高度互动和智能的聊天机器人
【8月更文第3天】随着自然语言处理(NLP)技术的进步,聊天机器人已成为企业和用户之间互动的重要渠道。LangChain 是一个强大的框架,旨在简化构建复杂语言模型应用程序的过程。本文将详细介绍如何使用 LangChain 框架创建高度互动和智能的聊天机器人,包括选择合适的语言模型、设计对话流程、上下文管理以及集成外部API和服务等内容。
147 0

热门文章

最新文章