随着机器人技术的发展,越来越多的机器人开始出现在我们的生活与工作场所中,从扫地机器人和陪伴机器人、到仓储机器人和波士顿动力的双足机器人、再到现代化的工业流水线所包含的大量工业机器人,这些“机器人”可以 24 小时不间断地完成人类给他们布置的任务。
但它们充其量只能算是自动化机器,按照固定的程序执行简单而重复的工作,无法在一个时刻变化的动态世界中进化。一旦工作场景改变,甚至是工作对象出现一点变化,比如从圆形变成方形,这些机器人很可能会直接歇菜。
图 | 获得过世界第一的装载机器人,远不如人类灵活 (来源:谷歌)
为了解决这一问题,进一步释放机器人的应用潜力,一名叫 Andy Zeng 的谷歌研究实习生想到了机器学习技术,试图培养机器人的物理“直觉”,使其学会利用物理原理,完成拾取和投掷等动作,甚至可以在未来升级成旋转、摆动、滑动和接东西等更加复杂的运动。
除了 Andy 之外,该研究团队还包括来自于麻省理工学院、普林斯顿大学,哥伦比亚大学的研究人员。他们利用一套端到端的神经网络,开发了一款名为 TossingBot 的投掷机器人,能够自行识别杂乱无章且形状不一的零件,然后将它们一一抓起,扔到附近盒子中的指定区域内,成功率高达 85%。
在刚开始训练时,TossingBot 是一个十足的菜鸟,甚至连最基本的物体拾取都无法完成,更别说准确地投掷了。这是因为研究团队采用了无监督式训练方法,没有指定一种或几种形状,也没教它如何拾取不同形状的物体,完全放任它自己摸索经验,寻找技巧。
图 | 训练前(左)VS 训练后(右)(来源:谷歌)
事实上,拾取和投掷虽然听起来非常简单,但它们对人类来说都属于难以掌握的动作。就不提需要花数年的时间才能掌控自己肢体的幼儿了,大家可以数一数身边有多少成年人是无法完成“把空瓶子扔进垃圾桶”这一简单投掷任务的?
向指定区域投掷各种物体,是一件需要花些时间才能熟练掌握的运动技巧。
具体来说,准确投掷需要考虑到非常多的因素,从抓住物体的角度和位置,到物体本身的物理属性,比如重心、大小、形状、质量和摩擦力等等,都会影响物体的运动轨迹。想要做到每次扔到固定位置,甚至还需要分析空气阻力,再结合抛物线原理,计算出动力学数据。
举个例子,面对一把“头轻尾重”的螺丝刀,如果控制投掷力度和角度等变量,仅改变手持位置,一次抓头部(与螺丝接触的一端),一次抓尾部(装有握柄的一端),那么两次投掷得到的结果将截然不同。如果再将投掷对象换成乒乓球,质量和形状等数据都有了很大改变,投掷结果自然也会大相径庭。
图 | 不同的抓取方式会导致不同落点 (来源:谷歌)
因此,想要机器人学会准确投掷,就必须先搞清楚一件事:扔的东西是否有类别或规律可循?
研究人员为 TossingBot 配备了一部摄像机作为它的眼睛,负责观察物体及其运动轨迹。通过计算机视觉算法,它看到的物体会被转换成 RGB-D 图像,供它分析和识别不同物体的特征。
由于神经网络的黑箱特性,研究人员只能观察特征的表达方式,进而推断 TossingBot 采用的分类方法。在像素组成的成像图上,它标出了乒乓球,马克笔和木块等类别,这说明机器人依据的分类标准很可能是形状这样的几何元素,而不是颜色或重量等属性。
即使两个乒乓球紧挨彼此,看起来像是一个木块,TossingBot 也可以准确地区分出来,足以看出它对特征提取和分辨的准确程度。
图 | TossingBot在没有监督的情况下学会了分类(来源:谷歌)
学会分类后,TossingBot 面临的挑战是抓取和投掷。研究团队结合物理学和深度学习技术,打造出一个被他们称为“Residual Physics”(RP)的模型,包括感知网络、物理原理、抓取网络和投掷网络等模块。
为了让机器人自己摸索抓取技巧,研究人员最初随机化了重量参数,并且设计了 16 个不同的抓取角度。通过不断尝试和训练,它学会了不同物体应该参考的参数,还会给出 16 个不同角度各自的抓取成功率估值,选择最高的一个角度,逐渐从抓不住物体,变成了能够在近九成(87%)的时间里抓住正确的位置。
图 | TossingBot 工作原理解析(来源:谷歌)
在学习投掷时,目标投掷区域会提前给出。RP 模型将首先利用弹道学公式,计算出物体的理论投掷速度(v),然后再引入物理特征,由神经网络估算出调整值,作为未知动态参数与现实世界噪声和多变性的补偿(δ)。最后结合 v 和 δ,得出最终投掷速度。
与抓取类似,16 个不同的角度会导致不同的投掷速度,TossingBot 通常会选择最信得过的速度(得分最高),偶尔也会尝试没有试过的速度,以防算法陷入局部最优。在零件全部被扔完后,它还会抬起盒子,让零件滚落回身边,继续进行拾取和投掷训练。
最重要的是,RP 模型的泛化能力很强。面对没有见过的物体时,比如假水果,装饰物和办公用品,经过训练的 TossingBot 可以借助之前学会的简单形状的投掷技巧,在 1-2 个小时之内掌握新的技巧。
图 | TossingBot 成功的讲投掷技能运用在新的物体上(来源:谷歌)
即使是没有训练过的投掷区域,它也可以很好地处理,因为在准确估算投掷轨迹的基础上,补偿值 δ 很好地弥补了“投掷区域改变”这一变量。
图 | TossingBot 成功的讲投掷技能运用在新的区域上(来源:谷歌)
测试结果显示,RP模型的整体表现超过了仅有物理模块,没有深度学习的模型,还碾压了仅用回归函数(regression),没有物理模块的算法。
经过14个小时的训练后,面对训练过的球状、柱状、方块状和锤子状物体, TossingBot 的平均准确率约为 82%-85%,每小时的有效抓取次数在 500 次以上。相比之下,研究团队成员的平均投掷准确率在 80% 左右。
图 | 准确率对比 (来源:Andy Zeng)
通过分析实验过程,我们可以发现,TossingBot 仅通过练习拾取和投掷,就好像“领悟”了如何给物体分类——这通常需要进行专门的深度学习训练。
对于计算机视觉的语义分析领域来说,这意味着更具启发和泛化意义的新思路。如果想实现对物体的准确分类,或许无需明确给出类别和分类标准,直接指定包含多个步骤的复杂任务,让神经网络与现实世界产生互动,只要其中涉及到了分类行为,它就有可能摸索出自己的语义理解和分类规则,完全不需要人类介入。
如果按照这个思路,想让 AI 系统学会区分猫和狗,或许最好的办法是让它自己经常撸真猫和真狗。
当然,这项研究本身还存在一些局限性,比如测试物体都不易碎,不会涉及到抓取或投掷力度的问题,如果加入类似的考量,会让系统变得更加复杂。同时,如果可以在视觉数据的基础上,引入其它数据,比如扭矩和触觉反馈,可能会让系统变得更加准确,更容易掌握新物体的投掷技巧。
未来,研究团队将继续探索 RP 模型的应用潜力和价值,寻找投掷机器人以外的用途。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved