让机器人依靠视觉识别抓取特定物体
近日,谷歌团队在arXiv上发布了新论文《End-to-EndLearningofSemanticGrasping》,这篇文章由谷歌成员EricJang、SudheendraVijayanarasimhan、JulianIbarz、SergeyLevine和PeterPastor五人共同完成。
量子位选取论文中关键信息,编译整理分享给大家。
实验介绍这篇论文首先讨论了机器人的语义抓取任务,即机器人借助单目图像抓取用户指定类别的相应物体。受视觉神经处理模型中双流假说的启发,研究人员提出了一种语义抓取框架,它允许用端对端的方式学习物体识别、分类并设计抓取路线。
△工作人员根据用户指定,将测试用的杂物分为16类
受双流假说的启发,研究人员将模型分为“腹流”和“背流”。
△背流(绿色)与腹流(紫色)源于视觉皮层的同一区域/维基百科
在这个模型中,腹流负责识别物体类别,背流同时解释正确抓取所需的几何图形关系。测试人员利用机器人自主数据采集能力获取了大量自监督数据集来训练背流,并用半监督学习中的标签传播算法训练腹流,同时佐以适当的人力监督。
△受双流假设的影响,将模型分为了腹流和背流
论文用实验方法展示了改进后的抓取系统方法。当然这不仅仅包含端对端内容,还包括用边界框检测的基线处理方法。不仅如此,还展示了用辅助数据、无语义抓取数据和无掌握操作以及语义标记图像共同训练的模型,这可能会大大提高语义抓取性能。
△实验所用的机器人手臂,具有两只手指和单目图像相机
实验结果在本次实验中,通过让机器人在不同类别的物体中,抓取随机指定的五个物体来评估机器人的语义抓取能力。每次实验重复10次,抓取的物体包含一组30个训练对象和30个未经测试对象。研究人员通过基线比较证明各种架构在决策语义抓取模型中的作用。
△对比实验结果统计表
本实验的结果可总结为如下6点:
1)端对端的语义抓取优于传统的检测分类方法
2)双流语义分解预测优于单流模型
3)分离架构的理解能力胜过双支路架构
4)9层含attention的CNN表现胜过16层无attention的CNN
5)辅助语义数据能够增强双流架构的分类表现
6)反映物体分布的辅助语义数据提高了分类抓取的准确性
机器人抓取研究前沿及抓取的研究进展整体分析
前言一年前我们曾探讨过RobotLearning的发展>>梳理|机器人学习(RobotLearning)的发展,那么经过近一年的发展,RobotLearning也有了很多新的进展,特别在MetaLearning上。不过今天我们先来专门探讨RobotLearning中的一个具体应用,也就是机器人抓取RoboticManipulation/Grasping。为什么专门考虑这个问题?因为这个是体现机器人智能目前最亟待解决的问题之一。
我们可以考虑一下家用机器人需要具备什么样的智能?可以说最主要就是要具备两方面的能力,一个是移动导航能力,另一个就是机械臂的抓取能力。所以像下图这个Fetch机器人其实就满足了家用机器人所需的硬件了。我们今天不谈移动导航的问题,只来谈谈机器人抓取这个问题的研究前沿。
对于机器人抓取,其实本身有很多研究的具体问题和方式,比如目前抓取No.1的系统是伯克利的Dex-Net4.0,有兴趣的朋友可以看看这篇报道:Exclusive:Thisisthemostdexterousrobotevercreated,但是Dex-Net并不是一个端到端的深度学习系统,它只是用神经网络来对抓取的位置进行估计,然后通过planning的方式来抓取,本质上是一个开环控制系统。这样的系统对于完全静态简单的物体是没问题,但是如果物体有阻挡,有改变,那这个系统就比较难处理了。所以,鉴于本专栏的偏好是通用人工智能AGI,我们在这里只想关注一种解决机器人抓取的方式,那就是:
End-to-EndVision-BasedRoboticManipulation端到端基于视觉的机器人抓取
我们希望整个机器人抓取过程都是机器人自己学到的!这就非常近似于人类的行为!
那么有了这个主题,我们就来看看这方面的研究都有谁,基本上可以说就集中在两个团队:
1)GoogleBrainRobotics团队
2)伯克利SergeyLevine团队
除此之外,Deepmind,OpenAI,Stanford的LiFei-Fei团队还有CMU的AbhinavGupta团队有一些亮眼的研究,但并没有特别专注在RoboticManipulation这个问题上。然后实际上GoogleBrain团队SergeyLevine也在其中,所以接下来我们看到的paper基本上都出自SergeyLevine之手!
PaperList
[1]Sadeghi,Fereshteh,etal. "Sim2realviewinvariantvisualservoingbyrecurrentcontrol."arXivpreprintarXiv:1712.07642(2017).
[2]Riedmiller,Martin,etal. "LearningbyPlaying-SolvingSparseRewardTasksfromScratch."arXivpreprintarXiv:1802.10567(2018).
[3]Quillen,Deirdre,etal. "DeepReinforcementLearningforVision-BasedRoboticGrasping:ASimulatedComparativeEvaluationofOff-PolicyMethods."arXivpreprintarXiv:1802.10264(2018).
[4]Haarnoja,Tuomas,etal. "ComposableDeepReinforcementLearningforRoboticManipulation."arXivpreprintarXiv:1803.06773(2018).
[5]Fang,Kuan,etal. "LearningTask-OrientedGraspingforToolManipulationfromSimulatedSelf-Supervision."arXivpreprintarXiv:1806.09266(2018).
[6]Kalashnikov,Dmitry,etal. "QT-Opt:ScalableDeepReinforcementLearningforVision-BasedRoboticManipulation."arXivpreprintarXiv:1806.10293(2018).
[7]Matas,Jan,StephenJames,andAndrewJ.Davison. "Sim-to-RealReinforcementLearningforDeformableObjectManipulation."arXivpreprintarXiv:1806.07851(2018).
[8]OpenAI "LearningDexterousIn-HandManipulation" (2018).
上面这些paper大致是近一年来比较重要的和roboticmanipulation直接相关的paper了,由于本人主要关注SergeyLevine团队的成果,可能会疏忽掉其他工作,如果有知友有好的相关paper推荐,欢迎在本文下留言,谢谢!
本文不打算具体的分析每一篇paper,而是从整体上对于目前机器人抓取的研究进展做一个整体的分析。
机器人抓取的研究进展整体分析目前机器人抓取或者整个机器人学习的研究其实核心在于三个方面:
1)算法层面
2)sim-to-real从仿真到真实环境的迁移
3)应用层面
首先是算法层面,我们希望DRL算法在机器人抓取上能够有更高的效率,更快的学习速度,以及处理更困难的学习任务。因此在上面的paperlist中,[3]对多种DRLoff-policy的算法进行评估,[6]则使用其中一个算法在真实场景中做大规模的实验[4]则基于softq-learning使得机器人具备更强的exploration能力[2]则研究通过auxiliaryrewards来处理复杂机器人学习任务中reward过于稀疏的问题。
接下来是仿真环境到真实环境的迁移问题。由于真实机器人实验不方便并且实验成本很高,使得从仿真迁移到真实成为一种几乎必然的选择(Google那种机器人农场的方法毕竟不是每个人都能干的),因此很多研究的重点都在于仿真到真实的迁移,比如[1]通过多视角来研究sim2real[7]则在仿真环境中研究非刚体的物体操作[3]提出来一个面向机器人抓取的仿真benchmark,对于机器人抓取的研究能够起到很大的促进作用。
最后是应用层面,大家不仅仅关注简单的普通的机器人抓取问题,也考虑更复杂的manipulation问题,也因此,有了[8]OpenAI刚刚出炉的机器手玩方块的成果,[5][7]研究更复杂机器人抓取问题。
那么对于这三方面,到底有什么重要的研究进展呢?我们先来单独分析一下OpenAI这个最新成果.
3LearningDexterousIn-HandManipulation
这两天OpenAI刚出来的成果,使用DRL实现机械手灵巧操作方块,虽然这个工作面向的不是抓取,但是方法论上是完全相同的,这篇文章对于机器人抓取问题具有很强的借鉴意义。
1)这篇文章的成果:通过DRL算法PPO完全在仿真环境中训练机械手玩方块,将训练好的模型直接迁移到真实场景中取得成功,并且整个训练不带人类的演示demo,完全根据reward自学完成,而最后的实现效果竟然和人类的行为非常接近,很像人的操作。
2)取得如此成功的原因:(1)高度仿真的系统,和真实环境非常接近,realitygap比较小(2)使用仿真环境随机化这个技巧来大幅度拓展仿真环境的范围,使得神经网络学习后能够适应各种场景,当然就包括真实场景了。这种随机化包含比如不同的摩擦力,不同的演示,不同的摄像头角度等等(3)大规模分布式并行训练,使用了几百台机器6144个cpu来运行分布式仿真环境收集数据,然后用一台8GPU的V100来训练模型,就像标题说的,等价于训练了100年.
3)启发:(1)DRL能够通过学习学到传统非学习算法根本做不到的效果,端到端神经网络化必须是机器人的未来!(2)仿真环境超级重要,随着技术的发展,仿真肯定可以做的越来越好,这就意味的未来的机器人必然会是在仿真中进行训练的,成本低,速度快,何乐而不为。(3)大规模的计算能够直接弥补DRLsampleinefficiency的问题,反正只要有足够的设备,一天训他原来要1年的东西,数据堆上去,就能做出来。
进一步分析上一小节我们简单的分析了一下OpenAI这个很酷的工作,但是我们能得到的结论就是:这更多的是工程上的胜利,而非算法上的胜利。算法依然是PPO,并没有实质性的变化。
同样的,之前Google在机器人抓取的重要进展[6]QT-Opt将端到端机器人抓取的效果提升了一大截,但是我们具体分析它里面的算法就会发现算法上只是Q-Learning的一个变种,相比于DDPG,不使用ActorNetwork,而通过进化算法CEM来获取actor,能够使训练更稳定,并且方便于做大规模分布式训练。
对于[6]和[8],其实我们都发现大规模分布式学习对于性能提升的重要性,这当然也完全符合深度学习的情况,只要有数据和高性能计算,就能把性能堆出来。由于深度增强学习存在比监督学习大的多的sampleinefficiency问题,所以实际上深度增强学习要能work,需要的数据量会比监督学习如imagenet还要大的多。也因此,我们看到AlphaGo,OpenAI的机器手,OpenAI的Dota,都动用了巨量的计算资源。一个小小的机器手,却使用了6144个CPU和8个V100GPU来训练,这也是非常空前的事情。
下一步呢?
有两点是非常容易预测的:1)未来必然会出来更多更好的仿真环境。这一年来的研究可以说就是比较明确的肯定仿真直接迁移到真实环境的可行性,那么就没有理由更进一步的去开发更真实的仿真环境。
2)更快更强的分布式学习系统。这个就更不必说了,这是推动机器人学习进展的燃料。
有了上面这两点,即使保持现有的算法不变,我相信都可以训练出比现在更强或者更复杂的机器人学习成果,端到端基于视觉的机器人抓取直接推到99%以上的准确率是完全可能的,这就趋于商用了。
那么算法层面又该如何发展呢?我们需要更复杂任务Task的牵引。比如我们需要双机械臂的协作抓取,这就涉及到multi-agentrobotlearning。比如我们需要机器人能够完成一个更长的任务系列,这需要HierarchicalReinforcementLearning的研究。比如我们需要机器人能够同时完成多个任务,那这就需要multitasklearning。比如我们希望机器人的generalization能够更强,能够处理没看过的物体,那么这就需要MetaLearning的研究,那么这块现在特别火了。比如我们需要机器人能够快速的学习新任务,这就需要ContinualLearning,MetaLearning,如果是要求通过模仿学习来实现,那就需要imitationlearning。
这里我推荐大家可以阅读第一届CoRL整理出来的问题,从这里我们反而会觉得现在的RobotLearning真的是刚刚开始,现在研究的问题也太过于简单了。
https://docs.google.com/document/d/1biE0Jmh_5nq-6Giyf2sWZAAQz23uyxhTob2Uz4BjR_w/edit
现在到了2018年才有了一个机器人抓取的benchmark,未来相信会有更多的benchmark出现来推动这个领域的发展。
https://docs.google.com/document/d/1biE0Jmh_5nq-6Giyf2sWZAAQz23uyxhTob2Uz4BjR_w/edit
最后小结本文没有详细的分析每一篇paper的具体idea,而是比较宽泛的分析机器人抓取及机器人学习的整体研究进展。总的来说,对于机器人抓取这个具体问题,从工业应用上看将可以很快看到落地,要在仿真系统研发上推,在大规模分布式学习上推,核心确实在于工程实现上。而对于学术研究,最关键的是去定义新的task,新的benchmark,从而在新task的基础上去推动算法层面和应用层面的发展。