不会做菜你需要能理解菜谱的烹饪机器人机
2022/10/11 来源:不详作者:张雨嘉
编辑:Joni
本文主要介绍与用户和厨房交互的烹饪机器人:多模态的烹饪辅助、自学习菜谱的系统以及以人为反馈的优化烹饪方法。
在人们对未来生活的幻想中,「自动化」占据非常大的比重。除了已经有的家居自动化、办公自动化外,烹饪自动化可以说是90后、00后的一个福音。
烹饪机器人的研究,多数以日本的研究者为主,比如日本的Ogura等人[1]开发了一个机器人系统,可以用多种方式切菜。Kormushev等人[2]在年IEEE上的RobotMotorSkillCoordinationwithEM-basedReinforcementLearning论文中提出了一种向机器人传授翻转煎饼的方法,并通过强化学习来改善动作准确率。
作为一个整合的系统,Yamaguchi总结了烹饪机器人在不同部分的难点和挑战:一是如何正确操作可形变物体(如敲鸡蛋、剥香蕉等),这需要对物体建立具有鲁棒性的动力学模型;二是为了使用多种烹饪技能,机器人必须具备一个灵巧的机械手并会像人类学习;最后我们的目的是制作美味的食物,所以机器人也得具备强大的触觉、味觉或特殊用途传感器,以优化烹饪过程。
但该文没有提到的是,通过我们的日常经验可以知道,烹饪不同于利用机械臂装配,它并不是一种标准化的过程。不同的人有不同的烹饪技巧和烹饪风格,而这种不确定性对执行固定操作的机器人来说是很难实现的。以现有的技术看,我们已经可以利用机器人(臂)进行一些简单烹饪。但机器人烹饪系统和用户、智能家居等能做到真正结合,还需要继续努力。
大家想象中的烹饪机器人可能都是拥有一对(只)机械臂,但实际研究或者工程中这样能完成完整的烹饪难度太大,因此不少研究只是开发烹饪的辅助系统(或者辅助机器人),帮助不懂做菜的当代人。这篇文章主要介绍与用户和厨房交互的烹饪机器人:多模态的烹饪辅助,自学习菜谱的系统以及以人为反馈的优化烹饪方法。
1.烹饪辅助机器人
一般菜谱都是基于文本的说明、难以理解,而视觉教学对烹饪新手来说更加有效。Suzuki等人[3]在CookingSupportwithInformationProjectionontoIngredient中提出的烹饪辅助系统,可以在食材上叠加切割线来提供烹饪的实时说明,也可以通过对话机器人「Phyno」提供对话和交流。
图1:对话机器人「Phyno」
辅助系统的图像叠加功能是将烹饪指南覆盖在食材上,以指导厨师进行烹饪。指导图像的类型又可分为三类:过程指令图像、过程图像和进展图像。过程指令图像主要指在食物上叠加切割位置,并附有刀具如何移动的图像。过程图像提供操作步骤的文本或图形描述,如翻转物品。进度图像则是要将一个食材转移到一个地方(如盘子)时显示。
而对话机器人「Phyno」则采用作者之前在日本NationalInstituteforComputerTechnology(NICT)机构中根据传统机器人研究出的系统。该系统可以在用户烹饪出错时,通过与机器人对话来确定错误。此外,它还能记录用户烹饪的视频,并与预装的视频比较是否正确烹饪。研究者认为,用对话机器人取代原来的文本或视频形式的菜谱可以让烹饪过程更加有趣,使机器人的角色从「人形互动伙伴」转变为「人」这一社会实体。
图2:厨房示意图
厨房环境(图2)配备了水槽、烹饪台和炉子。天花板上安装了可以捕捉整个厨房画面的两个摄影机和用于CG投影的三个投影仪。出于安全考虑,厨房总是保持高度照明,并使用大功率投影仪提供画面细节。烹饪辅助系统包括投影在烹饪台上CG投影和指导烹饪的Phyno机器人,作者以处理鱼类为例进行验证,其基本步骤如下:
因为该系统是年的发明,所以当时主要采用简单的背景差分技术和模版匹配方法(图3)检测菜板上的食材。背景差分是利用烹饪前后图像(a、b)来对比出不一样的前景对象(c),然后提取对象轮廓(e、f)。之后在预先存储有的大量目标模板中,检测出与轮廓匹配度最高的那类。
图3:检测方法
然后根据投影在鱼上的切割线进行去鳞,通过「Phyno」语音和过程图像对鱼进行翻转。
在鱼的腹部投影切割方法,并移除内脏,再根据语音指导将鱼移动到水槽中洗净剩余的内脏。
图4:投影示意图
根据投影切掉鱼头,后将刀插入鱼腹和鱼背,切断鱼肉。
语音提示「完成烹饪」。
不过该系统也有一个最大的问题:很难确定烹饪过程是否完成,并进入下一步骤。就这一问题,作者采用了两步解决:
第一步,在Hashimoto的Smartkitchen:Ausercentriccookingsupportsystem[4]论文基础上,提出一种结合图像处理和语音识别的混合技术。它首先捕捉烹饪过程的图像,以确定厨师是否接触食材。该系统认为在厨师接触食材时是在烹饪过程中;而在远离食材时为烹饪过程的完成。
第二步利用语音交互,「Phyno」通过询问「你完成这一步了吗?」来提示厨师做出回应,并确定烹饪是否完成。
最后,该系统在与人合作烹饪的试运行中,也表现出一些有待改进的地方。比如该系统仍然缺乏在烹饪的某些环节中对新手的详细辅助,还有系统提供的切割位置和方法不足以让用户正确操作等。这些问题的主要原因是该系统只包含人5种感觉中的视觉和听觉,无法提供与触觉和声学感官相关的指令。
作者认为该系统虽然还有待改进,但它不止能提供烹饪辅助,还有助于增强新手厨师的安全。比如看菜谱的话,厨师必须多次在烹饪台和书/手机之间移动视线,分散厨师的注意力并带来危险。虽然这种烹饪辅助系统还不够完善,但已经可以透过这种可视化操作看到未来烹饪生活的一角。
不过现在随着深度学习的发展,我们完全可以利用VGG、ResNet等图像分类高性能网络代替模板匹配功能。用准确率较高的两阶段FasterR-CNN检测网络,或者速度更快的YoLo系列来解决背景差分带来的问题。而且网络上存在大量的烹饪视频,所以我们完全可以让其模仿,而不仅仅是指导。
2.能理解菜谱的烘焙机器人BakeBot
以上系统对于懒人或没时间烹饪的人来说并不是最佳选择,我们更希望有一个能自主烹饪的机器人,而不仅仅是辅助。Kunze等人研究过一个制作煎饼的机器人系统,麻省理工学院和可口可乐公司也开发过一款智能手机控制的机器人调酒师。Bollini等人在InterpretingandExecutingRecipeswithaCookingRobot[5]中,在他们发表的一个烘焙饼干的机器人厨师BakeBot[6]基础上添加了食谱分析功能,将食谱解析为一系列简单操作,并为其人类伙伴执行。
想要按照菜谱烹饪需要通过以下几个步骤:首先将烹饪台中未使用的食材S_{k}^{i}的集合定义为state空间S_k,比如搅拌碗S_{k}^{b}、烤盘S_{k}^{s}和烤箱S_{k}^{o}等。actions(S_k)则是给定S_k下可以执行的一组操作:
这种简化是认为在这个厨房区域的有限state-actionspace中,可以遵循特定的动作轨迹就完成各种样式的菜。而如果某条菜谱指令没有支持的机器人动作存在,机器人会通过终端以可视化和声音的方式提示用户执行该动作。
其次,为了生成烹饪菜肴最有可能的动作序列,需要根据菜谱输入文本定义一个奖励函数R。作者将奖励函数定义为使用对数线性模型参数化的概率分布,公式中的d_j是菜谱中的每个句子,s_m...s_n是系统推断出的结果。因此,模型的目的就是使推断出的结果更接近真实句子d_j。该模型是从一个带有正确注释的食谱数据集中使用梯度下降算法训练出来的。然后使用前向搜索找到使函数最大值的动作序列和操作。
之后,推导出的动作序列被解释成的机器人需要执行的bakingprimitives计划。每一条计划对应一个单独的烹饪动作,由一组带有STRIPS-style先决条件的运动原语和对目标的描述组成。如果动作序列中的动作不受机器人系统的支持,就进入用户交互状态并将其插入到state机制中,从而使系统能够执行菜谱。
最后,机器人按顺序执行这些动作序列。系统会使用算法来查找桌面上的对象,并给出对象和食材名称之间的映射。然后机器人就会使用末端执行器位置和顺应性控制技术来执行操作这些对象的动作,完成菜肴。其总体框架如图5。BakeBot采用PR2机器人系统,采用Rusu等人研究的低级操作和感知系统。机器人首先阅读自然语言的文字菜谱recipe,并使用它推断制作菜肴所需的动作序列instructions。对于每一条指令,机器人根据Symbolicplanner的运动计划在PR2系统上通过末端执行器位置和顺应性控制技术来执行具体操作。
图5:BakeBob系统结构
作者从互联网上收集到60种食谱,描述了如何制作简单的菜肴,如果仁饼干、黄桃馅饼等。其中,45种用于训练,15种用于测试。以烘焙饼干作为实验,我们假设初始时每个物品的相对位置都在程序中有所标注。
作者一共测试了27次该菜肴的制作,其中16次可以执行到最后,平均烹饪时间为分钟。一些失败如手指在打开烤箱门时滑下来,更严重的失误是将配料溢出或将碗中食材刮到地板或桌子上,导致测试的终止。尽管烹饪比人类要慢,失败的次数也多得多,但也证明机器人有胜任烹饪工作的能力。
图6:烘焙过程
之后在JoyofCooking菜谱中进行定量评价,该系统能够执行这些食谱中条指令的67%,不支持的指令包括磕鸡蛋和抹黄油等。在简单烘焙食谱中则有76%得到了BakeBot机器人系统的支持,不支持的句子包括「等待饼干冷却」,或是描述性的陈述句「不要过度烘烤」。
最后,还评估了不同训练集大小下的测试集菜谱推断性能。实验中,测试集菜谱不变。随机选择训练集的菜谱训练系统,然后使用测试集评估系统的性能。每次在训练集中添加5个随机菜谱(最多45个),在测试集上展现的指令级评估结果如图7所示。它反映了训练集大小对系统的影响:当向训练集添加菜谱时,菜谱推理性能有巨大改进;但随着训练集越来越大,这种提高就会随之减少。
图7:菜谱推断结果
不过任何一个有抱负的厨师都可以证明,仅仅按照菜谱烹饪不足以保证食物的美味。味道是由许多不同的因素决定的,包括盐度、含糖量和酸度等化学状态,而且只有人类可以评价它的味道。为了让机器人烹饪的更有水平,就必须对制作出的美食有定量评价,从而制定新的优化策略。
3.机器人烹饪的定量研究
烹饪质量优化是一个尚未探索完全的课题,一直有很多人在该领域不断研究。剑桥大学的研究者Junge等人[7]在ICRA上发表一篇名为ImprovingRoboticCookingUsingBatchBayesianOptimization的文章,为烹饪机器人的参数定量化给出一些建议。该文融入了用户对于烹饪结果的反馈,并且利用用户的反馈来优化模型参数。之后简单对比了两种不同的优化方法,提出了一个让human-in-the-loop机器人学习的可能性。
作者首先对输入参数的优化过程进行改进,提出用BatchBayesianOptimisation(BO)代替原来的SequentialBO方法。贝叶斯优化(BO)是一种理想的低维随机函数。文章通过BO可以拟合人类的主观品味,类似神经网络的优化过程,两种方法的关键区别在于优化样本的更新过程(图8):
图8:两种贝叶斯优化过程
第一种SequentialBO方法进行顺序抽样和优化,第二种BatchBO使用预先定义的采样点和高斯过程模型来估计预期的最优值。SequentialBO是进行全局无导数的寻优,只有当解收敛时,寻优才终止。因此无法先验地知道样本数量,也不允许对之前样本进行重新评估。并且有限的试验次数和较大的控制输入范围,导致调整函数的超参数是另一个具有挑战性的问题。
而BatchBO利用高斯过程来拟合先验分布,再从分布中估计出最优期望。这种方法可以固定样本数,并且更重要的是,可以对样本进行重新评估并随时修改用户的反馈。这种方法带来的实际好处就是,不需要花费时间准备大量煎蛋饼,而是对同一个煎蛋饼进行多次评价。
实验使用的是一个可以煎蛋饼的UR5机器人臂,依靠末端执行器操纵厨房中的所有工具。机器人的两根手指通过两直流电机独立控制,并装有硅胶垫以抓取各种形状的工具。串口通信允许从传感器读取数据并与控制UR5的python脚本通信,以协调机械臂的各种动作。
实验前,作者对各控制参数(见图9)对食品最终效果的影响进行测试。挑选的四个志愿者首先得到一个机器人烹饪好的标准煎蛋饼,输入参数设置为范围内的中间值。随后,将其中一个输入参数增到最大,其他参数不变,重新制作煎蛋饼并进行评估。志愿者的反馈分为flavour、appearance和texture三方面,分别给出0-10的得分。
图9:输入参数表
输入对输出的影响通过计算灵敏度表示,代表在修改输入后,输出相对于标准煎蛋饼的平均相对变化。公式中,Y_n,j是指用户n对变量j的得分,x_i是相应的输入控制参数,Y_base是基准得分,σ表示用户得分的标准差。
结果发现,控制参数和用户反馈的关系为:盐、胡椒粉和混合影响味觉指标,混合、搅拌和烹饪时间影响外观、纹理。实验中一共准备了73个机器人制作的煎蛋饼,进行了6次实验以测试实验设置和我们的优化算法。四次测试是针对SequentialBO方法进行顺序抽样和优化,剩余两次实验使用预先定义采样点和高斯模型估计最优值的BatchBO方法。每次测试有1~4个评价者,但优化会随机选择其中的个体。而且在机器人平台使用相同的输入参数就可以获取重复的样本,这是人类无法做到的准确性。
从输入参数与输出反馈的关系(图10左)发现,在输入参数大幅改变时,输出反馈的范围较小,波动情况不大。而右图的BatchBO输入参数近似均匀分布,可以实现更大范围的探索。而且输出反馈的高波动性,意味着受噪声的影响可能更低。样本间较高的可分辨性导致主观反馈更加真实,从而更好地拟合机器人烹饪的目标函数。
图10:输入参数对食品的影响
从SequentialBO实验的最后几个样本和BatchBO的中间样本中,可以很明显地观察到三个输出反馈似乎是直接相关的。所以,在迭代过程中应该逐步增加输入方差,来减少这种相关影响。根据输入输出关系调整最优的输入参数,也能使烹饪出的菜肴更加美味。
这种食品定量化的方法可以应用到机器人厨师的可量化改进上,也可以在足够的样本数据上继续对主观数据进行合理量化、不断优化。不过,人们对食品的主观评价也不仅仅包括味觉和视觉。烹饪过程中的声音信息、厨房的干净整洁程度都可能影响我们对食物的整体评价,而将这些状态综合考虑是非常困难的。
并且,如何让机器人理解并熟练使用人类的各种烹饪工具是非常难以建模的动力学问题。对于该问题,大部分研究者认为可以采用神经网络解决。还可以让机器人向人类学习某些技能,比如握住机器人臂翻转煎饼,通过强化学习或者示教让机器人建立对应模型。或者观看大量烹饪视频,然后对这些行为进行推理、学习。
年英国科技公司MoleyRobotics在伦敦建成了一个机器人厨房系统,称这套「世界上第一款自动化厨房」可实现完全自动化的烹饪体验。机器人手臂上的20个马达、24个接合点和个感应器让它能够模仿人类双手,抓住各类瓶罐、餐具,也能够使用搅拌机、菜刀、灶台。但是由于Moley没有视觉识别系统,无法对目标准确定位。所以研究者需要通过手机App给Moley机器人下达任务命令,同时将食材、调味料等准确地摆放在恰当的位置,Moley才可以进行烹饪。
如今,市面上也有许多可供挑选的烹饪机器人,但他们大多只具有翻炒、搅拌等功能。需要人们在选择菜品后,根据烹饪要求将食材洗净切片、切丝或切块。并将这些原料、调味品放到指定盒子里,才能放心让机器人开始烹饪。而这离全自动化智能化的烹饪明显还有一段距离。
我们更希望有一种可以根据个人品味、偏好制作菜肴的定制机器人,让其烹饪风格不再千篇一律,而是像人一样让美食拥有自己的「味道」。烹饪机器人在未来生活中一定是不可或缺的角色。而让它们能与一般用户和生活结合,如何让其像人类一样熟练操作各种工具、配有一个可以「品尝」食物味道的舌头,能不断学习新菜单,以及最后怎样评价等,都是需要研究者克服的难题。
参考文献
[1]TakashiOgura,KeiOkada,andMasayukiInaba.Cuttingvegetablestasksbyhumanoidrobotusingvisionandforcesensors,IninThe24thAnnualConferenceonRoboticsSocietyofJapan,p.1H25,.
[2]KormushevP,CalinonS,CaldwellDG.RobotmotorskillcoordinationwithEM-basedreinforcementlearning[C]//IEEE/RSJinternationalconferenceonintelligentrobotsandsystems.IEEE,:-.
[3]SuzukiY,MoriokaS,UedaH.Cookingsupportwithinformationprojectionontoingredient[C]//Proceedingsofthe10thasiapacificconferenceonComputerhumaninteraction.:-.
[4]HashimotoA,MoriN,FunatomiT,etal.Smartkitchen:Ausercentriccookingsupportsystem[C]//ProceedingsofIPMU.,8:-.
[5]BolliniM,TellexS,ThompsonT,etal.Interpretingandexecutingrecipeswithacookingrobot[C]//ExperimentalRobotics.Springer,Heidelberg,:-.
[6]Bollini,M.,Barry,J.andRus,D.,,September.Bakebot:Bakingcookieswiththepr2.InThePR2workshop:results,challengesandlessonslearnedinadvancingrobotswitha